Sadržaj:

Arduino LED stolić za kavu s Bluetooth kontrolom: 10 koraka (sa slikama)
Arduino LED stolić za kavu s Bluetooth kontrolom: 10 koraka (sa slikama)

Video: Arduino LED stolić za kavu s Bluetooth kontrolom: 10 koraka (sa slikama)

Video: Arduino LED stolić za kavu s Bluetooth kontrolom: 10 koraka (sa slikama)
Video: SKR Pro V1.1 - A4988 stepper driver install 2024, Novembar
Anonim
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom
Arduino LED stolić za kavu s Bluetooth kontrolom

Ovo je bio moj prvi pravi Arduino projekt, a ujedno je i moj prvi instruktor, stoga budite ljubazni u komentarima:) Htjela sam pokušati odgovoriti na pitanja koja su mi trebala neko vrijeme da shvatim i pružiti detaljna uputstva pa ako ste vrlo upoznati s hobistima elektronike, onda vjerojatno možete pregledati svaki korak, ali ako ste tek počeli s ovim, trebao bi vam pružiti sve što vam je potrebno.

Cilj projekta bio je stvoriti ekran od 12 x 12 piksela u stoliću za kavu koji se može kontrolirati putem bluetootha i koristiti kao svježinu u hladnoj prostoriji/igrati igre na njemu.

Za ovu konstrukciju trebat će vam sljedeći dijelovi:

  1. Arudino Mega (ili klon)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Arduino štit za mikro SD karticu (koristio sam ovaj i zalemio zaglavlja) -
  3. Mikro SD kartica - Bilo koja veličina će biti dovoljna, ali mora biti formatirana u FAT32
  4. 5m WS2812B Adresibilna LED traka -
  5. HC05 Bluetooth modul -
  6. Napajanje od 5 V 6 Amp-(koristio sam ovo, ali postoji još stotinu drugih na ebayu)
  7. Ikea LACK stol (klasični hobisti) -
  8. Pristup laserskom rezaču za šperploču od 3 mm (ili vrlo mirnom rukom). Laserski izrezane dijelove možete naručiti na internetu na različitim mjestima (na primjer
  9. Bijela boja u spreju
  10. 2 m aluminijski T -profil (1 1/2 x 1 1/2 x 1/8) -
  11. 450 mm x 450 mm x 6 mm staklena ploča (većina lokalnih staklara može rezati prilagođene komade za vas, ali ja sam koristio ove momke
  12. 1 x 100 mikro Farad kondenzator
  13. 2 x 1k otpornik
  14. 1 x 2k otpornik
  15. 1 x linearni rotacijski potenciometar
  16. Razni skakači (vjerovatno desetak tokom izrade prototipa)
  17. Najmanje tri boje relativno debelih kabela za lemljenje (ovo može privući velike struje pa ne bih preporučio kratkospojne žice za napajanje)
  18. Stripboard za unutrašnje kolo (ne brinite, vrlo je jednostavno)

Potrebni alati:

  1. Lemilica + lemljenje
  2. Par isječaka
  3. Strojevi za skidanje žice
  4. Dremel ili neka vrsta ubodne testere za odsecanje stola. Koristio sam ovo https://www.amazon.co.uk/gp/product/B0078LENZC/ref… sa spiralnim nastavcima za rezanje

Korak 1: Početni test i izgled

Početni test i izgled
Početni test i izgled
Početni test i izgled
Početni test i izgled
Početni test i izgled
Početni test i izgled

Prva luka poziva je da isečete LED traku na potrebne dužine. Ova LED traka je zaista jednostavna za upotrebu jer ima samo 3 pina i čini da Arduino obavi pravi posao. Rezao sam kalem na 12 sekcija od po 12 LED dioda dužine kao što je prikazano na slici i postavio ih na stražnju stranu stola kako bih lakše zamislio kamo idem s ovim.

Tada mi je ostalo još nekoliko LED dioda pa sam ih spojio na Arduino UNO. Morao sam testirati rade li (možete koristiti i Mega navedenu u skici projekta). Da bih to učinio, izrezao sam i skinuo neke muške zaglavlje za muške i lemio ih na jastučiće na kraju LED trake. Na traci WS2812 koju sam koristio 5V žica je crvena, uzemljenje bijelo, a podaci zeleni. Obratite pažnju na strelicu smjera otisnutu na traci WS2812B kako ne biste pokušali poslati podatke u pogrešnom smjeru. Spojio sam 5V liniju na 5V na Arduinu, uzemljenje na GND i Data na pin 6 s 1k otpornikom u seriji. Imajte na umu da se shema Fritzinga LED -a WS2812B malo razlikuje od onih koje sam isporučio - dovoljno je reći, samo provjerite jesu li podaci spojeni na pin 6, Gnd je spojen na masu, a 5 na 5V.

S tako malo LED dioda (otprilike 5) Arduino bi trebao biti u redu za napajanje; međutim ne možete napajati mnoge, jer kada su potpuno bijele LED diode troše do 60mA svaka i mogu brzo nadjačati Arduino.

Pod pretpostavkom da imate Arduino IDE (ako ga ne preuzmete i instalirate), postavite tip čipseta na Arduino koji imate i postavite COM port na onaj koji prikazuje Arduino u opcijama. Sada preuzmite i instalirajte biblioteku FastLED (https://fastled.io/). Otvorite primjer striptest.h i postavite broj LED dioda na skici na onoliko koliko imate (ostalo mi je 5). Pritisnite potvrdi i (pod pretpostavkom da je sve u redu) prenesite ga na Arduino i trebali biste vidjeti kako se svjetla na maloj traci pale i mijenjaju boju.

Korak 2: Lemljenje matrice i trake

Lemljenje matrice i trakaste ploče
Lemljenje matrice i trakaste ploče
Lemljenje matrice i trakaste ploče
Lemljenje matrice i trakaste ploče
Lemljenje matrice i trakaste ploče
Lemljenje matrice i trakaste ploče

Sada je vrijeme za početak stvaranja LED matrice.

Izrežite 11 kratkih duljina svake od tri boje žice koju imate. Provjerite jesu li dovoljno dugi da prijeđu s kraja jedne trake na početak sljedeće. Prilikom postavljanja LED traka morate paziti da strelica protoka podataka prati zmiju. Nakon što je ovo položeno, pažljivo lemite svaki red s LED -om na sljedeći, kako je prikazano na slici. To je znatno lakše ako koristite istu boju za svaku vrstu veze.

Sada, više lemljenja, moramo stvoriti trakastu traku koja će napajati napajanje iz mrežnog napajanja. Lemio sam dva stupa na traci zajedno za 5V i GND tako da bolje podnosi struju. Shemu koju trebate stvoriti pogledajte u priloženoj shemi. Prilikom lemljenja kondenzatora, pazite da negativni kraj bude pričvršćen na GND šinu, a ne na 5V. Nakon što je stripboard završen, moramo spojiti +VE i GND na LED traku te također upotrijebiti drugu polovicu kratkospojnika koje smo ranije izrezali za spajanje Arduina na napajanje i stripboard. Sada bi bilo dobro vrijeme za dodavanje SD kartice u Arduino kako bismo mogli spremati datoteke na nju i kasnije čitati s nje. Nakon što je SD razvodna ploča postavljena, možemo spojiti 5V šinu na Vin pin i GND na bilo koji GND pin na Arduinu.

Na kraju, možemo povezati potenciometar na analogni ulaz A0 kao što je prikazano tako da imamo način kontrole svjetline LED dioda.

Nakon što sve ovo učinite, možemo ponovo postaviti najcrtaniju skicu mijenjajući broj LED dioda na 144. Prije postavljanja ove skice provjerite je li napajanje aktivno. Nadajmo se da bi sve LED diode trebale svijetliti u uzorcima najniže skice kako bismo znali da sve radi.

Korak 3: Integracija Bluetooth modula

Integracija Bluetooth modula
Integracija Bluetooth modula

Posljednji dio ožičenja sada, HC05 jedinica povezuje se s Arduino Mega kako je prikazano na shemi. Pobrinite se da se HC05 jedinica poveže s priključcima Rx1 i Tx1 na mega uređaju - to znatno olakšava programiranje i izbjegava korištenje biblioteke "softverske serije".

NB. HC05 jedinica će imati 5V ili 3.3V ulaz i općenito radi na 3.3V logici pa sam je spojio na 3.3V šinu. Neke druge instrukcije pokazale su Tx (na Arduinu) do Rx (na HC05 jedinici) sa krugom potencijalnog razdjelnika za prebacivanje 5 V logike iz Arduina na izvorni nivo za HC05 modul. To je razlog zašto sam imao 1k i 2k otpornike na popisu dijelova; međutim, nisam se trudio i izgleda savršeno sretno na mom stolu:)

Korak 4: Hakiranje stola

Hakiranje stolova
Hakiranje stolova
Hakiranje stolova
Hakiranje stolova
Hakiranje stolova
Hakiranje stolova

Sada moramo početi dijeliti stol kako bismo našim LED diodama i elektronici dali novi dom.

Prvo označite kvadrat 450 mm x 450 mm na sredini vrha LACK stola. Pomoću Dremela (ili ubodne pile) izrežite kvadrat najbolje što možete kako biste ga držali ravno. Sada možemo ukloniti gornji dio i unutrašnje dijelove kartona ostavljajući vam izdubljenu ploču stola kao što je prikazano na slici. Ponovnim korištenjem Dremela možemo izbušiti rupu u kutu dna stola tako da imamo gdje provući mrežni kabel.

Nakon što se tablica pripremi, LED diode možemo zalijepiti otprilike u odgovarajuće položaje prije nego pređemo na sljedeće korake. Bilo mi je korisno provjeriti je li elektronika odmah nakon svakog koraka, pa pokušajte ponovo s najgorom skicom.

Kad vam bude udobno, sve je na svom mjestu, možete izbušiti nekoliko malih rupa za postavljanje napajanja unutar ruba stola pomoću malih vijaka. Odlučio sam montirati Arduino izvan stola kako bih mogao lako reprogramirati ako želim, ali montiran je naopako do dna stola i nije lako vidljiv. Također sam postavio potenciometar kroz dno stola tako da kontrola svjetline izgleda lijepo i profesionalno.

Korak 5: Laserski rezani dijelovi

Laserski rezani dijelovi
Laserski rezani dijelovi
Laserski rezani dijelovi
Laserski rezani dijelovi
Laserski rezani dijelovi
Laserski rezani dijelovi

Sada moramo uvesti laserski izrezane dijelove koji tvore matricu kvadrata pa smo definirali piksele. Uključio sam dxf datoteke za laserski izrezane dijelove koji tvore drvenu matricu, kao i njihove slike kako biste znali kako bi trebali izgledati. Napravljene su od dva odvojena dijela, jedan ide duž svakog reda LED dioda, a drugi ih križa. Dijelovi koji se križaju imaju donji dio izrezan jaz od 10 mm kako bi omogućili prolaz ožičenja. Ovaj jaz bi se mogao smanjiti na 5 mm jer se čini da imam malo curenja svjetlosti iz jednog piksela u drugi.

11 kopija oba dijela potrebno je laserski izrezati iz šperploče od 3 mm, a zatim ih sastaviti kako bi bili sigurni da dobro pristaju. Kad budete sretni, ponovo rastavite matricu i poprskajte je bijelom bojom kako biste poboljšali reflektirajuće karakteristike stola. Kad se osuše, ponovo ih spojite i postavite preko LED dioda. Možda će ih biti malo teže spojiti nakon prskanja jer su sada malo deblje, ali ne brinite, samo ih lagano dodirnite na mjesto prije nego što stavite matricu u stol.

Korak 6: Glediator

Glediator
Glediator
Glediator
Glediator

Sada imamo implementiran sav hardver pa možemo početi gledati softver. Preuzeo sam i instalirao softver pod nazivom Glediator za kreiranje animacija za LED diode (https://www.solderlab.de/index.php/software/glediat…). Upute za instalaciju mogu biti pomalo škrte, ali pažljivo pratite web stranicu i trebali biste biti u redu. Također moramo skinuti skicu sa web stranice Glediator kako bismo je prenijeli na Arduino (https://www.solderlab.de/index.php/downloads/catego…). Koristimo LED diode WS2812B, stoga obavezno preuzmite pravu (WS2812 Glediator sučelje). Nakon što otvorite ovu skicu, promijenite NUMBER_OF_PIXELS na 144 i postavite je na Arduino.

Nakon što je Glediator instaliran, možemo početi reproducirati animacije na stolu. Prvo moramo postaviti veličinu matrice na 12 x 12 u softveru Glediator, a također i postaviti tip izlaza na HSBL - Horizontalna zmija (početak) dolje lijevo jer je to način na koji smo LED diode ožičili i promijenili redoslijed boja na GRB (za ovo LED uzimaju podatke). Na izlaznoj kartici otvorite COM port i LED matrica bi trebala početi prikazivati LED uzorak na srednjem ekranu softvera Glediator.

Možete stvoriti animacije i snimiti ih u.dat datoteku koju možemo prenijeti na SD karticu što znači da se vaše omiljene animacije mogu prikazati na stolu bez potrebe za povezivanjem računala. Na mreži postoji nekoliko vodiča o tome (na primjer https://hackaday.io/project/5714-glediator-from-sd…). Izmijenio sam nekoliko različitih izvora koda kako bi radio za ovo, tako da bi moj kôd trebao biti u redu.

Prilikom spremanja animacija, svakako ih spremite kao "animX.dat" gdje je X bilo koji broj od 1-15. Mogli biste implementirati više promjenom nekoliko redaka u mom kodu.

Napomena: Prilikom snimanja Glediator datoteka, softver ima grešku koja znači da se ne sjeća kako ste povezali LED traku. U svom sam kodu implementirao jednostavnu funkciju za promjenu redoslijeda parnih redova, što znači da se sve prikazuje ispravno

Korak 7: Bluetooth serijska kontrola

Bluetooth serijska kontrola
Bluetooth serijska kontrola
Bluetooth serijska kontrola
Bluetooth serijska kontrola

Postavljanje bluetooth komunikacije između pametnog telefona i Arduina pokazalo se iznenađujuće lukavim, ali postoji nekoliko jednostavnih koraka koji će ovo uvelike olakšati. Prvo ćete morati preuzeti aplikaciju za svoj pametni telefon. Koristio sam https://play.google.com/store/apps/details?id=com…. ali vjerovatno postoji ekvivalent za iPhone (za koji morate platiti; p)

Možda ste primijetili da HC05 modul ima mali prekidač. Ako ga uključite pritiskom na ovaj prekidač, on ulazi u AT-način rada, što znači da možete ispitivati parametre na njemu i mijenjati ih ako želite.

Otpremite priloženu skicu na Mega i postavite serijsku brzinu na svom računaru na 9600. Prekinite napajanje jedinice HC05, a zatim je pritisnite dok je ponovo ne povežete. Treptanje bi sada trebalo biti približno jednom u dvije sekunde - sada je HC05 u AT -načinu rada.

Sada u serijskom monitoru možemo poslati naredbe HC05 i vidjeti njegov odgovor. Upišite "AT" i pritisnite send i trebali biste vidjeti "OK" se vraća na serijski monitor - sada znamo da sluša. Bluetooth naziv uređaja može se promijeniti upisivanjem "AT+IME = XYZPQR" gdje je XYZPQR ono što želite da se modul zove. Pozvao sam svoj LightWave. Zadana lozinka za bluetooth modul je 1234 (ili 0000), ali i to se može promijeniti slanjem "AT+PSWD = 9876", na primjer. Konačno, možemo promijeniti brzinu komunikacije HC05 slanjem "AT+UART = 38400". Ovo je zadana stopa za većinu HC05 modula, ali je moja postavljena drugačije pa je dobra praksa postaviti je kako biste bili sigurni. Ovdje ima mnogo više detalja o ovim naredbama: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M…, a postoje i upute o ovom koraku koje imaju mnogo više detalja https://www.instructables.com/id/Modify -The-HC-05-…

Sada možemo pokušati poslati naredbe modulu putem bluetooth uređaja. Prvo isključite napajanje iz HC05 modula, a zatim ga ponovo spojite. Trebali biste vidjeti da je brzina treptanja LED diode mnogo brža - to znači da sada čeka uparivanje. Na svom pametnom telefonu otvorite aplikaciju Arduino Bluetooth Controller i pronađite HC05 modul. Ako niste promijenili naziv, vjerojatno će se zvati HC05 ili slično. Kad vam se daju mogućnosti kako se želite povezati, odaberite način terminala. Sada pokušajte poslati neke brojeve i tekst i provjerite izvještava li serijski monitor na računaru da su primljeni. Nadajmo se da jesu pa možemo nastaviti dalje, ako ne postoji mnogo instrukcija koje bi vam mogle dati nekoliko savjeta (na primjer

Posljednja stvar koju treba učiniti ovdje je mapiranje ulaza kontrolera u brojeve s kojima Arduino može učiniti nešto. Koristio sam sljedeće vrijednosti:

Gore = 1, Dolje = 2, Lijevo = 3, Desno = 4, Start = 5, Odaberite = 6.

Korak 8: Igre

Igre
Igre

Ne preuzimam zasluge za kôd igre. Koristio sam izvorni kod koji se nalazi ovdje https://github.com/davidhrbaty/IKEA-LED-Table napisao davidhrbaty. Međutim, izmijenio sam ga na nekoliko različitih načina:

  1. Dodao sam funkciju ograničenja svjetline na osnovu vrijednosti potenciometra kako bismo mogli promijeniti svjetlinu
  2. Uklonio sam igru cigle jer je nisam mogao natjerati da je sastavi
  3. Promijenio sam šifriranje boja tetris blokova tako da su svi bili različitih boja
  4. Preuredio sam jelovnik
  5. Implementirao sam opciju za reprodukciju animacija sa SD kartice
  6. Dodao sam praćenje rezultata i opciju prikaza rezultata u meniju

Priloženi kôd bi trebao odmah djelovati, ali ako ne, moj prijedlog bi bio uklanjanje igara za koje se čini da izazivaju poruke o greškama i ponovna provjera koda dok ne otkrijete gdje je problem. Zatim postupno dodajte još složenosti.

Originalni autor ovog koda napravio je fantastičan posao u izgradnji nečega što je zaista modularno i lako ga je dodati. Dodavanje u dodatne slučajeve nije tako teško za dodavanje više funkcija u tablicu.

Opcije u meniju su:

  1. SD kartica - Reproducira animacije pohranjene na SD kartici
  2. Tetris
  3. Zmija
  4. Pong
  5. Dice - Generator slučajnog nuber -a između 1 i 6
  6. Animacija - Zbirka animacija iz biblioteke FastLED
  7. Stars Animation - EDIT - Sada sam implementirao Conwayovu igru života umjesto ove animacije
  8. Rainbow Animation
  9. High Scores - Prikazuje visoke ocjene za tetris i zmiju

Prije nego počnete igrati morate stvoriti dvije txt datoteke na SD kartici, jednu koja se zove "teths.txt", a druga "snkhs.txt". U obje ove datoteke stavite broj 0, a zatim ih spremite u osnovni direktorij SD kartice. Ovo su datoteke za praćenje visokih bodova i ažurirat će se svaki put kada se pobijedi visoka ocjena. Ako ga želite resetirati, samo promijenite vrijednosti na 0 na računaru.

Nakon što postavite program LED_table na Arduino, možete otvoriti serijski monitor i trebali biste moći vidjeti bluetooth naredbe dok ih šaljete - na ovaj način znate da sve radi dobro.

Korak 9: Uživajte

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

Ostaje samo da postavite glavni LED tablični kod na Mega, a zatim uživate u igri i javite mi svoje najbolje rezultate!

Još uvijek čekam da stignu dijelovi za ploču stola (aluminijski T dio i staklo), ali stol sada funkcionira dobro i na njemu se mogu igrati.

Javite mi ako imate komentare, izmjene ili uočite greške koje sam napravio.

Korak 10: Ažurirajte

Image
Image
Update
Update
Update
Update

Sada je potpuno završeno!:)

Konačno sam uzeo isporuku aluminijske T sekcije za ivice i najbolje sam se snašao u postavljanju spoja (ispostavilo se da je 45 stupnjeva jedan od težih kutova), ali je gotovo potpuno četvrtast. Za gornji dio odlučio sam nabaviti deblji stakleni list (425 x 425 x 8 mm), a donju sam stranu zamrznuo koristeći sprej za glazuru od stakla Rustoleum. Koristio sam običnu brtvu (silikonsko brtvilo) za spajanje gornjih i kutnih komada tako da po potrebi dođe do savijanja spojeva.

Ažurirano ažuriranje. Sada sam u Conway -ovu igru života dodao opciju 7 u izborniku, a ne animaciju sa zvijezdama jer je nikad nisam koristio. Ako ne znate koja je ovo igra, poguglajte je, ali u osnovi je to igra s nula igrača koja prikazuje evoluciju zasnovanu na tri jednostavna pravila. Conwayjeva igra života

Ažurirajte^3. Napravio sam neke izmjene u kodu tako da sada uključuje ispravku greške u vezi sa prigušivanjem crvenih LED dioda, a uključuje i animaciju božićnog drvca kao opciju 11 u izborniku. Uživajte.

Preporučuje se: