Cuprins:

LED-uri Rgb controlate de accelerometru wireless: 4 pași
LED-uri Rgb controlate de accelerometru wireless: 4 pași

Video: LED-uri Rgb controlate de accelerometru wireless: 4 pași

Video: LED-uri Rgb controlate de accelerometru wireless: 4 pași
Video: Cum sa iti controlezi mai multe benzi led cu telefonul sau cu o telecomanda wireless 2024, Iulie
Anonim
LED-uri Rgb controlate de accelerometru wireless
LED-uri Rgb controlate de accelerometru wireless
LED-uri Rgb controlate de accelerometru wireless
LED-uri Rgb controlate de accelerometru wireless

Accelerometrele MEMS (sisteme micro-electromecanice) sunt utilizate pe scară largă ca senzori de înclinare în telefoanele mobile și camerele foto. Accelerometrele simple sunt disponibile atât ca chip-chip, cât și pentru plăci ieftine pentru dezvoltare.

Cipurile wireless sunt, de asemenea, accesibile și disponibile în circuite asamblate, cu rețea de antenă potrivită și capace de decuplare la bord. Cuplați atât placa wireless, cât și accelerometrul până la un microcontroler prin interfața serială și aveți un controler wireless cu funcții nintendo-wii. Apoi, construiți un receptor cu același tip de cip wireless și LED-uri rgb controlate de pwm, voilă, aveți fulgere de cameră colorate fără fir, controlate prin înclinare. Păstrați nivelul plăcii emițătorului cu panoul orientat în sus și LED-ul este albastru rece, doar ledul albastru este activ. Apoi înclinați transmițătorul într-o singură direcție și amestecați în roșu sau verde în funcție de ce direcție îl înclinați. Înclinați până la 90 de grade și mergeți prin toate amestecurile de roșu și albastru sau verde și albastru până când roșu sau verde este activ la înclinare de 90 de grade. Înclinați puțin în direcția x și y și veți obține un amestec de toate culorile. La 45 de grade în toate direcțiile, lumina este un amestec egal de roșu, verde și albastru, cu alte cuvinte, lumină albă. Piesele folosite sunt disponibile din magazinele electronice de hobby pe internet. Ar trebui să poată fi identificat din unele dintre imagini.

Pasul 1: Transmițător cu accelerometru

Transmițător cu accelerometru
Transmițător cu accelerometru
Transmițător cu accelerometru
Transmițător cu accelerometru
Transmițător cu accelerometru
Transmițător cu accelerometru
Transmițător cu accelerometru
Transmițător cu accelerometru

Transmițătorul se bazează pe microcontrolerul Atmel avr168. Placa roșie convenabilă cu 168 este o placă arduino cu regulator de tensiune și circuit de resetare. Accelerometrul este conectat la avr cu magistrala i2c bit-banged, iar placa wireless este conectată cu hardware SPI (Serial Peripheral Interface).

Panoul este complet fără fir, cu bateria de 4, 8V legată dedesubt. Placa wireless și arduino wee acceptă până la 9 V și au regulator de tensiune liniar la bord, dar accelerometrul are nevoie de 3, 3V de la șina reglementată de pe wee.

Pasul 2: Receptor cu LED RGB

Receptor cu LED RGB
Receptor cu LED RGB
Receptor cu LED RGB
Receptor cu LED RGB
Receptor cu LED RGB
Receptor cu LED RGB

Receptorul se bazează pe demoboardul atmel avr169 numit fluture. Placa are o mulțime de caracteristici neutilizate în acest proiect. Transmițătorul fără fir este conectat la PortB, iar ledul controlat de pwm este conectat la PortD. Alimentarea este furnizată la antetul ISP, 4.5V este suficient. Placa wireless poate tolera 5V pe pinii I / O, dar are nevoie de o alimentare de 3,3V care este furnizată de regulatorul de la bord.

Cablul de antet modificat pentru transceiverul RF este foarte convenabil și conectează placa wireless cu controlerul spi de alimentare și hardware de pe fluture. Shiftbright-ul este un controler de modulare a lățimii impulsului condus de RGB care acceptă o comandă de 4 octeți care este blocată și apoi blocată pe pinii de ieșire. Foarte ușor de conectat în serie. Trebuie doar să schimbați multe cuvinte de comandă, iar primul deplasat va ajunge în ultimul LED conectat din lanțul de margaretă.

Pasul 3: C-programare

Codul este scris în C, deoarece nu mi-a păsat să învăț limbajul de procesare „mai ușor” pe care se bazează arduino. Am scris interfața SPI și rf tranceiver pentru experiența de învățare, dar am împrumutat codul de asamblare i2c de la avrfreaks.net. Interfața shiftbright este bitbanged în cod C. O problemă pe care am întâlnit-o a fost micile variații iradice ale ieșirii accelerometrului, ceea ce a făcut ca pâlpâirea ledului să fie foarte mare. Am rezolvat acest lucru cu un filtru software low-pass. O medie ponderată în mișcare pe valorile accelerometrului. RF-tranceiver-ul suportă hardware-ul CRC și ACK cu retransmisie automată, dar pentru acest proiect, actualizarea în timp real și lină a ledurilor a fost mai importantă. Fiecare pachet cu valori de accelerometru nu trebuie să ajungă intact la receptor, atâta timp cât pachetele corupte sunt aruncate. Nu am avut probleme cu pachetele RF pierdute pe o rază de 20 de metri. Dar, mai departe, legătura a devenit instabilă, iar ledurile nu s-au actualizat continuu. Bucla principală a transmițătorului în pseudo-cod: initialize (); while (adevărat) {Valori = abs (obțineți valorile accelerometrului x, y, z ()); RF_send (Valori); delay (20ms);} Bucla principală a receptorului în pseudo-cod: initialize (); while (true) {newValues = blocking_receiveRF ()); rgbValues = rgbValues + 0,2 * (newValues-rgbValues); scrie rgbValues to shiftbrigth;}

Pasul 4: Rezultatul

Rezultatul
Rezultatul
Rezultatul
Rezultatul
Rezultatul
Rezultatul
Rezultatul
Rezultatul

Am fost uimit de cât de lin și precis a fost controlul. Aveți cu adevărat controlul culorii asupra exactității vârfurilor degetelor. Controlerul pwm-LED are o rezoluție de 10 biți pentru fiecare culoare, ceea ce creează milioane de culori posibile. Din păcate, accelerometrul are o rezoluție de doar 8 biți, ceea ce reduce numărul de culori teoretice la mii. Dar încă nu este posibil să percepem nici un pas în schimbarea culorii. Am pus receptorul într-o lampă IKEA și am făcut mai jos o poză cu diferite culori. Există, de asemenea, un videoclip (deși o calitate oribilă)

Recomandat: