Taula de continguts:

LED Rgb controlats per acceleròmetre sense fils: 4 passos
LED Rgb controlats per acceleròmetre sense fils: 4 passos

Vídeo: LED Rgb controlats per acceleròmetre sense fils: 4 passos

Vídeo: LED Rgb controlats per acceleròmetre sense fils: 4 passos
Vídeo: 07 Hardware Cafe | 03 Timelapse GIFs on Raspberry Pi with Nerves Part One 2024, Juliol
Anonim
Acceleròmetre sense fil controlat per LED RGB
Acceleròmetre sense fil controlat per LED RGB
Acceleròmetre sense fil controlat per LED RGB
Acceleròmetre sense fil controlat per LED RGB

Els acceleròmetres MEMS (sistemes micro-electromecànics) s’utilitzen com a sensors d’inclinació en telèfons mòbils i càmeres. Els acceleròmetres simples estan disponibles tant com a xips ic com a plaques de desenvolupament econòmiques.

Els xips sense fils també són assequibles i estan disponibles en circuits muntats, amb xarxa d'antena i taps de desacoblament a joc compatibles. Connecteu tant la placa sense fils com l’acceleròmetre fins a un microcontrolador mitjançant una interfície sèrie i teniu un controlador sense fils amb funcions de Nintendo-Wii. A continuació, creeu un receptor amb el mateix tipus de xip sense fils i LEDs rgb controlats per pwm, voilà, teniu un llamp d’habitació de colors sense fils i controlat d’inclinació. Mantingueu el tauler del transmissor al nivell amb la placa orientada cap amunt i el LED és de color blau fred, només el LED blau està actiu. A continuació, inclineu el transmissor en una direcció i barregeu en vermell o verd en funció de la direcció en què l'inclineu. Inclineu-ho fins a 90 graus i aneu a través de totes les mescles de vermell i blau o verd i blau fins que només el vermell o el verd estiguin actius a 90 graus d’inclinació. Inclineu una mica en la direcció x i en la direcció i obtindreu una barreja de tots els colors. A 45 graus en totes direccions, la llum és una barreja igual de vermell, verd i blau, és a dir, llum blanca. Les peces utilitzades estan disponibles a les botigues electròniques d’afició a Internet. Hauria de ser identificable en algunes de les imatges.

Pas 1: transmissor amb acceleròmetre

Transmissor amb acceleròmetre
Transmissor amb acceleròmetre
Transmissor amb acceleròmetre
Transmissor amb acceleròmetre
Transmissor amb acceleròmetre
Transmissor amb acceleròmetre
Transmissor amb acceleròmetre
Transmissor amb acceleròmetre

El transmissor es basa en el microcontrolador Atmel avr168. La convenient placa vermella amb el 168 és una placa arduino amb regulador de tensió i circuit de reinici. L'acceleròmetre està connectat a l'avr amb un bus i2c de bit banged, i la placa sense fils està connectada amb maquinari SPI (Serial Peripheral Interface).

La taula de treball és totalment sense fil amb la bateria de 4, 8V lligada a sota. La placa sense fils i l’arduino wee accepten fins a 9 V i tenen regulador de tensió lineal a bord, però l’acceleròmetre necessita 3, 3V del rail regulat a la petita.

Pas 2: receptor amb LED RGB

Receptor amb LED RGB
Receptor amb LED RGB
Receptor amb LED RGB
Receptor amb LED RGB
Receptor amb LED RGB
Receptor amb LED RGB

El receptor es basa en el demoboard atmel avr169 anomenat papallona. El tauler té moltes funcions que no s’utilitzen en aquest projecte. El transmissor sense fils està connectat a PortB i el led controlat per PWM està connectat a PortD. L’alimentació es subministra a la capçalera de l’ISP, n’hi ha prou amb 4.5V. La placa sense fils pot tolerar 5V als pins d'E / S, però necessita un subministrament de 3,3V subministrat pel regulador integrat.

El cable de capçalera modificat per al transceiver RF és realment convenient i connecta la placa sense fils amb el controlador SPI de potència i maquinari a la papallona. El shiftbright és un controlador de modulació d'ample de pols dirigit per RGB que accepta una ordre de 4 bytes que es bloqueja i es bloqueja als pins de sortida. Realment fàcil de connectar en sèrie. Només heu de canviar moltes paraules d’ordres i el primer desplaçat acabarà en l’últim LED connectat de la cadena de margarides.

Pas 3: programació en C

El codi està escrit en C, ja que no m'importava aprendre el llenguatge de processament "més fàcil" en què es basa l'arduino. Vaig escriure jo mateix la interfície SPI i rf tranceiver per a l’experiència d’aprenentatge, però vaig agafar el codi assemblador i2c a avrfreaks.net. La interfície shiftbright té un codi en bitbang. Un problema que vaig trobar van ser petites variacions irradiques en la sortida de l’acceleròmetre, cosa que va fer que el LED parpellegés molt. Ho vaig solucionar amb un filtre de pas baix de programari. Una mitjana ponderada mòbil sobre els valors de l’acceleròmetre. El transductor-transistor suporta el maquinari crc i ack amb retransmissió automàtica, però per a aquest projecte era més important l’actualització fluida i en temps real dels leds. No cal que tots els paquets amb valors d’acceleròmetre arribin intactes al receptor, sempre que es descartin els paquets danyats. No vaig tenir problemes amb els paquets de RF perduts a menys de 20 metres de la línia de visió. Però, més lluny, l'enllaç es va fer inestable i els leds no es van actualitzar contínuament.); RF_send (Valors); delay (20ms);} El bucle principal del receptor en pseudocodi: initialize (); while (true) {newValues = getting_receiveRF ()); rgbValues = rgbValues + 0,2 * (newValues-rgbValues); escriviu rgbValues a shiftbrigth;}

Pas 4: el resultat

El resultat
El resultat
El resultat
El resultat
El resultat
El resultat
El resultat
El resultat

Em va sorprendre el control suau i precís que era. Realment teniu el control de la precisió del color a la punta dels dits. El controlador pwm-LED té una resolució de 10 bits per a cada color, cosa que permet obtenir milions de colors possibles. Malauradament, l’acceleròmetre només té una resolució de 8 bits, cosa que redueix el nombre de colors teòrics a milers. Però encara no és possible percebre cap pas en el canvi de color. Vaig posar el receptor en una làmpada IKEA i vaig fer una foto de diferents colors a continuació. També hi ha un vídeo (qualitat horrible)

Recomanat: