- Reikalingos medžiagos:
- Grandinės schema:
- „Android“ programos kūrimas naudojant apdorojimą:
- Apdorojimo kodo supratimas:
- „Arduino“ programavimas:
- Grandinių ir PCB dizainas naudojant „EasyEDA“:
- Mėginių apskaičiavimas ir užsakymas internetu:
- „Bluetooth“ iškabos lentos ekrano veikimas:
Nesvarbu, ar tai būtų ilgos autostrados, ar jūsų gydytojų durys, mes visur turime iškabų lentas, kurios mums teikia informaciją. Tačiau šios iškabos dažnai būna nuobodžios ir jų laikas nuo laiko negalima sukonfigūruoti pagal mūsų interesus. Taigi šiame projekte mes ketiname sukurti „Bluetooth“ valdomą iškabos lentą naudodami 8 * 8 matricos ekraną. Unikali šio projekto ypatybė yra „Android“ programa, leidžianti vartotojui valdyti visus 64 šviesos diodus atskirai iš mobiliojo telefono. Tai leidžia vartotojui lengvai kurti nestandartinius dizainus ir rodyti juos LED ekrane, skamba įdomiai, tiesa?! Taigi pradėkime…
Reikalingos medžiagos:
- „Arduino Pro mini“
- MAX7219
- HC-05 „Bluetooth“ modulis
- 8 * 8 LED matricos ekranas
- 20k rezistorius
- „DC Barrel Jack“
Grandinės schema:
Grandinės schema šią „ Bluetooth“ valdomą LED plokštę, sukurtą naudojant „EasyEDA“ programą. Mes naudosime tas pačias schemas, kad iš jos sukurtume PCB ir pagamintume naudodami „EasyEDA“.
Grandinė yra gana tiesi. Visą projektą maitina 12 V adapteris, kuris tiesiogiai atiduodamas „Arduino“ plokštės „Raw“ kaiščiui. Tada ši neapdorota įtampa reguliuojama iki + 5 V, kuri tiekiama į „ Bluetooth“ modulį ir MAX7219 IC. „Bluetooth“ modulio „Tx“ ir „Rx“ kaiščiai yra prijungti prie „Arduino“ D11 ir D10, kad būtų galima nuosekliai prisijungti.
Skaitmeniniai kaiščiai nuo D5 iki D7 yra prijungti prie „MAX7219 IC“, kad būtų galima siųsti ir gauti duomenis per SPI ryšį. MAX7219 ISET kaištis yra ištemptas per 20 k varžą.
Šiam projektui pagaminau PCB, galite gauti PCB dizaino failą ir naudoti tą patį arba sukurti grandinę ant duonos lentos. Tačiau dėl savo sudėtingumo rekomenduojama įsigyti 8x8 ekrano modulį arba naudoti PCB
8x8 matrica yra labai naudingas ekranas ir gali būti naudojamas daugelyje įdomių projektų:
- 8x8 LED matricos valdymas naudojant „Raspberry Pi“
- Teksto ekrano slinkimas 8x8 LED matricoje naudojant „Arduino“
- 8x8 LED matrica naudojant „Arduino“
- 8x8 LED matricos sąsaja su AVR mikrovaldikliu
„Android“ programos kūrimas naudojant apdorojimą:
Prieš pradėdami programuoti „Arduino“, turėtume žinoti, kokio tipo duomenis gausime iš mobiliojo telefono, kad galėtume į juos atsakyti. Taigi pažvelkime, kaip sukuriama „Android“ programa ir kaip ją galite naudoti savo išmaniajame telefone valdydami 8x8 LED matricą.
Šio projekto „Android“ programa buvo sukurta naudojant „Processing“ programinę įrangą. Tai yra atvirojo kodo kūrimo programa, kurią galima lengvai atsisiųsti ir naudoti kuriant įdomius projektus naudojant „Arduino“ ar kitus mikrovaldiklius, nes jis gali kurti „Android“ programas ir sistemos programas. Mes jau atlikome keletą projektų naudodami „Processing“ ir galite juos patikrinti spustelėdami toliau pateiktas nuorodas.
- Pasidaryk FM radijas naudodamas apdorojimą
- Virtuali realybė / gestų valdymas naudojant „Arduino“
- Privatus pokalbių kambarys naudojant „Arduino“.
- „Arduino“ radarų sistema, naudojant apdorojimo programą ir ultragarso jutiklį
- Veido aptikimas ir stebėjimas realiuoju laiku naudojant „Arduino“
- Pasidaryk pats greičio matuoklis naudodamas „Arduino“ ir apdorojimą
- „Ping Pong“ žaidimas naudojant „Arduino“ akselerometrą
- Dvipusis robotas naudojant „Arduino“
- Pasidaryk pats „Arduino“ terminio vaizdo fotoaparatas
Grįžtant prie temos, man neįmanoma paaiškinti viso „Android“ programos kodo, todėl turėtumėte išmokti apdoroti patys, o tada pažiūrėkite į kodą, kad suprastumėte, kaip jis veikia. Taigi žmonėms, norintiems praleisti mokymosi procesą, apdorojimas gali atsisiųsti „Android“ programą iš šios nuorodos
- Atsisiųskite „Android“ programą
Žemiau yra mūsų „Android“ programos sąsaja:
APK failą galima tiesiogiai įdiegti į bet kurią „Android“ programą ir paleisti kaip ir bet kurią kitą programą. Tačiau įsitikinkite, kad jūsų „HC-05“ „Bluetooth“ įrenginys pavadintas „HC-05“, nes tik tada jis veiks.
Apdorojimo kodo supratimas:
Žmonės, norintys sužinoti, kas vyksta už ekrano, gali skaityti toliau, kiti gali pereiti prie kitos antraštės. Iš esmės „Android“ programa paleidimo metu prisijungia prie „Bluetooth“ įrenginio, vadinamo „HC-05“, ir rodo 64 šviesos diodų rinkinį apskritimų forma. Tada vartotojui paspaudus apskritimą, apskritimas tampa raudonas, o apskritimo numeris „Bluetooth“ ryšiu siunčiamas „Arduino“, gavęs apskritimo numerį, „Arduino“ įjungia šviesos diodą. Pažvelkime į svarbias „Processing“ programos eilutes, kad geriau suprastume. Visą „Android“ programos kodą galite atsisiųsti iš toliau pateiktos nuorodos.
- Apdorojamas „Android“ programos kodas
Mes naudojame klases ir objektus, kad parodytume 64 šviesos diodus, kad galėtume lengvai juos išspręsti. Kaip matote žemiau esančiame kode, mes naudojame „ for loop“, kad pakartotume nuo 1 iki 64 naudodami masyvą. Tai buvo kiekvienas šviesos diodas, turėdamas savo X padėties, Y padėties ir spalvos vertę, ir mes galime juos lengvai pakeisti.
// dipslay visas LED for (int i = 1; i <= 64; i ++) led_array.display (); // Visose lemputėse rodoma klasė Led { float X_Pos; plūduriuojantis Y_Pos; spalvos spalva; // KONSTRUKTORIUS „Led“ („float tempx“, „float tempy“, „color tempc“) { X_Pos = tempx; Y_Pos = vėsus; spalva = tempc; } negaliojantis ekranas () { užpildyti (spalva); elipsė (X_Pos, Y_Pos, led_dia, led_dia); } }
Šviesos diodai ekrane įkraunami ta pačia ekrano tvarka. Kiekvieną šviesos diodą skiria atstumas, lygus šviesos diodo skersmeniui, tokiu būdu galime lengvai atskirti, kurį šviesos diodą vartotojas pasirinko šiuo metu. Kaip parodyta žemiau esančioje programoje, mes sukuriame masyvą, kuriame kiekvienas elementas turi informaciją apie X, Y padėtį ir šviesos diodo spalvą.
void load_leds () { led_array = naujas Led; int a = 1; už (int j = 0; j <= 7; j ++) { plūdė y = aukštis / 6 + j * (led_dia * 1,5); už (int i = 0; i <= 7; i ++) { plūdė x = (plotis / 6) + i * (led_dia * 1,5); // užpildyti (255); // elipsė (x, y, led_dia, led_dia); led_array = nauja Led (x, y, spalva (255,255,255)); a ++; } } }
Pagrindinis programos žingsnis yra patikrinti, ar vartotojas paspaudė kokį nors šviesos diodą, o jei taip, turime pakeisti šviesos diodo spalvą ir siųsti „LED“ numerį per „Bluetooth“. Kadangi dabar galime lengvai atkreipti dėmesį į kiekvieno šviesos diodo vietą ir spalvą, tai galime padaryti tiesiog palyginę X, Y reikšmes toje vietoje, kur vartotojas paspaudė, su X, Y reikšme LED. Jei reikšmės susijungia viena į kitą, mes keičiame šviesos diodo būseną ir numerį taip pat siunčiame per „Bluetooth“, kaip parodyta žemiau.
// patikrinkite, ar pelė vedė ant pelės // Jei taip, siųskite (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 = naujas Led (led_array.X_Pos, led_array. Y_Pos, led_color); baitų duomenys = {baitas (i)}; bt. transliacija (duomenys); } }
Be to, programa taip pat gali iš naujo nustatyti visą šviesos diodą, išjungdama juos visus, taip pat galite padaryti, kad šviesos diodas taptų raudonas (ĮJUNGTAS) arba baltas (IŠJUNGTAS), todėl mes taip pat turime perjungimo mygtuką. Rodomas perjungimo mygtukas ir laukiama įvesties. Paspaudus bus imtasi atitinkamų veiksmų. Tą patį darantis kodas yra parodytas žemiau kaip funkcija, kuri vadinama piešimo ciklo viduje.
void load_buttons () { rectMode (CENTRAS); textAlign (CENTRAS, CENTRAS); noStroke (); užpildyti (# 1BF2D4); tiesus (plotis / 2 plotis / 4, aukštis / 1,3, plotis / 4, aukštis / 12); užpildyti (0); tekstas („Reset“, plotis / 2 plotiai / 4, aukštis / 1,3); // mygtukas 1 if (raudona == true) {užpildyti (# 080F89); tiesus (plotis / 2 + plotis / 4, aukštis / 1,3, plotis / 4, aukštis / 12); užpildyti (255,0,0); tekstas ("RED", plotis / 2 + plotis / 4, aukštis / 1,3);} // mygtukas 2 if (raudona == klaidinga) {užpildyti (# 080F89); tiesus (plotis / 2 + plotis / 4, aukštis / 1,3, plotis / 4, aukštis / 12); užpildyti (255); tekstas ("BALTAS", plotis / 2 + plotis / 4, aukštis / 1,3);} // mygtukas 2 } negalioja skaitymo mygtukai () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = klaidinga; if (color_val == - 14945580) { baitų duomenys = {0}; bt. transliacija (duomenys); println ("RESET"); load_leds (); // įkelti visus vadovus pozicijoje ir spalvoje } if (color_val == - 16248951) { baitų duomenys = {100}; bt. transliacija (duomenys); jei (raudona == tiesa) raudona = klaidinga; else if (raudona == klaidinga) raudona = teisinga; println ("TOGGLE"); } spalva_val = 0; } }
„Arduino“ programavimas:
Visiškai Arduino programa šiai Bluetooth valdomas bevielis diskusijų projektas yra pateiktas šio ekrano apačioje; galite jį naudoti tiesiogiai ir įkelti į savo lentą. Svarbios programos eilutės paaiškintos žemiau.
„ Bluetooth“ modulis yra prijungtas prie 10 ir 11 kontaktų, todėl turime naudoti serijinę programinę įrangą, kad įgalintume nuoseklų ryšį šiuose kaiščiuose, tada galime klausytis duomenų iš šių kaiščių. Gauname iš „Bluetooth“ modulio gautus duomenis ir išsaugome juos kintamajame, vadinamame gaunamuoju . Jei įeinančio asmens vertė yra „0“, mes išjungsime visą šviesos diodą naudodami žemiau esantį kodą
if (BT.available ()) { gaunamas = BT.read (); Serial.println (gaunamas); if (gaunamas == 0) m.clear (); // Išvalo ekraną
Naudodamiesi gaunamomis reikšmėmis turime nustatyti, kurį šviesos diodą vartotojas paspaudė mobiliajame telefone, ir oro sąlygas, kad įjungtų arba išjungtų tą šviesos diodą. Taigi mes patikriname, ar vertė lygi 100. Jei vertė yra 10, tai reiškia, kad vartotojas paprašė pakeisti šviesos diodo spalvą. Taigi mes keičiame raudoną kintamąjį, kad žinotume, ar šviesos diodas turėtų būti įjungtas, ar išjungtas.
else if (gaunamas == 100) // Patikrinkite, ar turėtume įjungti ar išjungti šviesos diodą { if (raudona == tiesa) raudona = klaidinga; else if (raudona == klaidinga) raudona = teisinga; Serial.print („RED:“); Serial.println (raudona); }
Galiausiai, jei vertė yra didesnė nei 65, tai reiškia, kad vartotojas paspaudė šviesos diodą. Pagal skaičių nuo 1 iki 64 turime nustatyti, kurį šviesos diodą vartotojas paspaudė. Norėdami perjungti tą šviesos diodą, mums reikės to LED eilutės ir stulpelio vertės, kuri yra apskaičiuojama ir saugoma atitinkamai kintamuosiuose X ir Y ir parodyta žemiau esančiame kode. Pagaliau pagal kintamos raudonos spalvos vertę mes įjungiame arba išjungiame šviesos diodą pagal vartotojo prašymą
else if (gaunamas <= 64) {// Apskaičiuokite, kur įjungti ro OFF, LED perjungia = true; Y = gaunamas / 8; X = gaunamas - (Y * 8); jei (gaunamas% 8 == 0) {X = 8; Y - = 1;} Serijinis.println (X - 1); Serijinis.println (Y); if (raudona == tiesa) m.setDot ((X - 1), (Y), tiesa); // Šviesos diodas įjungtas, jei (raudona == klaidinga) m.setDot ((X - 1), (Y), klaidinga); // LED išjungtas }
Grandinių ir PCB dizainas naudojant „EasyEDA“:
Norėdami sukurti šį „ Bluetooth“ valdomos matricos ekraną, mes pasirinkome internetinį EDA įrankį „EasyEDA“. Anksčiau daug kartų naudojau „EasyEDA“ ir manau, kad jį naudoti yra labai patogu, nes jis turi gerą pėdsakų kolekciją ir yra atviro kodo. Sukūrę PCB, galime užsisakyti PCB pavyzdžius pagal jų pigias PCB gamybos paslaugas. Jie taip pat siūlo komponentų tiekimo paslaugas, kai turi daug elektroninių komponentų, o vartotojai gali užsisakyti reikalingus komponentus kartu su PCB užsakymu.
Kurdami savo grandines ir PCB, jūs taip pat galite viešai paskelbti savo grandinių ir PCB dizainus, kad kiti vartotojai galėtų juos nukopijuoti ar redaguoti ir galėtų pasinaudoti jūsų darbu. Mes taip pat paviešinome visus mūsų grandinių ir PCB išdėstymus šiai grandinei. žemiau esančią nuorodą:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Galite peržiūrėti bet kurį PCB sluoksnį (viršuje, apačioje, viršutiniame piene, dugno piene ir kt.) Pasirinkdami sluoksnį iš lango „Sluoksniai“.
Taip pat galite peržiūrėti PCB, kaip ji atrodys gaminant, naudodamiesi „ EasyEDA“ mygtuku „ Nuotraukų peržiūra “:
Mėginių apskaičiavimas ir užsakymas internetu:
Baigę kurti „Bluetooth“ valdomos matricos PCB, galite užsisakyti PCB per JLCPCB.com. Norėdami užsisakyti PCB iš JLCPCB, jums reikia „Gerber File“. Norėdami atsisiųsti „Gerber“ failus iš savo PCB, tiesiog spustelėkite mygtuką „Gamybos išvestis“ EasyEDA redaktoriaus puslapyje, tada atsisiųskite iš „EasyEDA“ PCB užsakymo puslapio.
Dabar eikite į JLCPCB.com ir spustelėkite „Quote Now“ arba mygtuką, tada galite pasirinkti norimų užsisakyti PCB skaičių, kiek jums reikia vario sluoksnių, PCB storį, vario svorį ir net PCB spalvą, pvz., Momentinę nuotrauką nurodyta apačioje:
Pasirinkę visas parinktis, spustelėkite „Įrašyti į krepšelį“ ir pateksite į puslapį, kuriame galėsite įkelti savo „Gerber“ failą, kurį atsisiuntėme iš „EasyEDA“. Įkelkite savo „Gerber“ failą ir spustelėkite „Išsaugoti krepšelyje“. Galiausiai spustelėkite „Checkout Secure“, kad užbaigtumėte užsakymą, tada po kelių dienų gausite savo PCB. Jie gamina PCB labai mažu greičiu, kuris yra 2 USD. Jų sukūrimo laikas taip pat yra labai trumpesnis, tai yra 48 valandos, kai DHL pristatomas per 3-5 dienas. Iš esmės savo PCB gausite per savaitę nuo užsakymo.
Po kelių dienų užsisakius PCB, aš gavau gražių pakuočių PCB pavyzdžius, kaip parodyta žemiau esančiose nuotraukose.
Gavęs šiuos kūrinius, visus reikalingus komponentus prilitavau per PCB.
Savo PCB aš padariau buką klaidą, pasirinkdamas neteisingą 8 * 8 ekrano modulio pėdsaką, todėl turėjau naudoti „Perf“ plokštę, kad pritvirtinčiau ekraną, kaip parodyta paveikslėlyje. Bet dabar pėdsakas atnaujinamas PCB ir galite lengvai užsisakyti pataisytą PCB ir montuoti ekrano modulį.
„Bluetooth“ iškabos lentos ekrano veikimas:
Kai būsite pasirengę naudoti aparatinę įrangą, gaudami PCB arba užmezgę ryšį ant plokštės, naudokite puslapio pabaigoje pateiktą „ Arduino“ programą ir įkelkite ją į savo „Arduino“ plokštę. „ Android“ programos APK failas taip pat pateikiamas aukščiau, naudokite jį ir įdiekite programą norimame „Android“ įrenginyje.
Maitinkite aparatinę įrangą ir telefone ieškokite „HC-05“ įrenginio pavadinimo, kad susietumėte su juo. Pagal numatytuosius nustatymus leidimo raktas bus 1234. Po to atidarykite programą, kurią ką tik įdiegėme. Programa ekrano viršuje turėtų rodyti „ prijungta prie HC-05 “, tada galėsite paliesti ekrano šviesos diodą ir pastebėti, kad tas pats šviesos diodas įjungiamas ir lentoje.
Taip pat galite išjungti visus šviesos diodus paspausdami mygtuką Reset ir nuspręskite įjungti arba išjungti tam tikrą šviesos diodą paspausdami mygtuką Toggle. Pagal numatytuosius nustatymus bus įjungtas kuris LED, kurį paspausite. Visą projekto darbą galite rasti žemiau esančiame vaizdo įraše. Jei turite kokių nors problemų, kad ji veiktų, naudokite toliau pateiktą komentarų laukelį arba rašykite mūsų forumuose, kad gautumėte daugiau techninės pagalbos. Tikiuosi, kad supratote pamoką ir patiko ją kurti.