Kazalo:

Interaktivni Minecraft Ne vnesite meča/znaka (ESP32-CAM): 15 korakov (s slikami)
Interaktivni Minecraft Ne vnesite meča/znaka (ESP32-CAM): 15 korakov (s slikami)

Video: Interaktivni Minecraft Ne vnesite meča/znaka (ESP32-CAM): 15 korakov (s slikami)

Video: Interaktivni Minecraft Ne vnesite meča/znaka (ESP32-CAM): 15 korakov (s slikami)
Video: КАК СОЗДАТЬ СВОЙ МОД В МАЙНКРАФТ С ПОМОЩЬЮ MCREATOR БЕЗ НАПИСАНИЯ КОДОВ? Minecraft Mod Forge 2024, November
Anonim
Image
Image
Končni izdelek
Končni izdelek

Razlogov za nastanek tega projekta je več:

1. Kot avtor zadružne knjižnice za več opravil TaskScheduler me je vedno zanimalo, kako združiti prednosti sodelovanja pri večopravilnosti z prednostmi vnaprej. Oba imata prednosti in oba imata pomanjkljivosti. Združevanje obeh omogoča edinstveno priložnost, da izkoristite prednosti in odpravite vprašanja obeh na podlagi posebnega primera uporabe. Zanimivo? Beri naprej…

2. Dejstvo, da je ESP32 večjedrni mikrokrmilnik, je fascinantno. Vedno me je zanimalo, če lahko izkoristim to funkcijo. Tako je bil poskus tukaj: ali lahko ESP32 brez težav pretaka video z enim jedrom, medtem ko počne drugo (smiselno in razumno intenzivno nekaj drugega) na drugem jedru. Še bolj zanimivo ?? Beri naprej…!

3. Potreboval sem poligon za svoje nedavne projekte v zvezi z zagotavljanjem vdelane programske opreme OTA in upravljanjem konfiguracije …

4. Pred časom sem kupil dva modula LED Dot Matrix in nisem mogel ugotoviti, kaj bi z njimi…

5. Moj sin je igralec Minecrafta in kot vsak majhen fant rad okrasi svoja vrata s plakati "Ne vstopi" …

Torej - vsi dobri razlogi za: Interaktivni znak Ne vstopajte na vrata z ESP32 -CAM pretakanjem video vira "izza zaprtih vrat" - ali "Kdo prihaja v mojo sobo?"

Torej … za kaj gre?

Če imate potrpljenje, da preberete celotno zgodbo, se zavedate, da v resnici ne gre za meč Minecraft. Ta projekt je dokaz številnih konceptov:

  • Soobstoj preventivne in kooperativne večopravilnosti
  • Selektivna uporaba jeder ESP32
  • Uporaba novih knjižnic Slovar in EspBootstrap
  • Zagotavljanje vdelane programske opreme OTA
  • Upravljanje konfiguracije
  • Pretakanje videa na več strank

in še veliko več.

Uživajte

Zaloge

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4-in-1 LED Display Module Geekcreit za Arduino
  • Napajalna baterija Attom Tech 2500mAh

1. korak: Končni izdelek

Končni izdelek
Končni izdelek

Začel bom s tem, kako izgleda končni izdelek, nato pa razložil, kako je bil zgrajen in kako ga nadzirati.

Na ta način se zdi bolj zanimivo …

Korak: Prednja plošča za meč

Prednja plošča za meč
Prednja plošča za meč
Prednja plošča za meč
Prednja plošča za meč

Sprednja plošča meča je narejena iz bele table, označene s svinčnikom in obarvane z oznakami Crayola. Že samo to bi lahko bil zanimiv projekt z vašim otrokom:

  • Označite meč na tabli
  • Izrežite sprednjo ploščo
  • Označite kvadrate (ali bloke)
  • Barvajte jih posamično
  • Z ostrino dodajte črne črte.

Priložil sem odprt pisarniški dokument z vzorčno sliko diamantnega meča, ki ga lahko prilepite na tablo, če imate raje bližnjice … Ko je vse končano, lahko vroče prilepite sprednjo ploščo na preostanek sklopa ali uporabite dvojno stranski trak.

Korak: Dot Matrix LED zaslon

Matrični LED zaslon
Matrični LED zaslon
Matrični LED zaslon
Matrični LED zaslon
Matrični LED zaslon
Matrični LED zaslon

Imel sem 2, po 4 segmente, zato sem se odločil, da naredim enega 8-segmentnega.

Priročno je, da je na eni strani moški 5-polni glavo, na nasprotni strani pa 5 lukenj. Ko sem moško glavo upognil v obliko sponke, mi je uspelo povezati oba modula tako električno kot mehansko! Ubil dve ptici z enim kamnom (ali dve muhi z enim zamahom, da bi usta ustavila z enim zalogajem, da bi se z enim darilom spoprijateljila dva prijatelja, da bi imela dve struni na en lok, kakšni so drugi izrazi v zvezi s tem - ste pomislili? Žal sem se oddaljil).

Nasprotna moška glava bo uporabljena za povezovanje ustrezne ženske glave iz plošče veroboard z ESP32-Cam in drugimi komponentami.

Dve komponenti sta povezani s 3D-tiskanim mostom, ki vsebuje tudi stikalo za vklop in izklop napajanja. 3d STL datoteke za most in druge komponente se nahajajo v mapi datotek/3d na GitHubu.

4. korak: Napajanje

Moč
Moč

Meč poganja 2500 mAh napajalnik USB - najmanjši in najtanjši, kar sem jih našel. Powerbank zdrsne v ohišje s 3D-tiskanjem, ki se pritrdi tudi na matrične module in tako drži celoto skupaj.

Na ohišje napajalnika sta prilepljena dva okrogla magneta in tako je meč pritrjen na vrata (zato ga je mogoče zaradi vzdrževanja enostavno odstraniti).

5. korak: Shema

Shematično
Shematično
Shematično
Shematično
Shematično
Shematično

Prava shema se nahaja na GitHubu, vendar je slika vredna 1000 besed (1024 v informacijski tehnologiji), zato ste tukaj:

To je precej preprosto, če poznate svojo pot s spajkalno pištolo. OPOMBA: 3D -mostni del je zasnovan za zelo specifično velikost plošče veroboard: 30 x 70 mm. Če se odločite za uporabo drugega, morate preoblikovati komponento mostu.

6. korak: 3D tiskanje

3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje
3D tiskanje

Ohišje baterije in most, ki povezuje ploščo ESP32-CAM veroboard s sklopom matričnega zaslona, sta bila 3D oblikovana in natisnjena.

Ohišje baterije je v dveh delih, ki ju je treba po tiskanju zlepiti skupaj, da se ustvari "žep" za baterijo. Most je treba samo očistiti vseh podpornih konstrukcij (na žalost ni dobre orientacije, ki bi jih zmanjšala). Datoteke STL so na GitHubu, izvirniki TinkerCada pa tukaj.

3D zasnova na TinkerCadu vključuje tudi simulirano shemo montaže, kako se deli prilegajo skupaj in jih je treba povezati.

7. korak: Programiranje

Večopravilnost

Ta zasnova uporablja FreeRTOS za preventivno večopravilnost in knjižnico TaskScheduler za sodelovanje. Obnašanje in sporočila meča se nadzoruje prek aplikacije Blynk. Po nastavitvi (zatiči, inicializacija kamere in matrične matrice, povezovanje z WiFi itd.) Se ustvarijo dve glavni nalogi RTOS:

  • Naloga RTOS za pretakanje videa, pripeta na aplikacijsko jedro ESP32 (jedro 1)
  • Prikaz besedila in naloga RTOS za nadzor Blynk, pripeta na jedro Power ESP32 (jedro 0), ki je odgovorno tudi za vsa opravila, povezana z WiFi. Izvajanje, povezano z besedilom in Blynkom, se upravlja prek opravil TaskScheduler.

Ugotovil sem, da 4K prostora sklada zadostuje za opravila RTOS, vendar obstaja možnost, da mu zmanjka sklada, zato po želji naredite 8K - na ESP32 je veliko RAM -a.

Zajemanje in pretakanje videoposnetkov poteka na Core 1. Vse ostalo - na Core 0.

ESP32 ima dovolj moči, da vse to obvlada z malo znoja (plošča se pri pretakanju videa segreje).

TO je bil glavni cilj projekta: mirno in produktivno sobivanje preventivne in sodelovalne večopravilnosti!

8. korak: Dot Matrix Control

Uporabljam zelo zmogljive knjižnice MD_Parola in MD_MAX72xx, ki so na voljo tudi v upravitelju knjižnic Arduino IDE.

Vsi besedilni posebni učinki so narejeni prek teh knjižnic. Za določitev pravilne vrste strojne opreme MAX72XX (MD_MAX72XX:: ICSTATION_HW, v mojem primeru je vaš morda drugačen) je bilo potrebno nekaj truda, potem pa je nadzor nad besedilom preprost.

Meč omogoča naslednje kontrole:

  • Svetlost
  • Utripa
  • Flash
  • Hitrost in smer drsenja (gor/dol, levo/desno, enakomerno)
  • Lahko ga spremenite tudi v stensko uro

9. korak: Pretakanje videa

Blynk App ima majhen pripomoček za pretakanje videa, vendar ga lahko pretakate v brskalnik, predvajalnik VLC ali karkoli, kar podpira standard MJPEG.

Podprtih je do 10 povezanih odjemalcev.

Če se želite povezati z njim, boste morali izvedeti naslov IP vašega ESP32-CAM. Poiščete ga lahko na usmerjevalniku ali sestavite to skico z omogočeno možnostjo _DEBUG_ in preberete naslov IP terminala, ko se poveže z vašim omrežjem.

POMEMBNO: Zelo priporočljivo je, da trajnemu naslovu IP dodelite modul ESP32-CAM ali ustvarite rezervacijo DHCP, tako da se njegov naslov po izteku najema ne spremeni. Aplikacijo Blynk lahko spremenite tudi tako, da posodobite naslov IP v URL -ju toka - zanimiva domača naloga, če vam je to všeč.

Trenutna skica uporablja ločljivost QVGA: 320x240 slikovnih pik, zaradi česar je precej hitra. Prosto in spodbujate se, da se igrate z drugimi resolucijami in se odločite, kaj vam ustreza.

RAM ne bi smel biti problem, saj skica izkorišča prednosti PSRAM -a.

10. korak: Konfiguracija

Skica izkorišča moji knjižnici Slovar in EspBootstrap za nalaganje konfiguracijskih parametrov s konfiguracijskega strežnika ob zagonu.

Imam lastni konfiguracijski strežnik, kar lahko storite tudi vi (to je preprost spletni strežnik Apache2, ki res samo služi datotekam JSON).

Uporabite lahko tudi katero koli spletno storitev, ki je na voljo za nalogo: (OTADrive, Microsoft Azure, AWS IoT itd.). V tem primeru spremenite metodo String makeConfig (pot niza), da ustrezno sestavite URL, ki kaže na vaš vir konfiguracije. Lahko pa tudi shranite konfiguracijsko datoteko v datotečni sistem SPIFFS na ESP32-CAM in jo od tam preberete ali pa vse vnose preprosto trdo kodirate. Za možnosti si oglejte README knjižnice EspBootstrap.

Primer konfiguracijske datoteke je na voljo na GitHubu.

Če želite parametre s trdo kodo, je spodaj primer:

pd ("Naslov", "Nastavitev meča DND");

pd ("ssid", "vaš wifi ssid"); pd ("geslo", "geslo za wifi"); pd ("msg", "Pozdravljeni!"); pd ("naprave", "8"); pd ("blynk_auth", "vaš blynk AUTH UUID"); // če uporabljate samo svoj strežnik: pd ("blynk_host", "vaš IP strežnik blynk"); pd ("blynk_port", "vrata vašega strežnika");

11. korak: Posodobitve vdelane programske opreme OTA

Skica je tudi omogočena posodobitev vdelane programske opreme OTA (Over The Air) in ob vsakem zagonu preverja, ali obstaja nova vdelana programska oprema.

Ponovno imam lastni strežnik za posodobitev OTA, kar lahko storite tudi vi (to je preprost spletni strežnik Apache2 z malo skript PHP, ki služi binarnim datotekam).

Uporabite lahko tudi katero koli spletno storitev IoT, ki je na voljo za to nalogo: (OTADrive, Microsoft Azure, AWS IoT itd.). V tem primeru spremenite metodo void checkOTA (), da ustrezno sestavite posodobitveni URL, ki kaže na vaš binarni vir datotek.

To ni obvezno - binarne datoteke lahko naložite samo prek serijske povezave.

Korak: Strežnik MJPEG

Ta tema je tukaj podrobno opisana.

Korak: Aplikacija Blynk

Blynk aplikacija
Blynk aplikacija
Blynk aplikacija
Blynk aplikacija
Blynk aplikacija
Blynk aplikacija

Blynk je platforma IoT v oblaku, ki omogoča hiter razvoj aplikacij. Je brezplačen za osebno uporabo in ima celo možnost zagona lastnega strežnika Blynk.

Jaz (kot ste morda že uganili) uporabljam svoj strežnik Blynk, vendar vam bo morda lažje uporabljati različico v oblaku. Namestite aplikacijo Blynk za iOS ali Android in sledite spodnjim slikam, če želite obnoviti aplikacijo v telefonu.

Če želite, da aplikacija deluje z vašo aplikacijo, morate zagotoviti svoj UUID Blynk Auth. Zato uporabljam konfiguracijske datoteke. Vendar bi pri enkratnem projektu trdo kodirana vrednost delovala prav tako dobro.

POMEMBNO: Prepričajte se, da je vaš projekt Blynk nastavljen na Notify Devices When App Connected.

OPOMBA na pripomočku za pretakanje videov: včasih se video ne zažene. Zdi se, da ni problem z ESP32, prej z video pripomočkom aplikacije Blynk. Poskusite zapreti in znova odpreti aplikacijo ali znova ustaviti/zagnati projekt. Sčasoma se začne. Zdi se, da te težave v brskalniku ali predvajalniku VLC (na primer) ni.

14. korak: Uživajte

To je bilo zelo zabavno graditi in dokazovati, da lahko naprava velikosti poštnega žiga, kot je ESP32, naredi veliko več kot le pretakanje videa. Veliko konceptov tega projekta bi lahko ponovno uporabili v drugih aplikacijah.

Korak 15: Knjižnice in koda

Knjižnice:

  • Blynk strežnik
  • Knjižnica EspBootstrap
  • Knjižnica TaskScheduler
  • Knjižnica slovarjev
  • Knjižnica LED Matrix
  • Knjižnica za modularno pomikanje LED matričnih besedilnih zaslonov

Dejansko skladišče:

Minecraft Interactive Ne vnesite meč/znak (ESP32-CAM)

Priporočena: