Sommario:

LED RGB controllati da accelerometro wireless: 4 passaggi
LED RGB controllati da accelerometro wireless: 4 passaggi

Video: LED RGB controllati da accelerometro wireless: 4 passaggi

Video: LED RGB controllati da accelerometro wireless: 4 passaggi
Video: Status LEDS for your Bambu 3d Printer! (BL LED Controller) 2024, Novembre
Anonim
LED RGB controllati da accelerometro wireless
LED RGB controllati da accelerometro wireless
LED RGB controllati da accelerometro wireless
LED RGB controllati da accelerometro wireless

MEMS (Sistemi microelettromeccanici) Gli accelerometri sono ampiamente utilizzati come sensori di inclinazione nei telefoni cellulari e nelle fotocamere. Sono disponibili semplici accelerometri sia come ic-chip che come schede PCB di sviluppo economiche.

I chip wireless sono anche convenienti e disponibili in circuiti assemblati, con rete di antenne abbinate e cappucci di disaccoppiamento integrati. Collega sia la scheda wireless che l'accelerometro a un microcontrollore tramite interfaccia seriale e avrai un controller wireless con funzioni nintendo-wii. Quindi costruisci un ricevitore con lo stesso tipo di chip wireless e LED RGB controllati da pwm, voilà, hai un'illuminazione della stanza colorata wireless e controllata dall'inclinazione. Mantieni il livello della scheda del trasmettitore con la breadboard rivolta verso l'alto e il LED è blu freddo, solo il LED blu è attivo. Quindi inclina il trasmettitore in una direzione e mescoli in rosso o verde a seconda della direzione in cui lo inclini. Inclina fino a 90 gradi e attraversi tutti i mix di rosso e blu o verde e blu fino a quando solo il rosso o il verde è attivo con un'inclinazione di 90 gradi. Inclina leggermente in entrambe le direzioni x e y e ottieni un mix di tutti i colori. A 45 gradi in tutte le direzioni la luce è un mix uguale di rosso, verde e blu, in altre parole, luce bianca. Le parti utilizzate sono disponibili nei negozi di elettronica di hobby su Internet. Dovrebbe essere identificabile da alcune delle immagini.

Passaggio 1: trasmettitore con accelerometro

Trasmettitore con accelerometro
Trasmettitore con accelerometro
Trasmettitore con accelerometro
Trasmettitore con accelerometro
Trasmettitore con accelerometro
Trasmettitore con accelerometro
Trasmettitore con accelerometro
Trasmettitore con accelerometro

Il trasmettitore è basato sul microcontrollore Atmel avr168. La comoda scheda rossa con il 168 è una scheda arduino con regolatore di tensione e circuito di ripristino. L'accelerometro è collegato all'avr con bus i2c bit-banged e la scheda wireless è collegata con hardware SPI, (Serial Peripheral Interface).

La breadboard è completamente wireless con il pacco batteria da 4, 8 V legato sotto. La scheda wireless e l'arduino wee accettano fino a 9 V e hanno un regolatore di tensione lineare integrato, ma l'accelerometro necessita di 3, 3 V dalla guida regolata sul wee.

Passaggio 2: ricevitore con LED RGB

Ricevitore con LED RGB
Ricevitore con LED RGB
Ricevitore con LED RGB
Ricevitore con LED RGB
Ricevitore con LED RGB
Ricevitore con LED RGB

Il ricevitore si basa sulla demoboard atmel avr169 denominata butterfly. La scheda ha molte funzionalità non utilizzate in questo progetto. Il ricetrasmettitore wireless è collegato a PortB e il led controllato da pwm è collegato a PortD. L'alimentazione è fornita dall'intestazione dell'ISP, 4,5 V sono sufficienti. La scheda wireless può tollerare 5 V sui pin i/o, ma necessita di un'alimentazione di 3,3 V fornita dal regolatore di bordo.

Il cavo di intestazione modificato per il ricetrasmettitore rf è davvero conveniente e collega la scheda wireless con l'alimentazione e il controller spi hardware sulla farfalla. Lo shiftbright è un controller di modulazione di larghezza di impulso a led rgb che accetta un comando a 4 byte che viene agganciato e quindi agganciato sui pin di uscita. Davvero facile da collegare in serie. Basta spostare molte parole di comando e la prima spostata finirà nell'ultimo LED collegato nel collegamento a margherita.

Passaggio 3: programmazione C

Il codice è scritto in C poiché non mi interessava imparare il linguaggio di elaborazione "più semplice" su cui si basa arduino. Ho scritto io stesso l'interfaccia del tranceiver SPI e rf per l'esperienza di apprendimento, ma ho preso in prestito il codice assembler i2c da avrfreaks.net. L'interfaccia shiftbright è bitbanged in codice C. Un problema che ho riscontrato sono state le piccole variazioni irregolari nell'uscita dell'accelerometro, che hanno reso molto sfarfallio il led. Ho risolto questo problema con un filtro passa basso software. Una media pesata mobile sui valori dell'accelerometro. L'rf-tranceiver supporta hardware crc e ack con ritrasmissione automatica, ma per questo progetto l'aggiornamento in tempo reale e regolare dei led era più importante. Non è necessario che ogni pacchetto con valori dell'accelerometro arrivi intatto al destinatario, a condizione che i pacchetti corrotti vengano scartati. Non ho avuto problemi con i pacchetti RF persi entro una linea di vista di 20 metri. Ma più lontano il collegamento è diventato instabile e i led non si sono aggiornati continuamente. Il loop principale del trasmettitore in pseudo-code:initialize();while(true){ Values = abs(get x,y,z accelerometer values()); RF_send(Valori); delay(20ms);}Il ciclo principale del ricevitore in pseudo-code:initialize();while(true){ newValues = blocking_receiveRF()); rgbValues = rgbValues + 0.2*(newValues-rgbValues); scrivi rgbValues su shiftbrigth;}

Passaggio 4: il risultato

Il risultato
Il risultato
Il risultato
Il risultato
Il risultato
Il risultato
Il risultato
Il risultato

Sono rimasto stupito da quanto fosse fluido e preciso il controllo. Hai davvero un controllo di precisione del colore con la punta delle dita. Il controller pwm-LED ha una risoluzione di 10 bit per ogni colore, il che rende possibili milioni di colori. Sfortunatamente l'accelerometro ha solo una risoluzione di 8 bit che porta il numero di colori teorici fino a migliaia. Ma non è ancora possibile percepire alcun passo nel cambiamento di colore. Ho messo il ricevitore in una lampada IKEA e ho scattato una foto di diversi colori qui sotto. C'è anche un video, (qualità orribile però)

Consigliato: