Innehållsförteckning:

Trådlös accelerometerstyrda Rgb-LED: er 4 steg
Trådlös accelerometerstyrda Rgb-LED: er 4 steg

Video: Trådlös accelerometerstyrda Rgb-LED: er 4 steg

Video: Trådlös accelerometerstyrda Rgb-LED: er 4 steg
Video: Corsair Virtuoso XT Review: The Most Versatile Gaming Headphones 2024, November
Anonim
Trådlös accelerometerstyrda Rgb-LED: er
Trådlös accelerometerstyrda Rgb-LED: er
Trådlös accelerometerstyrda Rgb-LED: er
Trådlös accelerometerstyrda Rgb-LED: er

MEMS (mikroelektromekaniska system) Accelerometrar används i stor utsträckning som lutningssensorer i mobiltelefoner och kameror. Enkla accelerometrar finns både som IC-chips och billiga utvecklings-PCB-kort.

Trådlösa chips är också prisvärda och tillgängliga i monterade kretsar, med matchande antenn-nätverk och avkopplingskåpor ombord. Anslut både trådlöst kort och accelerometer till en mikrokontroller via seriellt gränssnitt och du har en trådlös handkontroll med nintendo-wii-funktioner. Bygg sedan en mottagare med samma typ av trådlöst chip och pwm-styrda rgb-lysdioder, voila, du har trådlösa, lutningsstyrda färgade rumsblixten. Håll sändarkortet i nivå med brödbrädet uppåt och lysdioden är svalblå, bara blå lysdiod är aktiv. Luta sedan sändaren i en riktning och du blandar i rött eller grönt beroende på vilken riktning du lutar den. Luta hela vägen till 90 grader, och du går genom alla blandningar av rött och blått eller grönt och blått tills bara rött eller grönt är aktivt vid 90 graders lutning. Luta lite åt både x- och y -riktning så får du en blandning av alla färger. Vid 45 grader i alla riktningar är ljuset en lika blandning av rött, grönt och blått, med andra ord, vitt ljus. Delarna som används är tillgängliga från internet-hobby-elektroniska butiker. Bör identifieras på några av bilderna.

Steg 1: Sändare med accelerometer

Sändare med accelerometer
Sändare med accelerometer
Sändare med accelerometer
Sändare med accelerometer
Sändare med accelerometer
Sändare med accelerometer
Sändare med accelerometer
Sändare med accelerometer

Sändaren är baserad på Atmel avr168 mikrokontroller. Den praktiska röda kortet med 168 är ett arduino-kort med spänningsregulator och återställningskrets. Acceleratorn är ansluten till avr med bit-banged i2c-buss, och det trådlösa kortet är anslutet med hårdvaruspi (Serial Peripheral Interface).

Brödbrädan är helt trådlös med 4, 8V batteripaketet spänt under. Det trådlösa kortet och arduino wee accepterar upp till 9 V och har inbyggd linjär spänningsregulator, men accelerometern behöver 3, 3V från den reglerade skenan på wee.

Steg 2: Mottagare med RGB-LED

Mottagare med RGB-LED
Mottagare med RGB-LED
Mottagare med RGB-LED
Mottagare med RGB-LED
Mottagare med RGB-LED
Mottagare med RGB-LED

Mottagaren är baserad på atmel avr169 demoboard som heter butterfly. Styrelsen har många funktioner som inte används i detta projekt. Den trådlösa tranceivern är ansluten till PortB och den pwm-styrda lysdioden är ansluten till PortD. Strömförsörjning från ISP-header, 4,5V räcker. Det trådlösa kortet tål 5V på i/o -stift, men behöver 3,3V -matning som levereras av den inbyggda regulatorn.

Den modifierade header-kabeln för rf tranceiver är riktigt bekväm och ansluter trådlöst kort med power- och hardware spi-controller på fjärilen. Shiftbright är en rgb-ledd pulsbreddsmoduleringskontroll som accepterar ett 4 byte kommando som låses in och sedan låses ut på utgångsstiften. Riktigt enkelt att ansluta i serie. Växla bara ut många kommandoord, och det första utskjutna kommer att hamna i den senast anslutna lysdioden i daisy-chain.

Steg 3: C-programmering

Koden är skriven i C eftersom jag inte brydde mig om att lära mig det "enklare" bearbetningsspråket som arduino bygger på. Jag skrev själv SPI och rf tranceiver-gränssnittet för inlärningsupplevelsen, men lånade i2c assembler-koden från avrfreaks.net. Shiftbright-gränssnittet är bitbanged i C-kod. Ett problem som jag stötte på var små irradiska variationer i accelerometerutgång, vilket gjorde att LED: n flimrade mycket. Jag löste detta med ett program för lågpassfilter. Ett rörligt vägt genomsnitt på accelerometervärdena. Rf-tranceiver stöder hårdvara crc och ack med automatisk sändning, men för detta projekt var realtid, smidig uppdatering av lysdioderna viktigare. Varje paket med accelerometervärden behöver inte komma intakt till mottagaren, så länge skadade paket kasseras. Jag hade inga problem med förlorade RF -paket inom 20 meters sikt. Men längre bort blev länken instabil och lysdioderna uppdaterades inte kontinuerligt. Sändarens huvudslinga i pseudokod: initiera (); medan (sant) {Värden = abs (få x, y, z accelerometervärden ()); RF_send (Värden); delay (20ms);} Mottagarens huvudslinga i pseudokod: initiera (); while (true) {newValues = blocking_receiveRF ()); rgbValues = rgbValues + 0,2*(newValues-rgbValues); skriv rgbValues till shiftbrigth;}

Steg 4: Resultatet

Resultatet
Resultatet
Resultatet
Resultatet
Resultatet
Resultatet
Resultatet
Resultatet

Jag blev förvånad över hur smidig och exakt kontrollen var. Du har verkligen fingertoppens noggrannhetskontroll av färgen. Pwm-LED-styrenheten har 10 bitars upplösning för varje färg, vilket ger miljontals möjliga färger. Tyvärr har accelerometern bara 8 -bitars upplösning vilket ger antalet teoretiska färger ner till tusentals. Men det är fortfarande inte möjligt att uppfatta några steg i färgförändringar. Jag satte mottagaren i en IKEA-lampa och tog en bild av olika färger nedan. Det finns också en video, (hemsk kvalitet dock)

Rekommenderad: