Sadržaj:

Interaktivni Minecraft ne unosi mač/znak (ESP32-CAM): 15 koraka (sa slikama)
Interaktivni Minecraft ne unosi mač/znak (ESP32-CAM): 15 koraka (sa slikama)

Video: Interaktivni Minecraft ne unosi mač/znak (ESP32-CAM): 15 koraka (sa slikama)

Video: Interaktivni Minecraft ne unosi mač/znak (ESP32-CAM): 15 koraka (sa slikama)
Video: ФИШКИ ГУГЛА О КОТОРЫХ ВЫ НЕ ЗНАЛИ | ТОП 30 СЕКРЕТОВ GOOGLE 2024, Srpanj
Anonim
Image
Image
Finalni proizvod
Finalni proizvod

Zaista postoji nekoliko razloga zašto je ovaj projekt nastao:

1. Kao autor zadružne biblioteke za više zadataka TaskScheduler uvijek sam bio znatiželjan kako kombinirati prednosti suradnje s više zadataka s prednostima prevencije. Oboje ima prednosti, a oboje imaju nedostatke. Kombinirajući ovo dvoje, pruža se jedinstvena prilika za iskorištavanje prednosti i umanjivanje problema oba temeljena na određenom slučaju uporabe. Zanimljiv? Nastavi čitati…

2. Sama činjenica da je ESP32 višejezgreni mikrokontroler fascinantna je. Uvijek me zanimalo mogu li iskoristiti tu značajku. Dakle, ovdje je eksperiment bio: može li ESP32 glatko strujati video pomoću jedne jezgre, dok radi nešto drugo (smisleno i razumno intenzivno nešto drugo) na drugoj jezgri. Još zanimljivije ?? Nastavi čitati…!

3. Trebao sam poligon za svoje nedavne projekte u vezi s pružanjem OTA firmvera i upravljanjem konfiguracijom …

4. Prije nekog vremena kupio sam dva LED matrična modula i nisam mogao shvatiti što s njima učiniti …

5. Moj sin je igrač Minecraft -a, i kao što svaki mali dječak voli svoja vrata ukrašavati plakatima "Ne ulazi" …

Izvolite - svi dobri razlozi za: Interaktivni znak Ne ulazite na vrata s ESP32 -CAM streamingom video zapisa "iza zatvorenih vrata" - ili "Tko dolazi u moju sobu?"

Dakle … o čemu se radi?

Ako imate strpljenja pročitati cijelu priču, shvatit ćete da se ovdje zapravo ne radi o Minecraft maču. Ovaj projekt dokaz je mnogih koncepata:

  • Suživot preventivnog i kooperativnog multitaskinga
  • Selektivna upotreba jezgri ESP32
  • Korištenje novih rječnika i EspBootstrap knjižnica
  • OTA omogućavanje firmvera
  • Upravljanje konfiguracijom
  • Video streaming više klijenata

i puno više.

Uživati

Pribor

  • ESP32-CAM
  • MAX7219 Dot Matrix modul 4-u-1 LED zaslon Modul Geekcreit za Arduino
  • Attom Tech banka kapaciteta 2500 mAh

Korak 1: Završni proizvod

Finalni proizvod
Finalni proizvod

Počet ću s time kako konačni proizvod izgleda, a zatim ću objasniti kako je izgrađen i kako ga kontrolirati.

Čini se privlačnijim na ovaj način …

Korak 2: Prednja ploča mača

Prednja ploča mača
Prednja ploča mača
Prednja ploča mača
Prednja ploča mača

Prednja ploča mača izrađena je od bijele ploče, označena olovkom i obojena Crayola markerima. Samo ovo može biti zanimljiv projekt s vašim djetetom:

  • Označite mač na bijeloj ploči
  • Izrežite prednju ploču
  • Označite kvadrate (ili blokove)
  • Obojite ih pojedinačno
  • Oštricom dodajte crne crte.

Uključio sam otvoreni uredski dokument sa uzorkom slike dijamantnog mača koji možete zalijepiti na ploču ako više volite prečace … Kad sve bude gotovo, možete ili vruće zalijepiti prednju ploču na ostatak sklopa ili upotrijebiti dvostruku obostranu traku.

Korak 3: Matrični 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

Imao sam ih 2, po 4 segmenta, pa sam odlučio napraviti jedan 8-segmentni.

Zgodno je s jedne strane 5-pinsko muško zaglavlje, a sa suprotne strane odgovara 5 rupa. Savijajući muško zaglavlje u oblik] poput klamerica, uspio sam spojiti dva modula i električno i mehanički! Ubili su dvije ptice jednim udarcem (ili dvije muhe jednim potezom, da zaustave dva usta jednim zalogajem, da naprave dva prijatelja s jednim darom, da imaju dvije žice na jedan luk, koji su drugi idiomi po tom pitanju - jeste li pomislili? Oprostite, odstupila sam).

Suprotno muško zaglavlje koristit će se za povezivanje odgovarajućeg ženskog zaglavlja s veroboarda s ESP32-Cam i drugim komponentama.

Dvije su komponente povezane s 3D tiskanim mostom, koji također sadrži prekidač za uključivanje i isključivanje napajanja. 3D STL datoteke za most i ostale komponente nalaze se u mapi files/3d na GitHubu.

Korak 4: Napajanje

Vlast
Vlast

Mač pokreće USB banka kapaciteta 2500 mAh - najmanji i najtanji koji sam mogao pronaći. Powerbank se uvlači u 3D ispisano kućište koje se također pričvršćuje na matrične module, držeći tako cijelu stvar na okupu.

Dva su okrugla magneta zalijepljena na kućište napajanja i tako je mač pričvršćen na vrata (tako da se može lako odvojiti radi održavanja).

Korak 5: Shematski prikaz

Shematski
Shematski
Shematski
Shematski
Shematski
Shematski

Prava shema nalazi se na GitHubu, ali slika vrijedi 1000 riječi (1024 u informacijskoj tehnologiji), pa evo vas:

Ovo je prilično jednostavno ako se snalazite s pištoljem za lemljenje. NAPOMENA: 3D dio mosta dizajniran je za vrlo specifičnu veličinu veroboarda: 30 x 70 mm. Odlučite li se koristiti za drugu, morate ponovno dizajnirati komponentu mosta.

Korak 6: 3D ispis

3D ispis
3D ispis
3D ispis
3D ispis
3D ispis
3D ispis

Kućište baterije i most koji povezuje ESP32-CAM veroboard s matričnim sklopom zaslona 3D su dizajnirani i ispisani.

Kućište baterije dolazi u 2 dijela, koje je potrebno zalijepiti nakon ispisa kako bi se stvorio "džep" za bateriju. Most samo treba očistiti od svih potpornih konstrukcija (nažalost nema dobre orijentacije koja ih minimizira). STL datoteke nalaze se na GitHub -u, a ovdje se nalaze izvornici TinkerCada.

3D dizajn na TinkerCadu također uključuje simuliranu shemu montaže kako se dijelovi uklapaju i trebaju biti povezani.

Korak 7: Programiranje

Više zadataka

Ovaj dizajn koristi FreeRTOS za preventivno obavljanje više zadataka i knjižnicu TaskScheduler za suradnju. Ponašanjem i porukama Mača upravlja se putem aplikacije Blynk. Nakon postavljanja (pinovi, inicijalizacija kamere i matrične točke, povezivanje na WiFi itd.), Stvaraju se dva glavna RTOS zadatka:

  • Zadatak RTOS -a za streaming videozapisa, prikvačen na aplikacijsku jezgru ESP32 (jezgra 1)
  • Prikaz teksta i Blynk control RTOS zadatak, pričvršćen na Power Core ESP32 (jezgra 0), koji je također odgovoran za sve zadatke vezane uz WiFi. Izvođenjem povezanim s tekstom i Blynkom upravlja se putem TaskScheduler zadataka.

Otkrio sam da je 4K prostora na steku dovoljno za RTOS zadatke, ali postoji mogućnost da mu ponestane steka, pa ako želite, učinite ga 8K - RAM -a na ESP32 ima dosta.

Snimanje i streaming videozapisa događa se na jezgri 1. Sve ostalo - na jezgri 0.

ESP32 ima dovoljno snage da sve to podnese uz malo znoja (ploča se zagrijava tijekom streaminga videa).

OVO je bio glavni cilj projekta: miran i produktivan suživot preventivne i kooperativne višezadaćnosti!

Korak 8: Matrična kontrola

Koristim vrlo moćne knjižnice MD_Parola i MD_MAX72xx dostupne i u Arduino IDE upravitelju knjižnica.

Svi tekstualni specijalni efekti rade se putem tih knjižnica. Trebalo je malo truda da se odredi ispravna vrsta hardvera MAX72XX (MD_MAX72XX:: ICSTATION_HW u mom slučaju, vaš može biti drugačiji), nakon toga je upravljanje tekstom jednostavno.

Mač omogućuje sljedeće kontrole:

  • Svjetlina
  • Trepćući
  • Bljesak
  • Brzina i smjer pomicanja (gore/dolje, lijevo/desno, stalno)
  • Također ga možete pretvoriti u zidni sat

Korak 9: Video streaming

Blynk App ima mali widget za video streaming, ali možete strujati u preglednik, VLC player ili bilo što što podržava MJPEG standard.

Podržano je do 10 povezanih klijenata.

Morat ćete saznati IP adresu vašeg ESP32-CAM-a da biste se mogli povezati s njim. Možete ga pogledati na usmjerivaču ili sastaviti ovu skicu s prvo omogućenom opcijom _DEBUG_ i pročitati IP adresu terminala kada se poveže na vašu mrežu.

VAŽNO: Vrlo je poželjno dodijeliti stalnu IP adresu ili stvoriti DHCP rezervaciju za ESP32-CAM modul kako se njegova adresa ne bi promijenila po isteku najma. Također možete izmijeniti aplikaciju Blynk kako biste ažurirali IP adresu u URL -u streama - zanimljiv domaći zadatak ako ste dorasli.

Trenutna skica koristi QVGA rezoluciju: 320x240 piksela, što je čini prilično brzom. Slobodni ste i ohrabreni da se igrate s drugim rezolucijama i odlučite što vam odgovara.

RAM ne bi trebao predstavljati problem jer skica koristi PSRAM.

Korak 10: Konfiguracija

Skica koristi moje biblioteke Rječnik i EspBootstrap za učitavanje konfiguracijskih parametara s konfiguracijskog poslužitelja pri pokretanju.

Pokrenuo sam vlastiti konfiguracijski poslužitelj, što možete i vi učiniti (to je jednostavan Apache2 web poslužitelj koji zapravo samo poslužuje JSON datoteke).

Također možete koristiti bilo koju od mrežnih usluga dostupnih za zadatak: (OTADrive, Microsoft Azure, AWS IoT itd.). U ovom slučaju promijenite metodu String makeConfig (String path) kako biste na odgovarajući način konstruirali URL koji upućuje na vaš izvor konfiguracije. Alternativno, možete spremiti konfiguracijsku datoteku u datotečni sustav SPIFFS na ESP32-CAM-u i pročitati je odatle, ili samo tvrdo kodirati sve unose. Za svoje mogućnosti pogledajte README biblioteke EspBootstrap.

Primjer konfiguracijske datoteke nalazi se na GitHubu.

Ako više volite hardcode parametre, primjer je u nastavku:

pd ("Naslov", "Postavljanje mača DND");

pd ("ssid", "vaš wifi ssid"); pd ("lozinka", "vaša lozinka za wifi"); pd ("msg", "Hello!"); pd ("devices", "8"); pd ("blynk_auth", "vaš blynk AUTH UUID"); // ako pokrećete samo vlastiti poslužitelj: pd ("blynk_host", "IP vašeg poslužitelja blynk"); pd ("blynk_port", "port vašeg poslužitelja");

Korak 11: Ažuriranja OTA firmvera

Skica je također omogućena OTA (Over The Air) ažuriranje firmvera i provjerava ima li novog firmvera pri svakom pokretanju.

Opet, pokrećem vlastiti OTA poslužitelj za ažuriranje, što možete i vi učiniti (to je jednostavan Apache2 web poslužitelj s malo PHP skripti koji služi binarnim datotekama).

Također možete koristiti bilo koju od internetskih IoT usluga dostupnih za zadatak: (OTADrive, Microsoft Azure, AWS IoT itd.). U ovom slučaju promijenite metodu void checkOTA () kako biste na odgovarajući način konstruirali URL za ažuriranje koji upućuje na vaš izvor binarne datoteke.

Ovo je izborno - možete odabrati samo prijenos binarnih datoteka putem serijske veze.

Korak 12: MJPEG poslužitelj

Ovdje je ova tema detaljno opisana.

Korak 13: Blynk aplikacija

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

Blynk je IoT platforma zasnovana na oblaku koja omogućuje brzi razvoj aplikacija. Besplatan je za osobnu upotrebu, a čak ima i mogućnost pokretanja vlastitog Blynk poslužitelja.

Ja (kao što ste možda već pretpostavili) pokrećem vlastiti Blynk poslužitelj, ali bi vam moglo biti lakše koristiti verziju u oblaku. Instalirajte aplikaciju Blynk za iOS ili Android i slijedite donje slike da biste rekonstruirali aplikaciju na svom telefonu.

Morat ćete unijeti svoj vlastiti ULID Blynk Auth da bi aplikacija radila s vašom aplikacijom. Zato koristim konfiguracijske datoteke. Međutim, za jednokratni projekt, tvrdo kodirana vrijednost radila bi jednako dobro.

VAŽNO: Provjerite je li vaš Blynk projekt postavljen na Obavijesti uređaje kada je aplikacija povezana.

NAPOMENA na widgetu za streaming videozapisa: ponekad se video zapis ne pokrene. Čini se da nije problem s ESP32, već s video widgetom aplikacije Blynk. Pokušajte zatvoriti i ponovno otvoriti aplikaciju ili ponovno zaustaviti/pokrenuti projekt. Na kraju i počne. Čini se da ovaj problem ne postoji u pregledniku ili VLC playeru (na primjer).

Korak 14: Uživajte

Bilo je jako zabavno graditi ovo i dokazati da uređaj veličine poštanskog žiga poput ESP32 može učiniti mnogo više od pukog streaminga videa. Puno koncepata iz ovog projekta moglo bi se ponovno koristiti u drugim aplikacijama.

Korak 15: Knjižnice i šifra

Knjižnice:

  • Blynk poslužitelj
  • EspBootstrap knjižnica
  • Knjižnica TaskScheduler
  • Biblioteka rječnika
  • Biblioteka LED matrica
  • Knjižnica za modularno pomicanje LED matričnih tekstualnih prikaza

Stvarno spremište:

Minecraft Interactive Ne unosite mač/znak (ESP32-CAM)

Preporučeni: