- Potrebné materiály:
- Schéma zapojenia:
- Vytvorenie aplikácie pre Android pomocou spracovania:
- Porozumenie spracovateľskému kódu:
- Programovanie vášho Arduina:
- Dizajn obvodov a DPS pomocou EasyEDA:
- Výpočet a objednávanie vzoriek online:
- Fungovanie displeja vývesky Bluetooth:
Či už sú to dlho natiahnuté diaľnice alebo predné dvere vašich lekárov, všade máme umiestnené vývesné štíty, ktoré nám poskytujú informácie. Ale tieto vývesné štíty sú často nudné a z času na čas ich nemožno nakonfigurovať podľa nášho záujmu. Takže v tomto projekte budeme stavať vývesku Signable Bluetooth riadenú pomocou maticového displeja 8 * 8. Unikátnou vlastnosťou tohto projektu je jeho aplikácia pre Android, ktorá umožňuje používateľovi ovládať všetkých 64 LED diód jednotlivo z mobilného telefónu. To umožňuje užívateľovi ľahko vytvárať vlastné vzory a zobrazovať ich na LED displeji, znie to zaujímavo, že? !! Tak poďme na to…
Potrebné materiály:
- Arduino Pro mini
- MAX7219
- Modul Bluetooth HC-05
- 8 * 8 LED maticový displej
- 20k rezistor
- DC hlaveň Jack
Schéma zapojenia:
Schéma zapojenia, ktorú táto doska LED ovládaná technológiou Bluetooth postavila pomocou aplikácie EasyEDA. Rovnaké schémy použijeme na to, aby sme z nich vyvinuli PCB a vyrobili ich pomocou EasyEDA.
Okruh je dosť priamy. Celý projekt je napájaný 12V adaptérom, ktorý je priamo daný Raw kolíku dosky Arduino. Toto surové napätie sa potom reguluje na + 5 V, ktoré sa dodáva do modulu Bluetooth a MAX7219 IC. Kolíky Tx a Rx modulu Bluetooth sú pripojené k D11 a D10 Arduina, aby bolo možné sériové pripojenie.
Digitálne kolíky D5 až D7 sú pripojené k MAX7219 IC na odosielanie a prijímanie údajov prostredníctvom komunikácie SPI. Pin ISET MAX7219 je vytiahnutý vysoko cez odpor 20 k.
Pre tento projekt som vyrobil PCB, môžete získať návrhový súbor PCB a použiť ho rovnako alebo vytvoriť obvod na doske. Kvôli jeho zložitosti sa však odporúča kúpiť si buď modul displeja 8x8, alebo použiť dosku s plošnými spojmi
Matica 8x8 je veľmi užitočný zobrazovací modul a môže byť použitý v mnohých skvelých projektoch:
- Ovládanie LED matice 8x8 pomocou Raspberry Pi
- Rolovanie textového displeja na matici LED 8x8 pomocou Arduina
- 8x8 LED Matrix pomocou Arduina
- 8x8 LED maticové prepojenie s mikrokontrolérom AVR
Vytvorenie aplikácie pre Android pomocou spracovania:
Skôr ako začneme programovať naše Arduino, mali by sme vedieť, aký typ údajov dostaneme z mobilného telefónu, aby sme na ne odpovedali. Poďme sa teda pozrieť na to, ako vzniká aplikácia pre Android a ako ju môžete vo svojom smartfóne používať na ovládanie matice LED 8x8.
Aplikácia pre Android pre tento projekt bola vytvorená pomocou softvéru Processing. Je to vývojová aplikácia Open-Source a dá sa ľahko stiahnuť a použiť na vývoj zaujímavých projektov pomocou Arduina alebo iných mikrokontrolérov, pretože dokáže vyvíjať aplikácie pre Android a systémové aplikácie. Pomocou Spracovania sme už vykonali niekoľko projektov a môžete si ich skontrolovať kliknutím na odkazy nižšie.
- DIY FM rádio pomocou spracovania
- Ovládanie virtuálnej reality / gestami pomocou Arduina
- Súkromná chatovacia miestnosť pomocou Arduina.
- Radarový systém Arduino využívajúci spracovanie APP a ultrazvukový senzor
- Detekcia a sledovanie tváre v reálnom čase pomocou Arduina
- DIY rýchlomer pomocou Arduina a spracovania
- Hra Ping Pong pomocou akcelerometra Arduino
- Dvojnohý robot používajúci Arduino
- DIY termovízna kamera Arduino
Keď sa vrátim k téme, je pre mňa nemožné vysvetliť celý kód aplikácie pre Android, takže by ste sa museli naučiť spracovávať sami a potom sa pozrieť na kód, aby ste pochopili, ako to funguje. Preto si ľudia, ktorí sú ochotní proces učenia preskočiť, môžu stiahnuť aplikáciu pre Android z nasledujúceho odkazu
- Stiahnite si aplikáciu pre Android
Ďalej je uvedené rozhranie našej aplikácie pre Android:
Súbor APK je možné priamo nainštalovať do ľubovoľnej aplikácie pre Android a spustiť ako každú inú aplikáciu. Uistite sa však, že je vaše zariadenie Bluetooth HC-05 pomenované ako „HC-05“, pretože až potom bude fungovať.
Porozumenie spracovateľskému kódu:
Ľudia, ktorí majú záujem vedieť, čo sa deje za obrazovkou, môžu čítať ďalej, iní môžu preskočiť na ďalší nadpis. Aplikácia pre Android sa v podstate pripája k zariadeniu Bluetooth s názvom „HC-05“ počas spustenia a zobrazuje sadu 64 LED diód vo forme kruhov. Keď potom používateľ stlačí kruh, kruh sa zmení na červený a číslo kruhu sa odošle do Arduina cez Bluetooth. Po prijatí čísla kruhu Arduino rozsvieti LED. Pozrime sa na dôležité riadky programu Processing, aby sme tomu lepšie porozumeli. Celý kód aplikácie pre Android je možné stiahnuť z nasledujúceho odkazu.
- Spracováva sa kód pre aplikáciu pre Android
Pomocou tried a objektov zobrazujeme 64 LED diód, aby sme mohli ľahko osloviť každú z nich. Ako môžete vidieť v nasledujúcom kóde, na iteráciu od 1 do 64 pomocou poľa používame slučku for . To bolo, že každá LED bude mať svoju vlastnú hodnotu X polohy, Y polohy a farby a my ich môžeme ľahko meniť.
// vypne všetky led pre (int i = 1; i <= 64; i ++) led_array.display (); // Všetky led zobrazené triedy Led { float X_Pos; float Y_Pos; farba farba; // LED CONSTRUTOR (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; farba = tempc; } void display () { fill (color); elipsa (X_Pos, Y_Pos, led_dia, led_dia); } }
LED diódy sa na obrazovke načítajú v rovnakom poradí ako displej. Každá LED je oddelená vzdialenosťou rovnajúcou sa priemeru LED, vďaka čomu môžeme ľahko rozlíšiť, ktorú LED si užívateľ momentálne vyberie. Ako je znázornené v nasledujúcom programe, vytvoríme pole, v ktorom každý prvok obsahuje informácie o polohe X, Y a farbe LED.
void load_leds () { led_array = new Led; int a = 1; pre (int j = 0; j <= 7; j ++) { float y = výška / 6 + j * (led_dia * 1,5); pre (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1,5); // fill (255); // elipsa (x, y, led_dia, led_dia); led_array = new Led (x, y, color (255,255,255)); a ++; } } }
Hlavným krokom v programe je skontrolovať, či používateľ stlačil niektorú LED, a ak áno, musíme zmeniť farbu LED a odoslať číslo LED cez Bluetooth. Pretože teraz môžeme adresovať umiestnenie a farbu každej LED, môžeme to urobiť jednoduchým porovnaním hodnôt X, Y, kde používateľ stlačil, s hodnotou X, Y LED. Ak sa hodnoty zlúčia, zmeníme stav LED a taktiež pošleme číslo cez Bluetooth, ako je to zobrazené nižšie.
// skontrolujte, či je myš nad led // Ak áno, pošlite číslo led pre (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 = nový Led (led_array.X_Pos, led_array). Y_Pos, led_color); byte data = {byte (i)}; bt.broadcast (dáta); } }
Okrem toho môže program tiež resetovať celú LED vypnutím všetkých a tiež môžete vytvoriť LED rozsvietenú červenou (ON) alebo bielou (OFF), takže máme k dispozícii aj prepínacie tlačidlo. Zobrazí sa prepínacie tlačidlo a čaká na vstup. Po stlačení sa vykoná príslušná akcia. Kód, ktorý urobí to isté, je uvedený nižšie ako funkcia, ktorá sa volá vo vnútri slučky draw.
void load_buttons () { rectMode (CENTER); textAlign (CENTER, CENTER); noStroke (); vyplniť (# 1BF2D4); priamy (šírka / 2-šírka / 4, výška / 1,3, šírka / 4, výška / 12); vyplniť (0); text („Resetovať“, šírka / 2-šírka / 4, výška / 1,3); // tlačidlo 1 if (red == true) {fill (# 080F89); priamy (šírka / 2 + šírka / 4, výška / 1,3, šírka / 4, výška / 12); výplň (255,0,0); text ("ČERVENÉ", šírka / 2 + šírka / 4, výška / 1,3);} // tlačidlo 2 if (červená == nepravda) {fill (# 080F89); priamy (šírka / 2 + šírka / 4, výška / 1,3, šírka / 4, výška / 12); výplň (255); text ("BIELY", šírka / 2 + šírka / 4, výška / 1,3);} // tlačidlo 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { byte data = {0}; bt.broadcast (dáta); println ("RESET"); load_leds (); // načítať všetky led v pozícii a farbe } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (dáta); if (red == true) red = false; inak if (red == false) red = true; println ("TOGGLE"); } color_val = 0; } }
Programovanie vášho Arduina:
Kompletné Arduino Program pre tento Bluetooth riadené bezdrôtové projekt Board je uvedený na spodnej časti obrazovky; môžete ho použiť priamo a nahrať na svoju nástenku. Dôležité riadky v programe sú vysvetlené nižšie.
Modul Bluetooth je pripojený k pinom 10 a 11, a preto musíme na umožnenie sériovej komunikácie na týchto pinoch použiť softvérové sériové rozhranie a potom môžeme z týchto pinov počúvať údaje. Získame údaje prijaté z modulu Bluetooth a uložíme ich do premennej s názvom prichádzajúce . Ak je hodnota prichádzajúceho signálu „0“, pomocou nižšie uvedeného kódu vypneme všetky LED diódy
if (BT.available ()) { incoming = BT.read (); Serial.println (prichádzajúci); if (prichádzajúci == 0) m.clear (); // Vymaže displej
Pomocou hodnôt prichádzajúcich musíme určiť, ktorú LED diódu stlačil používateľ na mobilnom telefóne a počasie, aby túto LED rozsvietila alebo zhasla. Takže skontrolujeme, či je hodnota rovná 100. Ak je hodnota 10, znamená to, že používateľ požiadal o prepínanie farby LED. Prepíname teda premennú červenú, aby sme vedeli, či má byť LED zapnutá alebo vypnutá.
else if (incoming == 100) // Skontrolujte, či by sme mali rozsvietiť alebo zhasnúť LED { if (red == true) red = false; inak if (red == false) red = true; Serial.print ("ČERVENÉ:"); Serial.println (červená); }
Nakoniec, ak je hodnota vyššia ako 65, znamená to, že užívateľ stlačil LED. Na základe čísla od 1 do 64 musíme určiť, ktorú LED diódu užívateľ stlačil. Na prepnutie tejto LED budeme potrebovať hodnotu riadku a stĺpca tejto LED, ktorá je vypočítaná a uložená na premennej X a Y a uvedená v kóde nižšie. Nakoniec na základe hodnoty premennej červenej buď rozsvietime alebo zhasneme LED podľa požiadavky používateľa
else if (incoming <= 64) {// Vypočítajte, kam sa má ZAPNÚŤ ro VYPNÚŤ prepínač LED = pravda; Y = prichádzajúci / 8; X = prichádzajúci - (Y * 8); if (prichádzajúce% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (red == true) m.setDot ((X - 1), (Y), true); // LED svieti inak if (red == false) m.setDot ((X - 1), (Y), false); // LED nesvieti }
Dizajn obvodov a DPS pomocou EasyEDA:
Na navrhnutie tohto displeja s technológiou Bluetooth Controlled Matrix sme si vybrali online nástroj EDA s názvom EasyEDA. Aplikáciu EasyEDA som už používal mnohokrát a zistil som, že je veľmi pohodlné ju používať, pretože má dobrú zbierku stôp a je otvorený. Po dizajne DPS si môžeme objednať vzorky DPS prostredníctvom ich lacných služieb výroby DPS. Ponúkajú tiež službu sourcingu komponentov, kde majú veľkú zásobu elektronických komponentov a používatelia si môžu objednať požadované komponenty spolu s objednávkou PCB.
Pri navrhovaní vašich obvodov a dosiek plošných spojov môžete tiež zverejniť svoje návrhy obvodov a dosiek plošných spojov, aby ich ostatní používatelia mohli kopírovať alebo upravovať a využívať tak výhody vašej práce. Pre tento obvod sme tiež zverejnili celé naše usporiadania obvodov a dosiek plošných spojov, skontrolujte odkaz nižšie:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Môžete si pozrieť ktorúkoľvek vrstvu (vrchná, spodná, vrchná vrstva, spodná vrstva atď.) DPS výberom vrstvy z okna „Vrstvy“.
DPS, ako bude vyzerať po výrobe, si môžete prezrieť aj pomocou tlačidla Photo View v aplikácii EasyEDA:
Výpočet a objednávanie vzoriek online:
Po dokončení návrhu tohto Bluetooth Controlled Matrix PCB si môžete objednať PCB cez JLCPCB.com. Pre objednanie DPS od JLCPCB potrebujete Gerber File. Ak chcete stiahnuť súbory Gerber z vašej PCB, stačí kliknúť na tlačidlo Výstup výroby na stránke editora EasyEDA a potom stiahnuť zo stránky objednávky EasyEDA PCB.
Teraz choďte na JLCPCB.com a kliknite na Quote Now alebo tlačidlo, potom môžete zvoliť počet PCB, ktoré chcete objednať, koľko vrstiev medi potrebujete, hrúbku PCB, hmotnosť medi a dokonca aj farbu PCB, napríklad snímku zobrazené nižšie:
Po výbere všetkých možností kliknite na „Uložiť do košíka“ a dostanete sa na stránku, kde môžete nahrať váš súbor Gerber, ktorý sme si stiahli z EasyEDA. Nahrajte svoj súbor Gerber a kliknite na tlačidlo „Uložiť do košíka“. A nakoniec kliknite na Checkout Securely pre dokončenie objednávky, potom dostanete svoje PCB o pár dní neskôr. Vyrábajú PCB za veľmi nízku cenu, čo sú 2 doláre. Ich doba výroby je tiež veľmi krátka, čo je 48 hodín s dodávkou DHL 3 - 5 dní, v podstate dostanete PCB do týždňa od objednania.
Po niekoľkých dňoch objednania DPS som dostal vzorky DPS v peknom obale, ako je znázornené na obrázkoch nižšie.
A po získaní týchto kúskov som všetky potrebné komponenty nadpájal na DPS.
Na svojom PCB som urobil tupú chybu výberom nesprávnej stopy pre modul displeja 8 * 8, a preto som musel na pripevnenie displeja použiť dosku Perf, ako je to znázornené na obrázku. Ale teraz je stopou aktualizácia na DPS a vy si môžete objednať opravenú DPS a ľahko namontovať modul displeja.
Fungovanie displeja vývesky Bluetooth:
Keď ste pripravení na hardvér, buď získaním DPS alebo pripojením na doske, použite program Arduino uvedený na konci stránky a nahrajte ho na svoju dosku Arduino. Vyššie je uvedený aj súbor APK aplikácie pre Android. Použite ho a nainštalujte si aplikáciu na svoje preferované zariadenie Android.
Zapnite hardvér a vyhľadajte v telefóne názov zariadenia HC-05, aby ste ho mohli spárovať. Prístupový kľúč bude predvolene 1234. Potom otvorte aplikáciu, ktorú sme práve nainštalovali. Aplikácia by mala zobrazovať „ pripojené k HC-05 “ v hornej časti obrazovky, potom sa budete môcť dotknúť LED diódy na obrazovke a všimnúť si, že rovnaká LED dióda svieti tiež na doske.
Môžete tiež vypnúť všetky LED diódy stlačením tlačidla Reset a rozhodnúť sa pre zapnutie alebo vypnutie konkrétnej LED diódy stlačením tlačidla Prepnúť. Predvolene bude zapnutá ktorákoľvek LED, ktorú stlačíte. Kompletné fungovanie projektu nájdete vo videu nižšie. Ak máte problém s uvedením do prevádzky, použite pole pre poznámky nižšie alebo napíšte na naše fóra, kde získate ďalšiu technickú pomoc. Dúfam, že ste pochopili výukový program a páčilo sa vám jeho zostavenie.