- Potřebné materiály:
- Kruhový diagram:
- Vytvoření aplikace pro Android pomocí zpracování:
- Porozumění zpracovatelskému kódu:
- Programování vašeho Arduina:
- Návrh obvodů a desek plošných spojů pomocí EasyEDA:
- Výpočet a objednávání vzorků online:
- Práce s displejem Bluetooth Signboard:
Ať už jsou to dlouhé protažené dálnice nebo přední dveře vašich lékařů, všude jsou umístěny vývěsní štíty, které nám poskytují informace. Ale tyto vývěsní štíty jsou často nudné a nelze je čas od času konfigurovat podle našeho zájmu. V tomto projektu tedy budeme stavět vývěsní štít řízený Bluetooth pomocí maticového displeje 8 * 8. Jedinečnou vlastností tohoto projektu je aplikace pro Android, která umožňuje uživateli ovládat všech 64 LED diod jednotlivě z mobilního telefonu. To umožňuje uživateli snadno vytvářet vlastní návrhy a zobrazovat je na LED displeji, zní to zajímavě, že? !! Pojďme tedy začít…
Potřebné materiály:
- Arduino Pro mini
- MAX7219
- Modul Bluetooth HC-05
- 8 * 8 LED maticový displej
- 20k rezistor
- DC barel Jack
Kruhový diagram:
Schéma zapojení této LED desky ovládané Bluetooth bylo vytvořeno pomocí aplikace EasyEDA. Stejná schémata použijeme k tomu, abychom z nich vyvinuli desku plošných spojů a vytvořili ji pomocí EasyEDA.
Okruh je docela přímočarý. Celý projekt je napájen 12V adaptérem, který je přímo dán na Raw pin desky Arduino. Toto surové napětí je poté regulováno na + 5 V, které je dodáváno do modulu Bluetooth a MAX7219 IC. Kolíky Tx a Rx modulu Bluetooth jsou připojeny k D11 a D10 Arduina, aby bylo umožněno sériové připojení.
Digitální piny D5 až D7 jsou připojeny k MAX7219 IC pro odesílání a příjem dat prostřednictvím komunikace SPI. Pin ISET MAX7219 je vytažen vysoko přes 20k rezistor.
Pro tento projekt jsem vyrobil desku plošných spojů, můžete získat návrhový soubor desky plošných spojů a použít stejný nebo vytvořit obvod na prkénku. Vzhledem ke své složitosti se však doporučuje koupit si modul displeje 8x8 nebo použít desku plošných spojů
Matice 8x8 je velmi užitečný zobrazovací modul a lze ji použít v mnoha skvělých projektech:
- Ovládání 8x8 LED Matrix s Raspberry Pi
- Rolování textového displeje na matici LED 8x8 pomocí Arduina
- 8x8 LED Matrix pomocí Arduina
- 8x8 LED maticové rozhraní s mikrokontrolérem AVR
Vytvoření aplikace pro Android pomocí zpracování:
Než můžeme začít programovat naše Arduino, měli bychom vědět, jaký typ dat obdržíme z mobilního telefonu, abychom na něj mohli odpovědět. Pojďme se tedy podívat na to, jak je aplikace pro Android vytvořena a jak ji můžete na svém smartphonu používat k ovládání LED matice 8x8.
Aplikace pro Android pro tento projekt byla vytvořena pomocí softwaru pro zpracování. Jedná se o vývojovou aplikaci s otevřeným zdrojovým kódem a lze ji snadno stáhnout a použít k vývoji zajímavých projektů pomocí Arduina nebo jiných mikrokontrolérů, protože může vyvíjet aplikace pro Android a systémové aplikace. Již jsme zpracovali několik projektů pomocí Zpracování a můžete je zkontrolovat kliknutím na odkazy níže.
- DIY FM rádio pomocí zpracování
- Ovládání virtuální reality / gest pomocí Arduina
- Soukromá chatovací místnost pomocí Arduina.
- Radarový systém Arduino využívající zpracování APP a ultrazvukový senzor
- Detekce a sledování tváře v reálném čase pomocí Arduina
- DIY rychloměr pomocí Arduina a zpracování
- Ping Pong hra pomocí akcelerometru Arduino
- Dvojnohý robot využívající Arduino
- DIY Arduino termální zobrazovací kamera
Když se vrátím k tématu, je pro mě nemožné vysvětlit kompletní kód aplikace pro Android, takže byste se museli naučit zpracovávat sami a poté se podívat na kód, abyste pochopili, jak to funguje. Proto si lidé, kteří jsou ochotni proces učení přeskočit, mohou stáhnout aplikaci pro Android z níže uvedeného odkazu
- Stáhněte si aplikaci pro Android
Níže je rozhraní naší aplikace pro Android:
Soubor APK lze přímo nainstalovat do jakékoli aplikace pro Android a spustit jako každá jiná aplikace. Ujistěte se však, že je vaše zařízení Bluetooth HC-05 pojmenováno jako „HC-05“, protože až poté bude fungovat.
Porozumění zpracovatelskému kódu:
Lidé, kteří mají zájem vědět, co se děje za obrazovkou, mohou číst dále, ostatní mohou přejít dolů na další nadpis. Aplikace pro Android se v zásadě připojuje k zařízení Bluetooth s názvem „HC-05“ během spouštění a zobrazuje sadu 64 LED diod ve formě kruhů. Poté, když uživatel stiskne kruh, kruh zčervená a číslo kruhu se odešle do Arduina přes Bluetooth, po přijetí čísla kruhu Arduino rozsvítí LED. Podívejme se na důležité řádky programu Zpracování, abychom lépe porozuměli. Celý kód aplikace pro Android si můžete stáhnout z níže uvedeného odkazu.
- Zpracování kódu pro aplikaci pro Android
Třídy a objekty používáme k zobrazení 64 LED diod, abychom mohli snadno oslovit každou z nich. Jak vidíte v níže uvedeném kódu, používáme smyčku for k iteraci od 1 do 64 pomocí pole. Jednalo se o to, že každá LED bude mít svou vlastní hodnotu polohy X, polohy Y a barvy a můžeme je snadno měnit.
// vypustí všechny led pro (int i = 1; i <= 64; i ++) led_array.display (); // Všechny LED diody zobrazují třídu Led { float X_Pos; float Y_Pos; barva barva; // LED CONSTRUTOR (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; color = tempc; } void display () { fill (color); elipsa (X_Pos, Y_Pos, led_dia, led_dia); } }
LED diody se na obrazovku načítají ve stejném pořadí jako na displeji. Každá LED je oddělena vzdáleností rovnou průměru LED, tímto způsobem můžeme snadno rozlišit, která LED je aktuálně vybrána uživatelem. Jak je znázorněno v níže uvedeném programu, vytvoříme pole, ve kterém každý prvek obsahuje informace o poloze X, Y a barvě LED.
void load_leds () { led_array = new Led; int a = 1; pro (int j = 0; j <= 7; j ++) { float y = výška / 6 + j * (led_dia * 1,5); for (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 krokem v programu je zkontrolovat, zda uživatel stiskl nějakou LED, a pokud ano, musíme změnit barvu LED a poslat číslo LED přes Bluetooth. Protože nyní můžeme snadno adresovat umístění a barvu každé LED, můžeme to udělat pouhým porovnáním hodnot X, Y, kde uživatel stiskl s hodnotou X, Y LED. Pokud se hodnoty spojí, změníme stav LED a také pošleme číslo přes Bluetooth, jak je znázorněno níže.
// zkontrolujte, zda je myš nad LED // Pokud ano, pošlete číslo LED pro (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 (data); } }
Kromě toho může program také resetovat celou LED tím, že je všechny vypne, a také můžete buď rozsvítit LED červeně (ON) nebo bíle (OFF), takže k tomu máme také přepínací tlačítko. Zobrazí se přepínací tlačítko a čeká na zadání. Po stisknutí se provede příslušná akce. Kód, který dělá totéž, je zobrazen níže jako funkce, která se nazývá uvnitř smyčky draw.
void load_buttons () { rectMode (CENTER); textAlign (CENTRUM, CENTRUM); noStroke (); vyplnit (# 1BF2D4); přímý (šířka / 2-šířka / 4, výška / 1,3, šířka / 4, výška / 12); vyplnit (0); text („Reset“, šířka / 2-šířka / 4, výška / 1,3); // tlačítko 1 if (red == true) {fill (# 080F89); přímý (šířka / 2 + šířka / 4, výška / 1,3, šířka / 4, výška / 12); výplň (255,0,0); text ("ČERVENÉ", šířka / 2 + šířka / 4, výška / 1,3);} // tlačítko 2 if (červená == false) {fill (# 080F89); přímý (šířka / 2 + šířka / 4, výška / 1,3, šířka / 4, výška / 12); výplň (255); text ("BÍLÁ", šířka / 2 + šířka / 4, výška / 1,3);} // tlačítko 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 (data); println ("RESET"); load_leds (); // načíst všechny LED v poloze a barvě } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (data); if (red == true) red = false; jinak if (red == false) red = true; println ("TOGGLE"); } color_val = 0; } }
Programování vašeho Arduina:
Kompletní Arduino Program pro tento Bluetooth řízené bezdrátové projekt Board je uveden na spodní části obrazovky; můžete jej použít přímo a nahrát jej na svoji nástěnku. Níže jsou vysvětleny důležité řádky v programu.
Modul Bluetooth je připojen k pinům 10 a 11, a proto musíme použít softwarové sériové rozhraní k povolení sériové komunikace na těchto pinech a poté můžeme poslouchat data z těchto pinů. Získáváme data přijatá z modulu Bluetooth a ukládáme je do proměnné zvané příchozí . Pokud je hodnota příchozího signálu „0“, pomocí níže uvedeného kódu vypneme všechny LED diody
if (BT.available ()) { incoming = BT.read (); Serial.println (příchozí); if (příchozí == 0) m.clear (); // Vymaže displej
Pomocí hodnot příchozích musíme určit, kterou LED uživatel stiskl na mobilním telefonu a počasí, aby tuto LED zapnuli nebo vypnuli. Zkontrolujeme tedy, zda je hodnota rovna 100. Pokud je hodnota 10, znamená to, že uživatel požádal o přepnutí barvy LED. Přepneme tedy proměnnou červenou, abychom věděli, zda má být LED zapnutá nebo vypnutá.
else if (incoming == 100) // Zkontrolujte, zda bychom měli rozsvítit nebo zhasnout LED { if (red == true) red = false; jinak if (red == false) red = true; Serial.print ("ČERVENÁ:"); Serial.println (červená); }
Nakonec, pokud je hodnota vyšší než 65, znamená to, že uživatel stiskl LED. Na základě čísla od 1 do 64 musíme určit, kterou LED uživatel stiskl. K přepnutí této LED budeme potřebovat hodnotu řádku a sloupce této LED, která se vypočítá a uloží na proměnné X a Y a zobrazí se na níže uvedeném kódu. Nakonec na základě hodnoty proměnné červené buď zapneme nebo vypneme LED podle požadavku uživatele
else if (příchozí <= 64) {// Vypočítat kde ON ro OFF LED přepínač = true; Y = příchozí / 8; X = příchozí - (Y * 8); if (příchozí% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (red == true) m.setDot ((X - 1), (Y), true); // LED svítí jinak if (red == false) m.setDot ((X - 1), (Y), false); // LED nesvítí }
Návrh obvodů a desek plošných spojů pomocí EasyEDA:
K návrhu tohoto displeje s technologií Bluetooth Controlled Matrix jsme zvolili online nástroj EDA s názvem EasyEDA. EasyEDA jsem již mnohokrát použil a zjistil jsem, že je velmi pohodlné ji používat, protože má dobrou sbírku stop a je open-source. Po návrhu desky plošných spojů si můžeme objednat vzorky desek plošných spojů pomocí jejich nízko nákladových služeb výroby desek plošných spojů. Nabízejí také službu sourcingu komponent, kde mají velkou zásobu elektronických součástek a uživatelé si mohou spolu s objednávkou PCB objednat požadované komponenty.
Při navrhování vašich obvodů a desek plošných spojů můžete také zveřejnit své návrhy obvodů a desek plošných spojů, aby je mohli ostatní uživatelé kopírovat nebo upravovat a mohli těžit z vaší práce. Také jsme pro tento obvod zveřejnili celé naše rozvržení obvodů a desek plošných spojů, zkontrolujte níže uvedený odkaz:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Můžete zobrazit libovolnou vrstvu (nahoře, dole, Topsilk, bottomsilk atd.) Desky plošných spojů výběrem vrstvy z okna „Layers“.
Můžete si také prohlédnout desku plošných spojů, jak bude vypadat po výrobě pomocí tlačítka Zobrazit fotografie v EasyEDA:
Výpočet a objednávání vzorků online:
Po dokončení návrhu této Bluetooth Controlled Matrix PCB si můžete PCB objednat přes JLCPCB.com. Chcete-li objednat desku plošných spojů z JLCPCB, potřebujete soubor Gerber. Chcete-li stáhnout soubory Gerber z vašeho PCB, jednoduše klikněte na tlačítko Fabrication Output na stránce editoru EasyEDA a poté stáhněte ze stránky objednávky EasyEDA PCB.
Nyní přejděte na JLCPCB.com a klikněte na Quote Now nebo tlačítko, poté můžete vybrat počet PCB, které chcete objednat, kolik měděných vrstev potřebujete, tloušťku PCB, hmotnost mědi a dokonce i barvu PCB, jako je snímek je uvedeno níže:
Poté, co vyberete všechny možnosti, klikněte na „Uložit do košíku“ a poté se dostanete na stránku, kde můžete nahrát svůj soubor Gerber, který jsme stáhli z EasyEDA. Nahrajte svůj soubor Gerber a klikněte na „Uložit do košíku“. A nakonec kliknutím na Pokladna bezpečně dokončete objednávku, poté dostanete své PCB o několik dní později. Vyrábějí desku plošných spojů za velmi nízkou cenu, což je 2 $. Jejich doba výroby je také velmi kratší, což je 48 hodin s dodávkou DHL 3-5 dní, v podstatě dostanete PCB do týdne od objednání.
Po několika dnech objednání desek plošných spojů jsem dostal vzorky desek plošných spojů v pěkném obalu, jak je znázorněno na obrázcích níže.
A po získání těchto kusů jsem pájel všechny požadované komponenty přes PCB.
V mém PCB jsem udělal tupou chybu výběrem nesprávné stopy pro modul displeje 8 * 8, a proto jsem musel použít desku Perf k připojení displeje, jak je znázorněno na obrázku. Nyní je ale stopou aktualizace na desce plošných spojů a vy si můžete objednat opravenou desku plošných spojů a snadno namontovat modul displeje.
Práce s displejem Bluetooth Signboard:
Jakmile jste připraveni na hardware, buď prostřednictvím získání desky plošných spojů, nebo vytvořením připojení na prkénku, použijte program Arduino uvedený na konci stránky a nahrajte jej na svou desku Arduino. Výše je k dispozici také soubor APK aplikace pro Android, použijte jej a nainstalujte si aplikaci na preferované zařízení Android.
Zapněte hardware a vyhledejte název zařízení HC-05 v telefonu, abyste se s ním spárovali. Ve výchozím nastavení bude přístupový klíč 1234. Poté otevřete aplikaci, kterou jsme právě nainstalovali. Aplikace by měla zobrazovat „ připojeno k HC-05 “ v horní části obrazovky, poté se budete moci dotknout LED na obrazovce a všimnout si, že stejná LED svítí také na desce.
Můžete také vypnout všechny LED diody stisknutím tlačítka Reset a rozhodnout se zapnout nebo vypnout konkrétní LED diodu stisknutím tlačítka Přepnout. Ve výchozím nastavení se rozsvítí kterákoli LED, kterou stisknete. Kompletní fungování projektu najdete ve videu níže. Pokud máte problém s uvedením do provozu, použijte níže uvedené pole pro komentáře nebo napište na naše fóra a získejte další technickou pomoc. Doufám, že jste pochopili výukový program a užili jste si jeho sestavení.