- Szükséges anyagok:
- Kördiagramm:
- Az Android alkalmazás létrehozása feldolgozással:
- A feldolgozási kód megértése:
- Az Arduino programozása:
- Áramkör és NYÁK tervezés az EasyEDA segítségével:
- Minták kiszámítása és megrendelése online:
- A Bluetooth cégtábla kijelző működése:
Legyen szó a hosszan húzódó autópályákról vagy az orvosok bejárati ajtajáról, mindenhol jelzőtáblákat helyezünk el, amelyek információkat nyújtanak számunkra. De ezek a táblák gyakran unalmasak, és időről időre nem konfigurálhatók az érdeklődésünknek megfelelően. Tehát ebben a projektben egy Bluetooth vezérlésű cégtáblát fogunk építeni egy 8 * 8 Matrix kijelző segítségével. A projekt egyedülálló tulajdonsága az androidos alkalmazása, amely lehetővé teszi a felhasználó számára, hogy a 64 LED-et egyedileg vezérelhesse a mobiltelefonról. Ez lehetővé teszi a felhasználó számára, hogy egyedi terveket készítsen könnyedén, és megjelenítse a LED-kijelzőn, érdekesnek hangzik ugye? !! Tehát kezdjük…
Szükséges anyagok:
- Arduino Pro mini
- MAX7219
- HC-05 Bluetooth modul
- 8 * 8 LED-es mátrix kijelző
- 20k ellenállás
- DC hordó Jack
Kördiagramm:
Az áramkör Ábrázolja ezt a Bluetooth vezérlésű LED-kártyát, amely az EasyEDA alkalmazással készült. Ugyanazokat a sémákat fogjuk használni egy NYÁK fejlesztésére és az EasyEDA segítségével történő gyártására.
Az áramkör elég egyenes. Az egész projektet egy 12 V-os adapter táplálja, amelyet közvetlenül az Arduino Board nyers csapjához kapnak. Ezt a nyers feszültséget ezután + 5 V-ra állítják, amelyet a Bluetooth modul és a MAX7219 IC táplál. A Bluetooth modul Tx és Rx csatlakozói az Arduino D11 és D10 csatlakozóihoz vannak csatlakoztatva a soros kapcsolat engedélyezéséhez.
A D5 - D7 digitális érintkezők a MAX7219 IC-hez vannak csatlakoztatva, hogy adatokat küldjenek és fogadjanak SPI kommunikáción keresztül. A MAX7219 ISET-tűje egy 20k-os ellenálláson keresztül magasra húzódik.
Ehhez a projekthez gyártottam egy NYÁK-t, megszerezheti a NYÁK tervfájlját, és ugyanezt használhatja, vagy az áramkört kenyérlapra építheti. Összetettsége miatt azonban ajánlott 8x8-as kijelzőmodult vásárolni, vagy a NYÁK-t használni
A 8x8 mátrix nagyon hasznos megjelenítő modul, és sok nagyszerű projektben használható:
- 8x8 LED-es mátrix vezérlése Raspberry Pi-vel
- A szöveges kijelző görgetése 8x8 LED-es mátrixon az Arduino segítségével
- 8x8 LED-es mátrix Arduino segítségével
- 8x8 LED-es mátrix interfész AVR mikrokontrollerrel
Az Android alkalmazás létrehozása feldolgozással:
Mielőtt elkezdenénk programozni az Arduino-t, tudnunk kell, hogy milyen típusú adatokat kapunk a mobiltelefonból, hogy válaszolhassunk rá. Vessünk egy pillantást arra, hogyan jön létre az Android alkalmazás, és hogyan használhatja okostelefonján a 8x8 LED mátrix vezérléséhez.
A projekt Android-alkalmazását a Processing szoftver segítségével hozták létre. Ez egy nyílt forráskódú fejlesztői alkalmazás, amely könnyen letölthető és felhasználható érdekes projektek kidolgozásához Arduino vagy más mikrokontrollerek segítségével, mivel képes androidos alkalmazások és rendszeralkalmazások fejlesztésére. Már kevés projektet készítettünk a Processing használatával, és az alábbi linkekre kattintva ellenőrizheti őket.
- DIY FM rádió feldolgozással
- Virtuális valóság / gesztus vezérlés az Arduino segítségével
- Privát szoba az Arduino használatával.
- Arduino radarrendszer az APP feldolgozásával és az ultrahangos érzékelővel
- Valós idejű arcfelismerés és -követés az Arduino segítségével
- Barkácssebességmérő Arduino és feldolgozás segítségével
- Ping Pong játék az Arduino Accelerometer segítségével
- Kétlábú robot az Arduino használatával
- DIY Arduino hőkamera
Visszatérve a témához, lehetetlen, hogy elmagyarázzam az androidos alkalmazás teljes kódját, így magának kellene megtanulnia a feldolgozást, majd meg kell néznie a kódot, hogy megértsük, hogyan működik. Ezért azok számára, akik hajlandóak kihagyni a tanulási folyamatot, a Processing az alábbi linkről töltheti le az android alkalmazást
- Töltse le az Android alkalmazást
Az alábbiakban látható az Android alkalmazásunk kezelőfelülete:
Az APK fájl közvetlenül telepíthető bármilyen androidos alkalmazásra, és elindítható, mint bármely más alkalmazás. De győződjön meg arról, hogy HC-05 Bluetooth-eszközének neve „HC-05”, mert csak akkor működik.
A feldolgozási kód megértése:
Azok az emberek, akik érdeklik, hogy mi történik a képernyő mögött, tovább olvashatnak, mások átugorhatnak a következő fejlécre. Alapvetően az Android alkalmazás az indítás során csatlakozik a „HC-05” nevű Bluetooth-eszközhöz, és 64 LED-et jelenít meg körök formájában. Majd amikor a felhasználó megnyomja a kört, a kör pirosra vált, és a kör számát Bluetooth-on keresztül elküldi az Arduino-nak, a kör számának vételekor az Arduino bekapcsolja a LED-et. Vizsgáljuk meg a Processing fontos sorait, hogy jobban megértsük. Az Android alkalmazás teljes kódja letölthető az alábbi linkről.
- Kód feldolgozása az Android alkalmazáshoz
Osztályok és objektumok segítségével 64 LED-et jelenítünk meg, hogy mindegyiket könnyen meg tudjuk címezni. Amint az alábbi kódban láthatja, a for ciklust használjuk az 1 és 64 közötti iterációra egy tömb segítségével. Ez az volt, hogy minden LED-nek megvan a maga X pozíciója, Y pozíciója és színe, és ezeket könnyedén megváltoztathatjuk.
// dipslay az összes led- et (int i = 1; i <= 64; i ++) led_array.display (); // Az összes led megjelenítette a Led { float X_Pos; úszó Y_Pos; szín; // SZERKESZTŐ Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = szeszélyes; szín = tempc; } void display () { kitöltés (szín); ellipszis (X_Pos, Y_Pos, led_dia, led_dia); } }
A LED-ek ugyanolyan sorrendben töltődnek be a képernyőn, mint a kijelző. Mindegyik LED-et elválasztja a LED átmérőjével megegyező távolság, így könnyen meg tudjuk különböztetni, hogy melyik LED-t választja jelenleg a felhasználó. Amint azt az alábbi program mutatja, létrehozunk egy tömböt, amelyben minden elem megtartja a LED X, Y helyzetének és színének adatait.
void load_leds () { led_array = új Led; int a = 1; mert (int j = 0; j <= 7; j ++) { úszó y = magasság / 6 + j * (led_dia * 1,5); mert (int i = 0; i <= 7; i ++) { float x = (szélesség / 6) + i * (led_dia * 1,5); // kitöltés (255); // ellipszis (x, y, led_dia, led_dia); led_array = új Led (x, y, szín (255,255,255)); a ++; } } }
A program fő lépése annak ellenőrzése, hogy a felhasználó megnyomott-e valamilyen LED-et, és ha igen, akkor meg kell változtatnunk a LED színét, és Bluetooth-on keresztül el kell küldenünk a LED számát. Mivel most már minden egyes LED helyét és színét könnyen megcímezhetjük, ezt megtehetjük, ha csak összehasonlítjuk a felhasználó által megnyomott X, Y értékeket a LED-ek X, Y értékével. Ha az értékek összeolvadnak egymással, akkor megváltoztatjuk a LED állapotát, és Bluetooth-on keresztül is elküldjük a számot az alábbiak szerint.
// ellenőrizze, hogy az egér vezetett-e // Ha igen, küldje el a (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (egérY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = új Led (led_array.X_Pos, led_array. Y_Pos, led_color); bájtadatok = {bájt (i)}; bt. közvetítés (adatok); } }
Ettől eltekintve a program a teljes LED-et is visszaállíthatja azáltal, hogy mindet kikapcsolja, és azt is megteheti, hogy a LED pirosra (BE) vagy fehérre (KI) kapcsol, így ehhez van egy váltógombunk is. Megjelenik a váltógomb, és várja a bevitelt. Ha megnyomja a megfelelő műveletet. Az ugyanezt végrehajtó kód alább látható függvényként, amelyet a húzási cikluson belül hívnak meg.
void load_buttons () { rectMode (CENTER); textAlign (CENTER, CENTER); noStroke (); kitöltés (# 1BF2D4); rect (szélesség / 2 szélesség / 4, magasság / 1,3, szélesség / 4, magasság / 12); kitöltés (0); szöveg ("Visszaállítás", szélesség / 2 szélesség / 4, magasság / 1,3); // gomb 1, ha (piros == igaz) {kitöltés (# 080F89); rect (szélesség / 2 + szélesség / 4, magasság / 1,3, szélesség / 4, magasság / 12); kitöltés (255,0,0); szöveg ("PIROS", szélesség / 2 + szélesség / 4, magasság / 1,3);} // gomb 2, ha (piros == hamis) {kitöltés (# 080F89); rect (szélesség / 2 + szélesség / 4, magasság / 1,3, szélesség / 4, magasság / 12); kitöltés (255); szöveg ("FEHÉR", szélesség / 2 + szélesség / 4, magasság / 1,3);} // gomb 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = hamis; if (color_val == - 14945580) { bájt adatok = {0}; bt. közvetítés (adatok); println ("RESET"); load_leds (); // betölti az összes ledet helyzetben és színben } if (color_val == - 16248951) { byte data = {100}; bt. közvetítés (adatok); ha (piros == igaz) piros = hamis; else if (piros == hamis) piros = igaz; println ("TOGGLE"); } color_val = 0; } }
Az Arduino programozása:
A Bluetooth vezérlésű vezeték nélküli Board projekt teljes Arduino programja a képernyő alján található; közvetlenül használhatja és feltöltheti a táblára. A program fontos sorait az alábbiakban ismertetjük.
A Bluetooth modul a 10-es és 11-es csatlakozóhoz van csatlakoztatva, ezért a soros szoftvert kell használnunk a soros kommunikáció engedélyezéséhez ezeken a csapokon, majd meghallgathatjuk az adatokat ezekről a csapokról. Megkapjuk a Bluetooth modultól kapott adatokat, és elmentjük a bejövő nevű változóba . Ha a bejövő értéke „0”, akkor az alábbi kód segítségével az összes LED- et kikapcsoljuk
if (BT.available ()) { bejövő = BT.read (); Soros.println (bejövő); if (bejövő == 0) m.clear (); // Törli a kijelzőt
A bejövő értékek felhasználásával meg kell határoznunk, hogy a felhasználó melyik LED-et nyomta meg a mobiltelefonon, és az időjárást, hogy be- vagy kikapcsolja ezt a LED-et. Tehát ellenőrizzük, hogy az érték egyenlő-e 100-val. Ha az érték 10, akkor ez azt jelenti, hogy a felhasználó kérte a LED színének átkapcsolását. Tehát a változót pirosra kapcsoljuk, hogy megtudjuk, be kell-e kapcsolni a LED-et.
else if (bejövő == 100) // Ellenőrizze, hogy be kell-e kapcsolnunk vagy ki kell kapcsolnunk a LED-et { if (red == true) red = false; else if (piros == hamis) piros = igaz; Soros.nyomtatás ("RED:"); Soros.println (piros); }
Végül, ha az érték 65-nél nagyobb, ez azt jelenti, hogy a felhasználó megnyomott egy LED-et. Az 1-től 64-ig terjedő szám alapján meg kell határoznunk, hogy a felhasználó melyik LED-et nyomta meg. A LED váltásához szükségünk lesz a LED Sorának és Oszlopának értékére, amelyet kiszámolunk és tárolunk az X, illetve Y változóban, és az alábbi kódon mutatjuk be. Végül a vörös változó értéke alapján vagy bekapcsoljuk, vagy kikapcsoljuk a LED-et a felhasználói kérésnek megfelelően
else if (bejövő <= 64) {// Számolja ki, hová kell bekapcsolni ro KI a LED kapcsolót = true; Y = bejövő / 8; X = bejövő - (Y * 8); if (bejövő% 8 == 0) {X = 8; Y - = 1;} soros nyomtatás (X - 1); Soros.println (Y); if (piros == igaz) m.setDot ((X - 1), (Y), igaz); // LED világít , ha (piros == hamis) m.setDot ((X - 1), (Y), hamis); // LED KI }
Áramkör és NYÁK tervezés az EasyEDA segítségével:
Ennek a Bluetooth vezérelt mátrix kijelzőnek a megtervezéséhez választottuk az online EDA eszközt, az EasyEDA nevet. Korábban sokszor használtam az EasyEDA-t, és nagyon kényelmesnek találtam a használatát, mivel jó a lábnyomok gyűjteménye, és nyílt forráskódú. A NYÁK megtervezése után megrendelhetjük a NYÁK-mintákat olcsó PCB-gyártási szolgáltatásaikkal. Komponens beszerzési szolgáltatást is kínálnak, ahol nagy mennyiségű elektronikus alkatrész áll rendelkezésükre, és a felhasználók megrendelhetik a szükséges alkatrészeket a NYÁK megrendeléssel együtt.
Az áramkörök és a NYÁK-k tervezése közben az áramköri és a NYÁK-terveket is nyilvánossá teheti, hogy más felhasználók másolhassák vagy szerkeszthessék azokat, és kihasználhassák munkáját, mi is az egész áramkör- és NYÁK-elrendezésünket nyilvánossá tettük ehhez az áramkörhöz, ellenőrizze az alábbi link:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Megtekintheti a NYÁK bármely rétegét (felső, alsó, felső tej, alsó tej stb.), Ha kiválasztja a réteget a „Rétegek” ablakból.
Az EasyEDA Photo View gombjával megtekintheti a nyomtatott áramköri lapot is, hogy hogyan fog kinézni a gyártás után:
Minták kiszámítása és megrendelése online:
A Bluetooth vezérlésű mátrix NYÁK tervezésének befejezése után megrendelheti a NYÁK-t a JLCPCB.com oldalon keresztül. A NYÁK megrendeléséhez a JLCPCB-től Gerber File szükséges. A számítógép Gerber fájljainak letöltéséhez kattintson az EasyEDA szerkesztő oldalán a Gyártás kimenet gombra, majd töltse le az EasyEDA NYÁK megrendelés oldaláról.
Most keresse fel a JLCPCB.com oldalt, és kattintson az Idézés most gombra vagy gombra, majd kiválaszthatja a megrendelni kívánt NYÁK-k számát, hány rézréteget, a NYÁK vastagságát, a réz súlyát és még a NYÁK színét is, például a pillanatképet lásd alább:
Miután kiválasztotta az összes lehetőséget, kattintson a „Mentés a kosárba” gombra, és akkor arra az oldalra kerül, ahol feltöltheti Gerber fájlját, amelyet letöltöttünk az EasyEDA-ból. Töltse fel Gerber fájlját, és kattintson a „Kosárba mentés” gombra. Végül kattintson a Checkout Secure gombra a megrendelés befejezéséhez, majd néhány nappal később megkapja a NYÁK-kat. Nagyon alacsony áron gyártják a NYÁK-t, ami 2 dollár. Gyártási idejük szintén rövidebb, ami 48 óra 3-5 napos DHL szállítás esetén, alapvetően a PCB-ket a megrendeléstől számított egy héten belül megkapja.
Néhány napos PCB-k megrendelése után kaptam a PCB-mintákat szép csomagolásban, az alábbi képeken látható módon.
Miután megszereztem ezeket a darabokat, az összes szükséges alkatrészt forrasztottam a NYÁK-ra.
A nyomtatott áramköri lapomban tompa hibát követtem el, amikor a 8 * 8-as kijelző modul helytelen méretét választottam, ezért egy Perf kártyát kellett használnom a kijelző felszereléséhez a képen látható módon. De most a lábnyom frissül a NYÁK-ban, és megrendelheti a kijavított NYÁK-ot, és könnyedén felszerelheti a kijelző modult.
A Bluetooth cégtábla kijelző működése:
Ha készen áll a hardver használatára, vagy a NYÁK megszerzésével, vagy a kapcsolat létrehozásával a kenyérlapon, használja az oldal végén megadott Arduino programot, és töltse fel az Arduino táblára. Az androidos alkalmazás APK fájlja szintén fent található, használja és telepítse az alkalmazást a kívánt Android-eszközre.
Kapcsolja be a hardvert, és keresse meg a telefonon a HC-05 eszköz nevét, hogy párosítsa azt. A hozzáférési kulcs alapértelmezés szerint 1234 lesz. Ezt követően nyissa meg az imént telepített alkalmazást. Az alkalmazásnak a képernyő tetején a „ HC-05-hez csatlakoztatva ” feliratot kell megjelenítenie, majd megérintheti a képernyőn található LED-et, és észreveheti, hogy ugyanaz a LED világít a táblán is.
A Reset gomb megnyomásával kikapcsolhatja az összes LED-et, és a Toggle gomb megnyomásával dönthet egy adott LED be- vagy kikapcsolásáról. Alapértelmezés szerint bármelyik LED megnyomásakor bekapcsol. A projekt teljes kidolgozása az alábbi videóban található. Ha bármilyen problémája van a működésbe helyezésével, használja az alábbi megjegyzések mezőt, vagy írjon fórumunkba további technikai segítségért. Remélem, megértette az oktatóanyagot, és élvezettel építette fel.