- Nepieciešamie materiāli:
- Ķēdes shēma:
- Android lietojumprogrammas izveide, izmantojot apstrādi:
- Apstrādes kodeksa izpratne:
- Arduino programmēšana:
- Ķēdes un PCB dizains, izmantojot EasyEDA:
- Paraugu aprēķināšana un pasūtīšana tiešsaistē:
- Bluetooth izkārtnes displeja darbība:
Vai tās būtu garas izstieptas šosejas vai ārstu ārdurvis, mums visur ir izvietoti izkārtnes, kas mums sniedz informāciju. Bet šīs izkārtnes bieži ir garlaicīgas, un tās laiku pa laikam nevar konfigurēt atbilstoši mūsu interesēm. Tāpēc šajā projektā mēs izveidosim ar Bluetooth vadāmu izkārtni, izmantojot 8 * 8 Matrix displeju. Šī projekta unikālā iezīme ir tā Android lietojumprogramma, kas ļauj lietotājam individuāli kontrolēt visus 64 gaismas diodes no mobilā tālruņa. Tas ļauj lietotājam viegli izveidot pielāgotus dizainus un parādīt to LED displejā, izklausās interesanti, vai ne?! Tātad sāksim…
Nepieciešamie materiāli:
- Arduino Pro mini
- MAX7219
- HC-05 Bluetooth modulis
- 8 * 8 LED matricas displejs
- 20k pretestība
- DC Barrel Jack
Ķēdes shēma:
Shēma Diagramma šo Bluetooth kontrolēto LED dēli, kas izveidota, izmantojot lietojumprogrammu EasyEDA. Mēs izmantosim tās pašas shēmas, lai no tā izstrādātu PCB un izgatavotu to, izmantojot EasyEDA.
Ķēde ir diezgan taisna uz priekšu. Visu projektu darbina 12 V adapteris, kas tiek tieši piešķirts Arduino dēļa Raw pin. Pēc tam šo neapstrādāto spriegumu regulē līdz + 5 V, kas tiek piegādāts Bluetooth modulim un MAX7219 IC. Bluetooth moduļa Tx un Rx tapas ir savienotas ar Arduino D11 un D10, lai iespējotu sērijveida savienojumu.
Digitālās tapas no D5 līdz D7 ir savienotas ar MAX7219 IC, lai nosūtītu un saņemtu datus, izmantojot SPI sakarus. MAX7219 ISET tapa ir izvelkta caur 20k rezistoru.
Šim projektam esmu izgatavojis PCB, jūs varat iegūt PCB dizaina failu un izmantot to pašu vai izveidot ķēdi uz maizes dēļa. Tomēr tā sarežģītības dēļ ieteicams vai nu iegādāties 8x8 displeja moduli, vai arī izmantot PCB
8x8 matrica ir ļoti noderīgs displeja modulis, un to var izmantot daudzos foršos projektos:
- 8x8 LED matricas vadība ar Raspberry Pi
- Teksta displeja ritināšana uz 8x8 LED matricas, izmantojot Arduino
- 8x8 LED matrica, izmantojot Arduino
- 8x8 LED matricas mijiedarbība ar AVR mikrokontrolleru
Android lietojumprogrammas izveide, izmantojot apstrādi:
Pirms mēs varam sākt programmēt savu Arduino, mums vajadzētu zināt, kāda veida datus mēs saņemsim no mobilā tālruņa, lai atbildētu uz tiem. Tāpēc apskatīsim, kā tiek izveidota Android lietojumprogramma un kā to var izmantot viedtālrunī, lai kontrolētu 8x8 LED matricu.
Android programma šim projektam tika izveidota, izmantojot programmatūru Processing. Tā ir atvērtā koda izstrādes lietojumprogramma, un to var viegli lejupielādēt un izmantot interesantu projektu izstrādei, izmantojot Arduino vai citus mikrokontrollerus, jo tā var izstrādāt android lietojumprogrammas un sistēmas lietojumprogrammas. Mēs jau esam veikuši dažus projektus, izmantojot apstrādi, un jūs varat tos pārbaudīt, noklikšķinot uz tālāk esošajām saitēm.
- DIY FM radio, izmantojot apstrādi
- Virtuālās realitātes / žestu vadība, izmantojot Arduino
- Privāta tērzēšanas istaba, izmantojot Arduino.
- Arduino radaru sistēma, izmantojot apstrādes APP un ultraskaņas sensoru
- Reālā laika sejas noteikšana un izsekošana, izmantojot Arduino
- DIY spidometrs, izmantojot Arduino un apstrādi
- Spēle Ping Pong, izmantojot Arduino akselerometru
- Divkāju robots, izmantojot Arduino
- DIY Arduino siltuma attēlveidošanas kamera
Atgriežoties pie tēmas, man ir neiespējami izskaidrot visu android lietojumprogrammas kodu, tāpēc jums būs jāiemācās apstrādāt pašiem un pēc tam apskatīt kodu, lai saprastu, kā tas darbojas. Tādējādi cilvēkiem, kuri vēlas izlaist mācību procesu, apstrāde var lejupielādēt android lietojumprogrammu no šīs saites
- Lejupielādējiet Android lietojumprogrammu
Zemāk ir mūsu Android lietojumprogrammas interfeiss:
APK failu var tieši instalēt jebkurā android lietojumprogrammā un palaist tāpat kā jebkuru citu lietojumprogrammu. Bet pārliecinieties, ka jūsu HC-05 Bluetooth ierīce ir nosaukta kā “HC-05”, jo tikai tad tā darbosies.
Apstrādes kodeksa izpratne:
Cilvēki, kuriem ir interese uzzināt, kas notiek aiz ekrāna, var lasīt tālāk, citi var pāriet uz nākamo virsrakstu. Sākotnēji Android lietojumprogramma startēšanas laikā izveido savienojumu ar Bluetooth ierīci ar nosaukumu “HC-05” un parāda 64 gaismas diožu komplektu apļu veidā. Tad, kad lietotājs nospiež apli, aplis kļūst sarkans un apļa numurs tiek nosūtīts uz Arduino, izmantojot Bluetooth, saņemot apļa numuru, Arduino ieslēdz LED. Apskatīsim svarīgās programmas Processing rindas, lai labāk izprastu. Visu Android lietojumprogrammas kodu var lejupielādēt no šīs saites.
- Notiek koda apstrāde Android lietojumprogrammai
Mēs izmantojam klases un objektus, lai parādītu 64 gaismas diodes, lai mēs varētu viegli uzrunāt katru. Kā redzat zemāk esošajā kodā, mēs izmantojam for ciklu, lai atkārtotu no 1 līdz 64, izmantojot masīvu. Katram gaismas diodei būs sava vērtība X pozīcijā, Y pozīcijā un krāsā, un mēs tos varam viegli mainīt.
// iemērciet visus LED (int i = 1; i <= 64; i ++) led_array.display (); // Visās gaismas diodēs parādīta klase Led { float X_Pos; pludiņš Y_Pos; krāsu krāsa; // KONSTRUKTORA Led (pludiņa tempx, pludiņa tempy, krāsu tempc) { X_Pos = tempx; Y_Pos = vētrains; krāsa = tempc; } void display () { aizpildīt (krāsa); elipse (X_Pos, Y_Pos, led_dia, led_dia); } }
Gaismas diodes ekrānā tiek ielādētas tādā pašā secībā kā displejā. Katru gaismas diodi atdala attālums, kas vienāds ar gaismas diodes diametru, tādējādi mēs varam viegli atšķirt, kuru LED pašlaik izvēlas lietotājs. Kā parādīts zemāk esošajā programmā, mēs izveidojam masīvu, kurā katrs elements satur informāciju par LED X, Y pozīciju un krāsu.
void load_leds () { led_array = jauns Led; int a = 1; par (int j = 0; j <= 7; j ++) { pludiņš y = augstums / 6 + j * (led_dia * 1,5); par (int i = 0; i <= 7; i ++) { pludiņš x = (platums / 6) + i * (led_dia * 1,5); // aizpildīt (255); // elipse (x, y, led_dia, led_dia); led_array = jauns Led (x, y, krāsa (255,255,255)); a ++; } } }
Programmas galvenais solis ir pārbaudīt, vai lietotājs ir nospiedis kādu LED un, ja jā, mums ir jāmaina LED krāsa un jānosūta LED numurs, izmantojot Bluetooth. Tā kā tagad mēs varam viegli pievērsties katras gaismas diodes atrašanās vietai un krāsai, mēs to varam izdarīt, vienkārši salīdzinot X, Y vērtības, kur lietotājs ir nospiedis, ar LED, X, Y vērtību. Ja vērtības saplūst savā starpā, mēs mainām gaismas diodes stāvokli un arī nosūtām numuru caur Bluetooth, kā parādīts zemāk.
// check ja pele virs noveda // Ja jā nosūtītu noveda numuru par (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (peleY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = jauns Led (led_array.X_Pos, led_array. Y_Pos, led_color); baitu dati = {baits (i)}; bt. apraide (dati); } }
Papildus tam programma var arī atiestatīt visu LED, izslēdzot tos visus, kā arī jūs varat vai nu padarīt LED ieslēgtu sarkanu (ON) vai baltu (OFF), tāpēc mums ir arī pārslēgšanas poga. Tiek parādīta pārslēgšanas poga, kas gaida ievadi. Nospiežot, tiks veikta attiecīgā darbība. Kods, kas veic to pašu, ir parādīts zemāk kā funkcija, kas tiek izsaukta zīmēšanas cilpas iekšpusē.
void load_buttons () { rectMode (CENTER); textAlign (CENTRS, CENTRS); noStroke (); aizpildīt (# 1BF2D4); taisns (platums / 2 platums / 4, augstums / 1,3, platums / 4, augstums / 12); aizpildīt (0); teksts ("Reset", width / 2-width / 4, height / 1.3); // poga 1 if (sarkana == true) {aizpildīt (# 080F89); taisns (platums / 2 + platums / 4, augstums / 1,3, platums / 4, augstums / 12); aizpildīt (255,0,0); teksts ("RED", platums / 2 + platums / 4, augstums / 1,3);} // poga 2 if (sarkana == nepatiesa) {aizpildiet (# 080F89); taisns (platums / 2 + platums / 4, augstums / 1,3, platums / 4, augstums / 12); aizpildīt (255); teksts ("WHITE", width / 2 + width / 4, height / 1.3);} // poga 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = nepatiesa; if (color_val == - 14945580) { baitu dati = {0}; bt. apraide (dati); println ("ATIESTATĪT"); load_leds (); // ielādējiet visus LED pozīcijā un krāsās } if (color_val == - 16248951) { baitu dati = {100}; bt. apraide (dati); ja (sarkana == taisnība) sarkana = nepatiesa; else if (sarkans == nepatiesa) sarkans = patiess; println ("TOGGLE"); } color_val = 0; } }
Arduino programmēšana:
Pilnīga Arduino programmu šim Bluetooth kontrolēt bezvadu padome projekts tiek dota apakšā šī ekrāna; jūs varat to izmantot tieši un augšupielādēt savā dēlī. Svarīgākās programmas līnijas ir paskaidrotas turpmāk.
Bluetooth modulis ir savienots ar pin 10 un 11, līdz ar to mums ir jāizmanto programmatūras sērijas, lai nodrošinātu sērijas paziņojumu par šiem tapas, un tad mēs varam klausīties datus no šiem tapas. Mēs iegūstam no Bluetooth moduļa saņemtos datus un saglabājam tos mainīgajā, ko sauc par ienākošo . Ja ienākošā vērtība ir “0”, mēs izslēdzam visu LED, izmantojot zemāk esošo kodu
ja (BT.pieejams ()) { ienākošais = BT.lasīt (); Serial.println (ienākošais); ja (ienākošais == 0) m.skaidrs (); // Notīra displeju
Izmantojot ienākošās vērtības, mums jānosaka, kuru gaismas diode lietotājs ir nospiedis mobilajā tālrunī, un laika apstākļi, lai ieslēgtu vai izslēgtu šo LED. Tātad, mēs pārbaudām, vai vērtība ir vienāda ar 100. Ja vērtība ir 10, tas nozīmē, ka lietotājs ir lūdzis pārslēgt gaismas diode krāsu. Tāpēc mēs pārslēdzam mainīgo sarkano, lai uzzinātu, vai gaismas diode ir jāieslēdz vai jāizslēdz.
else if (ienākošais == 100) // Pārbaudiet, vai mums vajadzētu ieslēgt vai izslēgt LED { if (red == true) red = false; else if (sarkans == nepatiesa) sarkans = patiess; Sērijas.druka ("RED:"); Seriālais.println (sarkans); }
Visbeidzot, ja vērtība ir lielāka par 65, tas nozīmē, ka lietotājs ir nospiedis LED. Pamatojoties uz skaitli no 1 līdz 64, mums jānosaka, kuru LED ir nospiedis lietotājs. Lai pārslēgtu šo LED, mums būs nepieciešama šī LED rindas un kolonnas vērtība, kas tiek aprēķināta un saglabāta attiecīgi mainīgajos X un Y un parādīta zemāk esošajā kodā. Visbeidzot, pamatojoties uz mainīgā sarkanā lieluma vērtību, mēs vai nu ieslēdzam, vai izslēdzam gaismas diodi atbilstoši lietotāja pieprasījumam
else if (ienākošais <= 64) {// Aprēķiniet, kur ieslēgt ro OFF LED gaismas pārslēgšana = true; Y = ienākošais / 8; X = ienākošais - (Y * 8); ja (ienākošie% 8 == 0) {X = 8; Y - = 1;} Sērijas. Izdruka (X - 1); Sērijas.println (Y); if (sarkans == patiess) m.setDot ((X - 1), (Y), patiess); // gaismas diode ir ieslēgta, ja (sarkana == nepatiesa) m.setDot ((X - 1), (Y), nepatiesa); // LED izslēgts }
Ķēdes un PCB dizains, izmantojot EasyEDA:
Lai izveidotu šo Bluetooth kontrolētās matricas displeju, mēs esam izvēlējušies tiešsaistes EDA rīku ar nosaukumu EasyEDA. Iepriekš esmu daudzkārt izmantojis EasyEDA, un man tas likās ļoti ērti lietojams, jo tam ir laba pēdu kolekcija un tas ir atvērtā koda. Pēc PCB projektēšanas mēs varam pasūtīt PCB paraugus, izmantojot to zemo izmaksu PCB ražošanas pakalpojumus. Viņi piedāvā arī komponentu iegādes pakalpojumu, kur viņiem ir liels elektronisko komponentu krājums un lietotāji var pasūtīt nepieciešamos komponentus kopā ar PCB pasūtījumu.
Veidojot ķēdes un PCB, jūs varat arī padarīt savu shēmu un PCB dizainu publisku, lai citi lietotāji tos varētu kopēt vai rediģēt un gūt labumu no jūsu darba. Mēs esam arī padarījuši visus mūsu shēmas un PCB izkārtojumus publiski pieejamus šai shēmai, pārbaudiet šī saite:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Jūs varat apskatīt jebkuru PCB slāni (augšējo, apakšējo, augšējo pienu, pudeļu pienu utt.), Atlasot slāni no loga “Slāņi”.
Izmantojot EasyEDA pogu Fotoattēlu skats, varat arī apskatīt PCB, kā tas izskatīsies pēc ražošanas:
Paraugu aprēķināšana un pasūtīšana tiešsaistē:
Pēc šīs Bluetooth kontrolētās matricas PCB dizaina pabeigšanas jūs varat pasūtīt PCB caur JLCPCB.com. Lai pasūtītu PCB no JLCPCB, jums ir nepieciešama Gerber File. Lai lejupielādētu Gerber failus no sava datora, vienkārši noklikšķiniet uz pogas Izgatavošana, kas atrodas EasyEDA redaktora lapā, pēc tam lejupielādējiet no EasyEDA PCB pasūtījuma lapas.
Tagad dodieties uz JLCPCB.com un noklikšķiniet uz pogas Citēt tūlīt vai pēc tam, pēc tam varat atlasīt pasūtāmo PCB skaitu, nepieciešamo vara slāņu skaitu, PCB biezumu, vara svaru un pat PCB krāsu, piemēram, momentuzņēmumu parādīts zemāk:
Kad esat izvēlējies visas opcijas, noklikšķiniet uz “Saglabāt grozā”, un jūs tiksiet novirzīts uz lapu, kur varēsit augšupielādēt savu Gerber failu, kuru esam lejupielādējuši no EasyEDA. Augšupielādējiet savu Gerber failu un noklikšķiniet uz “Saglabāt grozā”. Visbeidzot, noklikšķiniet uz Checkout Secure, lai pabeigtu pasūtījumu, pēc dažām dienām jūs saņemsiet savus PCB. Viņi izgatavo PCB ar ļoti zemu likmi, kas ir 2 ASV dolāri. Viņu būvēšanas laiks ir arī ļoti mazāks, tas ir 48 stundas ar DHL piegādi 3-5 dienas, būtībā jūs saņemsiet savus PCB nedēļas laikā pēc pasūtīšanas.
Pēc dažām PCB pasūtīšanas dienām es dabūju PCB paraugus jaukā iepakojumā, kā parādīts zemāk esošajos attēlos.
Un pēc šo gabalu iegūšanas es visus nepieciešamos komponentus esmu pielodējis pie PCB.
Savā PCB es pieļāvu nekļūdīgu kļūdu, izvēloties nepareizu 8 * 8 displeja moduļa nospiedumu, tāpēc man bija jāizmanto Perf dēlis, lai uzstādītu displeju, kā parādīts attēlā. Bet tagad pēdas ir atjauninājumi PCB, un jūs varat pasūtīt laboto PCB un viegli uzstādīt displeja moduli.
Bluetooth izkārtnes displeja darbība:
Kad esat gatavs aparatūrai, iegūstot PCB vai izveidojot savienojumu uz paneļa, izmantojiet lapas beigās norādīto Arduino programmu un augšupielādējiet to savā Arduino dēlī. Iepriekš ir sniegts arī Android lietotnes APK fails, izmantojiet to un instalējiet lietojumprogrammu vēlamajā Android ierīcē.
Strādājiet ar aparatūru un tālrunī meklējiet ierīces HC-05 nosaukumu, lai to savienotu pārī. Pēc noklusējuma piekļuves atslēga būs 1234. Pēc tam atveriet tikko instalēto lietojumprogrammu. Ekrāna augšdaļā lietojumprogrammai vajadzētu parādīt “ savienots ar HC-05 ”, tad varēsiet pieskarties ekrāna gaismas diodei un pamanīt, ka tā pati LED tiek ieslēgta arī dēlī.
Varat arī izslēgt visu gaismas diode, nospiežot pogu Atiestatīt, un izlemt ieslēgt vai izslēgt konkrēto gaismas diode, nospiežot pogu Pārslēgt. Pēc noklusējuma jebkura iespiestā gaismas diode tiks ieslēgta. Pilnīga projekta darbība ir atrodama zemāk esošajā video. Ja jums ir kādas problēmas panākt, lai tas darbotos, izmantojiet zemāk esošo komentāru lodziņu vai rakstiet mūsu forumos, lai iegūtu vairāk tehniskas palīdzības. Ceru, ka sapratāt apmācību un patika to veidot.