- Potrebni materiali:
- Shema vezja:
- Ustvarjanje aplikacije Android s pomočjo obdelave:
- Razumevanje kode obdelave:
- Programiranje vašega Arduina:
- Oblikovanje vezij in tiskanih vezij s pomočjo EasyEDA:
- Izračun in naročanje vzorcev prek spleta:
- Delovanje zaslona tablice Bluetooth:
Najsi gre za dolge napete avtoceste ali vhodna vrata vaših zdravnikov, povsod imamo postavljene table z informacijami. Toda te table so pogosto dolgočasne in jih občasno ni mogoče konfigurirati v skladu z našimi interesi. V tem projektu bomo torej izdelali tablo z znaki, nadzorovano z Bluetoothom, z uporabo matričnega zaslona 8 * 8. Edinstvena značilnost tega projekta je njegova aplikacija za Android, ki uporabniku omogoča, da z mobilnega telefona posamezno nadzoruje vseh 64 LED. To omogoča uporabniku, da z lahkoto ustvari zasnove po meri in jih prikaže na LED zaslonu, zveni zanimivo, kajne? !! Začnimo torej…
Potrebni materiali:
- Arduino Pro mini
- MAX7219
- Modul Bluetooth HC-05
- 8 * 8 LED matrični zaslon
- 20k upor
- DC sodček Jack
Shema vezja:
Shema vezja te plošče LED, ki jo nadzoruje Bluetooth, zgrajena z uporabo aplikacije EasyEDA. Iste sheme bomo uporabili za razvoj PCB-ja iz njega in izdelavo z uporabo EasyEDA.
Vezje je precej naravnost naprej. Celoten projekt napaja 12-voltni adapter, ki ga neposredno damo na Raw pin plošče Arduino. Ta neobdelana napetost se nato uravna na + 5V, ki se dovaja na modul Bluetooth in na MAX7219 IC. Zatiči Tx in Rx modula Bluetooth so povezani z D11 in D10 Arduina, da se omogoči serijska povezava.
Digitalni zatiči D5 do D7 so povezani z IC MAX7219 za pošiljanje in sprejemanje podatkov prek komunikacije SPI. ISET-ov zatič MAX7219 je potegnjen visoko skozi 20k upor.
Za ta projekt sem izdelal tiskano vezje, lahko dobite projektno datoteko tiskanega vezja in ga uporabite ali zgradite vezje na plošči. Vendar pa je zaradi njegove zapletenosti priporočljivo kupiti modul 8x8 zaslona ali uporabiti PCB
Matrica 8x8 je zelo uporaben prikazovalni modul in se lahko uporablja v številnih kul projektih:
- Nadzor 8x8 LED matrice z Raspberry Pi
- Pomikanje po besedilnem prikazu na 8x8 LED matriki z uporabo Arduina
- 8x8 LED matrica z uporabo Arduina
- 8x8 LED matrično povezovanje z mikrokrmilnikom AVR
Ustvarjanje aplikacije Android s pomočjo obdelave:
Preden začnemo programirati svoj Arduino, moramo vedeti, katere podatke bomo prejeli iz mobilnega telefona, da se bomo nanje odzvali. Oglejmo si torej, kako je ustvarjena aplikacija za Android in kako jo lahko uporabljate na pametnem telefonu za nadzor matrike 8x8 LED.
Aplikacija Android za ta projekt je bila ustvarjena s programsko opremo Processing. Je odprtokodna razvojna aplikacija, ki jo je mogoče enostavno prenesti in uporabiti za razvoj zanimivih projektov z uporabo Arduina ali drugih mikrokrmilnikov, saj lahko razvija aplikacije za Android in sistemske aplikacije. Z obdelavo smo že izvedli nekaj projektov, ki si jih lahko ogledate s klikom na spodnje povezave.
- DIY FM radio z uporabo obdelave
- Nadzor navidezne resničnosti / kretenj z uporabo Arduina
- Zasebna klepetalnica z uporabo Arduina.
- Radarski sistem Arduino z uporabo APP za obdelavo in ultrazvočnim senzorjem
- Zaznavanje in sledenje obrazov v realnem času z uporabo Arduina
- DIY merilnik hitrosti z uporabo Arduina in obdelave
- Igra ping pong z uporabo merilnika pospeška Arduino
- Dvonožni robot, ki uporablja Arduino
- DIY Arduino termalna kamera
Če se vrnem na temo, mi je nemogoče razložiti celotno kodo aplikacije za Android, zato bi se morali sami naučiti obdelave in nato pogledati kodo, da bi razumeli, kako deluje. Ljudje, ki so pripravljeni preskočiti postopek učenja, lahko aplikacijo android prenesejo s spodnje povezave
- Prenesite aplikacijo Android
Spodaj je vmesnik naše aplikacije za Android:
Datoteko APK lahko neposredno namestite v katero koli aplikacijo za Android in jo zaženete kot katero koli drugo aplikacijo. Prepričajte se, da je vaša naprava Bluetooth HC-05 poimenovana kot »HC-05«, saj bo le tako delovala.
Razumevanje kode obdelave:
Ljudje, ki jih zanima, kaj se dogaja za zaslonom, lahko berejo naprej, drugi pa lahko preskočijo na naslednji naslov. V bistvu se aplikacija Android med zagonom poveže z napravo Bluetooth, imenovano "HC-05", in prikaže nabor 64 LED v obliki krogov. Potem, ko uporabnik pritisne krog, krog postane rdeč in številka kroga pošlje Arduino prek Bluetootha, po prejemu številke kroga Arduino vklopi LED. Poglejmo pomembne vrstice programa Processing, da bomo bolje razumeli. Popolno kodo aplikacije za Android lahko prenesete s spodnje povezave.
- Obdelava kode za aplikacijo Android
Za prikazovanje 64 LED uporabljamo razrede in predmete, da lahko vsakega zlahka naslovimo. Kot lahko vidite v spodnji kodi, uporabljamo zanko for za iteracijo od 1 do 64 z uporabo matrike. To je bilo, da bo vsaka LED imela svojo vrednost položaja X, položaja Y in barve in jih lahko enostavno spremenimo.
// pokaže vse LED diode za (int i = 1; i <= 64; i ++) led_array.display (); // Vsi led prikažejo razred Led { float X_Pos; float Y_Pos; barvna barva; // CONSTRUTOR Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; barva = tempc; } void display () { fill (color); elipsa (X_Pos, Y_Pos, led_dia, led_dia); } }
LED se na zaslonu naložijo v enakem vrstnem redu kot na zaslonu. Vsaka LED je ločena z razdaljo, ki je enaka premeru LED, na ta način lahko zlahka ločimo, katero LED trenutno izbere uporabnik. Kot je prikazano v spodnjem programu, ustvarimo matriko, v kateri ima vsak element informacije o položaju X, Y in barvi LED.
void load_leds () { led_array = novo Led; int a = 1; for (int j = 0; j <= 7; j ++) { float y = višina / 6 + j * (led_dia * 1,5); za (int i = 0; i <= 7; i ++) { float x = (širina / 6) + i * (led_dia * 1,5); // polnjenje (255); // elipsa (x, y, led_dia, led_dia); led_array = novo Led (x, y, barva (255,255,255)); a ++; } } }
Glavni korak v programu je preveriti, ali je uporabnik pritisnil katero koli LED in če je odgovor pritrdilen, moramo spremeniti barvo LED in poslati številko LED prek Bluetootha. Ker se zdaj lahko enostavno obrnemo na lokacijo in barvo vsake LED diode, lahko to storimo s primerjavo vrednosti X, Y, na katero je uporabnik pritisnil, z vrednostjo X, Y LED. Če se vrednosti med seboj združita, spremenimo stanje LED in številko pošljemo tudi prek Bluetootha, kot je prikazano spodaj.
// preverimo, če je miška nad led // Če je odgovor da, pošljite številko led za (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = novo Led (led_array.X_Pos, led_array. Y_Pos, led_color); bajtni podatki = {bajt (i)}; bt.broadcast (podatki); } }
Poleg tega lahko program ponastavi celotno LED tako, da jih vse izklopi, prav tako pa lahko LED zasveti rdeče (ON) ali belo (OFF), tako da imamo za to tudi gumb za preklop. Prikaže se preklopni gumb in čaka na vnos. Če pritisnete, se izvede ustrezen ukrep. Koda, ki stori enako, je spodaj prikazana kot funkcija, ki se pokliče znotraj zanke za risanje.
void load_buttons () { rectMode (CENTER); textAlign (CENTER, CENTER); noStroke (); izpolnite (# 1BF2D4); rect (širina / 2-širina / 4, višina / 1,3, širina / 4, višina / 12); izpolnite (0); besedilo ("Ponastavi", širina / 2-širina / 4, višina / 1,3); // gumb 1 if (rdeča == resnična) {fill (# 080F89); rect (širina / 2 + širina / 4, višina / 1,3, širina / 4, višina / 12); polnilo (255,0,0); besedilo ("RDEČE", širina / 2 + širina / 4, višina / 1,3);} // gumb 2, če (rdeča == napačna) {izpolni (# 080F89); rect (širina / 2 + širina / 4, višina / 1,3, širina / 4, višina / 12); izpolnite (255); text ("WHITE", width / 2 + width / 4, height / 1.3);} // gumb 2 } void read_buttons () { if (mousePress && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (barvni_val == - 14945580) { bajtni podatki = {0}; bt.broadcast (podatki); println ("RESET"); load_leds (); // naložimo vse led v položaju in barvi } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (podatki); če (rdeča == resnična) rdeča = napačna; sicer če (rdeča == napačna) rdeča = resnična; println ("TOGGLE"); } barva_val = 0; } }
Programiranje vašega Arduina:
Popolna Arduino Program za ta Bluetooth nadzoruje projekt brezžični svet je naveden na dnu tega zaslona; lahko ga uporabite neposredno in naložite na tablo. Pomembne vrstice v programu so razložene spodaj.
Modul Bluetooth je povezan na pin 10 in 11, zato moramo uporabiti programsko serijo, da omogočimo serijsko komunikacijo na teh nožicah, nato pa lahko poslušamo podatke s teh nožic. Podatke, ki jih dobimo od modula Bluetooth, dobimo in jih shranimo v spremenljivko, ki se imenuje dohodna . Če je vrednost dohodne vrednosti »0«, bomo s spodnjo kodo izklopili vse LED
if (BT.available ()) { incoming = BT.read (); Serial.println (dohodno); if (dohodno == 0) m.clear (); // Počisti zaslon
Z uporabo dohodnih vrednosti moramo določiti, katero LED je uporabnik pritisnil na mobilni telefon in vreme, da vklopi ali izklopi to LED. Torej preverimo, ali je vrednost enaka 100. Če je vrednost 10, to pomeni, da je uporabnik prosil za preklop barve LED. Torej spremenljivko preklopimo v rdečo, da ugotovimo, ali naj LED vklopi ali izklopi.
else if (incoming == 100) // Preverite, ali naj vklopimo ali izklopimo LED { if (red == true) red = false; sicer če (rdeča == napačna) rdeča = resnična; Serial.print ("RDEČA:"); Serial.println (rdeča); }
Končno , če je vrednost od 65 let, to pomeni, da je uporabnik pritisnil na LED. Na podlagi številke od 1 do 64 moramo določiti, na katero LED je uporabnik pritisnil. Za preklop te LED bomo potrebovali vrednost vrstice in stolpca te LED, ki se izračuna in shrani na spremenljivki X oziroma Y in je prikazana na spodnji kodi. Končno na podlagi vrednosti spremenljivke rdeče vklopimo ali izklopimo LED v skladu z zahtevo uporabnika
sicer če (dohodno <= 64) {// izračunajte, kam naj se vklopi ro IZKLOP preklop LED = true; Y = dohodni / 8; X = dohodni - (Y * 8); če (dohodni% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); če (rdeča == resnična) m.setDot ((X - 1), (Y), resnična); // LED sveti drugače, če (rdeča == false) m.setDot ((X - 1), (Y), false); // LED IZKLOPLJENO }
Oblikovanje vezij in tiskanih vezij s pomočjo EasyEDA:
Za zasnovo zaslona z nadzorovano matrico Bluetooth smo izbrali spletno orodje EDA, imenovano EasyEDA. Pred tem sem že večkrat uporabljal EasyEDA in se mi je zdel zelo priročen, saj ima dobro zbirko odtisov in je odprtokoden. Po načrtovanju PCB lahko naročimo vzorce PCB z njihovimi poceni storitvami izdelave PCB. Ponujajo tudi storitev nabave komponent, kjer imajo veliko zalogo elektronskih komponent in uporabniki lahko naročijo njihove zahtevane komponente skupaj z naročilom PCB.
Med načrtovanjem vezij in tiskanih vezij lahko svoje načrte vezij in tiskanih vezij objavite tudi tako, da jih lahko drugi uporabniki kopirajo ali urejajo in lahko izkoristijo vaše delo. Za to vezje smo objavili tudi celotno postavitev vezij in tiskanih vezij, preverite spodnja povezava:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Lahko si ogledate katero koli plast (zgoraj, spodaj, zgornjo svilo, spodnjo sliko itd.) PCB-ja tako, da v oknu »Plasti« izberete plast.
Tudi tiskano vezje si lahko ogledate, kako bo videti po izdelavi z gumbom Photo View v EasyEDA:
Izračun in naročanje vzorcev prek spleta:
Po dokončanju zasnove tega tiskanega vezja z nadzorovano matrico Bluetooth lahko PCB naročite prek JLCPCB.com. Če želite naročiti PCB pri JLCPCB, potrebujete datoteko Gerber. Za prenos Gerberjevih datotek s tiskanega vezja na strani urejevalnika EasyEDA kliknite gumb Fabrication Output in nato naložite s strani naročila EasyBer PCB
Zdaj pojdite na JLCPCB.com in kliknite Quote Now ali gumb, nato lahko izberete število PCB-jev, ki jih želite naročiti, koliko bakrenih plasti potrebujete, debelino PCB-ja, težo bakra in celo barvo PCB-ja, kot je posnetek prikazano spodaj:
Ko ste izbrali vse možnosti, kliknite »Shrani v košarico« in nato boste preusmerjeni na stran, kjer lahko naložite svojo Gerberjevo datoteko, ki smo jo prenesli iz EasyEDA. Naložite svojo datoteko Gerber in kliknite »Shrani v košarico«. In končno kliknite Checkout Securely, da dokončate naročilo, nato pa boste nekaj dni kasneje dobili svoje PCB-je. PCB izdelujejo po zelo nizki stopnji, ki znaša 2 USD. Njihov čas izdelave je prav tako zelo manjši, kar znaša 48 ur, ko DHL dobavi 3-5 dni, v bistvu boste svoje PCB dobili v enem tednu po naročilu.
Po nekaj dneh naročanja PCB-jev sem dobil vzorce PCB v lepi embalaži, kot je prikazano na spodnjih slikah.
In potem ko sem dobil te koščke, sem na PCB prilepil vse zahtevane komponente.
V svojem tiskanem vezju sem naredil topo napako z izbiro napačnega odtisa za modul zaslona 8 * 8, zato sem moral za namestitev zaslona uporabiti ploščo Perf, kot je prikazano na sliki. Zdaj pa je odtis posodobitev na tiskani plošči in popravljeni PCB lahko naročite in modul zaslona enostavno namestite.
Delovanje zaslona tablice Bluetooth:
Ko ste pripravljeni na strojno opremo bodisi s pomočjo PCB-ja bodisi s povezavo na plošči, uporabite program Arduino, naveden na koncu strani, in ga naložite na svojo ploščo Arduino. Zgoraj je na voljo tudi datoteka APK za android aplikacijo, ki jo uporabite in namestite aplikacijo v želeno napravo Android.
Vklopite strojno opremo in v telefonu poiščite ime naprave HC-05, da se seznanite z njo. Ključ za prehod bo privzeto 1234. Po tem odprite aplikacijo, ki smo jo pravkar namestili. Aplikacija mora na vrhu zaslona prikazati napis » priključen na HC-05 «, nato se boste lahko dotaknili LED na zaslonu in opazili, da je enaka LED vklopljena tudi na plošči.
Vse LED lahko izklopite tudi s pritiskom na gumb Ponastavi in se odločite, da vklopite ali izklopite določeno LED s pritiskom na gumb za preklop. Privzeto bo vključena katera koli LED, ki jo pritisnete. Celotno delovanje projekta najdete v spodnjem videoposnetku. Če imate kakršne koli težave pri delovanju, uporabite spodnje polje za komentarje ali pišite na naših forumih za večjo tehnično pomoč. Upam, da ste razumeli vadnico in ste uživali pri njeni izdelavi.