Obsah:

Konferenčný stolík LED Arduino ovládaný Bluetooth: 10 krokov (s obrázkami)
Konferenčný stolík LED Arduino ovládaný Bluetooth: 10 krokov (s obrázkami)

Video: Konferenčný stolík LED Arduino ovládaný Bluetooth: 10 krokov (s obrázkami)

Video: Konferenčný stolík LED Arduino ovládaný Bluetooth: 10 krokov (s obrázkami)
Video: 8 Incredible Smart Coffee Table You Must See | Smart Table Furniture 2024, Júl
Anonim
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth
Konferenčný stolík LED Arduino ovládaný Bluetooth

Toto bol môj prvý skutočný projekt Arduino a je to aj môj prvý pokyn, takže buďte láskaví v komentároch:) Chcel som sa pokúsiť zodpovedať otázky, ktoré mi nejaký čas trvalo, kým som na ne prišiel, a poskytol podrobné pokyny, takže ak ste s fandom veľmi dobre oboznámení. elektronika, potom môžete pravdepodobne preletieť každým krokom, ale ak ste v tom noví, malo by vám to poskytnúť všetko, čo potrebujete.

Cieľom projektu bolo vytvoriť obrazovku 12 x 12 pixelov v konferenčnom stolíku, ktorú je možné ovládať pomocou bluetooth a používať ako osvetlenie chladnej miestnosti/hrať na nej hry.

Pre túto zostavu budete potrebovať tieto diely:

  1. Arudino Mega (alebo klon)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Štít karty Arduino micro SD (použil som tento a spájkoval som záhlavia) -
  3. Karta Micro SD - Postačí akákoľvek veľkosť, ale musí byť naformátovaná vo formáte FAT32
  4. 5m WS2812B nastaviteľný LED pás -
  5. Modul Bluetooth HC05 -
  6. Napájanie 5 V 6 A--(Použil som to, ale na ebay je ďalších sto)
  7. Stôl Ikea LACK (klasika pre fanúšikov) -
  8. Prístup k laserovej fréze na preglejku 3 mm (alebo veľmi pevnú ruku). Laserom rezané diely si môžete objednať online na rôznych miestach (napríklad
  9. Biela farba v spreji
  10. 2 m hliníková sekcia T (1 1/2 x 1 1/2 x 1/8) -
  11. 450 mm x 450 mm x 6 mm sklenená doska (väčšina miestnych sklenárov vám môže rezať vlastné kusy, ale použil som týchto ľudí
  12. 1 x 100 mikro Faradov kondenzátor
  13. Rezistor 2 x 1k
  14. 1 x 2k odpor
  15. 1 x lineárny rotačný potenciometer
  16. Rôzne prepojky (pravdepodobne tucet počas prototypovania)
  17. Minimálne tri farby relatívne hrubých káblov na spájkovanie (to môže viesť k veľkým prúdom, takže by som neodporúčal prepojovacie vodiče pre napájanie)
  18. Stripboard pre vnútorný obvod (nebojte sa, je to veľmi jednoduché)

Potrebné nástroje:

  1. Spájkovačka + spájka
  2. Pár ostreľovačov
  3. Odizolovače drôtov
  4. Dremel alebo nejaká skladačka na rozbitie stola. Použil som to https://www.amazon.co.uk/gp/product/B0078LENZC/ref… so špirálovými rezacími bitmi

Krok 1: Počiatočný test a rozloženie

Počiatočný test a rozloženie
Počiatočný test a rozloženie
Počiatočný test a rozloženie
Počiatočný test a rozloženie
Počiatočný test a rozloženie
Počiatočný test a rozloženie

Prvým prístavom hovoru je skrátenie pásu LED na požadované dĺžky. Použitie tohto LED pásu je veľmi jednoduché, pretože má iba 3 piny a vďaka nemu Arduino robí skutočnú prácu. Cievku som rozrezal na 12 sekcií, z ktorých každá má 12 LED diód, ako je znázornené na obrázku, a rozložil som ich na zadnú stranu stola, aby mi pomohol predstaviť si, kam tým mierim.

Potom mi zostalo niekoľko LED diód, takže som ich pripojil k Arduino UNO, ktoré som musel vyskúšať, či fungujú (môžete použiť aj Mega uvedenú v osnove projektu). Aby som to urobil, odrezal som a odizoloval niekoľko mužských až mužských hlavičiek a spájkoval som ich s podložkami na konci pásky LED. Na pásku WS2812 som použil 5V vodič je červený, uzemnenie je biele a údaje sú zelené. Dávajte pozor na smerovú šípku vytlačenú na páse WS2812B, aby ste sa nepokúšali odosielať údaje zlým smerom. Pripojil som 5V linku na 5V na Arduine, Ground na GND a Data na pin 6 s odporom 1k v sérii. Majte na pamäti, že schéma Fritzingu LED WS2812B sa mierne líši od tých, ktoré som dodal - stačí povedať, len sa uistite, že údaje sú pripojené k pinu 6, Gnd je pripojený k zemi a 5 je pripojený k 5V.

S tak malým počtom diód LED (asi 5) by malo byť Arduino v poriadku, aby poskytovalo energiu; nemôžete ich však napájať mnohými, pretože keď sú na bielej farbe, LED diódy odoberajú každý až 60 mA a môžu rýchlo zaplaviť Arduino.

Za predpokladu, že máte Arduino IDE (ak ho nestiahnete a nenainštalujete), nastavte typ čipovej sady na Arduino, ktorý máte, a nastavte port COM na ten, ktorý zobrazuje Arduino v možnostiach. Teraz si stiahnite knižnicu FastLED a nainštalujte ju (https://fastled.io/). Otvorte príklad striptest.h a nastavte počet diód LED v náčrte na toľko, koľko ich máte (zostalo mi 5). Kliknite na overenie a (za predpokladu, že všetko pôjde dobre) ho nahrajte do Arduina a mali by ste vidieť, ako sa rozsvietia svetlá na malom prúžku a zmeniť farbu.

Krok 2: Spájkovanie matice a Stripboard

Spájkovanie matrice a pásovej dosky
Spájkovanie matrice a pásovej dosky
Spájkovanie matrice a pásovej dosky
Spájkovanie matrice a pásovej dosky
Spájkovanie matrice a pásovej dosky
Spájkovanie matrice a pásovej dosky

Teraz je čas začať vytvárať maticu LED.

Odrežte 11 krátkych dĺžok každej z troch farieb drôtu, ktoré máte. Uistite sa, že sú dostatočne dlhé na to, aby prešli od konca jedného prúžku k začiatku nasledujúceho. Pri kladení LED pásikov musíte zaistiť, aby šípka toku údajov sledovala hada. Akonáhle je to rozložené, opatrne spájkujte každý vedený rad s ďalším, ako je znázornené na obrázku. Je to výrazne jednoduchšie, ak pre každý typ pripojenia použijete rovnakú farbu.

Teraz, viac spájkovania, musíme vytvoriť pásovú dosku, ktorá zvládne napájanie zo siete. Na stĺpiku som spájkoval dva stĺpce pre 5V aj GND, aby lepšie zvládal prúd. V priloženej schéme nájdete obvod, ktorý musíte vytvoriť. Pri spájkovaní kondenzátora zaistite, aby bol záporný koniec pripevnený k lište GND, nie k 5V. Akonáhle je stripboard hotový, musíme k LED pásku pripojiť +VE a GND a tiež použiť druhú polovicu prepojok, ktoré sme predtým prerezali, na pripojenie Arduina k napájaciemu zdroju a stripboardu. Teraz by bolo vhodné pridať oddeľovaciu dosku SD do Arduina, aby sme do nej mohli ukladať súbory a čítať z nej neskôr. Akonáhle je doska na odpojenie SD na svojom mieste, môžeme pripojiť 5V lištu na pin Vin a GND na akýkoľvek pin GND na Arduine.

Nakoniec môžeme potenciometer pripojiť k analógovému vstupu A0, ako je znázornené na obrázku, aby sme mali spôsob, ako ovládať jas LED diód.

Akonáhle je toto všetko hotové, môžeme znova nahrať najprísnejší náčrt a zmeniť počet diód LED na 144. Pred odoslaním tejto skice sa uistite, že máte aktívny zdroj napájania. Našťastie by sa všetky LED diódy mali rozsvietiť vo vzoroch najprísnejšieho náčrtu, aby sme vedeli, že všetko funguje.

Krok 3: Integrácia modulu Bluetooth

Integrácia modulu Bluetooth
Integrácia modulu Bluetooth

Teraz posledný kus zapojenia, jednotka HC05 sa pripája k Arduino Mega, ako je znázornené na schéme. Zaistite, aby sa jednotka HC05 pripájala k portom Rx1 a Tx1 na zariadení mega - to výrazne uľahčuje programovanie a vyhýba sa používaniu knižnice „softwareserial“.

Pozn. Jednotka HC05 bude mať buď 5 V alebo 3,3 V, a spravidla pracuje s logikou 3,3 V, takže som ju pripojil k lište 3,3 V. Niektoré ďalšie návody ukázali Tx (na Arduino) na Rx (na jednotke HC05) s obvodom rozdeľovača potenciálu na preklopenie logiky 5 V z Arduina na natívnu úroveň pre modul HC05. To je dôvod, prečo som mal v zozname dielov rezistory 1k a 2k; Neobťažoval som sa a na mojom stole to vyzerá úplne šťastne:)

Krok 4: Hackovanie stola

Hackovanie stola
Hackovanie stola
Hackovanie stola
Hackovanie stola
Hackovanie stola
Hackovanie stola

Teraz musíme začať rezať stôl, aby naše LED diódy a elektronika mali nový domov.

Najprv si vyznačte štvorec 450 mm x 450 mm v strede hornej časti dosky LACK. Pomocou Dremelu (alebo skladačky) vyrežte štvorec čo najlepšie, aby bol rovný. Teraz môžeme odstrániť vrchnú a kartónovú vnútornú časť a ponechať vám vydlabanú dosku, ako je znázornené na obrázku. Opäť pomocou Dremelu môžeme vyvŕtať dieru v rohu spodnej časti stola, aby sme mali kam viesť sieťový kábel.

Akonáhle je stôl pripravený, môžeme LED diódy zalepiť zhruba v správnych polohách, než prejdeme k ďalším krokom. Považoval som za užitočné uistiť sa, že elektronika je hneď po každom kroku, a tak znova vyskúšajte najprísnejší náčrt.

Hneď ako budete v pohode, všetko je na svojom mieste, môžete pomocou malých skrutiek vyvŕtať niekoľko malých otvorov a namontovať napájací zdroj na okraj stola. Rozhodol som sa namontovať Arduino mimo stôl, aby som mohol ľahko preprogramovať, ak chcem, ale je namontovaný hore nohami na spodok stolu a nie je dobre viditeľný. Potenciometer som tiež namontoval cez spodok stola, aby ovládanie jasu vyzeralo pekne a profesionálne.

Krok 5: Laserom rezané diely

Laserom rezané diely
Laserom rezané diely
Laserom rezané diely
Laserom rezané diely
Laserom rezané diely
Laserom rezané diely

Teraz musíme predstaviť časti rezané laserom, ktoré tvoria maticu štvorcov, aby sme definovali pixely. Zahrnul som súbory dxf pre diely rezané laserom, ktoré tvoria drevenú matricu, a tiež ich obrázky, aby ste vedeli, ako by mali vyzerať. Sú vyrobené z dvoch samostatných dielov, jeden prechádza pozdĺž každého radu diód LED a druhý ich kríži. Časti, ktoré prechádzajú, majú v spodnej časti vyrezanú medzeru vysokú 10 mm, aby cez ne mohlo prechádzať vedenie. Táto medzera by sa dala zmenšiť na 5 mm, pretože sa mi zdá, že dochádza k malému úniku svetla z jedného pixelu na druhý.

11 kópií oboch častí je potrebné vyrezať laserom z 3 mm preglejky a potom ich zostaviť, aby ste sa presvedčili, že správne pasujú. Akonáhle ste spokojní, matricu opäť rozoberte a nastriekajte na bielo, aby sa zlepšili reflexné vlastnosti tabuľky. Keď sú suché, dajte ich znova dohromady a umiestnite ich na diódy LED. Po postreku môže byť trochu ťažšie ich spojiť dohromady, pretože teraz sú o niečo hrubšie, ale nebojte sa ich a jemne priklepte na miesto, než vložíte matricu do stolu.

Krok 6: Glediator

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

Teraz máme implementovaný všetok hardvér, môžeme sa začať pozerať na softvér. Stiahol som a nainštaloval softvér s názvom Glediator na vytváranie animácií pre diódy LED (https://www.solderlab.de/index.php/software/glediat…). Inštalačné pokyny môžu byť trochu nešikovné, ale pozorne sledujte webovú stránku a mali by ste byť v poriadku. Tiež si musíme stiahnuť náčrt z webovej stránky Glediator, aby sme ho mohli nahrať do Arduina (https://www.solderlab.de/index.php/downloads/catego…). Používame LED diódy WS2812B, takže si stiahnite správnu (rozhranie WS2812 Glediator Interface). Akonáhle otvoríte tento náčrt, zmeňte NUMBER_OF_PIXELS na 144 a nahrajte ho do Arduina.

Akonáhle je Glediator nainštalovaný, môžeme začať hrať animácie na stole. Najprv musíme v softvéri Glediator nastaviť veľkosť matice na 12 x 12 a tiež nastaviť typ výstupu na HSBL - horizontálny had (štartovací) vľavo dole, pretože toto je spôsob, akým sme zapojili LED diódy a zmenili poradie farieb na GRB (na to LED diódy berú údaje). Na karte výstupu otvorte port COM a matica LED by mala začať zobrazovať vzor LED na strednej obrazovke softvéru Glediator.

Môžete vytvárať animácie a zaznamenávať ich do súboru.dat, ktorý môžeme nahrať na kartu SD, čo znamená, že vaše obľúbené animácie sa môžu zobrazovať na stole bez toho, aby bolo potrebné pripojiť počítač. Na internete je o tom niekoľko návodov (napríklad https://hackaday.io/project/5714-glediator-from-sd…). Upravil som niekoľko rôznych zdrojov kódu, aby to fungovalo, takže môj kód by mal byť v poriadku.

Pri ukladaní animácií ich uložte ako „animX.dat“, kde X je ľubovoľné číslo od 1 do 15. Viac by ste mohli implementovať zmenou niekoľkých riadkov v mojom kóde.

Poznámka: Pri nahrávaní súborov Glediator má softvér chybu, ktorá znamená, že si nepamätá, ako ste zapojili LED pás. Do svojho kódu som implementoval jednoduchú funkciu na obrátenie poradia párnych riadkov, čo znamená, že sa všetko zobrazuje správne

Krok 7: Sériové ovládanie Bluetooth

Sériové ovládanie Bluetooth
Sériové ovládanie Bluetooth
Sériové ovládanie Bluetooth
Sériové ovládanie Bluetooth

Nastavenie bluetooth komunikácie medzi smartfónom a Arduinom sa ukázalo prekvapivo zložité, ale existuje niekoľko jednoduchých krokov, ktoré to veľmi uľahčia. Najprv si musíte stiahnuť aplikáciu pre svoj smartphone. Použil som https://play.google.com/store/apps/details?id=com…. ale pravdepodobne existuje ekvivalent pre iPhone (za ktorý musíte zaplatiť; p)

Možno ste si všimli, že modul HC05 má na sebe malý vypínač. Ak ho zapnete stlačením tohto vypínača, prejde do režimu AT, čo znamená, že na ňom môžete interogovať parametre a podľa potreby ich meniť.

Nahrajte priložený náčrt do zariadenia Mega a nastavte na počítači sériovú rýchlosť 9600. Odpojte napájanie jednotky HC05 a potom ju znova zapojte stlačením tlačidla. Blikanie by teraz malo byť približne raz za dve sekundy - teraz je HC05 v režime AT.

Teraz na sériovom monitore môžeme posielať príkazy do HC05 a vidieť jeho odpoveď. Napíšte „AT“a stlačte tlačidlo odoslať a na sériovom monitore by sa malo zobraziť „OK“. Teraz vieme, že počúva. Názov bluetooth zariadenia je možné zmeniť zadaním „AT+NAME = XYZPQR“, kde sa má modul nazývať XYZPQR. Zavolal som svojmu LightWave. Predvolený prístupový kód pre modul bluetooth je 1234 (alebo 0000), ale dá sa to zmeniť aj odoslaním napríklad „AT+PSWD = 9876“. Nakoniec môžeme zmeniť komunikačnú rýchlosť HC05 odoslaním „AT+UART = 38400“. Toto je predvolená miera pre väčšinu modulov HC05, ale môj bol nastavený inak, takže je vhodné ho pre istotu nastaviť. Existuje mnoho ďalších podrobností o týchto príkazoch tu: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… a k tomuto kroku sú tiež pokyny, ktoré majú oveľa podrobnejšie https://www.instructables.com/id/Modify -The-HC-05-…

Teraz sa môžeme pokúsiť odoslať príkazy do modulu prostredníctvom zariadenia bluetooth. Najprv odpojte napájanie modulu HC05 a potom ho znova zapojte. Mali by ste vidieť, že miera blikania LED diódy je oveľa rýchlejšia - to znamená, že teraz čaká na spárovanie. Na svojom smartfóne otvorte aplikáciu Arduino Bluetooth Controller a nájdite modul HC05. Ak ste názov nezmenili, bude sa pravdepodobne volať HC05 alebo podobne. Keď dostanete možnosti, ako by ste sa chceli pripojiť, zvoľte Terminálový režim. Skúste teraz odoslať nejaké čísla a text a zistiť, či sériový monitor v počítači hlási, že boli prijaté. Našťastie majú, aby sme mohli pokračovať, ak nie, existuje veľa inštrukcií, ktoré by vám mohli poskytnúť niekoľko rád (napríklad

Posledná vec, ktorú musíte urobiť, je zmapovať vstupy ovládača na čísla, s ktorými môže Arduino niečo urobiť. Použil som nasledujúce hodnoty:

Hore = 1, Dole = 2, Vľavo = 3, Vpravo = 4, Začiatok = 5, Vyberte = 6.

Krok 8: Hry

Hry
Hry

Neberiem žiaden kredit za kód hry. Použil som zdrojový kód, ktorý nájdete tu https://github.com/davidhrbaty/IKEA-LED-Table napísaný davidhrbaty. Upravil som ho však niekoľkými rôznymi spôsobmi:

  1. Pridal som funkciu obmedzenia jasu na základe hodnoty potenciometra, aby sme mohli zmeniť jas
  2. Hru s tehlami som odstránil, pretože som ju nemohol zostaviť
  3. Zmenil som farebné kódovanie blokov tetris, aby mali všetky rôzne farby
  4. Preusporiadal som menu
  5. Implementoval som možnosť prehrávania animácií z karty SD
  6. V ponuke som pridal sledovanie vysokého skóre a možnosť zobrazenia vysokého skóre

Priložený kód by mal hneď fungovať, ale ak nie, mojím návrhom by bolo odstránenie hier, ktoré zrejme spôsobujú chybové hlásenia, a opätovné overenie kódu, kým nezistíte, kde je problém. Potom postupne pridávajte späť v zložitosti.

Pôvodný autor tohto kódu odviedol fantastickú prácu a postavil niečo, čo je skutočne modulárne a ľahko sa do toho pridáva. Nie je také ťažké pridať v ďalších prípadoch na pridanie ďalších funkcií do tabuľky.

Možnosti v ponuke sú tieto:

  1. Karta SD - Prehráva animácie uložené na karte SD
  2. Tetris
  3. Had
  4. Pong
  5. Kocky - generátor náhodných nuberov medzi 1 a 6
  6. Animácia - zbierka animácií z knižnice FastLED
  7. Stars Animation - EDIT - teraz som namiesto tejto animácie implementoval Conwayovu hru o život
  8. Dúhová animácia
  9. Vysoké skóre - zobrazuje vysoké skóre pre tetris a hada

Predtým, ako začnete hrať, musíte na karte SD vytvoriť dva súbory txt, jeden s názvom „teths.txt“a druhý s názvom „snkhs.txt“. Do oboch týchto súborov vložte číslo 0 a uložte ich do koreňového priečinka karty SD. Toto sú súbory na sledovanie vysokého skóre a budú aktualizované zakaždým, keď bude dosiahnuté najvyššie skóre. Ak ho chcete resetovať, v počítači jednoducho zmeňte hodnoty späť na 0.

Akonáhle nahráte program LED_table do Arduina, môžete otvoriť sériový monitor a mali by ste byť schopní vidieť príkazy bluetooth pri ich odosielaní - týmto spôsobom viete, že všetko funguje dobre.

Krok 9: Užite si to

Užite si to
Užite si to
Užite si to
Užite si to
Užite si to
Užite si to

Všetko, čo musíte urobiť, je nahrať hlavný LED tabuľkový kód do Mega a potom si hrať a dať mi vedieť svoje najvyššie skóre!

Stále čakám, kým dorazia diely na stôl (hliníková časť T a sklo), ale stôl teraz funguje dobre a môžem na ňom hrať hry.

Dajte mi vedieť, ak máte akékoľvek pripomienky, úpravy alebo si všimnite chyby, ktorých som sa dopustil.

Krok 10: Aktualizácia

Image
Image
Aktualizácia
Aktualizácia
Aktualizácia
Aktualizácia

Teraz je úplne hotový!:)

Nakoniec som prevzal hliníkovú sekciu T na lemovanie a odviedol som najlepšiu prácu pri zmierňovaní spoja (45 stupňov je jeden z tvrdších uhlov), ale je takmer úplne štvorcový. Na vrch som sa rozhodol zaobstarať hrubšiu tabuľu skla (425 x 425 x 8 mm) a spodnú stranu som matoval sprejom na sklovinu Rustoleum. Na spojenie hornej a uhlovej časti som použil bežný tmel (silikónový tmel), aby v spojoch bol v prípade potreby trochu ohyb.

Aktualizovaná aktualizácia. Teraz som pridal do Conwayovej hry o život ako možnosť 7 v ponuke namiesto animácie hviezd, pretože som ju nikdy nepoužil. Ak neviete, čo je to za hru, vygooglite si to, ale v zásade je to hra pre nulových hráčov, ktorá ukazuje evolúciu na základe troch jednoduchých pravidiel. Conwayova hra o život

Aktualizácia^3. V kóde som vykonal určité úpravy, aby teraz obsahoval opravu opravy stlmenia červených LED diód a aby v ponuke ako možnosť 11 obsahovala aj animáciu vianočného stromčeka. Užite si to.

Odporúča: