Kazalo:

Arduino LED kavna miza z Bluetooth -krmiljenjem: 10 korakov (s slikami)
Arduino LED kavna miza z Bluetooth -krmiljenjem: 10 korakov (s slikami)

Video: Arduino LED kavna miza z Bluetooth -krmiljenjem: 10 korakov (s slikami)

Video: Arduino LED kavna miza z Bluetooth -krmiljenjem: 10 korakov (s slikami)
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Julij
Anonim
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth
LED miza za kavo Arduino, ki jo upravlja Bluetooth

To je bil moj prvi pravi projekt Arduino in je tudi moj prvi pouk, zato bodite prijazni v komentarjih:) Želel sem poskusiti odgovoriti na vprašanja, ki so mi vzela nekaj časa, da sem ugotovil in dal podrobna navodila, tako da, če poznate hobista elektroniko, potem lahko verjetno prelistate vsak korak, če pa ste novi v tem, vam mora zagotoviti vse, kar potrebujete.

Cilj projekta je bil ustvariti zaslon 12 x 12 slikovnih pik v klubski mizici, ki ga je mogoče upravljati prek bluetootha in ga uporabljati kot hladno sobno svetlobo/igrati igre na njem.

Za to gradnjo boste potrebovali te dele:

  1. Arudino Mega (ali klon)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Arduino ščit za mikro SD kartico (to sem uporabil in sem spajkal glave) -
  3. Kartica Micro SD - Vse velikosti so primerne, vendar morajo biti oblikovane v FAT32
  4. LED trak za naslavljanje 5m WS2812B -
  5. Modul Bluetooth HC05 -
  6. Napajanje 5 V 6 Amp-(uporabil sem to, na ebayu pa jih je še sto)
  7. Miza Ikea LACK (klasika za ljubitelje) -
  8. Dostop do laserskega rezalnika za 3 mm vezane plošče (ali zelo mirne roke). Lasersko rezane dele lahko naročite na spletu na različnih mestih (na primer
  9. Bela barva v spreju
  10. 2 m aluminijasti T odsek (1 1/2 x 1 1/2 x 1/8) -
  11. 450 mm x 450 mm x 6 mm steklena plošča (večina lokalnih steklarjev vam lahko razreže kose po meri, vendar sem uporabil te fante
  12. 1 x 100 mikro kondenzator Farad
  13. 2 x 1k upor
  14. 1 x 2k upor
  15. 1 x linearni rotacijski potenciometer
  16. Različni skakalci (med izdelavo prototipov verjetno ducat)
  17. Vsaj tri barve relativno debelih kablov za spajkanje (to lahko potegne nekaj velikih tokov, zato ne priporočam mostičnih žic za napajanje)
  18. Stripboard za notranje vezje (ne skrbite, zelo preprosto je)

Potrebna orodja:

  1. Spajkalnik + spajkalnik
  2. Par odsekov
  3. Odstranjevalci žice
  4. Dremel ali vbodna žaga za razrez mize. Uporabil sem to https://www.amazon.co.uk/gp/product/B0078LENZC/ref… s spiralnimi rezalnimi nastavki

1. korak: Začetni preskus in postavitev

Začetni preskus in postavitev
Začetni preskus in postavitev
Začetni preskus in postavitev
Začetni preskus in postavitev
Začetni preskus in postavitev
Začetni preskus in postavitev

Prva vrata za klic je, da LED trak razrežete na dolžine, ki jih potrebujete. Ta LED trak je zelo enostaven za uporabo, saj ima samo 3 zatiče in omogoča, da Arduino opravi resnično delo. Tuljak sem razrezal na 12 odsekov po 12 LED, kot je prikazano na sliki, in jih položil na zadnjo stran mize, da sem si lažje predstavljal, kam grem s tem.

Nato mi je ostalo nekaj LED, zato sem jih povezal z Arduino UNO, ki sem ga moral preizkusiti, ali delujejo (lahko uporabite tudi Mega, omenjeno v orisu projekta). V ta namen sem odrezal in odstranil nekaj moških in moških glav ter jih spajkal na blazinice na koncu LED traku. Na traku WS2812, ki sem ga uporabil, je 5V žica rdeča, ozemljitev bela in podatki zeleni. Bodite pozorni na smerno puščico, natisnjeno na traku WS2812B, da ne poskušate poslati podatkov v napačno smer. Priključil sem 5V linijo na 5V na Arduinu, ozemljitev na GND in Data na pin 6 z 1k uporom zaporedoma. Ne pozabite, da je shema Fritzing LED WS2812B nekoliko drugačna od tistih, ki sem jih dostavil - dovolj je reči, samo preverite, ali so podatki priključeni na pin 6, Gnd je priključen na maso, 5 pa na 5V.

S tako malo LED diodami (približno 5) bi moral biti Arduino v redu za zagotavljanje energije; vendar jih ne morete napajati, saj LED diode porabijo do 60 mA in lahko hitro premagajo Arduino.

Ob predpostavki, da imate Arduino IDE (če ga ne naložite in namestite), nastavite vrsto nabora čipov na Arduino, ki ga imate, in nastavite vrata COM na vrata, ki v možnostih kažejo Arduino. Zdaj prenesite knjižnico FastLED in jo namestite (https://fastled.io/). Odprite primer striptest.h in nastavite število LED na skici, kolikor jih imate (ostalo mi je še 5). Pritisnite "Preveri" in (ob predpostavki, da je vse v redu) naložite v Arduino in videli boste, da se lučke na malem traku prižgejo in spremenijo barvo.

2. korak: Spajkanje matrice in traku

Spajkanje matrice in traku
Spajkanje matrice in traku
Spajkanje matrice in traku
Spajkanje matrice in traku
Spajkanje matrice in traku
Spajkanje matrice in traku

Zdaj je čas, da začnete ustvarjati LED matriko.

Izrežite 11 kratkih dolžin vsake od treh barv žice, ki jo imate. Prepričajte se, da so dovolj dolgi, da gredo od konca enega traku do začetka naslednjega. Pri polaganju LED trakov se morate prepričati, da puščica pretoka podatkov sledi kači. Ko je ta postavljen, previdno spajkajte vsako vodilno vrstico na naslednjo, kot je prikazano na sliki. To je bistveno lažje, če za vsako vrsto povezave uporabite isto barvo.

Zdaj, več spajkanja, moramo ustvariti trak, ki bo upravljal z električnim napajanjem. Na trak sem spajkala dva stebra za 5V in GND, tako da bolje prenaša tok. Oglejte si priloženo shemo za vezje, ki ga morate ustvariti. Pri spajkanju kondenzatorja pazite, da je negativni konec pritrjen na tirnico GND, ne na 5V. Ko je trak končan, moramo priključiti +VE in GND na LED trak in uporabiti tudi drugo polovico mostičkov, ki smo jih izrezali prej, za priključitev Arduina na napajalnik in trak. Zdaj bi bil pravi čas, da v Arduino dodate ploščo za prekinitev SD, da lahko vanj shranimo datoteke in jih kasneje beremo. Ko je odklopna plošča SD nameščena, lahko 5V tirnico priključimo na pin Pin in GND na kateri koli pin GND na Arduinu.

Nazadnje, potenciometer lahko priključimo na analogni vhod A0, kot je prikazano, tako da imamo način za nadzor svetlosti LED.

Ko je vse to narejeno, lahko znova naložimo najpreprostejšo skico, pri čemer število LED diod spremenimo na 144. Preden naložite to skico, se prepričajte, da imate vklopljeno napajanje. Upajmo, da bodo vse LED diode zasvetile v vzorcih najgloblje skice, da bomo vedeli, da vse deluje.

3. korak: Integracija modula Bluetooth

Integracija modula Bluetooth
Integracija modula Bluetooth

Zadnji del ožičenja, se enota HC05 poveže z Arduino Mega, kot je prikazano na shemi. Prepričajte se, da se enota HC05 poveže z vrati Rx1 in Tx1 na mega - to olajša programiranje in preprečuje uporabo knjižnice "softwareserial".

Opomba: Enota HC05 bo imela vhod 5V ali 3.3V in na splošno deluje na logiki 3.3V, zato sem jo priključil na 3.3V vodilo. Nekateri drugi navodili so prikazali Tx (na Arduinu) do Rx (na enoti HC05) s potencialnim razdelilnim vezjem za prekinitev 5 V logike iz Arduina na izvorno raven za modul HC05. To je razlog, da sem imel 1k in 2k upor na seznamu delov; pa se nisem potrudil in na moji mizi se zdi popolnoma srečen:)

4. korak: Vdor v mizo

Vdiranje mize
Vdiranje mize
Vdiranje mize
Vdiranje mize
Vdiranje mize
Vdiranje mize

Zdaj moramo začeti z rezanjem mize, da našim LED in elektroniki damo nov dom.

Najprej označite kvadrat 450 mm x 450 mm na sredini vrha mize LACK. Z Dremelom (ali vbodno žago) izrežite kvadrat, kolikor je le mogoče, da ostane ravno. Sedaj lahko odstranimo zgornji del in notranje dele kartona, tako da dobimo izpraznjeno mizo, kot je prikazano na sliki. Z ponovno uporabo Dremela lahko izvrtamo luknjo v kotu na dnu mize, tako da bomo imeli kje napeljati napajalni kabel.

Ko je miza pripravljena, lahko LED -diode prilepite na približno prave položaje, preden nadaljujemo z naslednjimi koraki. Zdelo se mi je koristno zagotoviti, da je elektronika takoj po vsakem koraku, zato poskusite še enkrat najnatančnejšo skico.

Ko se počutite udobno, je vse na svojem mestu, lahko z majhnimi vijaki izvrtate nekaj majhnih lukenj za pritrditev napajalnika na rob mize. Odločil sem se, da bom Arduino namestil zunaj mize, da ga lahko enostavno programiram, če želim, vendar je nameščen na glavo navzdol do dna mize in ni lahko viden. Potenciometer sem namestil tudi na dno mize, tako da je nadzor svetlosti videti lepo in profesionalno.

5. korak: Laserski rezani deli

Deli za lasersko rezanje
Deli za lasersko rezanje
Deli za lasersko rezanje
Deli za lasersko rezanje
Deli za lasersko rezanje
Deli za lasersko rezanje

Zdaj moramo uvesti lasersko rezane dele, ki tvorijo matriko kvadratov, tako da imamo definirane slikovne pike. Vključil sem datoteke dxf za lasersko rezane dele, ki tvorijo leseno matrico, in tudi njihove slike, da veste, kako naj bodo videti. Narejeni so iz dveh ločenih kosov, eden gre vzdolž vsake vrstice LED, drugi pa jih prečka. Na delih, ki se križajo, je na dnu izrezana 10 mm visoka reža, ki omogoča prehod ožičenja. To vrzel bi lahko zmanjšali na 5 mm, ker se mi zdi, da iz enega piksla v drugega malo uhaja svetloba.

11 kopij obeh delov je treba lasersko izrezati iz 3 mm vezanega lesa in jih nato sestaviti, da se prepričata, da se pravilno prilegajo. Ko ste zadovoljni, znova razstavite matrico in jo popršite belo, da izboljšate odsevne lastnosti mize. Ko se posušijo, jih znova sestavite in položite na LED. Po škropljenju jih bo morda nekoliko težje prilegati skupaj, saj so zdaj nekoliko debelejše, vendar ne skrbite, le nežno jih potisnite na mesto, preden postavite matrico v mizo.

6. korak: Glediator

Glediator
Glediator
Glediator
Glediator

Zdaj imamo vgrajeno vso strojno opremo, zato lahko začnemo iskati programsko opremo. Naložil sem in namestil programsko opremo z imenom Glediator za ustvarjanje animacij za LED (https://www.solderlab.de/index.php/software/glediat…). Navodila za namestitev so lahko malce zapletena, vendar pozorno spremljajte spletno mesto in vse bi moralo biti v redu. Skico moramo prenesti tudi s spletnega mesta Glediator, da jo naložimo v Arduino (https://www.solderlab.de/index.php/downloads/catego…). Uporabljamo LED diode WS2812B, zato prenesite pravo (WS2812 Glediator Interface). Ko odprete to skico, spremenite NUMBER_OF_PIXELS na 144 in jo naložite v Arduino.

Ko je Glediator nameščen, lahko začnemo predvajati animacije na mizi. Najprej moramo nastaviti velikost matrike na 12 x 12 v programski opremi Glediator in nastaviti tudi vrsto izhoda na HSBL - Horizontal Snake (zagon) spodaj levo, saj je to način, na katerega smo priklopili LED in spremenili barvni vrstni red na GRB (za to LED vzamejo podatke). Na zavihku za izhod odprite vrata COM in matrika LED naj začne prikazovati vzorec LED na srednjem zaslonu programske opreme Glediator.

Ustvarite lahko animacije in jih posnamete v datoteko.dat, ki jo lahko naložimo na kartico SD, kar pomeni, da se lahko vaše najljubše animacije prikažejo na mizi brez potrebe po priključitvi računalnika. Na spletu obstaja nekaj vaj o tem (na primer https://hackaday.io/project/5714-glediator-from-sd…). Za to sem spremenil nekaj različnih virov kode, zato bi morala biti moja koda v redu.

Ko shranjujete animacije, jih shranite kot "animX.dat", kjer je X poljubno število od 1 do 15. Več bi lahko izvedli s spremembo nekaj vrstic v moji kodi.

Opomba: Pri snemanju datotek Glediator ima programska oprema napako, kar pomeni, da se ne spomni, kako ste ožičili LED trak. V svoji kodi sem implementiral preprosto funkcijo za obračanje vrstnega reda parnih številk, kar pomeni, da se vse prikaže pravilno

Korak 7: Serijski nadzor Bluetooth

Serijski nadzor Bluetooth
Serijski nadzor Bluetooth
Serijski nadzor Bluetooth
Serijski nadzor Bluetooth

Nastavitev komunikacije Bluetooth med pametnim telefonom in Arduinom se je izkazala za presenetljivo težavno, vendar obstaja nekaj preprostih korakov, ki bodo to olajšali. Najprej boste morali prenesti aplikacijo za pametni telefon. Uporabil sem https://play.google.com/store/apps/details?id=com…. verjetno pa obstaja ekvivalent za iphone (za kar morate plačati; p)

Morda ste opazili, da ima modul HC05 majhno stikalo. Če ga vklopite s pritiskom na to stikalo, preide v način AT, kar pomeni, da lahko na njem povprašate po parametrih in jih po želji spremenite.

Priloženo skico naložite v Mega in nastavite serijsko hitrost v računalniku na 9600. Odklopite napajanje enote HC05 in nato pritisnite gumb navzdol, ko jo znova priključite. Utripanje naj bo zdaj približno enkrat na dve sekundi - zdaj je HC05 v načinu AT.

Zdaj lahko v serijskem monitorju pošljemo ukaze HC05 in vidimo njegov odziv. Vnesite "AT" in pritisnite pošiljanje, na serijskem monitorju pa bi se morali prikazati "OK" - zdaj vemo, da posluša. Ime naprave Bluetooth lahko spremenite tako, da vnesete "AT+IME = XYZPQR", kjer je XYZPQR tisto, za kar želite, da se modul pokliče. Poklical sem svojega LightWave. Privzeto geslo za modul bluetooth je 1234 (ali 0000), vendar ga lahko spremenite tudi tako, da na primer pošljete »AT+PSWD = 9876«. Končno lahko spremenimo hitrost komunikacije HC05 s pošiljanjem "AT+UART = 38400". To je privzeta stopnja za večino modulov HC05, vendar je bila moja nastavljena drugače, zato je dobro, če jo nastavite. Tukaj je veliko več podrobnosti o teh ukazih: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M…, obstajajo pa tudi navodila za ta korak, ki imajo veliko več podrobnosti https://www.instructables.com/id/Modify -The-HC-05-…

Zdaj lahko poskusimo poslati ukaze v modul prek naprave Bluetooth. Najprej odklopite napajanje modula HC05 in ga nato znova priključite. Videti morate, da je utripanje LED veliko hitrejše - to pomeni, da zdaj čaka na seznanjanje. Na pametnem telefonu odprite aplikacijo Arduino Bluetooth Controller in poiščite modul HC05. Če imena niste spremenili, se bo verjetno imenoval HC05 ali podobno. Ko se prikažejo možnosti, kako se želite povezati, izberite Način terminala. Zdaj poskusite poslati nekaj številk in besedila in preverite, ali serijski monitor v računalniku poroča, da so bili prejeti. Upajmo, da imajo, da lahko nadaljujemo, če ne, obstaja veliko navodil, ki vam lahko dajo nekaj namigov (na primer

Zadnja stvar, ki jo morate storiti tukaj, je preslikava vhodov krmilnika v številke, s katerimi lahko Arduino nekaj naredi. Uporabil sem naslednje vrednosti:

Gor = 1, Dol = 2, Levo = 3, Desno = 4, Začetek = 5, Izberite = 6.

8. korak: Igre

Igre
Igre

Za kodo igre ne pripisujem nobene zasluge. Uporabil sem izvorno kodo, ki jo najdete tukaj https://github.com/davidhrbaty/IKEA-LED-Table, ki jo je napisal davidhrbaty. Vendar sem ga spremenil na nekaj različnih načinov:

  1. Dodal sem funkcijo omejitve svetlosti, ki temelji na vrednosti potenciometra, tako da lahko spremenimo svetlost
  2. Igro opeke sem odstranil, ker je nisem mogel sestaviti
  3. Spremenil sem barvno oznako tetris blokov, tako da so bili vsi različnih barv
  4. Preuredil sem jedilnik
  5. Izvedel sem možnost predvajanja animacij s kartice SD
  6. V meni sem dodal sledenje visokim rezultatom in možnost prikaza z visokim rezultatom

Priložena koda bi morala takoj delovati, če pa ne, bi bil moj predlog odstranitev iger, za katere se zdi, da povzročajo sporočila o napakah, in ponovno preverjanje kode, dokler ne ugotovite, kje je težava. Nato postopoma dodajte več kompleksnosti.

Prvotni avtor te kode je odlično opravil delo, ki je resnično modularno in ga je enostavno dodati. Dodajanje dodatnih funkcij v tabelo ni tako težko.

Možnosti v meniju so:

  1. Kartica SD - predvaja animacije, shranjene na kartici SD
  2. Tetris
  3. Kača
  4. Pong
  5. Dice - generator naključnih nuberjev med 1 in 6
  6. Animacija - zbirka animacij iz knjižnice FastLED
  7. Stars Animation - EDIT - Namesto te animacije sem zdaj implementiral Conwayjevo igro življenja
  8. Mavrična animacija
  9. High Scores - Prikaže visoke ocene za tetris in kačo

Preden začnete igrati, morate na kartici SD ustvariti dve datoteki txt, eno z imenom "teths.txt", drugo pa "snkhs.txt". V obeh datotekah vnesite številko 0 in ju shranite v korensko mapo kartice SD. To so datoteke za sledenje najvišjim rezultatom in jih bomo posodobili vsakič, ko premagate visoko oceno. Če ga želite ponastaviti, preprosto spremenite vrednosti nazaj na 0 v računalniku.

Ko naložite program LED_table v Arduino, lahko odprete serijski monitor in med pošiljanjem bi morali videti ukaze bluetooth - na ta način veste, da vse deluje v redu.

9. korak: Uživajte

Uživajte
Uživajte
Uživajte
Uživajte
Uživajte
Uživajte

Vse, kar morate storiti, je, da naložite glavno kodo LED tabele v Mega in nato uživate v igri ter mi sporočite svoje najboljše rezultate!

Še vedno čakam, da prispejo deli za namizno ploščo (aluminijast T -del in steklo), vendar miza zdaj deluje v redu in na njej se lahko igram.

Sporočite mi, če imate kakšne pripombe, popravke ali opazite napake, ki sem jih naredil.

10. korak: Posodobite

Image
Image
Nadgradnja
Nadgradnja
Nadgradnja
Nadgradnja

Zdaj je popolnoma končano!:)

Končno sem prevzel aluminijasti T -odsek za robnike in se najbolje potrudil pri montaži spoja (izkazalo se je, da je 45 stopinj eden težjih kotov), vendar je skoraj popolnoma kvadrat. Za vrh sem se odločil, da dobim debelejšo stekleno ploščo (425 x 425 x 8 mm), spodnjo stran pa sem zmrzal s pršilom za steklo Rustoleum. Uporabil sem običajno tesnilo (silikonsko tesnilno maso) za povezovanje zgornjih in kotnih kosov, tako da je v spojih, če je potrebno, malo upogiba.

Posodobljena posodobitev. Zdaj sem kot možnost 7 v meniju dodal Conwayovo igro življenja kot animacijo zvezd, saj je nikoli nisem uporabljal. Če ne veste, kaj je ta igra, jo poiščite na Googlu, v bistvu pa je to igra brez igralcev, ki prikazuje evolucijo na podlagi treh preprostih pravil. Conwayjeva igra življenja

Posodobitev^3. Kodo sem naredil nekaj sprememb, tako da zdaj vključuje popravek glede zatemnitve rdečih LED in vključuje tudi animacijo božičnega drevesa kot možnost 11 v meniju. Uživajte.

Priporočena: