Turinys:

Interaktyvus „Minecraft“neįeikite į kardą/ženklą (ESP32-CAM): 15 žingsnių (su paveikslėliais)
Interaktyvus „Minecraft“neįeikite į kardą/ženklą (ESP32-CAM): 15 žingsnių (su paveikslėliais)

Video: Interaktyvus „Minecraft“neįeikite į kardą/ženklą (ESP32-CAM): 15 žingsnių (su paveikslėliais)

Video: Interaktyvus „Minecraft“neįeikite į kardą/ženklą (ESP32-CAM): 15 žingsnių (su paveikslėliais)
Video: 🌟 ГДЕ 5 ГЛАВА ГАРТЕН ОФ БАНБАН? 6 ГЛАВА ТРЕЙЛЕР! 🔥 Garten of Banban 5 И 6 Прохождение 2024, Liepa
Anonim
Image
Image
Galutinis produktas
Galutinis produktas

Yra tikrai keletas priežasčių, kodėl šis projektas atsirado:

1. Kaip bendradarbiaujančios daugiafunkcinės bibliotekos „TaskScheduler“autorė, man visada buvo įdomu, kaip suderinti daugiafunkcinio bendradarbiavimo naudą su pirmenybės teikiama nauda. Abiems yra naudos ir abu turi trūkumų. Sujungus abu, suteikiama unikali galimybė pasinaudoti nauda ir sumažinti problemas, susijusias su konkrečiu naudojimo atveju. Įdomus? Skaityk…

2. Pats faktas, kad ESP32 yra kelių branduolių mikrovaldiklis, žavi. Man visada buvo įdomu, ar galiu pasinaudoti šia funkcija. Taigi eksperimentas buvo toks: ar ESP32 gali sklandžiai transliuoti vaizdo įrašą, naudodamas vieną branduolį, o kitame - ką nors kita (prasminga ir pakankamai intensyvi). Dar įdomiau ?? Skaityk…!

3. Man reikėjo išbandyti savo naujausius projektus, susijusius su OTA programinės įrangos teikimu ir konfigūracijos valdymu …

4. Prieš kurį laiką buvau nusipirkęs du LED taškų matricos modulius ir negalėjau suprasti, ką su jais daryti …

5. Mano sūnus yra „Minecraft“žaidėjas, ir kaip bet kuris mažas berniukas mėgsta papuošti savo duris plakatais „Neįeik“…

Štai ir visos priežastys: interaktyvus ženklas „Neįeiti į duris“su ESP32 -CAM vaizdo transliacija „iš už uždarytų durų“- arba „Kas ateina į mano kambarį?“

Taigi … apie ką visa tai?

Jei turite kantrybės perskaityti visą istoriją, suprasite, kad tai tikrai ne apie „Minecraft“kardą. Šis projektas yra daugelio koncepcijų įrodymas:

  • Prevencinio ir kooperatinio daugiafunkcinio darbo sambūvis
  • Selektyvus ESP32 branduolių naudojimas
  • Naujų žodynų ir „EspBootstrap“bibliotekų naudojimas
  • OTA programinės įrangos aprūpinimas
  • Konfigūracijų valdymas
  • Vaizdo transliacija keliems klientams

ir daug daugiau.

Mėgautis

Prekės

  • ESP32-CAM
  • „MAX7219 Dot Matrix“modulis 4 viename LED ekrano modulis „Geekcreit“, skirtas „Arduino“
  • „Attom Tech“2500 mAh galios bankas

1 žingsnis: galutinis produktas

Galutinis produktas
Galutinis produktas

Pradėsiu nuo to, kaip atrodo galutinis produktas, ir tada paaiškinsiu, kaip jis buvo sukurtas ir kaip jį valdyti.

Tai atrodo patraukliau tokiu būdu…

2 žingsnis: kardo priekinė plokštė

Kardų priekinė plokštė
Kardų priekinė plokštė
Kardų priekinė plokštė
Kardų priekinė plokštė

Kardo priekinė plokštė pagaminta iš lentos, pažymėta pieštuku ir nuspalvinta „Crayola“žymekliais. Vien tai gali būti įdomus projektas su jūsų vaiku:

  • Pažymėkite kardą ant lentos
  • Iškirpkite priekinę plokštę
  • Pažymėkite kvadratus (arba blokus)
  • Spalvokite juos atskirai
  • Pridėkite juodų linijų su aštriu pieštuku.

Įtraukiau atvirą biuro dokumentą su deimantinio kardo pavyzdžiu, kurį galite klijuoti ant lentos viršaus, jei norite naudoti sparčiuosius klavišus … Kai viskas bus padaryta, galite arba karštu klijuoti priekinę plokštę prie likusio įrenginio, arba naudoti dvigubą šoninė juosta.

3 žingsnis: LED taškų matricos ekranas

„Dot Matrix“LED ekranas
„Dot Matrix“LED ekranas
„Dot Matrix“LED ekranas
„Dot Matrix“LED ekranas
„Dot Matrix“LED ekranas
„Dot Matrix“LED ekranas

Turėjau 2 iš jų, po 4 segmentus, todėl nusprendžiau padaryti vieną 8 segmentų.

Patogu, kad vienoje pusėje yra 5 kontaktų antraštė, o priešingoje pusėje-5 skylės. Sulenkdamas vyrišką antraštę į kuokštelinį pavidalą], galėjau prijungti du modulius tiek elektra, tiek mechaniškai! Užmušė du paukščius vienu akmeniu (arba dvi muses su vienu šluoste, kad vienu burnu sustabdytų dvi burnas, su viena dovana susidraugautų, kad dvi stygos būtų prie vieno lanko, kokios kitos idėjos šiuo klausimu - ar pagalvojai? Atsiprašau, nukrypau).

Priešinga vyriška antraštė bus naudojama prijungti atitinkamą moterišką antraštę iš skydelio su ESP32-Cam ir kitais komponentais.

Abu komponentai yra sujungti su 3D spausdintu tiltu, kuriame taip pat yra jungiklis, skirtas įjungti ir išjungti. 3d STL failai tiltui ir kitiems komponentams yra „GitHub“aplanke „files/3d“.

4 žingsnis: maitinimas

Galia
Galia

„Sword“maitina 2500 mAh talpos USB maitinimo bankas - mažiausias ir ploniausias, kokį tik galiu rasti. „Powerbank“įstumiamas į 3D spausdintą dėklą, kuris taip pat tvirtinamas prie taškinės matricos modulių, taip laikant visą daiktą kartu.

Prie maitinimo bloko korpuso yra priklijuoti du apvalūs magnetai, ir taip kardas pritvirtinamas prie durų (todėl jį būtų galima taip pat lengvai nuimti priežiūrai).

5 žingsnis: schema

Schema
Schema
Schema
Schema
Schema
Schema

Tikroji schema yra „GitHub“, tačiau nuotrauka verta 1000 žodžių (1024 informacinėse technologijose), taigi čia esate:

Tai gana paprasta, jei žinote savo kelią su lituokliu. PASTABA: 3D tilto dalis skirta labai konkrečiam langelio dydžiui: 30 x 70 mm. Jei nuspręsite naudoti kitą, turite iš naujo suprojektuoti tilto komponentą.

6 žingsnis: 3D spausdinimas

3D spausdinimas
3D spausdinimas
3D spausdinimas
3D spausdinimas
3D spausdinimas
3D spausdinimas

Akumuliatoriaus dėklas ir tiltas, jungiantis ESP32-CAM plokštę prie taškinės matricos ekrano, buvo suprojektuoti ir atspausdinti.

Akumuliatoriaus dėklas yra 2 dalių, kurias po spausdinimo reikia suklijuoti, kad būtų sukurta baterijos „kišenė“. Tiltą tiesiog reikia išvalyti nuo visų atraminių konstrukcijų (deja, nėra geros orientacijos, kuri jas sumažintų). STL failai yra „GitHub“, o „TinkerCad“originalai yra čia.

„TinkerCad“3D dizainas taip pat apima imituojamą surinkimo schemą, kaip dalys dera ir turi būti sujungtos.

7 žingsnis: programavimas

Daugiafunkcinis darbas

Šis dizainas naudoja „FreeRTOS“prevenciniam daugiafunkciniam darbui, o „TaskScheduler“biblioteka - bendradarbiavimui. „Sword“elgesys ir pranešimai valdomi naudojant „Blynk“programą. Po sąrankos (smeigtukai, fotoaparato ir taškinės matricos inicijavimas, prisijungimas prie „WiFi“ir kt.) Sukuriamos dvi pagrindinės RTOS užduotys:

  • Vaizdo transliacijos RTOS užduotis, prisegta prie ESP32 programos branduolio (1 branduolys)
  • Teksto rodymas ir „Blynk“valdymo RTOS užduotis, prisegta prie ESP32 „Power Core“(0 branduolys), kuri taip pat yra atsakinga už visas su „WiFi“susijusias užduotis. Su tekstu ir „Blynk“susijęs vykdymas valdomas naudojant „TaskScheduler“užduotis.

Aš sužinojau, kad RTOS užduotims pakanka 4K krūvos vietos, tačiau yra galimybė, kad krūva baigsis, todėl, jei norite, padarykite ją 8K - ESP32 yra daug RAM.

Visi vaizdo įrašai ir transliacijos vyksta naudojant „Core 1“. Visa kita - „Core 0“.

ESP32 turi pakankamai galios, kad visa tai įveiktų, šiek tiek prakaituojant (lenta įkaista, kai transliuojamas vaizdo įrašas).

TAI buvo pagrindinis projekto tikslas: taikus ir produktyvus sambūvis, atliekantis prevencinį ir bendradarbiaujantį daugiafunkcinį darbą!

8 žingsnis: Taškinės matricos valdymas

Aš naudoju labai galingas „MD_Parola“ir „MD_MAX72xx“bibliotekas, kurias taip pat galima rasti „Arduino IDE“bibliotekų tvarkytuvėje.

Visi tekstiniai specialieji efektai atliekami per tas bibliotekas. Prireikė šiek tiek pastangų, norint nustatyti teisingą MAX72XX aparatūros tipą (mano atveju MD_MAX72XX:: ICSTATION_HW, jūsų gali skirtis), po to teksto valdymas yra lengvas.

Kardas leidžia valdyti šias funkcijas:

  • Ryškumas
  • Mirksi
  • Blykstė
  • Slinkimo greitis ir kryptis (aukštyn/žemyn, kairė/dešinė, pastovus)
  • Taip pat galite jį paversti sieniniu laikrodžiu

9 veiksmas: vaizdo transliacija

„Blynk App“turi nedidelį valdiklį vaizdo transliacijai, tačiau galite transliuoti į naršyklę, VLC grotuvą ar bet ką, kas palaiko MJPEG standartą.

Palaikoma iki 10 prijungtų klientų.

Norėdami prisijungti prie ESP32-CAM, turėsite sužinoti jo IP adresą. Galite jį rasti savo maršrutizatoriuje arba sudaryti šį eskizą, įjungę parinktį _DEBUG_, ir perskaityti terminalo IP adresą, kai jis prisijungia prie jūsų tinklo.

SVARBU: labai patartina ESP32-CAM moduliui priskirti nuolatinį IP adresą arba sukurti DHCP rezervavimą, kad pasibaigus nuomos terminui jo adresas nesikeistų. Taip pat galite modifikuoti „Blynk“programą, kad atnaujintumėte srauto URL IP adresą - įdomi namų užduotis, jei ją atliksite.

Dabartinis eskizas naudoja QVGA skiriamąją gebą: 320x240 pikselių, todėl tai yra gana greita. Jūs esate laisvas ir skatinamas žaisti su kitomis rezoliucijomis ir nuspręsti, kas jums tinka.

RAM neturėtų būti problema, nes eskizas išnaudoja PSRAM pranašumus.

10 veiksmas: konfigūravimas

Eskizas pasinaudoja mano žodyno ir „EspBootstrap“bibliotekomis, kad įkeltų konfigūracijos parametrus iš konfigūracijos serverio.

Aš naudoju savo konfigūracijos serverį, kurį taip pat galite padaryti (tai paprastas „Apache2“žiniatinklio serveris, kuris iš tikrųjų tik aptarnauja JSON failus).

Taip pat galite naudoti bet kurią iš internetinių paslaugų, prieinamų šiai užduočiai atlikti: („OTADrive“, „Microsoft Azure“, AWS IoT ir kt.). Tokiu atveju pakeiskite „String makeConfig“(eilutės kelias) metodą, kad tinkamai sukurtumėte URL, nukreipiantį į jūsų konfigūracijos šaltinį. Arba galite išsaugoti konfigūracijos failą į SPIFFS failų sistemą ESP32-CAM ir perskaityti jį iš ten arba tiesiog koduoti visus įrašus. Peržiūrėkite „EspBootstrap“bibliotekos „README“, kad sužinotumėte apie savo galimybes.

„GitHub“pateiktas konfigūracijos failo pavyzdys.

Jei norite koduoti parametrus, žemiau pateiktas pavyzdys:

pd („Pavadinimas“, „DND kardo sąranka“);

pd („ssid“, „jūsų„ wifi ssid “); pd („slaptažodis“, „jūsų„ wifi “slaptažodis“); pd ("msg", "Sveiki!"); pd ("prietaisai", "8"); pd ("blynk_auth", "tavo blynk AUTH UUID"); // jei valdote tik savo serverį: pd ("blynk_host", "jūsų blynk serverio IP"); pd ("blynk_port", "jūsų serverio prievadas");

11 veiksmas: OTA programinės įrangos atnaujinimai

Eskizas taip pat įgalintas OTA („Over The Air“) programinės įrangos atnaujinimas ir kiekvieną kartą paleidžiant tikrinama, ar nėra naujos programinės įrangos.

Vėlgi, aš naudoju savo OTA atnaujinimo serverį, kurį taip pat galite padaryti (tai paprastas „Apache2“žiniatinklio serveris su trupučiu PHP scenarijų, aptarnaujančių dvejetainius failus).

Taip pat galite naudoti bet kurią iš užduočiai prieinamų internetinių IoT paslaugų: („OTADrive“, „Microsoft Azure“, AWS IoT ir kt.). Tokiu atveju pakeiskite void checkOTA () metodą, kad tinkamai sukurtumėte atnaujinimo URL, nukreipiantį į jūsų dvejetainio failo šaltinį.

Tai neprivaloma - galite tiesiog įkelti dvejetainius failus per nuoseklųjį ryšį.

12 veiksmas: MJPEG serveris

Ši tema išsamiai aprašyta čia.

13 žingsnis: „Blynk“programa

„Blynk“programa
„Blynk“programa
„Blynk“programa
„Blynk“programa
„Blynk“programa
„Blynk“programa

„Blynk“yra debesimis pagrįsta daiktų interneto platforma, leidžianti greitai kurti programas. Jis yra nemokamas asmeniniam naudojimui ir netgi turi galimybę paleisti savo „Blynk“serverį.

Aš (kaip jau galėjote atspėti) naudoju savo „Blynk“serverį, tačiau jums gali būti lengviau naudoti debesies versiją. Įdiekite „Blynk iOS“arba „Android“programą ir sekite toliau pateiktas nuotraukas, kad atkurtumėte programą savo telefone.

Kad programa veiktų su jūsų programa, turėsite pateikti savo „Blynk Auth“UUID. Štai kodėl aš naudoju konfigūracijos failus. Tačiau vienkartinio projekto atveju koduota vertė veiktų taip pat gerai.

SVARBU: Įsitikinkite, kad jūsų „Blynk“projektas nustatytas taip, kad praneštų įrenginiams, kai programa prijungta.

PASTABA apie vaizdo transliacijos valdiklį: kartais vaizdo įrašas neprasideda. Atrodo, kad tai nėra problema su ESP32, o su „Blynk“programos vaizdo valdikliu. Pabandykite uždaryti ir vėl atidaryti programą arba sustabdyti/pradėti projektą dar kartą. Galų gale, tai prasideda. Panašu, kad šios problemos nėra, pavyzdžiui, naršyklėje ar VLC grotuve (pvz.).

14 žingsnis: Mėgaukitės

Buvo labai smagu tai sukurti ir įrodyti, kad pašto ženklo dydžio įrenginys, pvz., ESP32, gali nuveikti daug daugiau nei tiesiog transliuoti vaizdo įrašą. Daugelis šio projekto koncepcijų gali būti pakartotinai panaudotos kitose programose.

15 žingsnis: bibliotekos ir kodas

Bibliotekos:

  • „Blynk“serveris
  • „EspBootstrap“biblioteka
  • „TaskScheduler“biblioteka
  • Žodynų biblioteka
  • LED matricos biblioteka
  • Modulinio slinkties LED matricos teksto rodymo biblioteka

Tikroji saugykla:

„Minecraft Interactive“neįveskite kardo/ženklo (ESP32-CAM)

Rekomenduojamas: