Obsah:

Bezdrátový akcelerometr ovládaný RGB LED: 4 kroky
Bezdrátový akcelerometr ovládaný RGB LED: 4 kroky

Video: Bezdrátový akcelerometr ovládaný RGB LED: 4 kroky

Video: Bezdrátový akcelerometr ovládaný RGB LED: 4 kroky
Video: Bezdrátové LED svíčky s dálkovým ovládáním 2024, Listopad
Anonim
Bezdrátový akcelerometr ovládaný RGB LED diodami
Bezdrátový akcelerometr ovládaný RGB LED diodami
Bezdrátový akcelerometr ovládaný RGB LED diodami
Bezdrátový akcelerometr ovládaný RGB LED diodami

Akcelerometry MEMS (mikroelektromechanické systémy) jsou široce používány jako snímače náklonu v mobilních telefonech a fotoaparátech. Jednoduché akcelerometry jsou k dispozici jako ic-chip i levné vývojové desky s plošnými spoji.

Bezdrátové čipy jsou také cenově dostupné a jsou k dispozici ve smontovaných obvodech s integrovanou anténní sítí a integrovanými kryty. Připojte bezdrátovou desku a akcelerometr k mikrokontroléru přes sériové rozhraní a máte bezdrátový ovladač s funkcemi nintendo-wii. Poté postavte přijímač se stejným typem bezdrátového čipu a RGB LED diodami řízenými pomocí PWM, voila, máte bezdrátové barevné osvětlení místnosti ovládané náklonem. Udržujte desku vysílače v rovině s prkénkem nahoru a LED dioda je studená modrá, aktivní je pouze modrá LED dioda. Poté nakloňte vysílač v jednom směru a mixujete červenou nebo zelenou podle toho, jakým směrem jej nakloníte. Nakloňte se až na 90 stupňů a procházíte všemi směsmi červené a modré nebo zelené a modré, dokud nebude při náklonu 90 stupňů aktivní pouze červená nebo zelená. Nakloňte se trochu ve směru x a y a získáte mix všech barev. Při 45 stupních ve všech směrech je světlo stejnou směsí červeného, zeleného a modrého, jinými slovy bílého světla. Použité díly jsou dostupné v internetových hobby-elektronických obchodech. Měly by být identifikovatelné z některých obrázků.

Krok 1: Vysílač s akcelerometrem

Vysílač s akcelerometrem
Vysílač s akcelerometrem
Vysílač s akcelerometrem
Vysílač s akcelerometrem
Vysílač s akcelerometrem
Vysílač s akcelerometrem
Vysílač s akcelerometrem
Vysílač s akcelerometrem

Vysílač je založen na mikrokontroléru Atmel avr168. Praktická červená deska s 168 je arduino deska s regulátorem napětí a resetovacím obvodem. Akcelerometr je připojen k AVR pomocí bit-banged i2c sběrnice a bezdrátová deska je připojena pomocí hardwaru SPI (Serial Peripheral Interface).

Nepájivý prkénko je zcela bezdrátové a 4, 8V baterie je připoutána pod ním. Bezdrátová deska a arduino wee přijímá až 9 V a mají integrovaný lineární regulátor napětí, ale akcelerometr potřebuje 3, 3 V z regulované kolejnice na Wee.

Krok 2: Přijímač s RGB-LED

Přijímač s RGB-LED
Přijímač s RGB-LED
Přijímač s RGB-LED
Přijímač s RGB-LED
Přijímač s RGB-LED
Přijímač s RGB-LED

Přijímač je založen na demoboardu atmel avr169 s názvem butterfly. Deska má mnoho funkcí, které v tomto projektu nejsou použity. Bezdrátový tranceiver je připojen k PortB a LED řízená pwm je připojena k PortD. Napájení je dodáváno na hlavičce ISP, stačí 4,5 V. Bezdrátová deska může tolerovat 5 V na I/O pinech, ale potřebuje napájení 3,3 V, které dodává integrovaný regulátor.

Upravený kabel záhlaví pro RF tranceiver je opravdu pohodlný a spojuje bezdrátovou desku s napájecím a hardwarovým ovladačem spi na motýli. Shiftbright je řadič modulace šířky impulzů vedený RGB, který přijímá 4bajtový příkaz, který je zablokován a poté zablokován na výstupních pinech. Opravdu snadné sériové připojení. Stačí přesunout mnoho příkazových slov a první posunutí skončí v poslední připojené LED v řetězci.

Krok 3: C-programování

Kód je napsán v jazyce C, protože jsem se nestaral o to, abych se naučil „jednodušší“jazyk zpracování, na kterém je arduino založeno. Napsal jsem rozhraní SPI a RF tranceiver sám pro učení, ale vypůjčil jsem si kód assembleru i2c z avrfreaks.net. Rozhraní shiftbright je v C-kódu bitbanged. Jeden problém, na který jsem narazil, byly malé zářivé odchylky ve výstupu akcelerometru, což způsobilo, že LED blikalo hodně. Vyřešil jsem to softwarovým low-pass filtrem. Pohybující se vážený průměr na hodnotách akcelerometru. RF-tranceiver podporuje hardwarové CRC a Ack s auto-retransmitem, ale pro tento projekt byla důležitější hladká aktualizace LED v reálném čase. Každý paket s hodnotami akcelerometru nemusí dorazit neporušený do přijímače, pokud jsou poškozené pakety vyřazeny. Neměl jsem problémy se ztracenými RF pakety do vzdálenosti 20 metrů. Ale dál se spojení stalo nestabilním a diody se neaktualizovaly nepřetržitě. Hlavní smyčka vysílače v pseudokódu: initialize (); while (true) {Values = abs (get x, y, z accelerometer values ()); RF_send (hodnoty); zpoždění (20 ms);} Hlavní smyčka přijímače v pseudokódu: initialize (); while (true) {newValues = blocking_receiveRF ()); rgbValues = rgbValues + 0,2*(newValues-rgbValues); napište rgbValues na shiftbrigth;}

Krok 4: Výsledek

Výsledek
Výsledek
Výsledek
Výsledek
Výsledek
Výsledek
Výsledek
Výsledek

Byl jsem ohromen tím, jak plynulé a přesné bylo ovládání. Skutečně máte kontrolu přesnosti barvy konečky prstů. Ovladač pwm-LED má 10bitové rozlišení pro každou barvu, což vytváří miliony možných barev. Akcelerometr má bohužel pouze 8bitové rozlišení, což snižuje počet teoretických barev na tisíce. Ale stále není možné vnímat žádné stupňování změny barvy. Vložil jsem přijímač do IKEA lampy a níže jsem vyfotil různé barvy. K dispozici je také video (hrozná kvalita)

Doporučuje: