Talaan ng mga Nilalaman:

Interactive Minecraft Huwag Pumasok sa Sword / Sign (ESP32-CAM): 15 Hakbang (na may Mga Larawan)
Interactive Minecraft Huwag Pumasok sa Sword / Sign (ESP32-CAM): 15 Hakbang (na may Mga Larawan)

Video: Interactive Minecraft Huwag Pumasok sa Sword / Sign (ESP32-CAM): 15 Hakbang (na may Mga Larawan)

Video: Interactive Minecraft Huwag Pumasok sa Sword / Sign (ESP32-CAM): 15 Hakbang (na may Mga Larawan)
Video: Minecraft Herobrine in Trouble #Shorts 2024, Nobyembre
Anonim
Image
Image
Pangwakas na Produkto
Pangwakas na Produkto

Talagang maraming mga kadahilanan kung bakit lumitaw ang proyektong ito:

1. Bilang isang may-akda ng kooperatiba na multitasking library ng TaskScheduler palagi akong nausisa kung paano pagsamahin ang mga pakinabang ng kooperasyong multitasking sa mga pakinabang ng paunang pag-iisa. May mga pakinabang sa pareho at kapwa may pagkukulang. Ang pagsasama sa dalawa ay nagbibigay-daan sa isang natatanging pagkakataon upang magamit ang mga benepisyo at i-play ang mga isyu ng alinman batay sa isang partikular na use-case. Nakakainteres? Basahin sa…

2. Ang tunay na katotohanan na ang ESP32 ay isang multi-core microcontroller ay kamangha-manghang. Palaging ako ay kakaiba kung maaari kong samantalahin ang tampok na iyon. Kaya't ang eksperimento dito ay: maaari bang stream ng maayos ang video ng ESP32 gamit ang isang core habang gumagawa ng ibang bagay (makabuluhan at makatwirang masinsinang iba pa) sa kabilang core. Kahit na mas nakakainteres ?? Basahin sa…!

3. Kailangan ko ng isang pagsubok na lugar para sa aking kamakailang mga proyekto sa paligid ng paglalaan ng OTA firmware at pamamahala ng pagsasaayos …

4. Bumili ako ng dalawang module ng LED Dot Matrix ilang oras na ang nakakalipas at hindi ko malaman kung ano ang gagawin sa kanila …

5. Ang aking anak na lalaki ay isang manlalaro ng Minecraft, at tulad ng anumang maliliit na batang lalaki ay gustung-gusto na dekorasyunan ang kanyang pinto ng mga poster na "Huwag pumasok" …

Kaya't narito ka - lahat ng magagandang dahilan para sa: Interactive Do Not Enter sign sign na may streaming na ESP32-CAM ng isang feed ng video "mula sa likod ng saradong pinto" - o "Sino ang darating sa aking silid?"

Kaya… tungkol saan ito?

Kung mayroon kang pasensya na basahin ang buong kuwento napagtanto mo na hindi ito talaga tungkol sa isang Minecraft sword. Ang proyektong ito ay isang patunay ng maraming mga konsepto:

  • Ang pagkakaroon ng Preemptive at Kooperatiba na multitasking
  • Piling paggamit ng mga core ng ESP32
  • Paggamit ng bagong mga aklatan ng Diksyonaryo at EspBootstrap
  • Ang paglalaan ng OTA firmware
  • Pamamahala ng pagsasaayos
  • Pag-stream ng video sa maraming kliyente

at marami pang iba.

Mag-enjoy

Mga gamit

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4-in-1 LED Display Module Geekcreit para sa Arduino
  • Attom Tech 2500mAh Power Bank

Hakbang 1: Pangwakas na Produkto

Pangwakas na Produkto
Pangwakas na Produkto

Magsisimula ako sa kung paano ang hitsura ng panghuling produkto, at pagkatapos ay ipaliwanag kung paano ito itinayo at kung paano ito makontrol.

Tila mas nakakaengganyo sa ganitong paraan …

Hakbang 2: Faceplate ng Sword

Faceplate ng Sword
Faceplate ng Sword
Faceplate ng Sword
Faceplate ng Sword

Ang faceplate ng espada ay ginawa mula sa whiteboard, minarkahan ng isang lapis, at may kulay na mga marka ng Crayola. Ang nag-iisa na ito ay maaaring maging isang kagiliw-giliw na proyekto kasama ang iyong anak:

  • Markahan ang isang tabak sa isang whiteboard
  • Gupitin ang faceplate
  • Markahan ang mga parisukat (o mga bloke)
  • Isa-isa silang kulayan
  • Magdagdag ng mga itim na linya na may isang sharpie.

Nagsama ako ng isang bukas na dokumento sa tanggapan na may isang sample na larawan ng isang brilyante na tabak na maaari mong pandikit sa tuktok ng whiteboard kung gusto mo ng mga shortcut … Kapag tapos na ang lahat maaari mong mai-hot-glue ang faceplate sa natitirang pagpupulong o gumamit ng doble- panig na tape.

Hakbang 3: Display ng Dot Matrix LED

Ipakita ang Dot Matrix LED
Ipakita ang Dot Matrix LED
Ipakita ang Dot Matrix LED
Ipakita ang Dot Matrix LED
Display ng Dot Matrix LED
Display ng Dot Matrix LED

Mayroon akong 2 sa kanila, 4 na segment bawat isa, kaya't nagpasya akong gawing isa ang 8 segment.

Maginhawang may isang 5-pin male header sa isang gilid, at tumutugma sa 5 butas sa kabaligtaran. Baluktot ang header ng lalaki sa isang tulad ng staple] na hugis, nakakonekta ko ang dalawang mga module parehong electrically at mechanically! Pinatay ang dalawang ibon na may isang bato (o dalawang langaw na may isang swat, upang ihinto ang dalawang bibig sa isang piraso ng tinapay, upang makagawa ng dalawang kaibigan na may isang regalo, upang magkaroon ng dalawang mga string sa isang bow, ano ang iba pang mga idyoma sa bagay na iyon - naisip mo ba? Paumanhin, nagdumi ako).

Gagamitin ang kabaligtaran na header ng lalaki upang ikonekta ang isang katugmang babaeng header mula sa veroboard sa ESP32-Cam at iba pang mga bahagi.

Ang dalawang bahagi ay konektado sa isang 3d-print na tulay, na naglalaman din ng isang switch upang buksan at patayin ang kuryente. 3d STL file para sa tulay at iba pang mga bahagi ay matatagpuan sa mga file / 3d folder sa GitHub.

Hakbang 4: Lakas

Lakas
Lakas

Ang Sword ay pinalakas ng isang 2500 mAh USB power bank - ang pinakamaliit at pinakamayat na maaari kong makita. Ang slide ng Powerbank sa isang naka-print na kaso, na nakakabit din sa mga module ng dot matrix, kaya pinagsama ang buong bagay.

Mayroong dalawang bilog na magnet na nakadikit sa kaso ng power bank, at iyan ang kung paano nakakabit ang tabak sa pintuan (kaya't ito ay madaling maialis para sa pagpapanatili).

Hakbang 5: Skematika

Skematika
Skematika
Skematika
Skematika
Skematika
Skematika

Ang totoong eskematiko ay matatagpuan sa GitHub, ngunit ang isang larawan ay nagkakahalaga ng 1000 mga salita (1024 sa Teknolohiya ng Impormasyon), kaya narito ka:

Ito ay medyo prangka kung alam mo ang iyong paraan gamit ang isang soldering gun. TANDAAN: Ang bahagi ng tulay na 3d ay idinisenyo para sa isang tiyak na sukat ng veroboard: 30 x 70 mm. Kung magpapasya kang gumamit ng ibang, kailangan mong muling idisenyo ang bahagi ng tulay.

Hakbang 6: Pag-print ng 3d

Pag-print ng 3d
Pag-print ng 3d
Pag-print ng 3d
Pag-print ng 3d
Pag-print ng 3d
Pag-print ng 3d

Ang case ng baterya at isang tulay na kumokonekta sa veroboard ng ESP32-CAM sa dot-matrix display assembly ay 3d na dinisenyo at naka-print.

Ang kaso ng baterya ay dumating sa 2 bahagi, na kailangang idikit nang magkasama pagkatapos mag-print upang lumikha ng isang "bulsa" para sa baterya. Ang tulay ay kailangang linisin lamang ng lahat ng mga istruktura ng suporta (walang magandang oryentasyon talaga na minimize ang mga ito, sa kasamaang palad). Ang mga file ng STL ay nasa GitHub at ang mga orihinal na TinkerCad ay matatagpuan dito.

Kasama rin sa disenyo ng 3D sa TinkerCad ang simulate na iskema ng pagpupulong kung paano magkakasama ang mga bahagi at dapat na konektado.

Hakbang 7: Programming

Multi-multitasking

Ang disenyo na ito ay gumagamit ng FreeRTOS para sa preemptive multitasking at TaskScheduler library para sa isang kooperatiba. Ang pag-uugali at mensahe ng Sword ay kinokontrol sa pamamagitan ng Blynk App. Pagkatapos ng pag-set up (mga pin, camera at pagsisimula ng tuldok na tuldok, pagkonekta sa WiFi, atbp.), Dalawang pangunahing gawain ng RTOS ang nilikha:

  • Gawain ang streaming ng RTOS ng video, na naka-pin sa Application Core ng ESP32 (core 1)
  • Pagpapakita ng teksto at pagkontrol ng gawain ni Blynk sa RTOS, na naka-pin sa Power Core ng ESP32 (core 0), na responsable din para sa lahat ng mga gawain na nauugnay sa WiFi. Ang pagpapatupad ng kaugnay na teksto at Blynk ay pinamamahalaan sa pamamagitan ng mga gawain ng TaskScheduler.

Nalaman ko na ang 4K ng stack space ay sapat na para sa mga gawain ng RTOS, ngunit may posibilidad na maubusan ng stack, kaya kung gusto mo, gawin itong 8K - maraming RAM sa ESP32.

Ang lahat ng pagkuha ng video at streaming ay nangyayari sa Core 1. Lahat ng iba pa - sa Core 0.

Ang ESP32 ay may sapat na kapangyarihan upang hawakan ang lahat ng iyon sa pamamagitan ng pagbawas ng isang maliit na pawis (ang board ay naging mainit kapag streaming video).

ITO ang pangunahing layunin ng proyekto: mapayapa at produktibong magkakasamang buhay ng pauna at kooperasyong multitasking!

Hakbang 8: Pagkontrol sa Dot Matrix

Gumagamit ako ng napakalakas na library ng MD_Parola at MD_MAX72xx na magagamit din sa Arduino IDE library manager.

Ang lahat ng mga espesyal na epekto sa tekstuwal ay ginagawa sa pamamagitan ng mga silid-aklatan na iyon. Tumagal ng kaunting pagsisikap upang matukoy ang tamang uri ng hardware ng MAX72XX (MD_MAX72XX:: ICSTATION_HW sa aking kaso, maaaring iba ang iyo), pagkatapos nito, ang pagkontrol sa teksto ay isang simoy.

Pinapayagan ng tabak ang mga sumusunod na kontrol:

  • Ningning
  • Kumukurap
  • Flash
  • Bilis at direksyon ng pag-scroll (pataas / pababa, pakaliwa / pakanan, matatag)
  • Maaari mo rin itong gawing Wall Clock

Hakbang 9: Pag-streaming ng Video

Ang Blynk App ay may isang maliit na widget sa streaming ng video, ngunit maaari kang mag-stream sa browser, VLC player, o anumang sumusuporta sa pamantayan ng MJPEG.

Hanggang sa 10 konektadong mga kliyente ang sinusuportahan.

Kakailanganin mong malaman ang IP address ng iyong ESP32-CAM upang makakonekta dito. Maaari mo itong tingnan sa iyong router, o i-compile ang sketch na ito na may pagpipiliang _DEBUG_ na pinagana muna, at basahin ang IP address ng terminal kapag kumonekta ito sa iyong network.

MAHALAGA: Maipapayo na magtalaga ng isang permanenteng IP address sa, o lumikha ng isang pagpapareserba ng DHCP para sa, module ng ESP32-CAM kaya't ang address nito ay hindi nagbabago kapag nag-expire na ang pag-upa. Maaari mo ring baguhin ang Blynk App upang mai-update ang IP address sa stream URL - isang kagiliw-giliw na takdang-aralin sa takdang-aralin kung nasa iyo ito.

Ang kasalukuyang sketch ay gumagamit ng isang resolusyon ng QVGA: 320x240 pixel, na ginagawang mas mabilis. Malaya ka at hinihikayat na maglaro kasama ang iba pang mga resolusyon at magpasya kung ano ang gagana para sa iyo.

Ang RAM ay hindi dapat maging isang problema tulad ng sketch na samantalahin ang PSRAM.

Hakbang 10: Pag-configure

Sinasamantala ng sketch ang aking mga aklatan ng Diksyonaryo at EspBootstrap upang mai-load ang mga parameter ng pagsasaayos mula sa server ng pagsasaayos sa boot.

Nagpapatakbo ako ng aking sariling server ng pagsasaayos, na maaari mo ring gawin (ito ay isang simpleng Apache2 web server na naghahatid lamang ng mga JSON file).

Maaari mo ring gamitin ang anuman sa mga serbisyong online na magagamit para sa gawain: (OTADrive, Microsoft Azure, AWS IoT, atbp.). Sa kasong ito mangyaring baguhin ang pamamaraan ng String makeConfig (String path) upang naaangkop na bumuo ng isang URL na tumuturo sa iyong mapagkukunan ng pagsasaayos. Bilang kahalili, maaari mong i-save ang file ng pagsasaayos sa SPIFFS filesystem sa ESP32-CAM at basahin ito mula doon, o hardcode lamang ang lahat ng mga entry. Mangyaring tingnan ang README ng EspBootstrap library para sa iyong mga pagpipilian.

Ang isang halimbawa ng isang file ng pagsasaayos ay ibinibigay sa GitHub.

Kung mas gusto mo ang mga parameter ng hardcode, ang isang halimbawa ay nasa ibaba:

pd ("Pamagat", "DND Sword Setup");

pd ("ssid", "iyong wifi ssid"); pd ("password", "iyong wifi password"); pd ("msg", "Hello!"); pd ("aparato", "8"); pd ("blynk_auth", "your blynk AUTH UUID"); // kung nagpapatakbo ka ng iyong sariling server lamang: pd ("blynk_host", "iyong blynk server IP"); pd ("blynk_port", "your server port");

Hakbang 11: Mga Update sa OTA Firmware

Ang sketch din ay pinagana ang pag-update ng firmware ng OTA (Over The Air) at sinusuri ang bagong firmware sa bawat boot.

Muli, pinatakbo ko ang aking sariling server ng pag-update ng OTA, na maaari mo ring gawin (ito ay isang simpleng Apache2 webserver na may kaunting PHP scripting na naghahatid ng mga binary file).

Maaari mo ring gamitin ang anuman sa mga serbisyong online IoT na magagamit para sa gawain: (OTADrive, Microsoft Azure, AWS IoT, atbp.). Sa kasong ito, mangyaring baguhin ang walang bisa na checkOTA () na pamamaraan upang naaangkop na bumuo ng isang update URL na tumuturo sa iyong mapagkukunan ng binary file.

Opsyonal ito - maaari kang pumili upang mag-upload lamang ng mga binary sa pamamagitan ng serial connection.

Hakbang 12: MJPEG Server

Ang paksang ito ay inilarawan nang detalyado dito.

Hakbang 13: Blynk App

Blynk App
Blynk App
Blynk App
Blynk App
Blynk App
Blynk App

Ang Blynk ay isang cloud-based na IoT platform na nagbibigay-daan sa mabilis na pag-unlad ng App. Ito ay libre para sa personal na paggamit at kahit na may pagpipilian ng pagpapatakbo ng iyong sariling Blynk server.

Ako (tulad ng nahulaan mo na) ay nagpapatakbo ng aking sariling Blynk server, ngunit maaaring mas madali para sa iyo na gamitin ang cloud bersyon. I-install ang Blynk iOS o Android App, at sundin ang mga larawan sa ibaba upang muling maitayo ang App sa iyong telepono.

Kakailanganin mong magbigay ng iyong sariling Blynk Auth UUID para sa application upang gumana sa iyong App. Ito ang dahilan kung bakit gumagamit ako ng mga file ng pagsasaayos. Gayunpaman, para sa isang proyekto na isang-off, ang isang hardcoded na halaga ay gagana nang maayos.

MAHALAGA: Mangyaring tiyakin na ang iyong Blynk Project ay nakatakda upang Abisuhan ang Mga Device Kapag Nakakonekta ang App.

TANDAAN sa video streaming widget: kung minsan ang video ay hindi nagsisimula. Mukhang hindi ito isang problema sa ESP32, sa halip na ang widget ng video ng application na Blynk. Subukang isara at muling buksan ang App o ihinto / simulan muli ang proyekto. Sa paglaon, nagsisimula na ito. Ang problemang ito ay tila wala sa browser o VLC player (halimbawa).

Hakbang 14: Mag-enjoy

Ito ay isang nakakatuwang pagbuo nito at nagpapatunay na ang isang aparato na may laki ng postmark tulad ng ESP32 ay maaaring gumawa ng higit pa sa stream ng video lamang. Maraming konsepto mula sa proyektong ito ang maaaring magamit muli sa iba pang mga application.

Hakbang 15: Mga Aklatan at Code

Mga Aklatan:

  • Blynk server
  • EspBootstrap library
  • Library ng TaskScheduler
  • Silid aklatan
  • LED Matrix Library
  • Ipinapakita ang library para sa modular na pag-scroll sa LED matrix na teksto

Tunay na imbakan:

Minecraft Interactive Huwag Pumasok sa Sword / Sign (ESP32-CAM)

Inirerekumendang: