Tartalomjegyzék:

Interaktív Minecraft Ne lépjen be kard/jel (ESP32-CAM): 15 lépés (képekkel)
Interaktív Minecraft Ne lépjen be kard/jel (ESP32-CAM): 15 lépés (képekkel)

Videó: Interaktív Minecraft Ne lépjen be kard/jel (ESP32-CAM): 15 lépés (képekkel)

Videó: Interaktív Minecraft Ne lépjen be kard/jel (ESP32-CAM): 15 lépés (képekkel)
Videó: Hati2 bossku jika hendak cuci mobil. Pastikan pilih cuci steam yg model H agar lebih safety 🙏👍 2024, Július
Anonim
Image
Image
Végtermék
Végtermék

Ennek a projektnek valójában több oka is van:

1. A TaskScheduler kooperatív többfeladatos könyvtár szerzőjeként mindig kíváncsi voltam, hogyan lehet összekapcsolni a kooperatív multitasking előnyeit a megelőző szolgáltatások előnyeivel. Mindkettőnek vannak előnyei, és mindkettőnek vannak hiányosságai. A kettő kombinálása egyedülálló lehetőséget kínál az előnyök kiaknázására és a problémák lecsökkentésére egy adott használati eset alapján. Érdekes? Olvass tovább…

2. Az a tény, hogy az ESP32 többmagos mikrokontroller, lenyűgöző. Mindig kíváncsi voltam, hogy ki tudom -e használni ezt a funkciót. Tehát a kísérlet a következő volt: képes -e az ESP32 zökkenőmentesen streamelni a videót az egyik mag használatával, miközben mást (értelmes és ésszerűen intenzív mást) csinál a másik magon. Még érdekesebb ?? Olvass tovább…!

3. Szükségem volt egy tesztpályára az OTA firmware -kiépítéssel és konfigurációkezeléssel kapcsolatos legutóbbi projektjeimhez…

4. Régóta vettem két LED Dot Matrix modult, és nem tudtam mit kezdeni velük…

5. A fiam Minecraft játékos, és mint minden kisfiú szereti díszíteni az ajtaját "Ne lépj be" plakátokkal …

Nos, tessék - minden jó ok: Interaktív, ne lépjen be az ajtótábla ESP32 -CAM -os videócsatornával a "zárt ajtó mögül" - vagy "Ki jön a szobámba?"

Szóval… miről is van szó?

Ha van türelme elolvasni az egész történetet, rájön, hogy ez valójában nem egy Minecraft kardról szól. Ez a projekt sok fogalom bizonyítéka:

  • A megelőző és együttműködő multitasking együttélése
  • Az ESP32 magok szelektív használata
  • Új szótár- és EspBootstrap -könyvtárak használata
  • OTA firmware kiépítése
  • Konfiguráció-menedzsment
  • Videó streaming több ügyfélnek

és még sok más.

Élvezd

Kellékek

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4 az 1-ben LED kijelző modul Geekcreit az Arduino számára
  • Attom Tech 2500mAh Power Bank

1. lépés: Végső termék

Végtermék
Végtermék

Kezdem azzal, hogyan néz ki a végtermék, majd elmagyarázom, hogyan épült fel, és hogyan kell szabályozni.

Így vonzóbbnak tűnik…

2. lépés: Kard előlap

Kard előlap
Kard előlap
Kard előlap
Kard előlap

A kard előlapja a tábláról készült, ceruzával megjelölve, és Crayola jelzőkkel színezve. Ez önmagában is érdekes projekt lehet a gyerekkel:

  • Jelöljön ki egy kardot egy táblára
  • Vágja ki az előlapot
  • Jelölje be a négyzeteket (vagy blokkokat)
  • Színezze őket egyenként
  • Adjon hozzá fekete vonalakat élesítéssel.

Mellékeltem egy nyitott irodai dokumentumot egy gyémántkard minta képével, amelyet felragaszthatsz a táblára, ha a gyorsbillentyűket részesíted előnyben … Miután minden elkészült, vagy ragaszthatja az előlapot a szerelvény többi részéhez, vagy dupla oldalú szalag.

3. lépés: Dot Matrix LED kijelző

Dot Matrix LED kijelző
Dot Matrix LED kijelző
Dot Matrix LED kijelző
Dot Matrix LED kijelző
Dot Matrix LED kijelző
Dot Matrix LED kijelző

Kettő volt belőlük, egyenként 4 szegmens, ezért úgy döntöttem, hogy elkészítek egy 8 szegmensest.

Kényelmesen van egy 5-tűs dugó az egyik oldalon, és 5 lyuk a másik oldalon. A férfi fejlécet kapocsszerű] alakúra hajlítva sikerült összekapcsolnom a két modult elektromosan és mechanikusan is! Két legyet öltek meg egy csapásra (vagy két legyet egy ütővel, hogy két száját egy falattal megállítsák, két barátot szerezzenek egy ajándékkal, két húrt egy íjhoz, milyen más idiómák vannak ebben a kérdésben - gondolta? Bocs, eltértem).

Az ellentétes férfi fejléccel egy megfelelő női fejlécet csatlakoztatnak a veroboardról az ESP32-Cam és más alkatrészekhez.

A két komponens egy 3D-s nyomtatású híddal van összekötve, amely egy kapcsolót is tartalmaz a be- és kikapcsoláshoz. 3d STL fájlok a hídhoz és egyéb összetevőkhez a GitHub fájlok/3d mappájában találhatók.

4. lépés: Tápellátás

Erő
Erő

A Kardot egy 2500 mAh -s USB tápegység táplálja - ez a legkisebb és legvékonyabb, amit találtam. A Powerbank egy 3D nyomtatott tokba csúszik, amely a pontmátrix modulokhoz is rögzül, így az egészet összetartja.

Két kerek mágnes van ragasztva a tápegység tokjához, és így rögzítik a kardot az ajtóhoz (így karbantartás céljából olyan könnyen leválasztható).

5. lépés: Vázlatos

Vázlatos
Vázlatos
Vázlatos
Vázlatos
Vázlatos
Vázlatos

Az igazi sematika a GitHubon található, de egy kép 1000 szót ér (1024 az információs technológiában), tehát itt van:

Ez meglehetősen egyszerű, ha ismeri az utat a forrasztópisztoly segítségével. Ha úgy dönt, hogy másikat használ, újra kell terveznie a hídalkatrészt.

6. lépés: 3D nyomtatás

3D nyomtatás
3D nyomtatás
3D nyomtatás
3D nyomtatás
3D nyomtatás
3D nyomtatás

Az elemtartót és az ESP32-CAM veroboardot a pontmátrixos kijelzőegységgel összekötő hidat 3d tervezéssel és nyomtatással készítették.

Az elemtartó 2 részből áll, amelyeket nyomtatás után össze kell ragasztani, hogy "zsebet" hozzon létre az akkumulátor számára. A hidat meg kell tisztítani az összes tartószerkezettől (sajnos nincs jó irány, amely minimálisra csökkenti őket). Az STL fájlok a GitHubon találhatók, és a TinkerCad eredetik itt találhatók.

A TinkerCad 3D -s tervezése magában foglalja az alkatrészek összeillesztésének sematikus ábráját is arról, hogy az alkatrészek hogyan illeszkednek egymáshoz, és hogyan kell csatlakoztatni.

7. lépés: Programozás

Multi-multitasking

Ez a kialakítás a FreeRTOS -t használja a megelőző többfeladatos munkavégzéshez, és a TaskScheduler könyvtárat az együttműködéshez. A kard viselkedését és üzeneteit a Blynk App vezérli. A telepítés (csapok, kamera és pontmátrix inicializálása, WiFi-hez való csatlakozás stb.) Után két fő RTOS-feladat jön létre:

  • Video streaming RTOS feladat, rögzítve az ESP32 alkalmazásmagjához (1. mag)
  • Szövegmegjelenítés és Blynk-vezérlő RTOS-feladat, az ESP32 Power Core-jához (0-ás mag) rögzítve, amely szintén felelős minden WiFi-vel kapcsolatos feladatért. A szöveggel és a Blynk -rel kapcsolatos végrehajtást a TaskScheduler feladatokkal lehet kezelni.

Rájöttem, hogy a 4K veremterület elegendő az RTOS -feladatokhoz, de lehetőség van a verem elfogyására, így ha úgy tetszik, tegye 8K -ra - az ESP32 -en rengeteg RAM van.

Minden videó rögzítés és streaming a Core 1 -en történik. Minden más - a Core 0 -n.

Az ESP32 elegendő erővel rendelkezik ahhoz, hogy mindezt egy kis verejtékezéssel kezelje (a tábla felmelegszik a videó közvetítésekor).

EZ volt a projekt fő célja: a megelőző és együttműködő multitasking békés és produktív együttélése!

8. lépés: Pontmátrix vezérlés

Nagyon hatékony MD_Parola és MD_MAX72xx könyvtárakat használok, amelyek az Arduino IDE könyvtárkezelőben is elérhetők.

Minden szöveges speciális effektus ezeken a könyvtárakon keresztül történik. Kicsit erőfeszítésbe került a helyes MAX72XX hardvertípus (esetemben az MD_MAX72XX:: ICSTATION_HW, a tied lehet más) meghatározása, ezt követően a szöveg vezérlése egyszerű.

A kard lehetővé teszi a következő vezérléseket:

  • Fényerősség
  • Villog
  • Vaku
  • Görgetési sebesség és irány (fel/le, balra/jobbra, egyenletes)
  • Faliórává is alakíthatja

9. lépés: Videó streaming

A Blynk App tartalmaz egy kis widgetet a videó streaminghez, de streamelhet a böngészőbe, a VLC lejátszóba vagy bármi másba, ami támogatja az MJPEG szabványt.

Legfeljebb 10 csatlakoztatott ügyfél támogatott.

Ahhoz, hogy csatlakozni tudjon, meg kell találnia az ESP32-CAM IP-címét. Megnézheti az útválasztón, vagy összeállíthatja ezt a vázlatot úgy, hogy a _DEBUG_ opció először engedélyezve van, és elolvashatja a terminál IP -címét, amikor csatlakozik a hálózathoz.

FONTOS: Nagyon tanácsos állandó IP-címet rendelni az ESP32-CAM modulhoz, vagy létrehozni egy DHCP-foglalást, így annak címe nem változik a bérlet lejárta után. A Blynk alkalmazást úgy is módosíthatja, hogy frissítse a folyam URL -jében lévő IP -címet - ez érdekes házi feladat, ha készen áll rá.

A jelenlegi vázlat QVGA felbontást használ: 320x240 pixel, ami meglehetősen gyors. Ön szabadon bátorítható arra, hogy játsszon más állásfoglalásokkal, és döntse el, mi működik az Ön számára.

A RAM nem jelenthet problémát, mivel a vázlat kihasználja a PSRAM előnyeit.

10. lépés: Konfiguráció

A vázlat kihasználja a Dictionary és az EspBootstrap könyvtáraimat, hogy betöltse a konfigurációs paramétereket a konfigurációs szerverről indításkor.

Saját konfigurációs szervert futtatok, amit Ön is megtehet (ez egy egyszerű Apache2 webszerver, amely valóban csak JSON fájlokat szolgál ki).

A feladathoz rendelkezésre álló online szolgáltatások bármelyikét is használhatja: (OTADrive, Microsoft Azure, AWS IoT stb.). Ebben az esetben kérjük, módosítsa a String makeConfig (String path) metódust, hogy megfelelően létrehozza a konfigurációs forrására mutató URL -t. Alternatív megoldásként elmentheti a konfigurációs fájlt az ESP32-CAM SPIFFS fájlrendszerébe, és onnan olvashatja, vagy csak bekódolja az összes bejegyzést. Kérjük, olvassa el az EspBootstrap könyvtár README parancsát.

Példa a konfigurációs fájlra a GitHubon.

Ha inkább a paraméterek keménykódolását használja, az alábbi példa látható:

pd ("Cím", "DND kard beállítása");

pd ("ssid", "a wifi ssid"); pd ("jelszó", "a wifi jelszava"); pd ("msg", "Hello!"); pd ("eszközök", "8"); pd ("blynk_auth", "a blynk AUTH UUID"); // ha csak saját szervert futtat: pd ("blynk_host", "a blynk szerver IP -címe"); pd ("blynk_port", "a szerver portja");

11. lépés: OTA firmware frissítések

A vázlat az OTA (Over The Air) firmware -frissítést is engedélyezte, és minden indításkor ellenőrzi az új firmware -t.

Ismét saját OTA frissítő szervert futtatok, amit Ön is megtehet (ez egy egyszerű Apache2 webszerver, egy kis PHP szkripttel, bináris fájlokat kiszolgálva).

A feladathoz rendelkezésre álló online IoT -szolgáltatások bármelyikét is használhatja: (OTADrive, Microsoft Azure, AWS IoT stb.). Ebben az esetben, kérjük, módosítsa a void checkOTA () metódust, hogy megfelelően hozzon létre egy frissítési URL -t, amely a bináris fájlforrásra mutat.

Ez opcionális - lehet, hogy csak bináris fájlokat tölt fel soros kapcsolaton keresztül.

12. lépés: MJPEG -kiszolgáló

Ezt a témát itt részletesen ismertetjük.

13. lépés: Blynk App

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

A Blynk egy felhőalapú IoT-platform, amely lehetővé teszi az alkalmazások gyors fejlesztését. Ingyenes személyes használatra, és akár saját Blynk szerver futtatására is van lehetőség.

Én (ahogy már sejtette) saját Blynk szerveremet futtatom, de lehet, hogy könnyebben használhatja a felhőverziót. Telepítse a Blynk iOS vagy Android alkalmazást, és kövesse az alábbi képeket az alkalmazás rekonstruálásához a telefonján.

Meg kell adnia saját Blynk Auth UUID azonosítóját, hogy az alkalmazás működhessen az alkalmazással. Ezért használok konfigurációs fájlokat. Egy egyszeri projekt esetében azonban a keményen kódolt érték ugyanolyan jól működne.

FONTOS: Győződjön meg arról, hogy a Blynk Project úgy van beállítva, hogy értesítse az eszközöket az alkalmazás csatlakoztatásakor.

MEGJEGYZÉS a video streaming widgetről: néha a videó nem indul el. Úgy tűnik, nem az ESP32, hanem a Blynk alkalmazás video widgetével van probléma. Próbálja meg bezárni és újra megnyitni az alkalmazást, vagy leállítani/újraindítani a projektet. Végül mégis elkezdődik. Úgy tűnik, hogy ez a probléma nem létezik a böngészőben vagy a VLC lejátszóban (például).

14. lépés: Élvezze

Nagyon szórakoztató volt ezt megépíteni, és bebizonyítani, hogy az ESP32-hez hasonló postai bélyegző méretű eszköz sokkal többre képes, mint csupán videó streamelés. A projekt számos koncepciója újra felhasználható más alkalmazásokban.

15. lépés: Könyvtárak és kód

Könyvtárak:

  • Blynk szerver
  • EspBootstrap könyvtár
  • TaskScheduler könyvtár
  • Szótárkönyvtár
  • LED mátrix könyvtár
  • Könyvtár modulárisan görgethető LED mátrix szövegkijelzőkhöz

Tényleges adattár:

A Minecraft interaktív ne lépjen be kardba/jelbe (ESP32-CAM)

Ajánlott: