- Mga Materyal na Kinakailangan:
- Diagram ng Circuit:
- Lumilikha ng Android Application gamit ang Pagproseso:
- Pag-unawa sa Processing Code:
- Programming ang iyong Arduino:
- Circuit at Disenyo ng PCB gamit ang EasyEDA:
- Pagkalkula at Pag-order ng Mga Sampol sa online:
- Paggawa ng display ng board ng Bluetooth Sign:
Maging ang mahabang kahabaan ng mga highway o pintuan ng iyong mga doktor, mayroon kaming mga sign board na inilagay saanman upang magbigay sa amin ng impormasyon. Ngunit ang mga sign board na ito ay madalas na mainip at hindi mai-configure ayon sa aming interes paminsan-minsan. Kaya sa proyektong ito magtatayo kami ng isang kinokontrol na board ng Bluetooth na board gamit ang isang 8 * 8 Matrix display. Ang isang natatanging tampok ng proyektong ito ay ang android application na nagbibigay-daan sa gumagamit na makontrol ang lahat ng 64 LED nang paisa-isa mula sa mobile phone. Pinapayagan nito ang gumagamit na lumikha ng mga pasadyang disenyo nang madali at ipakita ito sa LED display, parang nakakainteres ang tama? !! Magsimula na tayo…
Mga Materyal na Kinakailangan:
- Arduino Pro mini
- MAX7219
- HC-05 Bluetooth Module
- 8 * 8 LED Matrix Display
- 20k Resistor
- DC Barrel Jack
Diagram ng Circuit:
Ang circuit Diagram na kinontrol ng Bluetooth na LED board na ito na binuo gamit ang EasyEDA application. Gagamitin namin ang parehong mga eskematiko upang bumuo ng isang PCB mula dito at gawa-gawa ito gamit ang EasyEDA.
Ang circuit ay medyo tuwid pasulong. Ang buong proyekto ay pinalakas ng isang 12V adapter, na direktang ibinibigay sa Raw pin ng Arduino Board. Ang boltahe na ito ng Raw ay kinokontrol sa + 5V na ibinibigay sa module ng Bluetooth at MAX7219 IC. Ang mga Tx at Rx na pin ng module ng Bluetooth ay konektado sa D11 at D10 ng Arduino upang paganahin ang serial connection.
Ang mga digital na pin na D5 hanggang D7 ay konektado sa MAX7219 IC upang magpadala at tumanggap ng data sa pamamagitan ng komunikasyon ng SPI. Ang pin ng ISET ng MAX7219 ay nakuha nang mataas sa pamamagitan ng isang 20k Resistor.
Para sa proyektong ito ay gumawa ako ng isang PCB, maaari mong makuha ang disenyo ng file ng PCB at gamitin ang pareho o buuin ang circuit sa isang breadboard. Gayunpaman dahil sa pagiging kumplikado inirerekumenda na bumili ng isang 8x8 Display module o gamitin ang PCB
Ang 8x8 matrix ay lubhang kapaki-pakinabang na module ng pagpapakita at maaaring magamit sa maraming mga cool na proyekto:
- Pagkontrol sa 8x8 LED Matrix na may Raspberry Pi
- Pag-scroll sa Teksto sa 8x8 LED Matrix gamit ang Arduino
- 8x8 LED Matrix gamit ang Arduino
- 8x8 LED Matrix Interfacing sa AVR Microcontroller
Lumilikha ng Android Application gamit ang Pagproseso:
Bago namin masimulan ang pagprograma ng aming Arduino, dapat nating malaman kung anong uri ng data ang matatanggap namin form ang mobile phone upang tumugon pabalik dito. Tingnan natin kung paano nilikha ang Android application at kung paano mo ito magagamit sa iyong smartphone upang makontrol ang 8x8 LED matrix.
Ang application ng Android para sa proyektong ito ay nilikha gamit ang Pagproseso ng software. Ito ay isang application ng pag-unlad na Buksan ang Pinagmulan at maaaring madaling mai-download at magamit para sa pagbuo ng mga kagiliw-giliw na proyekto gamit ang Arduino o iba pang Microcontrollers dahil maaari itong bumuo ng android application at mga application ng system. Natapos na namin ang ilang mga proyekto gamit ang Pagproseso at maaari mong suriin ang mga ito sa pamamagitan ng pag-click sa mga link sa ibaba.
- DIY FM Radio Gamit ang Pagproseso
- Pagkontrol sa Virtual Reality / Gesture gamit ang Arduino
- Pribadong Chat room gamit ang Arduino.
- Arduino Radar System gamit ang Processing APP at Ultrasonic Sensor
- Real Time Face Detection at Pagsubaybay gamit ang Arduino
- DIY Speedometer gamit ang Arduino at Pagproseso
- Ping Pong Game gamit ang Arduino Accelerometer
- Biped Robot Gamit ang Arduino
- DIY Arduino Thermal Imaging Camera
Bumalik sa paksa, imposible para sa akin na ipaliwanag ang kumpletong code ng android application upang malaman mo ang pagproseso ng iyong sarili at pagkatapos ay tingnan ang code upang maunawaan kung paano ito gumagana. Samakatuwid para sa mga taong nais na laktawan ang proseso ng pag-aaral Ang pagproseso ay maaaring mag-download ng android application mula sa link sa ibaba
- Mag-download ng Android Application
Nasa ibaba ang interface ng aming Android Application:
Ang APK file ay maaaring direktang mai-install sa anumang android application at mailunsad tulad ng anumang iba pang application. Ngunit siguraduhin na ang iyong HC-05 Bluetooth device ay pinangalanan bilang "HC-05", dahil sa gayon lamang gagana ito.
Pag-unawa sa Processing Code:
Ang mga taong interesadong malaman kung ano ang mangyayari sa likod ng screen ay maaaring mabasa pa, ang iba pa ay maaaring lumaktaw pababa sa susunod na heading. Karaniwan ang application ng Android ay kumokonekta sa isang aparatong Bluetooth na tinatawag na "HC-05" habang nagsisimula at nagpapakita ng isang hanay ng 64 LEDs sa anyo ng mga bilog. Pagkatapos kapag pinindot ng gumagamit ang bilog ang bilog ay nagiging pula at ang numero ng bilog ay ipinadala sa Arduino sa pamamagitan ng Bluetooth, sa pagtanggap ng numero ng bilog ang Arduino ay nakabukas sa LED. Suriin natin ang mga mahahalagang linya ng programang Pagproseso upang maunawaan ang mas mabuti. Ang kumpletong code ng Android application ay maaaring ma-download mula sa link sa ibaba.
- Pagproseso ng Code para sa Android Application
Gumagamit kami ng mga klase at bagay upang maipakita ang 64 LED upang madali naming matugunan ang bawat isa. Tulad ng nakikita mo sa code sa ibaba, gumagamit kami ng isang para sa loop upang umulit mula 1 hanggang 64 gamit ang isang array. Ito ang bawat LED ay magkakaroon ng sariling halaga ng X posisyon, posisyon at kulay ng Y at madali nating mababago ang mga ito.
// dipslay all leds for (int i = 1; i <= 64; i ++) led_array.display (); // Lahat ng leds na ipinapakita sa klase Led { float X_Pos; palutangin ang Y_Pos; kulay kulay; // CONSTRUTOR Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; kulay = tempc; } walang bisa ang pagpapakita () { punan (kulay); ellipse (X_Pos, Y_Pos, led_dia, led_dia); } }
Ang mga LED ay na-load sa screen sa parehong pagkakasunud-sunod ng display. Ang bawat LED ay pinaghihiwalay ng isang distansya na katumbas ng diameter ng LED, sa ganitong paraan madali nating makilala kung aling LED ang kasalukuyang pinili ng gumagamit. Tulad ng ipinakita sa program sa ibaba gumagawa kami ng isang array kung saan ang bawat elemento ay nagtataglay ng impormasyon ng posisyon na X, Y at kulay ng LED.
void load_leds () { led_array = bagong Led; int a = 1; para sa (int j = 0; j <= 7; j ++) { float y = taas / 6 + j * (led_dia * 1.5); para sa (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // punan (255); // ellipse (x, y, led_dia, led_dia); led_array = bagong Led (x, y, kulay (255,255,255)); isang ++; } } }
Ang pangunahing hakbang sa programa ay upang suriin kung ang gumagamit ay pinindot ang anumang LED at kung oo kailangan nating baguhin ang kulay ng LED at ipadala ang LED na numero sa pamamagitan ng Bluetooth. Dahil ngayon maaari naming tugunan ang lokasyon at kulay ng bawat LED nang madali magagawa natin ito sa pamamagitan lamang ng paghahambing ng mga halagang X, Y kung saan pinindot ng gumagamit ang X, Y na halaga ng mga LED. Kung ang mga halaga ay nagsasama sa bawat isa pagkatapos ay binabago namin ang estado ng LED at ipinapadala din ang numero sa pamamagitan ng Bluetooth tulad ng ipinakita sa ibaba.
// check if mouse over led // Kung oo ipadala ang led number para sa (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 = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); byte data = {byte (i)}; bt.broadcast (data); } }
Maliban dito, maaari ding i-reset ng programa ang kumpletong LED sa pamamagitan ng pag-off sa kanilang lahat at maaari ka ring gumawa ng LED na pula (ON) o puti (OFF) kaya mayroon din kaming isang pindutan ng toggle para doon. Ang pindutan ng toggle ay ipinapakita at naghihintay para sa pag-input. Kung pinindot ang kani-kanilang pagkilos ay gagawin. Ang code na gawin ang pareho ay ipinapakita sa ibaba bilang pagpapaandar na tinatawag sa loob ng draw loop.
void load_buttons () { rectMode (CENTER); textAlign (CENTER, CENTER); noStroke (); punan (# 1BF2D4); tuwid (lapad / 2-lapad / 4, taas / 1.3, lapad / 4, taas / 12); punan (0); teksto ("I-reset", lapad / 2-lapad / 4, taas / 1.3); // button 1 kung (pula == totoo) {punan (# 080F89); tuwid (lapad / 2 + lapad / 4, taas / 1.3, lapad / 4, taas / 12); punan (255,0,0); teksto ("RED", lapad / 2 + lapad / 4, taas / 1.3);} // pindutan 2 kung (pula == maling) {punan (# 080F89); tuwid (lapad / 2 + lapad / 4, taas / 1.3, lapad / 4, taas / 12); punan (255); teksto ("PUTI", lapad / 2 + lapad / 4, taas / 1.3);} // pindutan 2 } walang bisa na read_buttons () { kung (mousePressed && click_flag == totoo) { color_val = get (mouseX, mouseY); click_flag = false; kung (color_val == - 14945580) { byte data = {0}; bt.broadcast (data); println ("RESET"); load_leds (); // load lahat ng humantong sa posisyon at kulay } kung (color_val == - 16248951) { byte data = {100}; bt.broadcast (data); kung (pula == totoo) pula = mali; kung hindi man (red == false) pula = totoo; println ("TOGGLE"); } color_val = 0; } }
Programming ang iyong Arduino:
Ang kumpletong programa ng Arduino para sa proyekto ng wireless Board na kinokontrol ng Bluetooth na ito ay ibinibigay sa ilalim ng screen na ito; maaari mong gamitin ito nang direkta at i-upload ito sa iyong board. Ang mga mahahalagang linya sa programa ay ipinaliwanag sa ibaba.
Ang module ng Bluetooth ay konektado sa pin 10 at 11, kaya kailangan nating gamitin ang serial ng software upang paganahin ang serial na komunikasyon sa mga pin na ito at pagkatapos ay maaari kaming makinig para sa data mula sa mga pin na ito. Nakukuha namin ang natanggap na data mula sa module ng Bluetooth at ini-save ito sa isang variable na tinatawag na papasok . Kung ang halaga ng papasok ay "0" papatayin namin ang lahat ng LED gamit ang code sa ibaba
kung (BT.available ()) { papasok = BT.read (); Serial.println (papasok); kung (papasok == 0) m.clear (); // Nilinaw ang display
Gamit ang mga halaga ng papasok kailangan nating matukoy kung aling LED ang na-press ng gumagamit sa mobile phone at panahon upang I-ON o I-OFF ang LED na iyon. Kaya't sinusuri namin kung ang halaga ay katumbas ng 100. Kung ang halaga ay 10, nangangahulugan ito na hiniling ng gumagamit na i-toggle ang kulay ng LED. Kaya't pinapalitan namin ang variable na pula upang malaman kung ang LED ay dapat na i-on o i-off.
kung hindi man kung (papasok == 100) // Suriin kung dapat nating i-on o i-off ang LED { kung (red == true) red = false; kung hindi man (red == false) pula = totoo; Serial.print ("PULA:"); Serial.println (pula); }
Panghuli kung ang halaga ay higit sa 65 nangangahulugan ito na ang gumagamit ay pinindot sa isang LED. Batay sa numero mula 1 hanggang 64 kailangan nating matukoy kung aling LED ang pinindot ng gumagamit. Upang i-toggle ang LED na iyon kakailanganin namin ang halaga ng Row at Column ng LED na iyon na kinakalkula at nakaimbak sa variable X at Y ayon sa pagkakabanggit at ipinapakita sa code sa ibaba. Panghuli batay sa halaga ng variable na pula, alinman sa namin buksan o i-off ang LED alinsunod sa kahilingan ng gumagamit
kung hindi man (papasok <= 64) {// Kalkulahin kung saan SA ON ro OFF ang LED toggle = true; Y = papasok / 8; X = papasok - (Y * 8); kung (papasok na% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); kung (pula == totoo) m.setDot ((X - 1), (Y), totoo); // LED ON else kung (red == false) m.setDot ((X - 1), (Y), false); // LED OFF }
Circuit at Disenyo ng PCB gamit ang EasyEDA:
Upang idisenyo ang display ng Controlled Matrix ng Bluetooth, pinili namin ang online na tool ng EDA na tinatawag na EasyEDA. Ginamit ko nang dati ang EasyEDA nang maraming beses at nahanap kong napaka-maginhawa upang magamit dahil mayroon itong isang mahusay na koleksyon ng mga bakas ng paa at ito ay open-source. Matapos ang pagdidisenyo ng PCB, maaari kaming mag-order ng mga sample ng PCB sa pamamagitan ng kanilang mga serbisyong paggawa ng mababang gastos sa PCB. Nag-aalok din sila ng serbisyong sourcing ng bahagi kung saan mayroon silang isang malaking stock ng mga elektronikong sangkap at ang mga gumagamit ay maaaring mag-order ng kanilang mga kinakailangang sangkap kasama ang order ng PCB.
Habang dinidisenyo ang iyong mga circuit at PCB, maaari mo ring gawing publiko ang iyong mga disenyo ng circuit at PCB upang ang ibang mga gumagamit ay maaaring kopyahin o mai-edit ang mga ito at maaaring makinabang mula sa iyong trabaho, ginawa rin naming publiko ang aming buong mga layout ng Circuit at PCB para sa circuit na ito, suriin ang link sa ibaba:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-blu Bluetooth
Maaari mong tingnan ang anumang Layer (Itaas, Ibaba, Topsilk, bottomsilk atbp) ng PCB sa pamamagitan ng pagpili ng layer na bumubuo sa Window na 'Mga Layer'.
Maaari mo ring tingnan ang PCB, kung paano ito magmumula sa katha gamit ang pindutan ng Photo View sa EasyEDA:
Pagkalkula at Pag-order ng Mga Sampol sa online:
Matapos makumpleto ang disenyo ng Bluetooth Controlled Matrix PCB na ito, maaari kang mag-order ng PCB sa pamamagitan ng JLCPCB.com. Upang mag-order ng PCB mula sa JLCPCB, kailangan mo ng Gerber File. Upang mag-download ng mga Gerber file ng iyong PCB i-click lamang ang pindutan ng Fabrication Output sa pahina ng editor ng EasyEDA, pagkatapos ay mag-download mula sa pahina ng order ng EasyEDA PCB.
Ngayon pumunta sa JLCPCB.com at mag-click sa Quote Now o pindutan, pagkatapos ay maaari mong piliin ang bilang ng mga PCB na nais mong mag-order, kung gaano karaming mga layer ng tanso ang kailangan mo, ang kapal ng PCB, bigat ng tanso, at kahit ang kulay ng PCB, tulad ng snapshot ipinapakita sa ibaba:
Matapos mong mapili ang lahat ng mga pagpipilian, i-click ang "I-save sa Cart" at pagkatapos ay dadalhin ka sa pahina kung saan maaari mong i-upload ang iyong Gerber File na na-download namin mula sa EasyEDA. I-upload ang iyong Gerber file at i-click ang "I-save sa Cart". At sa wakas mag-click sa Checkout na Ligtas upang makumpleto ang iyong order, pagkatapos ay makukuha mo ang iyong mga PCB makalipas ang ilang araw. Ginagawa nila ang PCB sa napakababang rate na $ 2. Ang kanilang oras sa pagbuo ay napakaliit din na kung saan ay 48 na oras sa paghahatid ng DHL ng 3-5 araw, karaniwang makukuha mo ang iyong mga PCB sa loob ng isang linggo ng pag-order.
Matapos ang ilang araw ng pag-order ng PCB nakuha ko ang mga sample ng PCB sa magandang balot tulad ng ipinakita sa mga larawan sa ibaba.
At pagkatapos makuha ang mga piraso na ito ay nahinang ko ang lahat ng kinakailangang mga sangkap sa PCB.
Sa aking PCB, nagkamali ako sa pamamagitan ng pagpili ng maling bakas ng paa para sa 8 * 8 Display module, kaya't kailangan kong gumamit ng Perf board upang mai-mount ang display tulad ng ipinakita sa larawan. Ngunit ngayon ang bakas ng paa ay mga pag-update sa PCB at maaari mong orderin ang naitama PCB at i-mount ang display module nang madali.
Paggawa ng display ng board ng Bluetooth Sign:
Kapag handa ka na sa Hardware alinman sa pamamagitan ng pagkuha ng PCB o paggawa ng koneksyon sa breadboard, gamitin ang programang Arduino na ibinigay sa dulo ng pahina at i-upload ito sa iyong Arduino Board. Ang file ng APK application ng android ay ibinigay din sa itaas, gamitin ito at i-install ang application sa iyong ginustong Android device.
Patakbuhin ang hardware at maghanap para sa pangalan ng aparato ng HC-05 sa iyong telepono upang ipares ito. Ang pass key ay magiging 1234 bilang default. Pagkatapos nito, buksan ang application na na-install lamang namin. Dapat ipakita ng application ang " konektado sa HC-05 " sa tuktok ng screen, pagkatapos ay magagawa mong hawakan ang LED sa screen at mapansin na ang parehong LED ay naka-on din sa board.
Maaari mo ring i-off ang lahat ng LED sa pamamagitan ng pagpindot sa pindutang I-reset at magpasya na i-on o i-off ang isang partikular na LED sa pamamagitan ng pagpindot sa pindutan ng I-toggle. Bilang default alinmang LED na pipindutin mo ang i-on. Ang kumpletong pagtatrabaho ng proyekto ay matatagpuan sa video sa ibaba. Kung mayroon kang anumang problema sa pagpapaandar nito gamitin ang kahon ng mga komento sa ibaba o sumulat sa aming mga forum para sa higit pang tulong na panteknikal. Inaasahan kong naintindihan mo ang tutorial at nasiyahan sa pagbuo nito.