Përmbajtje:

Minecraft Interactive Mos Fut Shpatë/Shenjë (ESP32-CAM): 15 hapa (me fotografi)
Minecraft Interactive Mos Fut Shpatë/Shenjë (ESP32-CAM): 15 hapa (me fotografi)

Video: Minecraft Interactive Mos Fut Shpatë/Shenjë (ESP32-CAM): 15 hapa (me fotografi)

Video: Minecraft Interactive Mos Fut Shpatë/Shenjë (ESP32-CAM): 15 hapa (me fotografi)
Video: Node-RED Con 2021 Global Track 2024, Nëntor
Anonim
Image
Image
Produkti Përfundimtar
Produkti Përfundimtar

Ka vërtet disa arsye pse u shfaq ky projekt:

1. Si autor i bibliotekës bashkëpunuese me shumë detyra TaskScheduler isha gjithmonë kurioz se si të kombinoja përfitimet e multitasking-it bashkëpunues me përfitimet e atij parandalues. Ka përfitime për të dy dhe të dy kanë mangësi. Kombinimi i të dyjave lejon një mundësi unike për të shfrytëzuar përfitimet dhe për të minimizuar çështjet e secilës bazuar në një rast të veçantë përdorimi. Interesante? Lexo…

2. Vetë fakti që ESP32 është një mikrokontrollues me shumë bërthama është magjepsës. Unë kam qenë gjithmonë kurioz nëse mund të përfitoj nga kjo veçori. Pra eksperimenti këtu ishte: a mund të transmetojë ESP32 video pa probleme duke përdorur njërën bërthamë duke bërë diçka tjetër (diçka tjetër kuptimplote dhe me arsye të arsyeshme intensive) në bërthamën tjetër. Edhe me interesante ?? Lexo…!

3. Më duhej një terren testimi për projektet e mia të fundit rreth sigurimit dhe menaxhimit të konfigurimit të firmware OTA…

4. Kisha blerë dy module LED Dot Matrix disa kohë më parë dhe nuk mund të kuptoja se çfarë të bëja me to…

5. Djali im është një lojtar i Minecraft, dhe si çdo djalë i vogël i pëlqen të dekoroj derën e tij me postera "Mos hyni" …

Kështu që ju shkoni - të gjitha arsyet e mira për: Interaktive Mos Hyr shenjë dere me transmetim ESP32 -CAM të një burimi video "nga prapa derës së mbyllur" - ose "Kush po vjen në dhomën time?"

Pra… për çfarë bëhet fjalë?

Nëse keni durim për të lexuar të gjithë historinë, e kuptoni se kjo nuk është me të vërtetë për një shpatë Minecraft. Ky projekt është një dëshmi e shumë koncepteve:

  • Bashkëjetesa e multitaskimit parandalues dhe bashkëpunues
  • Përdorimi selektiv i bërthamave ESP32
  • Përdorimi i bibliotekave të reja të Fjalorit dhe EspBootstrap
  • Sigurimi i firmware OTA
  • Menaxhimi i konfigurimit
  • Transmetimi i videove për klientë të shumtë

dhe shumë më tepër

Shijoni

Furnizimet

  • ESP32-CAM
  • MAX7219 Moduli i Pikës së Matricës 4-në-1 Moduli i Ekranit LED Geekcreit për Arduino
  • Bankë energjie Attom Tech 2500mAh

Hapi 1: Produkti Final

Produkti Përfundimtar
Produkti Përfundimtar

Do të filloj me atë se si duket produkti përfundimtar, dhe pastaj do të shpjegoj se si është ndërtuar dhe si ta kontrolloj atë.

Duket më tërheqëse në këtë mënyrë…

Hapi 2: Pllakë shpate me shpatë

Pllakë shpate
Pllakë shpate
Pllakë shpate
Pllakë shpate

Pllaka e shpatës është bërë nga dërrasa e bardhë, e shënuar me laps dhe e ngjyrosur me shënues Crayola. Ky vetëm mund të jetë një projekt interesant me fëmijën tuaj:

  • Shënoni një shpatë në një dërrasë të bardhë
  • Pritini pllakën e fytyrës
  • Shënoni katrorët (ose blloqet)
  • Ngjyrosini ato individualisht
  • Shtoni vija të zeza me një mprehtësi.

Unë përfshiva një dokument të hapur zyre me një fotografi shembull të një shpate diamanti që mund ta ngjisni në krye të dërrasës së bardhë nëse preferoni shkurtore… Pasi të jetë bërë gjithçka, ose mund të ngjitni pllakën e nxehtë në pjesën tjetër të asamblesë ose të përdorni dyfish- kasetë të njëanshme.

Hapi 3: Ekrani LED i Matricës me pika

Ekran LED me matricë pikë
Ekran LED me matricë pikë
Ekran LED me matricë pikë
Ekran LED me matricë pikë
Ekran LED me matricë pika
Ekran LED me matricë pika

Unë kisha 2 prej tyre, 4 segmente secili, kështu që vendosa të bëj një me 8 segmente.

Në mënyrë të përshtatshme ka një kokë mashkullore me 5 kunja në njërën anë, dhe që përputhen me 5 vrima në anën e kundërt. Duke e përkulur kokën mashkullore në një formë kryesore], unë kam qenë në gjendje të lidh dy modulet si elektrikisht ashtu edhe mekanikisht! Vranë dy zogj me një gur (ose dy miza me një copë, për të ndaluar dy gojë me një kafshatë, për të bërë dy miq me një dhuratë, për të pasur dy tela për një hark, cilat janë idiomat e tjera për këtë çështje - keni menduar? Më falni, u tërhoqa).

Titulli i kundërt mashkullor do të përdoret për të lidhur një kokë femër që përputhet nga pllaka veroboard me ESP32-Cam dhe përbërës të tjerë.

Të dy komponentët janë të lidhur me një urë të printuar në 3D, e cila gjithashtu përmban një ndërprerës për të ndezur dhe fikur energjinë. Skedarët STL 3d për urën dhe komponentët e tjerë janë të vendosur në dosjen fotografi/3d në GitHub.

Hapi 4: Fuqia

Fuqia
Fuqia

Shpata mundësohet nga një bankë USB 2500 mAh - më e vogla dhe më e hollë që kam gjetur. Powerbank rrëshqet në një kuti të printuar në 3D, e cila gjithashtu i bashkëngjitet moduleve të matricës së pikave, duke mbajtur kështu të gjithë së bashku.

Ka dy magnetë të rrumbullakët të ngjitur në kutinë e bankës së energjisë, dhe kjo është mënyra se si shpata është ngjitur në derë (kështu që mund të shkëputet aq lehtë për mirëmbajtje).

Hapi 5: Skematike

Skematike
Skematike
Skematike
Skematike
Skematike
Skematike

Skema e vërtetë gjendet në GitHub, por një fotografi vlen 1000 fjalë (1024 në Teknologjinë e Informacionit), kështu që këtu jeni:

Kjo është mjaft e drejtpërdrejtë nëse e dini rrugën tuaj me një armë saldimi. SHOTNIM: Pjesa e urës 3d është projektuar për një madhësi veroboard të veçantë: 30 x 70 mm. Nëse vendosni të përdorni një tjetër, duhet të ri-dizajnoni përbërësin e urës.

Hapi 6: Shtypja 3d

Shtypja 3D
Shtypja 3D
Shtypja 3D
Shtypja 3D
Shtypja 3D
Shtypja 3D

Rasti i baterisë dhe një urë që lidh veroboardin ESP32-CAM me montimin e ekranit me dot-matricë u projektuan dhe u shtypën në 3D.

Rasti i baterisë vjen në 2 pjesë, të cilat duhet të ngjiten së bashku pas printimit për të krijuar një "xhep" për baterinë. Ura thjesht duhet të pastrohet nga të gjitha strukturat mbështetëse (për fat të keq nuk ka ndonjë orientim të mirë që i minimizon ato). Skedarët STL janë në GitHub dhe origjinalet TinkerCad janë të vendosura këtu.

Dizajni 3D në TinkerCad gjithashtu përfshin skemën e simuluar të montimit se si pjesët përshtaten së bashku dhe duhet të lidhen.

Hapi 7: Programimi

Multi-multitasking

Ky dizajn përdor FreeRTOS për multitasking parandalues dhe bibliotekën TaskScheduler për atë bashkëpunues. Sjellja dhe mesazhet e shpatës kontrollohen përmes Blynk App. Pas konfigurimit (kunjat, inicimi i kamerës dhe pikës së matricës, lidhja me WiFi, etj.), Krijohen dy detyra kryesore RTOS:

  • Detyra e transmetimit të videos RTOS, e lidhur me Bërthamën e Aplikimit të ESP32 (bërthama 1)
  • Shfaqja e tekstit dhe detyra RTOS e kontrollit të Blynk, e fiksuar në Power Core të ESP32 (bërthama 0), e cila gjithashtu është përgjegjëse për të gjitha detyrat e lidhura me WiFi. Teksti dhe ekzekutimi i lidhur me Blynk menaxhohet përmes detyrave të TaskScheduler.

Kam zbuluar se 4K hapësirë në rafte është e mjaftueshme për detyrat RTOS, por ekziston mundësia e mbarimit të rafteve, kështu që nëse preferoni, bëjeni 8K - ka shumë RAM në ESP32.

E gjithë regjistrimi dhe transmetimi i videove ndodh në Core 1. Çdo gjë tjetër - në Core 0.

ESP32 ka fuqi të mjaftueshme për të trajtuar të gjitha këto me thyerjen e pak djersës (bordi nxehet kur transmetoni video).

Ky ishte qëllimi kryesor i projektit: bashkëjetesë paqësore dhe produktive e multitaskimit parandalues dhe bashkëpunues!

Hapi 8: Kontrolli i matricës së pikave

Unë jam duke përdorur biblioteka shumë të fuqishme MD_Parola dhe MD_MAX72xx gjithashtu të disponueshme në menaxherin e bibliotekës Arduino IDE.

Të gjitha efektet speciale tekstuale bëhen përmes atyre bibliotekave. U desh pak përpjekje për të përcaktuar llojin e saktë të harduerit MAX72XX (MD_MAX72XX:: ICSTATION_HW në rastin tim, i juaji mund të jetë i ndryshëm), pas kësaj, kontrolli i tekstit është një fllad.

Shpata lejon kontrollet e mëposhtme:

  • Ndriçimi
  • Vezullim
  • Flash
  • Lëviz shpejtësinë dhe drejtimin (lart/poshtë, majtas/djathtas, i qëndrueshëm)
  • Ju gjithashtu mund ta ktheni atë në një orë muri

Hapi 9: Transmetimi i videove

Aplikacioni Blynk ka një widget të vogël për transmetimin e videove, por ju mund të transmetoni në shfletues, luajtës VLC ose çdo gjë që mbështet standardin MJPEG.

Mbështeten deri në 10 klientë të lidhur.

Ju do të duhet të zbuloni adresën IP të ESP32-CAM tuaj për të qenë në gjendje të lidheni me të. Mund ta shikoni në ruterin tuaj, ose ta përpiloni këtë skicë me opsionin _DEBUG_ të aktivizuar së pari dhe të lexoni adresën IP të terminalit kur lidhet me rrjetin tuaj.

E RORTNDSISHME: veryshtë shumë e këshillueshme që të caktoni një adresë IP të përhershme ose të krijoni një rezervim DHCP për modulin ESP32-CAM, kështu që adresa e tij nuk ndryshon kur skadon qiraja. Ju gjithashtu mund të modifikoni Aplikacionin Blynk për të përditësuar adresën IP në URL -në e transmetimit - një detyrë interesante e detyrave të shtëpisë nëse jeni gati për të.

Skica aktuale përdor një rezolutë QVGA: 320x240 piksele, gjë që e bën atë mjaft të shpejtë. Ju jeni të lirë dhe të inkurajuar të luani me rezolutat e tjera dhe të vendosni se çfarë funksionon për ju.

RAM nuk duhet të jetë problem pasi skica përfiton nga PSRAM.

Hapi 10: Konfigurimi

Skica përfiton nga bibliotekat e mia të Fjalorit dhe EspBootstrap për të ngarkuar parametrat e konfigurimit nga serveri i konfigurimit gjatë nisjes.

Unë drejtoj serverin tim të konfigurimit, të cilin mund ta bëni edhe ju (është një server i thjeshtë Apache2 në të vërtetë që thjesht shërben skedarë JSON).

Ju gjithashtu mund të përdorni ndonjë nga shërbimet online të disponueshme për detyrën: (OTADrive, Microsoft Azure, AWS IoT, etj.). Në këtë rast ju lutemi ndryshoni metodën String makeConfig (String path) për të ndërtuar në mënyrë të përshtatshme një URL që tregon burimin tuaj të konfigurimit. Përndryshe, mund ta ruani skedarin e konfigurimit në sistemin e skedarëve SPIFFS në ESP32-CAM dhe ta lexoni nga atje, ose thjesht të kodoni të gjitha shënimet. Ju lutemi shihni README të bibliotekës EspBootstrap për opsionet tuaja.

Një shembull i një skedari konfigurimi ofrohet në GitHub.

Nëse preferoni të kodoni parametrat, një shembull është më poshtë:

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

pd ("ssid", "wsifi juaj ssid"); pd ("fjalëkalimi", "fjalëkalimi juaj wifi"); pd ("msg", "Përshëndetje!"); pd ("pajisje", "8"); pd ("blynk_auth", "blynk juaj AUTH UUID"); // nëse drejtoni serverin tuaj vetëm: pd ("blynk_host", "IP serveri juaj i blynk"); pd ("blynk_port", "porti i serverit tuaj");

Hapi 11: Përditësimet e firmware OTA

Skica gjithashtu është e aktivizuar përditësimin e firmware OTA (Over The Air) dhe po kontrollon për firmware të ri në çdo boot.

Përsëri, unë drejtoj serverin tim të azhurnimit OTA, të cilin mund ta bëni edhe ju (është një server i thjeshtë Apache2 me pak skriptim PHP që shërben skedarë binarë).

Ju gjithashtu mund të përdorni ndonjë nga shërbimet online IoT të disponueshme për detyrën: (OTADrive, Microsoft Azure, AWS IoT, etj.). Në këtë rast ju lutemi ndryshoni metodën e pavlefshme checkOTA () për të ndërtuar në mënyrë të përshtatshme një URL përditësimi duke treguar burimin tuaj të skedarit binar.

Kjo është opsionale - ju mund të zgjidhni të ngarkoni vetëm binare përmes lidhjes serike.

Hapi 12: Serveri MJPEG

Kjo temë përshkruhet në detaje këtu.

Hapi 13: Aplikacioni Blynk

Aplikacioni Blynk
Aplikacioni Blynk
Aplikacioni Blynk
Aplikacioni Blynk
Aplikacioni Blynk
Aplikacioni Blynk

Blynk është një platformë IoT e bazuar në cloud që lejon zhvillimin e shpejtë të Aplikacioneve. Freeshtë falas për përdorim personal dhe madje ka mundësinë për të drejtuar serverin tuaj Blynk.

Unë (siç mund ta keni menduar tashmë) po drejtoj serverin tim Blynk, por mund të jetë më e lehtë për ju të përdorni versionin cloud. Instaloni aplikacionin Blynk iOS ose Android dhe ndiqni fotot më poshtë për të rindërtuar aplikacionin në telefonin tuaj.

Ju do të duhet të siguroni UUID -in tuaj Blynk Auth që aplikacioni të funksionojë me Aplikacionin tuaj. Kjo është arsyeja pse unë përdor skedarë konfigurimi. Sidoqoftë, për një projekt të vetëm, një vlerë e koduar do të funksiononte po aq mirë.

E RORTNDSISHME: Ju lutemi sigurohuni që Projekti juaj Blynk është caktuar të njoftojë pajisjet kur aplikacioni është i lidhur.

SHENIM në widget -in e transmetimit të videos: ndonjëherë videoja nuk fillon. Nuk duket të jetë një problem me ESP32, përkundrazi me miniaplikacionin video të aplikacionit Blynk. Provoni të mbyllni dhe rihapni Aplikacionin ose ndaloni/filloni përsëri projektin. Përfundimisht, fillon. Ky problem nuk duket se ekziston në shfletuesin ose lojtarin VLC (për shembull).

Hapi 14: Shijoni

Ishte shumë argëtuese ndërtimi i kësaj dhe dëshmimi se një pajisje me madhësi postare si ESP32 mund të bëjë shumë më tepër sesa thjesht transmetimi i videos. Shumë koncepte nga ky projekt mund të ripërdoren në aplikacione të tjera.

Hapi 15: Bibliotekat dhe Kodi

Bibliotekat:

  • Server Blynk
  • Biblioteka EspBootstrap
  • Biblioteka TaskScheduler
  • Biblioteka e fjalorit
  • Biblioteka e Matricës LED
  • Biblioteka për ekranet modulare të ekranit të matricës LED

Depoja aktuale:

Minecraft Interactive Mos Fut Shpatë/Shenjë (ESP32-CAM)

Recommended: