Obsah:
- Zásoby
- Krok 1: Konečný produkt
- Krok 2: Čelní deska meče
- Krok 3: Dot Matrix LED displej
- Krok 4: Napájení
- Krok 5: Schéma
- Krok 6: 3D tisk
- Krok 7: Programování
- Krok 8: Dot Matrix Control
- Krok 9: Streamování videa
- Krok 10: Konfigurace
- Krok 11: Aktualizace firmwaru OTA
- Krok 12: Server MJPEG
- Krok 13: Aplikace Blynk
- Krok 14: Užijte si to
- Krok 15: Knihovny a kód
Video: Interaktivní Minecraft Nezadávejte meč/znak (ESP32-CAM): 15 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Existuje opravdu několik důvodů, proč tento projekt vznikl:
1. Jako autor kooperativní multitaskingové knihovny TaskScheduler jsem byl vždy zvědavý, jak skloubit výhody kooperativního multitaskingu s výhodami pre-emptivního. Oba mají výhody a oba mají nedostatky. Kombinace těchto dvou umožňuje jedinečnou příležitost využít výhody a přehrát problémy buď na základě konkrétního případu použití. Zajímavý? Číst dál…
2. Už samotný fakt, že ESP32 je vícejádrový mikrokontrolér, je fascinující. Vždy jsem byl zvědavý, jestli mohu této funkce využít. Experiment tedy byl: dokáže ESP32 streamovat video plynule pomocí jednoho jádra, zatímco na druhém jádru dělá něco jiného (smysluplného a přiměřeně intenzivního něco jiného). Ještě zajímavější ?? Číst dál…!
3. Potřeboval jsem testovací půdu pro své nedávné projekty kolem zajišťování firmwaru OTA a správy konfigurace…
4. Koupil jsem před časem dva moduly LED Dot Matrix a nemohl jsem přijít na to, co s nimi…
5. Můj syn je hráčem Minecraftu a jako každý malý chlapec rád zdobí své dveře plakáty „Nevstupovat“…
Tak jdeme na to - všechny dobré důvody pro: Interaktivní Nevstupujte na cedulku s ESP32 -CAM streamováním videa „zpoza zavřených dveří“- nebo „Kdo přichází do mého pokoje?“
Takže … o co jde?
Pokud máte trpělivost přečíst si celý příběh, uvědomíte si, že to ve skutečnosti není o meči Minecraftu. Tento projekt je důkazem mnoha konceptů:
- Koexistence preventivního a kooperativního multitaskingu
- Selektivní použití jader ESP32
- Použití nových knihoven Dictionary a EspBootstrap
- Zajištění firmwaru OTA
- Správa konfigurace
- Streamování videa více klientům
a mnoho dalšího.
Užívat si
Zásoby
- ESP32-CAM
- MAX7219 Dot Matrix Module 4-v-1 LED Display Module Geekcreit pro Arduino
- Power Bank Attom Tech 2500mAh
Krok 1: Konečný produkt
Začnu tím, jak konečný produkt vypadá, a poté vysvětlím, jak byl postaven a jak jej ovládat.
Vypadá to tak poutavěji…
Krok 2: Čelní deska meče
Čelní deska meče je vyrobena z tabule, označena tužkou a vybarvena značkami Crayola. To samo o sobě by mohl být zajímavý projekt s vaším dítětem:
- Označte meč na tabuli
- Vyřízněte čelní desku
- Označte čtverce (nebo bloky)
- Vybarvěte je jednotlivě
- Přidejte ostré čáry.
Zahrnul jsem dokument otevřené kanceláře s ukázkovým obrázkem diamantového meče, který můžete nalepit na tabuli, pokud dáváte přednost zkratkám … Až bude vše hotové, můžete čelní desku buď lepit za tepla ke zbytku sestavy, nebo použít dvojité oboustranná páska.
Krok 3: Dot Matrix LED displej
Měl jsem 2 z nich, každý po 4 segmentech, a tak jsem se rozhodl udělat jeden 8segmentový.
Pohodlně je na jedné straně 5kolíkový konektor záhlaví a odpovídající 5 otvorů na opačné straně. Ohnutím mužského záhlaví do sponkovitého] tvaru jsem dokázal oba moduly spojit elektricky i mechanicky! Zabil dva ptáky jedním kamenem (nebo dvě mouchy jednou ranou, aby zastavil dvě tlamy jedním soustem, udělal dva přátele jedním dárkem, měl dvě struny na jeden luk, jaké jsou další idiomy - záleží na tom? Promiň, odbočil jsem).
Opačný samčí záhlaví bude použit pro připojení odpovídajícího samičího záhlaví z veroboardu s ESP32-Cam a dalšími komponentami.
Tyto dvě komponenty jsou propojeny pomocí 3D tištěného můstku, který také obsahuje přepínač pro zapnutí a vypnutí napájení. 3D soubory STL pro můstek a další komponenty jsou umístěny ve složce files/3d na GitHubu.
Krok 4: Napájení
Sword je napájen 2500 mAh USB power bankou - nejmenší a nejtenčí, jakou jsem mohl najít. Powerbank se zasouvá do pouzdra s 3D potiskem, které se také připojuje k modulům jehličkové matice, čímž drží celou věc pohromadě.
Na pouzdru powerbanky jsou přilepené dva kulaté magnety, a tím je meč připevněn ke dveřím (aby se dal snadno odepnout kvůli údržbě).
Krok 5: Schéma
Skutečné schéma se nachází na GitHubu, ale obrázek má hodnotu 1000 slov (1024 v informačních technologiích), takže tady jste:
To je docela jednoduché, pokud znáte svou cestu s pájecí pistolí. UPOZORNĚNÍ: Část 3D můstku je navržena pro velmi specifickou velikost veroboardu: 30 x 70 mm. Pokud se rozhodnete použít jiný, musíte znovu navrhnout součást můstku.
Krok 6: 3D tisk
Pouzdro na baterie a můstek spojující veroboard ESP32-CAM se sestavou jehličkového displeje byly navrženy a vytištěny ve 3D.
Pouzdro na baterii se skládá ze 2 částí, které je třeba po tisku slepit a vytvořit tak „kapsu“pro baterii. Most je třeba vyčistit od všech podpůrných struktur (neexistuje dobrá orientace, která by je bohužel minimalizovala). Soubory STL jsou na GitHubu a zde jsou umístěny originály TinkerCad.
3D návrh na TinkerCad také obsahuje simulované schéma montáže, jak části do sebe zapadají a měly by být spojeny.
Krok 7: Programování
Multi-multitasking
Tento design používá FreeRTOS pro preemptivní multitasking a knihovnu TaskScheduler pro kooperativní. Chování a zprávy meče se ovládají pomocí aplikace Blynk. Po nastavení (inicializace pinů, kamery a jehličkové matice, připojení k WiFi atd.) Se vytvoří dvě hlavní úlohy RTOS:
- Úkol RTOS pro streamování videa, připnutý k aplikačnímu jádru ESP32 (jádro 1)
- Textový displej a Blynk ovládají úlohu RTOS připojenou k Power Core ESP32 (jádro 0), která je také zodpovědná za všechny úkoly související s WiFi. Provádění související s textem a Blynkem je spravováno pomocí úloh TaskScheduler.
Zjistil jsem, že pro úlohy RTOS stačí 4 kB místa v zásobníku, ale existuje možnost, že dojde k nedostatku zásobníku, takže pokud dáváte přednost, udělejte to 8 kB - na ESP32 je spousta paměti RAM.
Veškeré nahrávání a streamování videa probíhá v jádru 1. Všechno ostatní - v jádru 0.
ESP32 má dostatek energie, aby to všechno zvládl s trochou potu (deska se při streamování videa zahřívá).
TOTO byl hlavní cíl projektu: mírové a produktivní soužití preemptivního a kooperativního multitaskingu!
Krok 8: Dot Matrix Control
Používám velmi výkonné knihovny MD_Parola a MD_MAX72xx dostupné také ve správci knihoven Arduino IDE.
Všechny textové speciální efekty se provádějí prostřednictvím těchto knihoven. Určení správného typu hardwaru MAX72XX (MD_MAX72XX:: ICSTATION_HW v mém případě může být váš jiný) vyžadovalo trochu úsilí, poté je ovládání textu hračkou.
Meč umožňuje následující ovládání:
- Jas
- Bliká
- Blikat
- Rychlost a směr posouvání (nahoru/dolů, doleva/doprava, stabilní)
- Můžete z něj také udělat nástěnné hodiny
Krok 9: Streamování videa
Aplikace Blynk má malý widget pro streamování videa, ale můžete streamovat do prohlížeče, přehrávače VLC nebo čehokoli, co podporuje standard MJPEG.
Podporováno je až 10 připojených klientů.
Abyste se k němu mohli připojit, budete muset zjistit IP adresu vašeho ESP32-CAM. Můžete si to vyhledat na routeru nebo zkompilovat tento náčrt s povolenou možností _DEBUG_ a přečíst si IP adresu terminálu, když se připojí k vaší síti.
DŮLEŽITÉ: Je velmi vhodné přiřadit trvalou IP adresu modulu ESP32-CAM nebo pro něj vytvořit rezervaci DHCP, aby se jeho adresa po vypršení pronájmu nezměnila. Můžete také upravit aplikaci Blynk a aktualizovat IP adresu v URL streamu - zajímavé domácí úkoly, pokud na to máte.
Aktuální skica používá rozlišení QVGA: 320 x 240 pixelů, což je docela rychlé. Máte volnost a jste povzbuzováni hrát s jinými rozlišeními a rozhodovat, co vám vyhovuje.
RAM by neměl být problém, protože skica využívá výhody PSRAM.
Krok 10: Konfigurace
Náčrt využívá mých knihoven Dictionary a EspBootstrap k načtení konfiguračních parametrů z konfiguračního serveru při spuštění.
Provozuji vlastní konfigurační server, což můžete také udělat (je to jednoduchý webový server Apache2, který ve skutečnosti slouží pouze souborům JSON).
Můžete také použít kteroukoli z online služeb dostupných pro daný úkol: (OTADrive, Microsoft Azure, AWS IoT atd.). V takovém případě prosím změňte metodu String makeConfig (String path) tak, aby odpovídajícím způsobem vytvořila adresu URL směřující na váš zdroj konfigurace. Alternativně můžete konfigurační soubor uložit do souborového systému SPIFFS na ESP32-CAM a odtud jej přečíst, nebo jednoduše naprogramovat všechny položky natvrdo. Možnosti najdete v README knihovny EspBootstrap.
Příklad konfiguračního souboru je k dispozici na GitHubu.
Pokud dáváte přednost parametrům v pevném kódu, příklad je níže:
pd („Název“, „Nastavení meče DND“);
pd ("ssid", "vaše wifi ssid"); pd („heslo“, „vaše heslo k wifi“); pd ("msg", "Hello!"); pd ("zařízení", "8"); pd ("blynk_auth", "váš blynk AUTH UUID"); // pokud provozujete pouze svůj vlastní server: pd ("blynk_host", "IP vašeho serveru blynk"); pd ("blynk_port", "port vašeho serveru");
Krok 11: Aktualizace firmwaru OTA
Skica má také povolenou aktualizaci firmwaru OTA (Over The Air) a kontroluje nový firmware při každém spuštění.
Opět provozuji svůj vlastní aktualizační server OTA, což můžete také udělat (je to jednoduchý webový server Apache2 s trochou skriptování PHP, který obsluhuje binární soubory).
Můžete také použít kteroukoli z online služeb IoT dostupných pro daný úkol: (OTADrive, Microsoft Azure, AWS IoT atd.). V takovém případě prosím změňte metodu void checkOTA () tak, aby odpovídajícím způsobem vytvořila aktualizační adresu URL směřující na váš binární zdroj souboru.
Toto je volitelné - můžete se rozhodnout pouze nahrát binární soubory prostřednictvím sériového připojení.
Krok 12: Server MJPEG
Toto téma je podrobně popsáno zde.
Krok 13: Aplikace Blynk
Blynk je cloudová platforma IoT, která umožňuje rychlý vývoj aplikací. Je zdarma pro osobní použití a dokonce má možnost provozovat vlastní server Blynk.
(Jak jste již možná uhodli) provozuji svůj vlastní server Blynk, ale může být pro vás jednodušší používat cloudovou verzi. Nainstalujte si aplikaci Blynk pro iOS nebo Android a při rekonstrukci aplikace v telefonu postupujte podle následujících obrázků.
Aby aplikace fungovala s vaší aplikací, budete muset zadat vlastní UUID Blynk Auth. Proto používám konfigurační soubory. U jednorázového projektu by ale pevně zakódovaná hodnota fungovala stejně dobře.
DŮLEŽITÉ: Ujistěte se, že je váš projekt Blynk nastaven na oznamování zařízení při připojení aplikace.
POZNÁMKA k widgetu pro streamování videa: někdy se video nespustí. Zdá se, že to není problém s ESP32, spíše s video widgetem aplikace Blynk. Zkuste zavřít a znovu otevřít aplikaci nebo zastavit/spustit projekt znovu. Nakonec to začne. Zdá se, že tento problém neexistuje v prohlížeči nebo přehrávači VLC (například).
Krok 14: Užijte si to
Byla to legrace stavět to a dokázat, že zařízení velikosti poštovního razítka, jako je ESP32, dokáže mnohem víc, než jen streamovat video. Mnoho konceptů z tohoto projektu by bylo možné znovu použít v jiných aplikacích.
Krok 15: Knihovny a kód
Knihovny:
- Server Blynk
- Knihovna EspBootstrap
- Knihovna TaskScheduler
- Slovníková knihovna
- LED maticová knihovna
- Knihovna pro modulární rolování LED maticových textových displejů
Skutečné úložiště:
Interaktivní Minecraft Nezadávejte meč/znak (ESP32-CAM)
Doporučuje:
Pracovní světelný meč s rukojetí: 5 kroků
Pracovní světelný meč s designem rukojeti: Jako dítě jsem snil o tom, že se stanu Jediem a zabiju Sithy svým vlastním světelným mečem. Nyní, když stárnu, jsem konečně dostal šanci postavit si svůj vlastní vysněný projekt. Toto je základní souhrn toho, jak postavit světelný meč vašeho města
Použijte sílu a vytvořte si vlastní světelný meč (čepel): 9 kroků (s obrázky)
Použijte sílu a vyrobte si vlastní světelný meč (čepel): Tato instrukce je určena konkrétně pro výrobu čepele pro Ben Solo Legacy Lightsaber zakoupenou v Disney's Galaxy's Edge v Anaheimu v Kalifornii, ale podobné kroky lze provést i při výrobě vlastní čepele pro jiný světelný meč. Sledujte spolu
Světelný meč na bázi Arduina se světelnými a zvukovými efekty: 14 kroků (s obrázky)
Světelný meč na bázi Arduina se světelnými a zvukovými efekty: Ahoj jedi! Tento návod je o výrobě světelného meče, který vypadá, zní a funguje jako jeden ve filmu! Jediný rozdíl - nemůže řezat kov: (Toto zařízení je založeno na platformě Arduino a dávám mu spoustu funkcí a funkcí
Už nikdy nezadávejte instruktáž pomocí Jott: 4 kroky
Už nikdy nezadávejte instruktáž pomocí Jott: Jste unavení a unavení z psaní svých instrukcí? Co kdybyste je místo toho mohli říct? S Jottem můžete. Jott je bezplatná služba, která přepisuje váš hlas do textu. Poté můžete vzít tento text a zkopírovat jej do instruktovatelných bez
Nikdy nezadávejte PIN do hlasové schránky: 3 kroky
Nikdy nezadávejte svůj PIN do hlasové schránky: Jste unaveni z toho, že při každé kontrole hlasové schránky musíte zadávat pinovou kopii své hlasové pošty. Jsem, takže jsem na to našel trik