Obsah:

Bluetooth řízený konferenční stolek Arduino LED: 10 kroků (s obrázky)
Bluetooth řízený konferenční stolek Arduino LED: 10 kroků (s obrázky)

Video: Bluetooth řízený konferenční stolek Arduino LED: 10 kroků (s obrázky)

Video: Bluetooth řízený konferenční stolek Arduino LED: 10 kroků (s obrázky)
Video: Victrola Bluetooth Speaker Side Table Review 2024, Červenec
Anonim
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED
Bluetooth řízený konferenční stolek Arduino LED

Toto byl můj první skutečný projekt Arduino a je to také můj první instruktáž, takže buďte laskaví v komentářích:) Chtěl jsem se pokusit odpovědět na otázky, které mi nějakou dobu trvalo zjistit a poskytnout podrobné pokyny, takže pokud jste s fandy velmi obeznámeni elektronika, pak můžete pravděpodobně procházet každým krokem, ale pokud jste v tom noví, mělo by vám to poskytnout vše, co potřebujete.

Cílem projektu bylo vytvořit obrazovku 12 x 12 pixelů v konferenčním stolku, kterou lze ovládat přes bluetooth a použít jako osvětlení chladné místnosti/hrát na ní hry.

Pro tuto sestavu budete potřebovat tyto součásti:

  1. Arudino Mega (nebo klon)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Štít karty Arduino micro SD (použil jsem tento a připájel jsem záhlaví) -
  3. Micro SD karta - Postačí jakákoli velikost, ale musí být naformátována ve formátu FAT32
  4. 5m WS2812B nastavitelný LED pásek -
  5. Modul Bluetooth HC05 -
  6. Napájecí zdroj 5 V 6 A-(Použil jsem to, ale na eBay je dalších sto)
  7. Stůl Ikea LACK (klasika pro fandy) -
  8. Přístup k laserové řezačce na překližku 3 mm (nebo velmi stabilní ruku). Díly řezané laserem si můžete objednat online na různých místech (například
  9. Bílá barva ve spreji
  10. 2 m hliníková sekce T (1 1/2 x 1 1/2 x 1/8) -
  11. Skleněná deska 450 mm x 450 mm x 6 mm (většina místních sklenářů vám může řezat vlastní kusy, ale já jsem použil tyto lidi
  12. 1 x 100 mikro Faradův kondenzátor
  13. Rezistor 2 x 1k
  14. 1 x 2k odpor
  15. 1 x lineární otočný potenciometr
  16. Různé propojky (pravděpodobně tucet během prototypování)
  17. Nejméně tři barvy relativně silných kabelů pro pájení (to může odebírat velké proudy, takže bych nedoporučoval propojovací vodiče pro napájení)
  18. Stripboard pro vnitřní obvod (nebojte se, je to velmi jednoduché)

Potřebné nástroje:

  1. Páječka + pájka
  2. Pár ostřelovačů
  3. Odstraňovače drátů
  4. Dremel nebo skládačka nějakého druhu na rozbití stolu. Použil jsem toto https://www.amazon.co.uk/gp/product/B0078LENZC/ref… se spirálovými řezacími bity

Krok 1: Počáteční test a rozvržení

Počáteční test a rozvržení
Počáteční test a rozvržení
Počáteční test a rozvržení
Počáteční test a rozvržení
Počáteční test a rozvržení
Počáteční test a rozvržení

Prvním portem volání je rozřezat LED pásek na požadované délky. Tento LED pásek se opravdu snadno používá, protože má pouze 3 piny a dělá Arduino skutečnou práci. Cívku jsem rozřezal na 12 sekcí, každá o délce 12 LED, jak je znázorněno na obrázku, a rozložil jsem je na zadní stranu stolu, aby mi pomohl představit si, kam jsem s tím šel.

Poté mi zbylo několik LED diod, takže jsem je připojil k Arduino UNO, které jsem musel vyzkoušet, zda fungují (můžete také použít Mega zmíněnou v obrysu projektu). Za tímto účelem jsem nařezal a odizoloval několik samčích až mužských hlaviček a připájel je k polštářkům na konci LED pásku. Na pásku WS2812 jsem použil 5V vodič je červený, kostra je bílá a data zelená. Dávejte pozor na směrovou šipku vytištěnou na proužku WS2812B, abyste se nepokoušeli odesílat data špatným směrem. Připojil jsem 5V linku na 5V na Arduinu, Ground na GND a Data na pin 6 s odporem 1k v sérii. Mějte na paměti, že Fritzingovo schéma LED diod WS2812B se mírně liší od těch, které jsem dodal - stačí říci, jen se ujistěte, že jsou data připojena ke kolíku 6, Gnd je připojen k zemi a 5 je připojeno k 5V.

S tak malým počtem LED diod (asi 5) by Arduino mělo být v pořádku, aby poskytovalo energii; nicméně nemůžete napájet mnoho, protože když jsou na plné bílé, LED diody odebírají každý až 60 mA a mohou rychle přemoci Arduino.

Za předpokladu, že máte Arduino IDE (pokud si jej nestáhnete a nenainstalujete), nastavíte typ čipové sady na Arduino, které máte, a nastavíte COM port na ten, který zobrazuje Arduino v možnostech. Nyní si stáhněte knihovnu FastLED a nainstalujte ji (https://fastled.io/). Otevřete příklad striptest.h a nastavte počet LED v náčrtu na tolik, kolik jich máte (zbylo mi 5). Stiskněte ověřování a (za předpokladu, že vše půjde dobře) nahrajte jej do Arduina a měli byste vidět rozsvícení světel na malém proužku a změnu barvy.

Krok 2: Pájení Matrixu a Stripboardu

Pájení Matrixu a Stripboardu
Pájení Matrixu a Stripboardu
Pájení Matrixu a Stripboardu
Pájení Matrixu a Stripboardu
Pájení Matrixu a Stripboardu
Pájení Matrixu a Stripboardu

Nyní je čas začít vytvářet matici LED.

Odřízněte 11 krátkých délek každé ze tří barev drátu, které máte. Ujistěte se, že jsou dostatečně dlouhé, aby přešly od konce jednoho proužku k začátku dalšího. Při pokládce LED pásků musíte zajistit, aby šipka toku dat sledovala hada. Jakmile je to vyloženo, pečlivě připájejte každou vedenou řadu k další, jak je znázorněno na obrázku. To je výrazně snazší, pokud pro každý typ připojení použijete stejnou barvu.

Nyní, více pájení, musíme vytvořit stripboard, který bude zpracovávat energii ze síťového zdroje. Pájil jsem dva sloupky na stripboard dohromady pro 5V i GND, aby lépe zvládal proud. Viz přiložené schéma obvodu, který potřebujete vytvořit. Při pájení kondenzátoru zajistěte, aby byl záporný konec připojen k liště GND, nikoli k 5V. Jakmile je stripboard hotový, musíme k LED pásku připojit +VE a GND a také použít druhou polovinu propojek, které jsme dříve uřízli, k připojení Arduina k napájecímu zdroji a stripboardu. Nyní by bylo vhodné přidat do Arduina desku SD breakout, abychom do ní mohli ukládat soubory a číst z ní později. Jakmile je deska SD breakout na svém místě, můžeme připojit 5V lištu na pin Vin a GND na jakýkoli pin GND na Arduinu.

Nakonec můžeme připojit potenciometr k analogovému vstupu A0, jak je znázorněno na obrázku, abychom měli způsob ovládání jasu LED diod.

Jakmile je toto vše hotovo, můžeme znovu nahrát nejprudší skicu a změnit počet LED diod na 144. Před nahráním této skici se ujistěte, že máte aktivní napájecí zdroj. Naštěstí by se všechny LED diody měly rozsvítit ve vzorcích nejprísnějšího náčrtu, abychom věděli, že vše funguje.

Krok 3: Integrace modulu Bluetooth

Integrace modulu Bluetooth
Integrace modulu Bluetooth

Nyní poslední kabeláž, jednotka HC05 se připojí k Arduino Mega, jak ukazuje schéma. Zajistěte, aby se jednotka HC05 připojila k portům Rx1 a Tx1 na mega - to výrazně usnadňuje programování a vyhýbá se používání knihovny „softwareserial“.

Pozn. Jednotka HC05 bude mít buď 5 V, nebo 3,3 V, a obecně pracuje na logice 3,3 V, takže jsem ji připojil k liště 3,3 V. Některé další instruktážní programy ukázaly Tx (na Arduino) na Rx (na jednotce HC05) s obvodem děliče potenciálu, aby se 5V logika z Arduina dostala do nativní úrovně pro modul HC05. To je důvod, proč jsem měl v seznamu dílů rezistory 1k a 2k; Nicméně jsem se neobtěžoval a na mém stole to vypadá naprosto šťastně:)

Krok 4: Hackování stolu

Hackování stolu
Hackování stolu
Hackování stolu
Hackování stolu
Hackování stolu
Hackování stolu

Nyní musíme začít rozřezávat stůl, abychom dali našim LED diodám a elektronice nový domov.

Nejprve vyznačte čtverec 450 mm x 450 mm uprostřed horní části desky LACK. Pomocí Dremelu (nebo skládačky) vyřízněte čtverec co nejlépe, aby byl rovný. Nyní můžeme odstranit horní a lepenkové vnitřní části, takže vám zůstane vyhloubená deska stolu, jak je znázorněno na obrázku. Opět pomocí Dremelu můžeme vyvrtat otvor v rohu spodní části stolu, abychom měli kam protáhnout síťový kabel.

Jakmile je stůl připraven, můžeme LED diody páskovat zhruba ve správných polohách, než přejdeme k dalším krokům. Považoval jsem za užitečné ujistit se, že elektronika je v pořádku po každém kroku, a tak si znovu vyzkoušejte nejprudší skicu.

Jakmile budete v pohodě, vše je na správném místě, pak můžete pomocí malých šroubů vyvrtat několik malých otvorů pro upevnění napájecího zdroje uvnitř hrany stolu. Rozhodl jsem se namontovat Arduino mimo stůl, abych mohl snadno přeprogramovat, pokud chci, ale je namontován vzhůru nohama ke spodní části stolu a není snadno viditelný. Potenciometr jsem také namontoval skrz spodní část stolu, aby ovládání jasu vypadalo pěkně a profesionálně.

Krok 5: Laserem řezané díly

Laserem řezané díly
Laserem řezané díly
Laserem řezané díly
Laserem řezané díly
Laserem řezané díly
Laserem řezané díly

Nyní musíme představit části řezané laserem, které tvoří matici čtverců, abychom definovali pixely. Zahrnul jsem soubory dxf pro části řezané laserem, které tvoří dřevěnou matici, a také jejich obrázky, abyste věděli, jak by měly vypadat. Jsou vyrobeny ze dvou samostatných kusů, jeden prochází každou řadu LED diod a druhý je kříží. Díly, které se kříží, mají ve spodní části vyříznutou 10 mm vysokou mezeru, která umožní průchod kabeláže. Tato mezera by se dala zmenšit na 5 mm, protože se zdá, že z jednoho pixelu na druhý trochu uniká světlo.

11 kopií obou částí musí být vyřezáno laserem z 3mm překližky a poté je sestaveno, aby se ujistil, že správně sedí. Jakmile budete šťastní, matici opět rozeberte a nastříkejte bílou barvou, aby se zlepšily reflexní vlastnosti stolu. Když jsou suché, dejte je znovu dohromady a umístěte je přes LED diody. Po nastříkání může být trochu těžší je spojit dohromady, protože jsou nyní o něco silnější, ale nebojte se, než je vložíte do stolu, jemně je poklepejte na místo.

Krok 6: Glediator

Glediátor
Glediátor
Glediátor
Glediátor

Nyní máme implementovaný veškerý hardware, můžeme se začít dívat na software. Stáhl jsem a nainstaloval software s názvem Glediator, abych vytvořil animace pro LED diody (https://www.solderlab.de/index.php/software/glediat…). Pokyny k instalaci mohou být trochu hloupé, ale pečlivě sledujte webové stránky a měli byste být v pořádku. Potřebujeme také stáhnout skicu z webových stránek Glediator a nahrát ji do Arduina (https://www.solderlab.de/index.php/downloads/catego…). Používáme LED diody WS2812B, takže si stáhněte správnou (rozhraní WS2812 Glediator Interface). Jakmile otevřete tuto skicu, změňte NUMBER_OF_PIXELS na 144 a nahrajte ji do Arduina.

Jakmile je Glediator nainstalován, můžeme začít hrát animace na stole. Nejprve musíme v softwaru Glediator nastavit velikost matice na 12 x 12 a také nastavit typ výstupu na HSBL - Horizontal Snake (start) Bottom Left, protože toto je způsob, jakým jsme zapojili LED diody a změnili pořadí barev na GRB (k tomu LED diody přijímají data). Na kartě výstupu otevřete port COM a LED matice by měla začít zobrazovat vzor LED na střední obrazovce softwaru Glediator.

Můžete vytvářet animace a zaznamenávat je do souboru.dat, který můžeme nahrát na kartu SD, což znamená, že vaše oblíbené animace lze zobrazit na stole, aniž by bylo nutné připojovat počítač. Na internetu je o tom několik návodů (například https://hackaday.io/project/5714-glediator-from-sd…). Upravil jsem několik různých zdrojů kódu, aby to fungovalo, takže můj kód by měl být v pořádku.

Při ukládání animací je nezapomeňte uložit jako „animX.dat“, kde X je libovolné číslo od 1 do 15. Více byste mohli implementovat změnou několika řádků v mém kódu.

Poznámka: Při nahrávání souborů Glediator má software chybu, která znamená, že si nepamatuje, jak jste zapojili LED pásek. V mém kódu jsem implementoval jednoduchou funkci pro obrácení pořadí sudých řádků, což znamená, že se vše zobrazuje správně

Krok 7: Sériové ovládání Bluetooth

Sériové ovládání Bluetooth
Sériové ovládání Bluetooth
Sériové ovládání Bluetooth
Sériové ovládání Bluetooth

Nastavení komunikace bluetooth mezi smartphonem a Arduinem se ukázalo jako překvapivě složité, ale existuje několik jednoduchých kroků, které to velmi usnadní. Nejprve si musíte stáhnout aplikaci pro svůj smartphone. Použil jsem https://play.google.com/store/apps/details?id=com…. ale pravděpodobně existuje ekvivalent pro iPhone (za který musíte zaplatit; p)

Možná jste si všimli, že modul HC05 má na sobě malý vypínač. Pokud jej zapnete stiskem tohoto spínače, přejde do režimu AT, což znamená, že na něm můžete dotazovat parametry a podle potřeby je měnit.

Nahrajte přiložený náčrtek na Mega a nastavte sériovou rychlost na vašem PC na 9600. Odpojte napájení jednotky HC05 a poté ji znovu připojte stisknutím tlačítka. Blikání by nyní mělo být přibližně jednou za dvě sekundy - nyní je HC05 v režimu AT.

Nyní můžeme na sériovém monitoru odesílat příkazy do HC05 a sledovat jeho odpověď. Zadejte „AT“a stiskněte odeslat a na sériovém monitoru byste měli vidět „OK“. Nyní víme, že poslouchá. Název bluetooth zařízení lze změnit zadáním „AT+NAME = XYZPQR“, kde XYZPQR je to, co chcete, aby se modul jmenoval. Zavolal jsem svému LightWave. Výchozí přístupový kód pro modul bluetooth je 1234 (nebo 0000), ale lze jej také změnit například odesláním „AT+PSWD = 9876“. Nakonec můžeme změnit komunikační rychlost HC05 odesláním „AT+UART = 38400“. Toto je výchozí sazba pro většinu modulů HC05, ale moje byla nastavena odlišně, takže je dobré ji nastavit pro jistotu. Zde je mnoho podrobnějších informací o těchto příkazech: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… a o tomto kroku jsou také instruktážní programy, které mají mnohem podrobnější https://www.instructables.com/id/Modify -The-HC-05-…

Nyní můžeme zkusit odeslat příkazy do modulu přes bluetooth zařízení. Nejprve odpojte napájení modulu HC05 a poté jej znovu připojte. Měli byste vidět, že rychlost blikání LED je mnohem rychlejší - to znamená, že nyní čeká na spárování. Na smartphonu otevřete aplikaci Arduino Bluetooth Controller a najděte modul HC05. Pokud jste název nezměnili, bude se pravděpodobně jmenovat HC05 nebo podobný. Pokud máte možnosti, jak se chcete připojit, vyberte Terminálový režim. Nyní zkuste odeslat nějaká čísla a text a zjistit, zda sériový monitor na PC hlásí, že byly přijaty. Doufejme, že mají, takže můžeme pokračovat, pokud ne, existuje spousta pokynů, které vám mohou poskytnout několik tipů (například

Poslední věcí, kterou zde musíte udělat, je zmapovat vstupy ovladače na čísla, se kterými může Arduino něco dělat. Použil jsem následující hodnoty:

Nahoru = 1, Dolů = 2, Vlevo = 3, Vpravo = 4, Začátek = 5, Vyberte = 6.

Krok 8: Hry

Hry
Hry

Za herní kód neberu žádnou zásluhu. Použil jsem zde nalezený zdrojový kód https://github.com/davidhrbaty/IKEA-LED-Table napsaný davidhrbaty. Upravil jsem to však několika různými způsoby:

  1. Přidal jsem funkci omezení jasu na základě hodnoty potenciometru, abychom mohli změnit jas
  2. Odstranil jsem hru s cihlami, protože jsem ji nemohl přimět ke kompilaci
  3. Změnil jsem barevné kódování bloků tetris, takže všechny byly různých barev
  4. Přeuspořádal jsem menu
  5. Implementoval jsem možnost přehrávání animací z karty SD
  6. V nabídce jsem přidal sledování vysokého skóre a možnost zobrazení vysokého skóre

Připojený kód by měl fungovat hned, ale pokud ne, můj návrh by byl odstraněním her, které se zdají být příčinou chybových zpráv, a opětovným ověřením kódu, dokud nezjistíte, kde je problém. Potom postupně přidávejte zpět ve složitosti.

Původní autor tohoto kódu odvedl fantastickou práci při stavbě něčeho, co je opravdu modulární a snadno se přidává. V dalších případech není tak těžké přidat další funkce do tabulky.

Možnosti v nabídce jsou následující:

  1. Karta SD - Přehrává animace uložené na kartě SD
  2. Tetris
  3. Had
  4. Pong
  5. Kostky - náhodný generátor nuberů mezi 1 a 6
  6. Animation - Sbírka animací z knihovny FastLED
  7. Stars Animation - EDIT - místo této animace jsem nyní implementoval Conwayovu hru o život
  8. Duhová animace
  9. High Scores - Zobrazuje nejvyšší skóre pro tetris a hada

Než začnete hrát, musíte na kartě SD vytvořit dva soubory txt, jeden s názvem „teths.txt“a druhý s názvem „snkhs.txt“. Do obou těchto souborů vložte číslo 0 a uložte je do kořenové složky karty SD. Toto jsou soubory pro sledování vysokého skóre a budou aktualizovány pokaždé, když bude překonáno vysoké skóre. Pokud jej chcete resetovat, změňte na počítači hodnoty zpět na 0.

Jakmile nahrajete program LED_table do Arduina, můžete otevřít sériový monitor a při odesílání byste měli vidět příkazy bluetooth - tímto způsobem víte, že vše funguje dobře.

Krok 9: Užijte si to

Užívat si
Užívat si
Užívat si
Užívat si
Užívat si
Užívat si

Nezbývá než nahrát hlavní LED tabulkový kód do Mega a pak si užít hraní a dát mi vědět o svých vysokých skóre!

Stále čekám, až dorazí díly pro desku stolu (hliníková T část a sklo), ale stůl nyní funguje dobře a mohu na něm hrát hry.

Dejte mi vědět, pokud máte nějaké komentáře, úpravy nebo zjistíte chyby, kterých jsem se dopustil.

Krok 10: Aktualizace

Image
Image
Aktualizace
Aktualizace
Aktualizace
Aktualizace

Nyní je úplně hotový!:)

Nakonec jsem převzal dodávku hliníkové T sekce pro lemování a odvedl jsem nejlepší práci při snižování kloubu (45 stupňů je jeden z tvrdších úhlů), ale je téměř úplně hranatý. Pro horní část jsem se rozhodl získat silnější skleněnou tabuli (425 x 425 x 8 mm) a spodní stranu jsem matoval pomocí spreje na matování skla Rustoleum. Na spojení horní a úhelníkové části jsem použil běžný tmel (silikonový tmel), aby v případě potřeby došlo ve spojích k malému ohybu.

Aktualizovaná aktualizace. Nyní jsem přidal do Conwayovy hry života jako možnost 7 v nabídce spíše než animaci hvězd, protože jsem ji nikdy nepoužil. Pokud nevíte, co tato hra je, vygooglete si ji, ale v zásadě je to hra pro nulové hráče, která ukazuje evoluci na základě tří jednoduchých pravidel. Conwayova hra o život

Aktualizace^3. Provedl jsem některé úpravy kódu, takže nyní obsahuje opravu chyby týkající se stmívání červených LED a také obsahuje animaci vánočního stromu jako možnost 11 v nabídce. Užívat si.

Doporučuje: