Turinys:

Belaidis akselerometro valdomas Rgb-LED: 4 žingsniai
Belaidis akselerometro valdomas Rgb-LED: 4 žingsniai

Video: Belaidis akselerometro valdomas Rgb-LED: 4 žingsniai

Video: Belaidis akselerometro valdomas Rgb-LED: 4 žingsniai
Video: Venz VZ-KB-4 multimedia klaviatūra – Pirmoji pažintis 2024, Lapkritis
Anonim
Belaidis pagreičio matuoklis, valdomas Rgb-LED
Belaidis pagreičio matuoklis, valdomas Rgb-LED
Belaidis akselerometro valdomas Rgb-LED
Belaidis akselerometro valdomas Rgb-LED

MEMS (mikroelektromechaninės sistemos) Akselerometrai yra plačiai naudojami kaip pakreipimo jutikliai mobiliuosiuose telefonuose ir fotoaparatuose. Paprastus akselerometrus galima įsigyti kaip „ic-chip“ir pigiai kuriamas PCB plokštes.

Belaidės mikroschemos taip pat yra prieinamos ir yra prieinamos surinktose grandinėse, kuriose yra suderintas antenos tinklas ir atjungimo dangteliai. Prijunkite belaidę plokštę ir akselerometrą prie mikrovaldiklio per nuosekliąją sąsają ir turėsite belaidį valdiklį su „Nintendo-wii“funkcijomis. Tada sukurkite imtuvą su to paties tipo belaidžiu lustu ir pwm valdomais rgb šviesos diodais, voila, turėsite belaidį, pakreiptą valdomą spalvotą kambario žaibą. Siųstuvo plokštę laikykite lygią, kai duonos plokštė nukreipta į viršų, o šviesos diodas šviečia mėlynai, veikia tik mėlyna lemputė. Tada pakreipkite siųstuvą į vieną pusę ir sumaišykite raudoną arba žalią spalvą, priklausomai nuo to, kuria kryptimi jį pakreipiate. Pakreipkite iki 90 laipsnių ir eikite per visus raudonos ir mėlynos arba žalios ir mėlynos spalvos mišinius, kol 90 laipsnių kampu suaktyvės tik raudona arba žalia spalva. Pakreipkite šiek tiek x ir y kryptimi ir gausite visų spalvų mišinį. 45 laipsnių kampu į visas puses šviesa yra lygi raudonos, žalios ir mėlynos, kitaip tariant, baltos šviesos mišinys. Naudojamas dalis galima įsigyti internetinėse hobis-elektroninėse parduotuvėse. Turėtų būti atpažįstama iš kai kurių nuotraukų.

1 žingsnis: siųstuvas su akselerometru

Siųstuvas su akselerometru
Siųstuvas su akselerometru
Siųstuvas su akselerometru
Siųstuvas su akselerometru
Siųstuvas su akselerometru
Siųstuvas su akselerometru
Siųstuvas su akselerometru
Siųstuvas su akselerometru

Siųstuvas yra pagrįstas „Atmel avr168“mikrovaldikliu. Patogi raudona plokštė su 168 yra arduino plokštė su įtampos reguliatoriumi ir atstatymo grandine. Akselerometras yra prijungtas prie avr su bit-banged i2c magistrale, o belaidžio ryšio plokštė prijungta prie aparatinės įrangos SPI (Serial Peripheral Interface).

Duonos lenta yra visiškai belaidė, o apačioje pritvirtinta 4,8 V baterija. Belaidžio ryšio plokštė ir „arduino wee“priima iki 9 V įtampą ir turi linijinį įtampos reguliatorių, tačiau akselerometrui reikia 3, 3 V nuo reguliuojamo bėgio.

2 žingsnis: Imtuvas su RGB-LED

Imtuvas su RGB-LED
Imtuvas su RGB-LED
Imtuvas su RGB-LED
Imtuvas su RGB-LED
Imtuvas su RGB-LED
Imtuvas su RGB-LED

Imtuvas yra sukurtas pagal atmel avr169 demoboard pavadinimu drugelis. Plokštė turi daug šiame projekte nenaudojamų funkcijų. Belaidis transmisijos imtuvas prijungtas prie „PortB“, o „pwm“valdomas šviesos diodas prijungtas prie „PortD“. Maitinimas tiekiamas IPT antraštėje, pakanka 4,5 V. Belaidžio ryšio plokštė gali toleruoti 5 V įvesties/išvesties kaiščius, tačiau jai reikia 3,3 V maitinimo šaltinio, kurį tiekia borto reguliatorius.

Modifikuotas „RF tranceiver“antraštės kabelis yra tikrai patogus ir jungia belaidę plokštę su maitinimo ir aparatūros spi valdikliu. „Shiftbright“yra „rgb“valdomas impulsų pločio moduliavimo valdiklis, priimantis 4 baitų komandą, kuri yra užfiksuojama ir užfiksuojama išvesties kaiščiuose. Tikrai lengva prijungti serijiniu būdu. Tiesiog pakeiskite daugelį komandinių žodžių, o pirmasis perkeltas bus paskutinis prijungtas šviesos diodas.

3 žingsnis: C programavimas

Kodas parašytas C, nes man nerūpėjo išmokti „lengvesnės“apdorojimo kalbos, kuria pagrįsta arduino. Aš pats parašiau SPI ir rf tranceiver sąsają, kad galėčiau mokytis, bet pasiskolinau i2c surinkėjo kodą iš avrfreaks.net. „Shiftbright“sąsaja yra „bitbanged“naudojant C kodą. Viena problema, su kuria susidūriau, buvo nedideli radiaciniai akselerometro išvesties svyravimai, dėl to lemputė labai mirgėjo. Aš tai išsprendžiau naudodamas programinės įrangos žemo dažnio filtrą. Akselerometro verčių slenkamasis svertinis vidurkis. „RF-tranceiver“palaiko aparatūros crc ir ack su automatiniu retransliavimu, tačiau šiam projektui svarbiau buvo sklandus šviesos diodų atnaujinimas realiu laiku. Kiekvienas paketas su akselerometro reikšmėmis neprivalo atvykti į imtuvą, jei sugadinti paketai yra išmesti. Neturėjau jokių problemų dėl pamestų RF paketų, esančių 20 metrų matymo linijoje. Tačiau toliau ryšys tapo nestabilus, o šviesos diodai nebuvo nuolat atnaujinami. Pagrindinė siųstuvo kilpa pseudo-kodu: inicializuoti (); o (tiesa) {Values = abs (gauti x, y, z akselerometro reikšmes ()); RF_send (vertės); uždelsimas (20 ms);} Pagrindinė imtuvo kilpa pseudokode: inicializuoti (); tuo tarpu (tiesa) {newValues = blocking_receptRF ()); rgbValues = rgbValues + 0,2*(newValues-rgbValues); rašyti rgbValues to shiftbrigth;}

4 žingsnis: rezultatas

Rezultatas
Rezultatas
Rezultatas
Rezultatas
Rezultatas
Rezultatas
Rezultatas
Rezultatas

Buvau nustebinta, kaip sklandžiai ir tiksliai valdoma. Jūs tikrai galite tiksliai kontroliuoti spalvą. „Pwm-LED“valdiklis turi 10 bitų skiriamąją gebą kiekvienai spalvai, o tai suteikia milijonus galimų spalvų. Deja, akselerometras turi tik 8 bitų skiriamąją gebą, todėl teorinių spalvų skaičius sumažėja iki tūkstančių. Tačiau vis dar neįmanoma suvokti jokio spalvos pasikeitimo žingsnio. Įdėjau imtuvą į IKEA lempą ir žemiau nufotografavau skirtingas spalvas. Taip pat yra vaizdo įrašas (siaubingos kokybės)

Rekomenduojamas: