Sisukord:

Interaktiivne Minecraft ei sisesta mõõka/märki (ESP32-CAM): 15 sammu (koos piltidega)
Interaktiivne Minecraft ei sisesta mõõka/märki (ESP32-CAM): 15 sammu (koos piltidega)

Video: Interaktiivne Minecraft ei sisesta mõõka/märki (ESP32-CAM): 15 sammu (koos piltidega)

Video: Interaktiivne Minecraft ei sisesta mõõka/märki (ESP32-CAM): 15 sammu (koos piltidega)
Video: GENSHIN IMPACT FAIL RAPTORS ONLINE AMONG US WIN 2024, Juuli
Anonim
Image
Image
Lõpptoode
Lõpptoode

Selle projekti elluviimiseks on tõesti mitu põhjust:

1. Ühistulise multitegumtöökogu TaskScheduler autorina olin alati uudishimulik, kuidas ühendada ühistulise multitegumtöötluse eelised eelisõigusega. Mõlemal on kasu ja mõlemal on puudusi. Nende kahe ühendamine annab ainulaadse võimaluse eeliste võimendamiseks ja probleemide lahendamiseks, mis põhinevad konkreetsel kasutusjuhul. Huvitav? Loe edasi…

2. Juba see, et ESP32 on mitmetuumaline mikrokontroller, on põnev. Olin alati uudishimulik, kas saan seda funktsiooni ära kasutada. Nii et eksperiment oli järgmine: kas ESP32 voogesitab sujuvalt videot ühe südamiku abil, tehes samal ajal midagi muud (sisukat ja mõistlikult intensiivset midagi muud). Veel huvitavam ?? Loe edasi…!

3. Vajasin oma hiljutiste OTA püsivara varustamise ja konfiguratsiooni haldamise projektide testimiskohta …

4. Olin mõni aeg tagasi ostnud kaks LED -punktmaatriksi moodulit ja ei saanud aru, mida nendega teha …

5. Mu poeg on Minecrafti mängija ja nagu iga väike poiss armastab kaunistada oma ust plakatitega „Ära sisene”…

Nii et siin on kõik head põhjused: interaktiivne uksele mitte sisenev silt koos ESP32 -CAM -i voogesitusega videovoogu "suletud ukse tagant" - või "kes tuleb minu tuppa?"

Niisiis… millest see kõik koosneb?

Kui teil on kannatust kogu lugu lugeda, saate aru, et see pole tegelikult Minecrafti mõõk. See projekt tõestab paljusid mõisteid:

  • Ennetava ja kooperatiivse multitegumtöötluse kooseksisteerimine
  • ESP32 südamike valikuline kasutamine
  • Uute sõnaraamatute ja EspBootstrap raamatukogude kasutamine
  • OTA püsivara varustamine
  • Konfiguratsiooni juhtimine
  • Video voogesitus mitmele kliendile

ja palju muud.

Nautige

Tarvikud

  • ESP32-CAM
  • MAX7219 punktmaatriksmoodul 4-ühes LED-ekraanimoodul Geekcreit Arduino jaoks
  • Toitepank Attom Tech 2500 mAh

Samm: lõpptoode

Lõpptoode
Lõpptoode

Alustan sellest, kuidas lõpptoode välja näeb, ja seejärel selgitan, kuidas see ehitati ja kuidas seda juhtida.

See tundub nii kaasahaaravam…

2. samm: mõõga esiplaat

Mõõga esiplaat
Mõõga esiplaat
Mõõga esiplaat
Mõõga esiplaat

Mõõga esiplaat on valmistatud tahvlist, tähistatud pliiatsiga ja värvitud Crayola markeritega. Ainuüksi see võib olla teie lapsega huvitav projekt:

  • Märkige mõõk tahvlile
  • Lõika esiplaat välja
  • Märkige ruudud (või plokid)
  • Värvige neid ükshaaval
  • Lisage teravad mustad jooned.

Kaasasin avatud kontoridokumendi teemantmõõga näidispildiga, mille saate tahvli peale liimida, kui eelistate otseteid … Kui kõik on tehtud, võite esiplaadi ülejäänud liimile kuumliimiga liimida või kasutada topelt- poolne teip.

Samm: punktmaatriksi LED -ekraan

Dot Matrix LED -ekraan
Dot Matrix LED -ekraan
Dot Matrix LED -ekraan
Dot Matrix LED -ekraan
Dot Matrix LED -ekraan
Dot Matrix LED -ekraan

Mul oli neid 2, mõlemal 4 segmenti, seega otsustasin teha ühe 8-segmendilise.

Mugavalt on ühel küljel 5-kontaktiline isane päis ja vastasküljel 5 ava. Painutades isase päise klambritaoliseks] kujuks, suutsin need kaks moodulit ühendada nii elektriliselt kui ka mehaaniliselt! Tapnud kaks lindu ühe kiviga (või kaks kärbest ühe vatiga, et peatada kaks suud ühe suutäiega, saada kaks sõpra ühe kingitusega, saada kaks nööri ühele vibule, millised on teised idioomid selles küsimuses - kas olete mõelnud? Vabandust, ma kaldusin kõrvale).

Vastupidist isast päist kasutatakse veroboondist sobiva naissoost päise ühendamiseks ESP32-Cam ja muude komponentidega.

Need kaks komponenti on ühendatud 3D-prinditud sillaga, millel on ka lüliti toite sisse- ja väljalülitamiseks. 3d STL-failid silla ja muude komponentide jaoks asuvad GitHubi kaustas files/3d.

4. samm: toide

Võimsus
Võimsus

Mõõga toiteallikaks on 2500 mAh USB -toitepank - väikseim ja õhem, mis ma leida sain. Powerbank libiseb 3D-prinditud korpusesse, mis kinnitub ka punktmaatriksmoodulite külge, hoides seega kogu asja koos.

Toitepanga korpuse külge on liimitud kaks ümmargust magnetit ja nii kinnitatakse mõõk ukse külge (nii et seda saaks hoolduseks sama kergesti lahti võtta).

Samm: skemaatiline

Skeem
Skeem
Skeem
Skeem
Skeem
Skeem

Tegelik skeem asub GitHubis, kuid pilt on väärt 1000 sõna (1024 infotehnoloogias), nii et siin olete:

See on üsna lihtne, kui teate jootmispüstoliga oma teed. MÄRKUS. 3D -sillaosa on mõeldud väga spetsiifilise suurusega: 30 x 70 mm. Kui otsustate kasutada mõnda muud, peate silla komponendi ümber kujundama.

6. samm: 3D -printimine

3D printimine
3D printimine
3D printimine
3D printimine
3D printimine
3D printimine

Akuümbris ja sild, mis ühendasid ESP32-CAM veroboardi punktmaatriksi ekraaniga, kavandati ja trükiti 3D-vormingus.

Akuümbris koosneb kahest osast, mis tuleb pärast printimist kokku liimida, et luua akule "tasku". Sild tuleb lihtsalt puhastada kõikidest tugikonstruktsioonidest (kahjuks pole head orientatsiooni, mis neid minimeeriks). STL -failid on GitHubis ja TinkerCadi originaalid asuvad siin.

TinkerCadi 3D -disain sisaldab ka simuleeritud kokkupaneku skeemi selle kohta, kuidas osad omavahel kokku sobivad ja tuleks ühendada.

Samm: programmeerimine

Multitegumtöötlus

See disain kasutab ennetavat multitegumtöötlust FreeRTOS -iga ja koostöös TaskScheduleri raamatukogu. Mõõga käitumist ja sõnumeid juhitakse rakenduse Blynk kaudu. Pärast seadistamist (nööpnõelad, kaamera ja punktmaatriksi initsialiseerimine, WiFi-ga ühenduse loomine jne) luuakse kaks peamist RTOS-i ülesannet:

  • Video voogesituse RTOS -ülesanne, kinnitatud ESP32 rakenduse tuuma (tuum 1)
  • Tekstiekraan ja Blynk-kontrolli RTOS-ülesanne, mis on kinnitatud ESP32 toitesüdamikule (tuum 0), mis vastutab ka kõigi WiFi-ga seotud ülesannete eest. Teksti ja Blynkiga seotud täitmist hallatakse TaskScheduleri ülesannete kaudu.

Sain teada, et 4K virnaruumist piisab RTOS -i ülesannete täitmiseks, kuid on võimalus virnast otsa saada, nii et kui soovite, tehke see 8K -ks - ESP32 -l on palju RAM -i.

Kogu video jäädvustamine ja voogesitus toimub Core 1. Kõik muu - Core 0 -s.

ESP32 -l on piisavalt jõudu, et seda kõike kergelt higistades hakkama saada (plaat kuumeneb video voogesituse ajal).

SEE oli projekti põhieesmärk: ennetav ja koostööaltne multitegumtöö rahumeelne ja produktiivne kooseksisteerimine!

8. samm: punktmaatriksi juhtimine

Kasutan väga võimsaid MD_Parola ja MD_MAX72xx teeke, mis on saadaval ka Arduino IDE raamatukoguhalduris.

Kõik tekstilised eriefektid tehakse nende raamatukogude kaudu. Õige MAX72XX riistvaratüübi (minu puhul MD_MAX72XX:: ICSTATION_HW, teie oma võib olla erinev) kindlaksmääramine võttis natuke vaeva, pärast seda on teksti kontrollimine imelihtne.

Mõõk võimaldab järgmisi juhtnuppe:

  • Heledus
  • Vilkuv
  • Välk
  • Kerimise kiirus ja suund (üles/alla, vasakule/paremale, ühtlane)
  • Saate selle muuta ka seinakellaks

9. samm: video voogesitus

Rakendusel Blynk on video voogesituse jaoks väike vidin, kuid saate voogesitada brauserisse, VLC -mängijasse või muusse, mis toetab MJPEG -standardit.

Toetatakse kuni 10 ühendatud klienti.

Sellega ühenduse loomiseks peate välja selgitama oma ESP32-CAM-i IP-aadressi. Saate selle oma ruuterist üles otsida või selle visandi koostada, kui suvand _DEBUG_ on kõigepealt lubatud, ja lugeda terminali IP -aadressi, kui see teie võrguga ühendub.

TÄHTIS: On väga soovitatav määrata ESP32-CAM moodulile püsiv IP-aadress või luua DHCP-reserveering, nii et selle aadress ei muutuks rendilepingu lõppemisel. Rakendust Blynk saate muuta ka voo URL -is oleva IP -aadressi värskendamiseks - huvitav kodutöö, kui olete sellega valmis.

Praegune visand kasutab QVGA eraldusvõimet: 320x240 pikslit, mis teeb selle üsna kiireks. Teil on vabadus ja julgustust mängida teiste resolutsioonidega ning otsustada, mis teile sobib.

RAM ei tohiks olla probleem, kuna visand kasutab PSRAM -i.

10. samm: seadistamine

Eskiis kasutab minu teeki Dictionary ja EspBootstrap, et laadida konfiguratsiooniparameetrid alglaadimisel konfiguratsiooniserverist.

Käitan oma konfiguratsiooniserverit, mida saate ka teha (see on lihtne Apache2 veebiserver, mis tõesti teenindab lihtsalt JSON -faile).

Võite kasutada ka kõiki ülesande jaoks saadaolevaid võrguteenuseid: (OTADrive, Microsoft Azure, AWS IoT jne). Sel juhul muutke palun meetodit String makeConfig (stringi tee), et konstrueerida sobiv URL teie konfiguratsiooni allikale. Teise võimalusena saate salvestada konfiguratsioonifaili ESP32-CAM-i SPIFFS-failisüsteemi ja sealt seda lugeda või lihtsalt kõvakoodiga kodeerida kõik kirjed. Vaadake oma valikute kohta EspBootstrapi kogu raamatukogu README.

Konfiguratsioonifaili näide on saadaval GitHubis.

Kui eelistate parameetreid kõvasti kodeerida, on allpool näide.

pd ("Pealkiri", "DND mõõga seadistamine");

pd ("ssid", "teie wifi ssid"); pd ("parool", "teie wifi parool"); pd ("msg", "Tere!"); pd ("seadmed", "8"); pd ("blynk_auth", "teie blynk AUTH UUID"); // kui käitate ainult oma serverit: pd ("blynk_host", "teie blynk -serveri IP"); pd ("blynk_port", "teie serveri port");

Samm: OTA püsivara värskendused

Visandil on lubatud ka OTA (Over The Air) püsivara värskendamine ja see kontrollib igal püsivõtmisel uut püsivara.

Jällegi käitan oma OTA värskendusserverit, mida saate ka teha (see on lihtne Apache2 veebiserver, millel on natuke PHP skripte, mis teenindavad binaarfaile).

Võite kasutada ka mis tahes ülesande jaoks saadaolevaid Interneti -Interneti -teenuseid: (OTADrive, Microsoft Azure, AWS IoT jne). Sel juhul muutke void checkOTA () meetodit, et koostada sobiv värskendus -URL, mis osutab teie binaarfaili allikale.

See on valikuline - võite binaarfailid lihtsalt jadaühenduse kaudu üles laadida.

12. samm: MJPEG -server

Seda teemat kirjeldatakse siin üksikasjalikult.

Samm 13: rakendus Blynk

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

Blynk on pilvepõhine asjade Interneti platvorm, mis võimaldab rakenduste kiiret arendamist. See on isiklikuks kasutamiseks tasuta ja sellel on isegi võimalus käitada oma Blynk -serverit.

Ma (nagu te juba arvasite) käitan oma Blynk -serverit, kuid teil võib olla lihtsam kasutada pilveversiooni. Installige iOS -i või Androidi rakendus Blynk ja järgige allolevaid pilte, et oma telefonis rakendus taastada.

Rakenduse kasutamiseks teie rakendusega peate esitama oma Blynk Auth UUID. Seetõttu kasutan konfiguratsioonifaile. Ühekordse projekti puhul toimiks aga kõvasti kodeeritud väärtus sama hästi.

TÄHTIS: veenduge, et teie Blynk Project oleks seadistatud seadmeid teavitama, kui rakendus on ühendatud.

MÄRKUS video voogesituse vidina kohta: mõnikord video ei käivitu. Tundub, et see pole probleem ESP32, pigem rakenduse Blynk video vidinaga. Proovige rakendus sulgeda ja uuesti avada või projekt uuesti peatada/alustada. Lõpuks see algab. Tundub, et seda probleemi brauseris või VLC -pleieris (näiteks) pole.

14. samm: nautige

Seda oli väga lõbus ehitada ja tõestada, et postitempli suurune seade nagu ESP32 suudab palju enamat kui lihtsalt video voogesitust. Paljusid selle projekti kontseptsioone saab teistes rakendustes uuesti kasutada.

15. samm: raamatukogud ja kood

Raamatukogud:

  • Blynk server
  • EspBootstrap raamatukogu
  • TaskScheduleri teek
  • Sõnastiku raamatukogu
  • LED -maatriksiteek
  • Modulaarse keritava LED -maatrikstekstide kuvamise kogu

Tegelik hoidla:

Minecrafti interaktiivne mitte sisestada mõõka/märki (ESP32-CAM)

Soovitan: