Sadržaj:

Rgb-LED kontrolisani bežični akcelerometar: 4 koraka
Rgb-LED kontrolisani bežični akcelerometar: 4 koraka

Video: Rgb-LED kontrolisani bežični akcelerometar: 4 koraka

Video: Rgb-LED kontrolisani bežični akcelerometar: 4 koraka
Video: Почему ВСЕ покупают эту игровую мышь? - Логитек G502 ГЕРОЙ 2024, Juli
Anonim
Rgb-LED upravljane bežičnim akcelerometrom
Rgb-LED upravljane bežičnim akcelerometrom
Rgb-LED upravljani bežičnim akcelerometrom
Rgb-LED upravljani bežičnim akcelerometrom

MEMS (mikro-elektro-mehanički sistemi) akcelerometri su u širokoj upotrebi kao senzori nagiba u mobilnim telefonima i kamerama. Jednostavni akcelerometri dostupni su i kao ic-chip i kao jeftine razvojne pcb ploče.

Bežični čipovi su također pristupačni i dostupni u sklopljenim krugovima, s odgovarajućom antenskom mrežom i ugrađenim poklopcima za odvajanje. Priključite bežičnu ploču i mjerač ubrzanja na mikrokontroler putem serijskog sučelja i dobit ćete bežični kontroler s funkcijama nintendo-wii. Zatim napravite prijemnik sa istim tipom bežičnog čipa i pwm-kontrolisanim rgb-LED diodama, voila, imate bežičnu sobnu rasvjetu s kontroliranim nagibom. Držite ploču odašiljača u ravnini s matičnom pločom okrenutom prema gore, a LED je hladno plava, aktivna je samo plava LED dioda. Zatim nagnite odašiljač u jednom smjeru i miješate u crvenoj ili zelenoj boji, ovisno o smjeru naginjanja. Nagnite se do 90 stupnjeva i prolazite kroz sve mješavine crvene i plave ili zelene i plave boje sve dok samo crvena ili zelena ne budu aktivne pri nagibu od 90 stupnjeva. Nagnite malo u smjeru x i y i dobit ćete mješavinu svih boja. Na 45 stepeni u svim smjerovima svjetlo je jednaka mješavina crvenog, zelenog i plavog, drugim riječima, bijelog svjetla. Korišteni dijelovi dostupni su u internetskim trgovinama elektroničke hobije. Trebalo bi se prepoznati na nekim slikama.

Korak 1: Odašiljač s akcelerometrom

Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom
Odašiljač sa akcelerometrom

Predajnik je zasnovan na mikrokontroleru Atmel avr168. Prikladna crvena ploča sa 168 je arduino ploča s regulatorom napona i krugom za resetiranje. Akcelerometar je povezan s avr-om pomoću bit-banged i2c sabirnice, a bežična ploča je povezana sa hardverskim SPI-om (serijsko periferno sučelje).

Matična ploča je potpuno bežična s 4, 8V baterijskim paketom pričvršćenim ispod. Bežična ploča i arduino wee prihvaćaju do 9 V i imaju ugrađeni linearni regulator napona, ali akcelerometru je potrebno 3,3 V iz regulirane šine.

Korak 2: Prijemnik sa RGB-LED

Prijemnik sa RGB-LED
Prijemnik sa RGB-LED
Prijemnik sa RGB-LED
Prijemnik sa RGB-LED
Prijemnik sa RGB-LED
Prijemnik sa RGB-LED

Prijemnik je baziran na atmel avr169 demo ploči pod imenom Butterfly. Ploče imaju mnogo funkcija koje se ne koriste u ovom projektu. Bežični primopredajnik spojen je na PortB, a LED koji kontrolira pwm spojen je na PortD. Napajanje se napaja iz ISP zaglavlja, dovoljno je 4,5V. Bežična ploča može tolerirati 5V na i/o pinovima, ali joj je potrebno napajanje od 3.3V koje napaja ugrađeni regulator.

Modificirani kabel zaglavlja za RF prijemnik je zaista zgodan i povezuje bežičnu ploču sa napajanjem i hardverskim spi kontrolerom na leptiru. Shiftbright je kontroler modulacije širine impulsa predvođen rgb-om koji prihvaća naredbu od 4 bajta koja je zaključana, a zatim zaključana na izlaznim pinovima. Zaista jednostavno povezivanje u seriju. Samo pomaknite mnoge naredbene riječi i prva pomaknuta van će završiti u posljednjoj povezanoj LED diodi u lancu tratinčice.

Korak 3: C-programiranje

Kôd je napisan na C jer me nije zanimalo učenje "lakšeg" jezika za obradu na kojem je baziran arduino. Sam sam napisao sučelje SPI i rf tranceiver za iskustvo učenja, ali sam posudio i2c asemblerski kod sa avrfreaks.net. Shiftbright sučelje je bitovano u C-kodu. Jedan problem na koji sam naišao su male iracionalne varijacije u izlazu akcelerometra, zbog čega je LED svjetlo jako treperilo. To sam riješio softverskim niskopropusnim filterom. Pokretni ponderirani prosjek na vrijednostima akcelerometra. RF-tranceiver podržava hardverski crc i ack s automatskim ponovnim slanjem, ali za ovaj projekt, glatko ažuriranje LED dioda u stvarnom vremenu bilo je važnije. Svaki paket sa vrijednostima akcelerometra ne mora stići netaknut u prijemnik, sve dok se oštećeni paketi odbacuju. Nisam imao problema sa izgubljenim RF paketima u krugu od 20 metara od vidokruga. Ali dalje je veza postala nestabilna, a LED diode se nisu kontinuirano ažurirale. Glavna petlja predajnika u pseudo kodu: initialize (); while (true) {Values = abs (get x, y, z accelerometer values ()); RF_send (vrednosti); delay (20ms);} Glavna petlja prijemnika u pseudo-kodu: initialize (); while (true) {newValues = blocking_receiveRF ()); rgbValues = rgbValues + 0,2*(newValues-rgbValues); upišite rgbValues za shiftbrigth;}

Korak 4: Rezultat

Rezultat
Rezultat
Rezultat
Rezultat
Rezultat
Rezultat
Rezultat
Rezultat

Bio sam zapanjen koliko je kontrola bila glatka i precizna. Zaista imate kontrolu tačnosti boje prstima. Pwm-LED-kontroler ima 10-bitnu rezoluciju za svaku boju, što čini milione mogućih boja. Nažalost, akcelerometar ima samo 8 -bitnu rezoluciju što smanjuje broj teoretskih boja na hiljade. Ali još uvijek nije moguće opaziti bilo kakav korak u promjeni boje. Stavio sam prijemnik u IKEA lampu i dole slikao različite boje. Postoji i video zapis (ipak užasne kvalitete)

Preporučuje se: