- Adafruit 5X8 NeoPixel Shield para sa Arduino
- Pag-unawa sa Proseso ng Komunikasyon sa Pagitan ng Blynk App at Arduino
- Kinakailangan ang Mga Bahagi
- Adafruit RGB LED Shield at Arduino - Koneksyon sa Hardware
- Ang pag-configure ng Blynk Application
- Pagkontrol ng Arduino Code sa Adafruit WS2812B RGB LED Shield
- Pag-upload ng Code sa Arduino Board
Sa loob ng ilang taon, ang mga RGB LEDs ay nagiging popular araw-araw dahil sa magandang kulay, ningning, at nakakaakit na mga epekto sa pag-iilaw. Iyon ang dahilan kung bakit Ginagamit ito sa maraming mga lugar bilang isang pandekorasyon na item, isang halimbawa ay maaaring ang bahay o isang puwang ng opisina. Gayundin, maaari naming gamitin ang mga ilaw ng RGB sa kusina at pati na rin sa isang gaming console. Ang mga ito ay mahusay din sa palaruan ng mga bata o mga silid-tulugan sa mga tuntunin ng pag- iilaw ng mood. Dati, ginamit namin ang WS2812B NeoPixel LEDs at ang ARM Microcontroller upang bumuo ng isang Music Spectrum Visualizer, kaya suriin mo iyon kung interesado ka sa iyo.
Iyon ang dahilan kung bakit sa proyektong ito gagamitin namin ang isang Neopixel Batay sa RGB LED matrix na kalasag, Arduino, at Blynk application upang makagawa ng maraming kamangha-manghang mga epekto at mga kulay ng animasyon na makokontrol namin sa Blynk app. Kaya't magsimula tayo !!!
Adafruit 5X8 NeoPixel Shield para sa Arduino
Ang katugmang Arduino NeoPixel Shield ay naglalaman ng apatnapung indibidwal na addressable RGB LEDs bawat isa ay may built-in na driver ng WS2812b, na nakaayos sa isang 5 × 8 matrix upang mabuo ang NeoPixel Shield na ito. Ang maramihang mga NeoPixel Shields ay maaari ding maiugnay upang makabuo ng isang mas malaking Shield kung kinakailangan iyan. Upang makontrol ang mga RGB LEDs, kinakailangan ng isang solong Arduino pin, kaya sa tutorial na ito, napagpasyahan naming gamitin ang pin 6 ng Arduino upang magawa ito.
Sa aming kaso, ang mga LED ay pinalakas mula sa inbuilt na 5V pin ng Arduino, na sapat para sa pag-power ng halos "isang katlo ng mga LED" sa ganap na ningning. Kung kailangan mong paganahin ang higit pang mga LED, pagkatapos ay maaari mong i-cut ang inbuilt na bakas at gumamit ng isang panlabas na 5v supply upang mapagana ang kalasag gamit ang External 5V terminal.
Pag-unawa sa Proseso ng Komunikasyon sa Pagitan ng Blynk App at Arduino
Ang 8 * 5 RGB LED matrix na ginagamit dito ay nagkakaroon ng apatnapung indibidwal na addressable RGB LEDs batay sa driver ng WS2812B. Mayroon itong 24-bit na kontrol sa kulay at 16.8 milyong mga kulay bawat pixel. Maaari itong makontrol sa pamamaraang "One wire control". Nangangahulugan iyon na makokontrol namin ang buong LED pixel gamit ang isang solong control pin. Habang nagtatrabaho sa mga LEDs, dumaan ako sa datasheet ng mga LED na ito kung saan nakita ko ang saklaw ng boltahe ng pagpapatakbo ng kalasag ay 4 V hanggang 6 V at ang kasalukuyang pagkonsumo ay nalaman na 50 mA bawat LED sa 5 V na may pula, berde, at asul sa buong ningning. Ito ay pagkakaroon ng proteksyon ng Reverse-voltage sa mga panlabas na power pin at isang pindutang I-reset sa Shield upang i-reset ang Arduino. Mayroon din itong isang External Power input pin para sa mga LED kung ang isang sapat na halaga ng kuryente ay hindi magagamit sa pamamagitan ng panloob na circuitry.
Tulad ng ipinakita sa diagram ng eskematiko sa itaas, kailangan naming i-download at i-install ang application na Blynksa aming smartphone kung saan ang mga parameter tulad ng kulay, ang ilaw ay maaaring makontrol. Matapos i-set up ang mga parameter, kung may anumang mga pagbabago na nangyayari sa app, nasa Blynk cloud kung saan nakakonekta rin ang aming PC at handa nang tanggapin ang na-update na data. Ang Arduino Uno ay konektado sa aming PC sa pamamagitan ng USB cable na may isang port ng komunikasyon na binuksan, sa port ng komunikasyon na ito (COM Port), maaaring mapalitan ang data sa pagitan ng Blynk cloud at Arduino UNO. Humihiling ang PC ng data mula sa Blynk cloud sa patuloy na agwat ng oras at kapag natanggap ang isang na-update na data, inililipat ito sa Arduino at gumagawa ng mga desisyon na tinukoy ng gumagamit tulad ng pagkontrol sa RGB na humantong sa liwanag at Mga Kulay. Ang RGB LED na kalasag ay inilalagay sa Arduino LED at konektado sa pamamagitan ng isang solong data pin para sa komunikasyon, bilang default na ito ay konektado sa pamamagitan ng D6 pin ng Arduino.Ang serial data na ipinadala mula sa Arduino UNO ay ipinadala sa Neopixel shied na kung saan ay makikita sa LED matrix.
Kinakailangan ang Mga Bahagi
- Arduino UNO
- 8 * 5 RGB LED Matrix Shield
- USB A / B cable para sa Arduino UNO
- Laptop / PC
Adafruit RGB LED Shield at Arduino - Koneksyon sa Hardware
Ang WS2812B Neopixel LEDs ay mayroong tatlong mga pin, ang isa ay para sa data at isa pang ginagamit para sa lakas, ngunit ang tukoy na kalasag na Arduino na ito ay ginagawang napaka-simple ng koneksyon ng hardware, ang kailangan lang nating gawin ay ilagay ang Neopixel LED matrix sa tuktok ng Arduino UNO. Sa aming kaso, ang LED ay pinalakas mula sa default na Arduino 5V Rail. Matapos mailagay ang Neopixel Shield, ang setup ay katulad ng sa ibaba:
Ang pag-configure ng Blynk Application
Ang Blynk ay isang application na maaaring magpatakbo ng higit sa mga Android at iOS device upang makontrol ang anumang mga IoT device at Appliances gamit ang aming mga smartphone. Una sa lahat, kailangang lumikha ng isang Graphical User Interface (GUI) upang makontrol ang RGB LED matrix. Ipapadala ng application ang lahat ng napiling mga parameter mula sa GUI sa Blynk Cloud. Sa seksyon ng tatanggap, mayroon kaming nakakonekta na Arduino sa PC sa pamamagitan ng isang serial cable na komunikasyon. Samakatuwid, humihiling ang PC ng data mula sa cloud ng Blynk, at ang data na ito ay ipinapadala sa Arduino para sa kinakailangang pagproseso. Kaya, magsimula tayo sa pag-set up ng Blynk application.
Bago ang pag-set up, i-download ang Blynk Application mula sa Google Play store (maaaring mag-download ang mga gumagamit ng IOS mula sa App Store). Pagkatapos ng pag-install, Pag-sign up gamit ang iyong email id at Password.
Lumilikha ng isang Bagong Proyekto:
Matapos ang matagumpay na pag-install, buksan ang application, at doon makakakuha kami ng isang screen na may isang pagpipilian na " Bagong Project ". Mag-click dito at mag-pop up ito ng isang bagong screen, kung saan kailangan naming itakda ang mga parameter tulad ng pangalan ng Project, Board, at uri ng koneksyon. Sa aming proyekto, piliin ang aparato bilang " Arduino UNO " at uri ng koneksyon bilang " USB " at mag-click sa " Lumikha".
Matapos ang matagumpay na paglikha ng Project, makakakuha kami ng isang Authenticate ID sa aming nakarehistrong mail. I-save ang Authenticate ID para sa sanggunian sa hinaharap.
Lumilikha ng Graphic User Interface (GUI):
Buksan ang proyekto sa Blynk, mag-click sa "+" sign kung saan makakakuha kami ng mga widget na maaari naming magamit sa aming proyekto. Sa aming kaso, kailangan namin ng isang RGB Color Picker na nakalista bilang "zeRGBa" tulad ng ipinakita sa ibaba.
Pagtatakda ng Mga Widget:
Matapos i-drag ang mga widget sa aming proyekto, ngayon ay kailangan naming itakda ang mga parameter nito na ginagamit upang maipadala ang mga halagang kulay ng RGB sa Arduino UNO.
Mag-click sa ZeRGBa, pagkatapos makakakuha kami ng isang screen na pinangalanang setting ng ZeRGBa. Pagkatapos itakda ang pagpipiliang Output sa " Pagsamahin " at itakda ang pin sa "V2" na ipinapakita sa imahe sa ibaba.
Pagkontrol ng Arduino Code sa Adafruit WS2812B RGB LED Shield
Matapos makumpleto ang koneksyon sa hardware, kailangang mai-upload ang code sa Arduino. Ang sunud-sunod na paliwanag ng code ay ipinapakita sa ibaba.
Una, isama ang lahat ng kinakailangang mga aklatan. Buksan ang Arduino IDE, pagkatapos ay pumunta sa tab na Sketch at mag-click sa pagpipiliang Isama ang Library-> Pamahalaan ang Mga Aklatan . Pagkatapos hanapin ang Blynk sa search box at pagkatapos ay i-download at i-install ang Blynk package para sa Arduino UNO.
Dito ginagamit ang library na " Adafruit_NeoPixel.h " upang makontrol ang RGB LED Matrix. Upang isama ito, Maaari mong i-download ang Adafruit_NeoPixel library mula sa ibinigay na link. Kapag nakuha mo na, maaari mo itong isama sa pagpipiliang Isama ang ZIP Library.
# tukuyin ang BLYNK_PRINT DebugSerial # isama ang # isama
Pagkatapos ay tinukoy namin ang bilang ng mga LED, na kinakailangan para sa aming LED matrix, tinutukoy din namin ang pin-number na ginagamit upang makontrol ang mga LED parameter.
# tukuyin ang PIN 6 # tukuyin ang NUM_PIXELS 40
Pagkatapos, kailangan naming ilagay ang aming blink authentication ID sa isang auth array, na na-save namin nang mas maaga.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Dito ginagamit ang mga serial serial pin bilang debug console. Kaya, ang mga pin ng Arduino ay tinukoy bilang debug serial sa ibaba.
# isama
Sa loob ng pag-set up, ang Serial na komunikasyon ay pinasimulan gamit ang pag-andar Serial.begin , ang blynk ay konektado gamit ang Blynk.begin at paggamit ng pix.begin (), ang LED Matrix ay naisasimula.
void setup () { DebugSerial.begin (9600); pix.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
Sa loob ng loop () , ginamit namin ang Blynk.run () , na sumusuri para sa mga papasok na utos mula sa blynk GUI at isinasagawa ang mga pagpapatakbo nang naaayon.
void loop () { Blynk.run (); }
Sa huling yugto, ang mga parameter na ipinadala mula sa aplikasyon ng Blynk ay kailangang matanggap at maproseso. Sa kasong ito, ang mga parameter ay inilaan sa isang virtual na pin na "V2" tulad ng tinalakay nang mas maaga sa seksyon ng pag-setup. Ang pagpapaandar ng BLYNK_WRITE ay isang inbuilt na function na tatawagan tuwing nagbabago ang estado / halaga ng nauugnay na virtual pin. maaari naming patakbuhin ang code sa loob ng pagpapaandar na ito tulad ng anumang iba pang pagpapaandar ng Arduino.
Dito nakasulat ang pagpapaandar ng BLYNK_WRITE upang suriin para sa papasok na data sa virtual pin V2. Tulad ng ipinakita sa seksyon ng pag-set up ng Blink, ang data ng kulay ng pixel ay pinagsama at itinalaga sa V2 pin. Kaya kailangan din nating i-de-merge muli pagkatapos ng pag-decode. Dahil upang makontrol ang LED pixel matrix, kailangan namin ang lahat ng 3 indibidwal na data ng pixel ng kulay tulad ng Pula, berde, at Asul. Tulad ng ipinakita sa code sa ibaba, tatlong index ng matrix ang nabasa tulad ng param.asInt () upang makuha ang halaga ng Pulang kulay. Katulad nito, ang lahat ng iba pang dalawang mga halaga ay natanggap at naimbak sa 3 mga indibidwal na variable. Pagkatapos ang mga halagang ito ay nakatalaga sa Pixel matrix gamit ang pag- andar ng pix.setPixelColor tulad ng ipinakita sa code sa ibaba.
Dito, ang pag- andar ng pix.setBrightness () ay ginagamit upang makontrol ang liwanag at pag- andar ng pix.show () ay ginagamit upang ipakita ang itinakdang kulay sa Matrix.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pix.clear (); pix.setBightness (20); para sa (int i = 0; i <= NUM_PIXELS; i ++) { pix.setPixelColor (i, pixel.Color (r, g, b)); } pix.show (); }
Pag-upload ng Code sa Arduino Board
Una, kailangan naming piliin ang PORT ng Arduino sa loob ng Arduino IDE, pagkatapos ay kailangan naming i-upload ang code sa Arduino UNO. Matapos ang isang matagumpay na pag-upload, itala ang Port-Number na gagamitin para sa aming pag-setup ng serial komunikasyon.
Pagkatapos nito, hanapin ang folder ng script ng Blynk library sa iyong PC. Nai-install ito kapag na-install mo ang library, ang sa akin ay nasa, "C: \ Mga Gumagamit \ PC_Name \ Mga Dokumento \ Arduino \ mga aklatan \ Blynk \ script"
Sa folder ng script, dapat mayroong isang file na pinangalanang "blynk-ser.bat" na isang batch file na ginamit para sa serial na komunikasyon na kailangan naming i-edit sa notepad. Buksan ang file gamit ang notepad at palitan ang numero ng Port sa iyong numero ng Arduino Port na napansin mo sa huling hakbang.
Pagkatapos ng pag-edit, i-save ang file at patakbuhin ang file ng batch sa pamamagitan ng pag-double click dito. Pagkatapos, dapat na nakikita mo ang isang window tulad ng ipinakita sa ibaba:
Tandaan: Kung hindi mo makita ang window na ito na ipinakita sa itaas at sinenyasan itong muling kumonekta, maaaring ito ay sanhi ng error sa koneksyon ng PC sa Arduino Shield. Sa kasong iyon, suriin ang iyong koneksyon sa Arduino sa PC. Pagkatapos nito, suriin kung ang numero ng COM port ay ipinapakita sa Arduino IDE o hindi. Kung ipinapakita nito ang wastong port ng COM, handa na itong magpatuloy. Dapat mong patakbuhin muli ang file ng batch.
Pangwakas na Pagpapakita:
Ngayon, oras na para sa pagsubok sa circuit at pag-andar nito. Buksan ang application na Blynk at buksan ang GUI at mag-click sa pindutang Play. Pagkatapos nito, maaari kang pumili ng anuman sa iyong nais na mga kulay na masasalamin sa LED Matrix. Tulad ng ipinakita sa ibaba, sa aking kaso napili ko ang kulay Pula at Asul, ipinapakita ito sa Matrix.
Katulad nito, maaari mo ring subukan na gumawa ng iba't ibang mga animasyon gamit ang mga LED matrice sa pamamagitan ng pagpapasadya ng kaunti sa pag-coding.