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, Srpanj
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:) Htio sam pokušati odgovoriti na pitanja za koja mi je trebalo neko vrijeme da shvatim i pružiti detaljne upute pa ako ste vrlo upoznati s hobistima elektroniku, tada 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 zaslon veličine 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 (ja sam koristio ovaj i zalemio zaglavlja) -
  3. Micro 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 na ebayu ima stotinu drugih)
  7. Ikea LACK stol (klasični hobisti) -
  8. Pristup laserskom rezaču za šperploču od 3 mm (ili vrlo mirnom rukom). Lasersko izrezane dijelove možete naručiti putem interneta na raznim 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 vam izrezati prilagođene komade, ali ja sam koristila 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 (vjerojatno desetak tijekom 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 unutarnji krug (ne brinite, vrlo je jednostavno)

Potrebni alati:

  1. Lemilica + lem
  2. Par isječaka
  3. Skidači žica
  4. Dremel ili neka vrsta ubodne pile za razbijanje 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 za poziv je izrezati LED traku na potrebne duljine. Ova LED traka je stvarno jednostavna za upotrebu jer ima samo 3 igle i čini da Arduino obavi pravi posao. Izrezao sam kalem na 12 dijelova od kojih svaki ima 12 LED dioda, kako je prikazano na slici, i položio 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 spomenutu u nacrtu projekta). Da bih to učinio, odrezao 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 pozornost na strelicu usmjerenu 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 Fritzing 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 kad 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 je 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 trake
Lemljenje matrice i trake
Lemljenje matrice i trake
Lemljenje matrice i trake
Lemljenje matrice i trake
Lemljenje matrice i trake

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 slijedi zmiju. Nakon što je ovo položeno, pažljivo lemite svaki vodeći red do sljedećeg, kao što 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 se nositi s napajanjem 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 tračnicu, a ne na 5V. Nakon što je stripboard završen, moramo spojiti +VE i GND na LED traku te također upotrijebiti drugu polovicu skakača 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 tračnicu na Vin pin i GND na bilo koji GND pin na Arduinu.

Na kraju, možemo spojiti 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 učitati skicu s najgorem trakom 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, jedinica HC05 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 - to znatno olakšava programiranje i izbjegava korištenje biblioteke "softverska serijska".

Napomena: HC05 jedinica će imati ili 5V ili 3.3V ulaz i općenito radi na 3.3V logici pa sam je spojio na 3.3V šinu. Neki drugi instruktori pokazali su Tx (na Arduinu) do Rx (na HC05 jedinici) s krugom potencijalnog razdjelnika koji bi izbacio 5 V logiku iz Arduina na izvornu razinu za HC05 modul. To je razlog zašto sam imao 1k i 2k otpornike na popisu dijelova; međutim, nisam se trudio i čini se savršeno sretnim na mom stolu:)

Korak 4: Hakiranje stola

Hakiranje stola
Hakiranje stola
Hakiranje stola
Hakiranje stola
Hakiranje stola
Hakiranje stola

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 ploče. 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 unutarnje 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 u približno odgovarajućim položajima prije nego što 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 ga 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 izrezani dijelovi

Laserski izrezani dijelovi
Laserski izrezani dijelovi
Laserski izrezani dijelovi
Laserski izrezani dijelovi
Laserski izrezani dijelovi
Laserski izrezani 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. Izrađene 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. Taj bi se jaz mogao smanjiti na 5 mm jer se čini da imam malo propuštanja 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. Nakon što ste sretni, ponovno rastavite matricu i poprskajte je bijelom bojom kako biste poboljšali reflektirajuće karakteristike stola. Kad se osuše, ponovno 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: Gledijator

Gledijator
Gledijator
Gledijator
Gledijator

Sada smo implementirali sav hardver pa možemo početi gledati softver. Preuzeo sam i instalirao softver zvan Glediator za stvaranje animacija za LED diode (https://www.solderlab.de/index.php/software/glediat…). Upute za instalaciju mogu biti pomalo škakljive, ali pomno pratite web stranicu i trebali biste biti u redu. Također moramo skicu skinuti s web stranice Glediator kako bismo je prenijeli na Arduino (https://www.solderlab.de/index.php/downloads/catego…). Koristimo LED diode WS2812B pa svakako preuzmite pravu (WS2812 Glediator sučelje). Nakon što otvorite ovu skicu, promijenite NUMBER_OF_PIXELS na 144 i prenesite je na Arduino.

Nakon što instalirate Glediator, možemo početi igrati animacije na stolu. Prvo moramo postaviti veličinu matrice na 12 x 12 u softveru Glediator, a također postaviti i tip izlaza na HSBL - Horizontalna zmija (početna) 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 priključak 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 internetu 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 na tome, 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 datoteka Glediator, softver ima grešku koja znači da se ne sjeća kako ste ožičili 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 to uvelike olakšati. Prvo ćete morati preuzeti aplikaciju za svoj pametni telefon. Koristio sam https://play.google.com/store/apps/details?id=com…. ali vjerojatno 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.

Prenesite priloženu skicu na Mega i postavite serijsku brzinu na svom računalu na 9600. Isključite napajanje jedinice HC05, a zatim pritisnite gumb na njoj prema dolje pri ponovnom priključivanju. Treptanje bi sada trebalo biti otprilike 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. Nazvao 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 modula HC05, a zatim ga ponovno 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šćuje li serijski monitor na računalu 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 temelju vrijednosti potenciometra kako bismo mogli promijeniti svjetlinu
  2. Uklonio sam igru cigle jer je nisam mogao natjerati da je sastavi
  3. Promijenio sam kodiranje boja tetris blokova tako da su svi bili različitih boja
  4. Promijenio sam jelovnik
  5. Implementirao sam opciju za reprodukciju animacija sa SD kartice
  6. Dodao sam praćenje rezultata i opciju prikaza rezultata u izborniku

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

Izvorni 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 izborniku 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 Conwayjevu igru života umjesto ove animacije
  8. Duga animacija
  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 korijensku mapu SD kartice. Ovo su datoteke za praćenje visokih bodova i ažurirat će se svaki put kad se pobijedi visoka ocjena. Ako ga želite resetirati, samo promijenite vrijednosti na 0 na računalu.

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živati
Uživati
Uživati
Uživati
Uživati
Uživati

Ostaje samo prenijeti glavni LED tablični kod na Mega, a zatim uživati u igri i javiti 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 bilo kakvih komentara, izmjena ili uočite greške koje sam napravio.

Korak 10: Ažurirajte

Image
Image
ažuriranje
ažuriranje
ažuriranje
ažuriranje

Sada je potpuno završeno!:)

Konačno sam preuzeo aluminijski T -dio za rub i učinio svoj najbolji posao pri postavljanju spoja (pokazalo se da je 45 stupnjeva jedan od težih kutova), ali je gotovo potpuno četvrtast. Za vrh sam odlučio nabaviti deblji stakleni list (425 x 425 x 8 mm), a donju sam stranu zamrznuo pomoću spreja 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 dodao u Conwayjevu igru života kao 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 temeljenu na tri jednostavna pravila. Conwayjeva igra života

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

Preporučeni: