Obsah:
- Zásoby
- Krok 1: Konečný produkt
- Krok 2: Čelná doska meča
- Krok 3: Bodový maticový LED displej
- Krok 4: Napájanie
- Krok 5: Schéma
- Krok 6: 3D tlač
- Krok 7: Programovanie
- Krok 8: Ovládanie bodovej matice
- Krok 9: Streamovanie videa
- Krok 10: Konfigurácia
- Krok 11: Aktualizácie firmvéru OTA
- Krok 12: Server MJPEG
- Krok 13: Aplikácia Blynk
- Krok 14: Užite si to
- Krok 15: Knižnice a kód
Video: Interaktívny Minecraft Nezadávajte meč/znak (ESP32-CAM): 15 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Existuje skutočne niekoľko dôvodov, prečo tento projekt vznikol:
1. Ako autor kooperatívnej multitaskingovej knižnice TaskScheduler ma vždy zaujímalo, ako skombinovať výhody kooperatívneho multitaskingu s výhodami pre-emptívneho. Oba majú výhody a oba majú nedostatky. Kombinácia týchto dvoch možností ponúka jedinečnú príležitosť využiť výhody a prehrať problémy buď na základe konkrétneho prípadu použitia. Zaujímavé? Pokračuj v čítaní…
2. Samotný fakt, že ESP32 je viacjadrový mikrokontrolér, je fascinujúci. Vždy som bol zvedavý, či môžem túto funkciu využiť. Experiment teda bol: môže ESP32 plynulo streamovať video pomocou jedného jadra, zatiaľ čo robí niečo iné (zmysluplné a primerane intenzívne niečo iné) na druhom jadre. Ešte zaujímavejšie ?? Pokračuj v čítaní…!
3. Potreboval som testovacie prostredie pre svoje nedávne projekty okolo poskytovania firmvéru OTA a správy konfigurácie …
4. Kúpil som si pred časom dva moduly LED Dot Matrix a nevedel som prísť na to, čo s nimi…
5. Môj syn je hráčom Minecraftu a ako každý malý chlapec rád zdobí svoje dvere plagátmi „Nevstupovať“…
Tak nech sa páči - všetky dobré dôvody pre: Interaktívny dverný nápis Nevstupujte pomocou streamovania videa ESP32 -CAM „spoza zatvorených dverí“- alebo „Kto príde do mojej miestnosti?“
Takže … o čo vlastne ide?
Ak máte trpezlivosť na prečítanie celého príbehu, uvedomíte si, že v skutočnosti nejde o meč Minecraft. Tento projekt je dôkazom mnohých konceptov:
- Koexistencia preventívneho a kooperatívneho multitaskingu
- Selektívne používanie jadier ESP32
- Použitie nových knižníc Dictionary a EspBootstrap
- Zabezpečenie firmvéru OTA
- Správa konfigurácie
- Streamovanie videa pre viacerých klientov
a veľa ďalších.
Užite si to
Zásoby
- ESP32-CAM
- Modul MAX7219 Dot Matrix Module 4-v-1 LED displejový modul Geekcreit pre Arduino
- Energetická banka Attom Tech 2500 mAh
Krok 1: Konečný produkt
Začnem tým, ako konečný produkt vyzerá, a potom vysvetlím, ako bol postavený a ako ho ovládať.
Zdá sa to takto pútavejšie …
Krok 2: Čelná doska meča
Čelná doska meča je vyrobená z tabule, označená ceruzkou a zafarbená značkami Crayola. Toto samotné by mohol byť zaujímavý projekt s vašim dieťaťom:
- Zapíšte meč na tabuľu
- Vystrihnite prednú dosku
- Označte štvorce (alebo bloky)
- Vyfarbite ich jednotlivo
- Štipkou pridajte čierne čiary.
Priložil som dokument z otvorenej kancelárie so vzorovým obrázkom diamantového meča, ktorý môžete prilepiť na tabuľu, ak dávate prednosť skratkám … Keď je všetko hotové, môžete čelnú dosku buď prilepiť za tepla k zvyšku zostavy, alebo použiť dvojité obojstranná páska.
Krok 3: Bodový maticový LED displej
Mal som 2 z nich, po 4 segmenty, a tak som sa rozhodol urobiť jeden 8-segmentový.
Pohodlne je na jednej strane 5-kolíkový kolíkový konektor a zodpovedajúcich 5 otvorov na opačnej strane. Ohnutím mužskej hlavičky do tvaru sponky] sa mi podarilo spojiť dva moduly elektricky aj mechanicky! Zabil dve muchy jednou ranou (alebo dve muchy jednou ranou, zastaviť dve ústa jedným kúskom, spriateliť sa s jedným darčekom dvoch priateľov, mať dve šnúrky na jeden luk, aké sú ďalšie idiomy v tejto záležitosti - mysleli ste si? Prepáč, odbočil som).
Opačná samičia hlavička bude použitá na prepojenie zodpovedajúcej samičej hlavičky z veroboardu s ESP32-Cam a ďalšími komponentmi.
Tieto dve súčasti sú spojené mostom s 3D tlačou, v ktorom je tiež umiestnený vypínač na zapnutie a vypnutie napájania. 3D súbory STL pre most a ďalšie komponenty sú umiestnené v priečinku files/3d na GitHub.
Krok 4: Napájanie
Meč je napájaný 2500 mAh USB power bankou - najmenšou a najtenšou, akú som mohol nájsť. Powerbank sa zasunie do puzdra s 3D tlačou, ktoré sa tiež pripája k modulom bodovej matice, čím drží celú vec pohromade.
Na puzdre powerbanky sú prilepené dva okrúhle magnety, a tým je meč pripevnený k dverám (aby sa dal ľahko odpojiť kvôli údržbe).
Krok 5: Schéma
Skutočná schéma je umiestnená na GitHub, ale obrázok má hodnotu 1000 slov (1024 v informačných technológiách), takže tu ste:
To je celkom jednoduché, ak poznáte svoju cestu s spájkovacou pištoľou. UPOZORNENIE: Časť 3d mosta je navrhnutá pre veľmi špecifickú veľkosť veroboardu: 30 x 70 mm. Ak sa rozhodnete použiť iný, musíte znova navrhnúť mostový komponent.
Krok 6: 3D tlač
Puzdro na batériu a most spájajúci veroboard ESP32-CAM so zostavou ihličkového displeja boli navrhnuté a vytlačené v 3D formáte.
Puzdro na batériu sa skladá z 2 častí, ktoré je potrebné po vytlačení zlepiť, aby sa vytvorilo „vrecko“na batériu. Most je potrebné vyčistiť od všetkých nosných štruktúr (v skutočnosti neexistuje dobrá orientácia, ktorá ich bohužiaľ minimalizuje). Súbory STL sú na serveroch GitHub a originály TinkerCad sa nachádzajú tu.
3D návrh na TinkerCad tiež obsahuje simulovanú schému montáže, ako diely do seba zapadajú a ako by mali byť prepojené.
Krok 7: Programovanie
Multi-multitasking
Tento dizajn používa FreeRTOS na preventívne multitasking a knižnicu TaskScheduler na kooperatívnu. Správanie a správy meča sú ovládané pomocou aplikácie Blynk. Po nastavení (inicializácia pinov, fotoaparátu a bodovej matice, pripojenie k WiFi atď.) Sú vytvorené dve hlavné úlohy RTOS:
- Úloha RTOS streamovania videa, pripnutá k aplikačnému jadru ESP32 (jadro 1)
- Textový displej a úloha Blynk riadia RTOS, pripojené k Power Core ESP32 (jadro 0), ktorý je tiež zodpovedný za všetky úlohy súvisiace s WiFi. Vykonávanie súvisiace s textom a Blynkom je spravované pomocou úloh TaskScheduler.
Zistil som, že na úlohy RTOS stačí 4 kB miesta v zásobníku, ale existuje možnosť, že sa zásobník minie, takže ak chcete, urobte ho 8 kB - na ESP32 je veľa pamäte RAM.
Všetky videá a ich streamovanie prebieha v jadre 1. Všetko ostatné - v jadre 0.
ESP32 má dostatok energie, aby to všetko zvládol s trochou potu (doska sa pri streamovaní videa zahrieva).
TOTO bolo hlavným cieľom projektu: mierové a produktívne spolužitie preemptívneho a kooperatívneho multitaskingu!
Krok 8: Ovládanie bodovej matice
Používam veľmi výkonné knižnice MD_Parola a MD_MAX72xx, dostupné aj v správcovi knižníc Arduino IDE.
Prostredníctvom týchto knižníc sa vykonávajú všetky textové špeciálne efekty. Určenie správneho typu hardvéru MAX72XX (MD_MAX72XX:: ICSTATION_HW v mojom prípade môže byť váš iný) si vyžadovalo trochu úsilia, potom je ovládanie textu hračkou.
Meč umožňuje nasledujúce ovládanie:
- Jas
- Bliká
- Blesk
- Rýchlosť a smer posúvania (hore/dole, doľava/doprava, stabilné)
- Môžete z neho tiež urobiť nástenné hodiny
Krok 9: Streamovanie videa
Aplikácia Blynk má malý widget na streamovanie videa, ale môžete streamovať do prehliadača, prehrávača VLC alebo čohokoľvek, čo podporuje štandard MJPEG.
Podporovaných je až 10 pripojených klientov.
Aby ste sa k nej mohli pripojiť, budete musieť zistiť IP adresu vášho ESP32-CAM. Môžete si to vyhľadať na svojom smerovači alebo skompilovať tento náčrt s najskôr povolenou možnosťou _DEBUG_ a prečítať si IP adresu terminálu, keď sa pripája k vašej sieti.
DÔLEŽITÉ: Je veľmi vhodné priradiť k modulu ESP32-CAM trvalú IP adresu alebo vytvoriť rezerváciu DHCP, aby sa jeho adresa po vypršaní lízingu nezmenila. Môžete tiež upraviť aplikáciu Blynk tak, aby aktualizovala IP adresu v URL streamu - zaujímavá domáca úloha, ak na to máte.
Aktuálny náčrt používa rozlíšenie QVGA: 320 x 240 pixelov, čo ho robí pomerne rýchlym. Môžete sa rozhodnúť hrať s inými uzneseniami a rozhodnúť sa, čo vám vyhovuje.
RAM by nemal byť problém, pretože náčrt využíva výhodu pamäte PSRAM.
Krok 10: Konfigurácia
Náčrt využíva moje knižnice Dictionary a EspBootstrap na načítanie konfiguračných parametrov z konfiguračného servera pri zavádzaní.
Prevádzkujem svoj vlastný konfiguračný server, čo môžete urobiť aj vy (je to jednoduchý webový server Apache2, ktorý v skutočnosti poskytuje iba súbory JSON).
Môžete tiež použiť ktorúkoľvek z online služieb dostupných pre úlohu: (OTADrive, Microsoft Azure, AWS IoT atď.). V takom prípade zmeňte metódu String makeConfig (String path), aby zodpovedajúcim spôsobom zostrojila adresu URL smerujúcu na váš zdroj konfigurácie. Alternatívne môžete konfiguračný súbor uložiť do súborového systému SPIFFS na serveri ESP32-CAM a odtiaľ ho načítať alebo jednoducho zadať všetky položky v pevnom kóde. Možnosti nájdete v knižnici README knižnice EspBootstrap.
Príklad konfiguračného súboru je poskytovaný na GitHub.
Ak dávate prednosť parametrom v pevnom kóde, príklad je uvedený nižšie:
pd („Názov“, „Nastavenie meča DND“);
pd ("ssid", "váš wifi ssid"); pd („heslo“, „vaše heslo do wifi“); pd ("msg", "Hello!"); pd ("zariadenia", "8"); pd ("blynk_auth", "váš blynk AUTH UUID"); // ak prevádzkujete iba svoj vlastný server: pd ("blynk_host", "IP vášho servera blynk"); pd ("blynk_port", "port vášho servera");
Krok 11: Aktualizácie firmvéru OTA
Skica je tiež povolená aktualizácia firmvéru OTA (Over The Air) a pri každom spustení kontroluje nový firmvér.
Opäť používam svoj vlastný aktualizačný server OTA, čo môžete urobiť aj vy (je to jednoduchý webový server Apache2 s trochou skriptov PHP, ktoré slúžia binárnym súborom).
Môžete tiež použiť ktorúkoľvek z online služieb IoT dostupných pre danú úlohu: (OTADrive, Microsoft Azure, AWS IoT atď.). V takom prípade zmeňte metódu void checkOTA () tak, aby zodpovedajúcim spôsobom zostavila aktualizačnú adresu URL smerujúcu na váš binárny zdroj súborov.
Toto je voliteľné - môžete sa rozhodnúť iba nahrať binárne súbory prostredníctvom sériového pripojenia.
Krok 12: Server MJPEG
Táto téma je podrobne popísaná tu.
Krok 13: Aplikácia Blynk
Blynk je cloudová platforma IoT, ktorá umožňuje rýchly vývoj aplikácií. Je bezplatný na osobné použitie a dokonca má možnosť spustiť vlastný server Blynk.
Ako som už asi tušil, prevádzkujem vlastný server Blynk, ale používanie cloudovej verzie by pre vás mohlo byť jednoduchšie. Nainštalujte si aplikáciu Blynk pre iOS alebo Android a podľa nižšie uvedených obrázkov rekonštruujte aplikáciu vo svojom telefóne.
Na to, aby aplikácia fungovala s vašou aplikáciou, budete musieť poskytnúť svoj vlastný UUID Blynk Auth. Preto používam konfiguračné súbory. V prípade jednorazového projektu by však pevne zakódovaná hodnota fungovala rovnako dobre.
DÔLEŽITÉ: Uistite sa, že váš projekt Blynk je nastavený na oznamovanie zariadení pri pripojení aplikácie.
POZNÁMKA k miniaplikácii streamovania videa: niekedy sa video nespustí. Zdá sa, že to nie je problém s ESP32, skôr s video widgetom aplikácie Blynk. Skúste aplikáciu zatvoriť a znova otvoriť alebo projekt zastaviť/spustiť znova. Nakoniec to začne. Zdá sa, že tento problém neexistuje v prehliadači alebo prehrávači VLC (napríklad).
Krok 14: Užite si to
Bola to veľká zábava stavať to a dokázať, že zariadenie veľkosti poštovej pečiatky, ako napríklad ESP32, dokáže oveľa viac, než len streamovať video. Mnoho konceptov z tohto projektu by bolo možné znova použiť v iných aplikáciách.
Krok 15: Knižnice a kód
Knižnice:
- Server Blynk
- Knižnica EspBootstrap
- Knižnica TaskScheduler
- Slovníková knižnica
- LED maticová knižnica
- Knižnica pre modulárne rolovacie maticové textové displeje LED
Skutočné úložisko:
Interaktívny Minecraft Nezadávajte meč/znak (ESP32-CAM)
Odporúča:
BBC Micro: bit and scratch - interaktívny volant a hra pre vodiča: 5 krokov (s obrázkami)
BBC Micro: bit and Scratch - interaktívny volant a hra pre vodičov: Jednou z mojich úloh v tomto týždni je použiť BBC Micro: bit na prepojenie s programom Scratch, ktorý sme napísali. Myslel som si, že to bola ideálna príležitosť použiť môj ThreadBoard na vytvorenie vstavaného systému! Moja inšpirácia pre nulové p
Interaktívny konferenčný stolík LED Arduino: 6 krokov (s obrázkami)
Interaktívny konferenčný stolík LED Arduino: Vyrobil som interaktívny konferenčný stolík, ktorý rozsvieti LED svetlá pod predmetom, keď je predmet položený nad stôl. Rozsvietia sa iba LED diódy, ktoré sú pod týmto predmetom. To sa dosahuje efektívnym použitím senzorov priblíženia a keď blízky
Postavte interaktívny most Rainbow pomocou edície Minecraft Raspberry Pi: 11 krokov
Budujte interaktívny most Rainbow pomocou Minecraft Raspberry Pi Edition: Včera som videl svojho 8-ročného synovca hrať Minecraft s Raspberry Pi, ktorý som mu dal predtým, potom som dostal nápad, že pomocou kódu vytvorím prispôsobený a vzrušujúci Minecraft- pi LED bloky. Minecraft Pi je úžasný spôsob, ako začať s
Interaktívny laserový generátor listov s Arduinom: 11 krokov (s obrázkami)
Interaktívny laserový generátor listov s Arduino: Lasery je možné použiť na vytváranie neuveriteľných vizuálnych efektov. V tomto projekte som skonštruoval nový typ laserového displeja, ktorý je interaktívny a prehráva hudbu. Zariadenie otáča dvoma lasermi a vytvára dva svetelné listy podobné víru. Priložil som snímač vzdialenosti
Nikdy nezadávajte svoj PIN do hlasovej schránky: 3 kroky
Nikdy nezadávajte svoj PIN do hlasovej schránky: Ste unavení z toho, že musíte zadávať číslo svojej hlasovej pošty pri každej kontrole hlasovej schránky. Som, takže som na to našiel trik