Mundarija:

Interaktiv Minecraft qilich/belgiga kirmasin (ESP32-CAM): 15 qadam (rasmlar bilan)
Interaktiv Minecraft qilich/belgiga kirmasin (ESP32-CAM): 15 qadam (rasmlar bilan)

Video: Interaktiv Minecraft qilich/belgiga kirmasin (ESP32-CAM): 15 qadam (rasmlar bilan)

Video: Interaktiv Minecraft qilich/belgiga kirmasin (ESP32-CAM): 15 qadam (rasmlar bilan)
Video: Choose your own Adventure in Minecraft! 360° POV - Interactive 2024, Iyul
Anonim
Image
Image
Yakuniy mahsulot
Yakuniy mahsulot

Loyihaning paydo bo'lishining bir qancha sabablari bor:

1. TaskScheduler kooperativ ko'p vazifali kutubxonasi muallifi sifatida men har doim kooperativ ko'p vazifalarning afzalliklari bilan ularni birlashtiruvchi afzalliklari bilan birlashtirishni qiziqtirganman. Ikkalasining ham foydasi bor, ikkalasining ham kamchiliklari bor. Ikkalasini birlashtirish, imtiyozlardan foydalanish va muayyan vaziyatga asoslangan masalalarni hal qilishning noyob imkoniyatini beradi. Qiziq? O'qish…

2. ESP32 ko'p yadroli mikrokontroller ekanligi odamni hayratga soladi. Men har doim bu xususiyatdan foydalana olamanmi, deb qiziqardim. Shunday qilib, bu erda tajriba quyidagicha edi: ESP32 boshqa yadroda boshqa narsani (mazmunli va oqilona intensiv) boshqa bir ishni bajarayotganda bitta yadrodan foydalanib, muammosiz video o'tkaza oladimi? Bundan ham qiziqroqmi ??? O'qing …!

3. Menga OTA dasturiy ta'minoti va konfiguratsiyasini boshqarish bo'yicha so'nggi loyihalarim uchun sinov maydoni kerak edi …

4. Men bir muddat oldin ikkita LED nuqta matritsali modulni sotib olgan edim va ular bilan nima qilishni bilmay qoldim …

5. Mening o'g'lim Minecraft o'yinchisi, va har qanday kichkina bola o'z eshiklarini "Kirmang" plakatlari bilan bezashni yaxshi ko'radi.

Mana, keldingiz - barcha yaxshi sabablar: ESP32 -CAM video tasmasi "yopiq eshik ortidan" yoki "Mening xonamga kim keladi?" Yozuvi bilan interaktiv kirmang.

Xo'sh … bu nima haqida?

Agar siz butun hikoyani o'qishga sabr -toqatli bo'lsangiz, bu Minecraft qilichi haqida emasligini tushunasiz. Bu loyiha ko'plab tushunchalarning isboti:

  • Preventiv va kooperativ ko'p vazifalarning birgalikda mavjudligi
  • ESP32 yadrolarini tanlab ishlatish
  • Yangi Dictionary va EspBootstrap kutubxonalaridan foydalanish
  • OTA dasturiy ta'minoti
  • Konfiguratsiyani boshqarish
  • Bir nechta mijozlarga video uzatish

va yana ko'p narsalar.

Xursand bo'ling

Ta'minotlar

  • ESP32-CAM
  • MAX7219 nuqta matritsali modul 4-in-1 LED displey moduli Geekcreit Arduino uchun.
  • Attom Tech 2500mAh quvvat banki

1 -qadam: Yakuniy mahsulot

Yakuniy mahsulot
Yakuniy mahsulot

Men yakuniy mahsulot qanday ko'rinishda bo'lishidan boshlayman, keyin qanday qurilganligini va uni qanday boshqarishni tushuntiraman.

Bu qiziqroq ko'rinadi …

2 -qadam: Qilich yuzasi

Qilich yuzi
Qilich yuzi
Qilich yuzi
Qilich yuzi

Qilichning old yuzasi doskadan qilingan, qalam bilan belgilangan va Crayola markerlari bilan bo'yalgan. Bu sizning farzandingiz bilan qiziqarli loyiha bo'lishi mumkin:

  • Qilichni doskaga belgilang
  • Old panelni kesib oling
  • Kvadratlarni (yoki bloklarni) belgilang.
  • Ularni alohida -alohida ranglang
  • Qora chiziqlarni o'tkir chiziq bilan qo'shing.

Men olmos qilichning namunali rasmiga ega bo'lgan ochiq ofis hujjatini qo'shdim, agar siz yorliqlarni afzal ko'rsangiz, uni doskaning yuqori qismiga yopishtirishingiz mumkin … Hamma narsa tugagandan so'ng, siz old panelni qolgan qismiga issiq yopishtirishingiz yoki ikki marta ishlatishingiz mumkin. bir tomonlama lenta.

3 -qadam: nuqta matritsali LED displey

LED displeyli nuqta matritsasi
LED displeyli nuqta matritsasi
LED displeyli nuqta matritsasi
LED displeyli nuqta matritsasi
LED displeyli nuqta matritsasi
LED displeyli nuqta matritsasi

Menda ikkitasi bor edi, ularning har biri 4 ta segment, shuning uchun men bitta 8 segmentli bo'lishga qaror qildim.

Qulaylik uchun, bir tomonda 5-pinli erkak boshcha va qarama-qarshi tomonda 5 teshik mos keladi. Erkaklar sarlavhasini zımbaga o'xshash shaklga egib, men ikkita modulni ham elektr, ham mexanik tarzda ulashga muvaffaq bo'ldim! Ikki qushni bitta tosh bilan o'ldirdi (yoki bitta pichoq bilan ikkita chivin, bitta og'iz bilan ikkita og'izni to'xtatish, bitta sovg'a bilan ikkita do'st orttirish, bitta kamonga ikkita ip bo'lishi, bu borada boshqa idiomalar nima - o'ylab ko'rdingizmi? Kechirasiz, men chetga chiqdim).

Qarama-qarshi erkak sarlavhasi ESP32-Cam va boshqa komponentlar bilan veroboarddan mos keladigan ayol sarlavhasini ulash uchun ishlatiladi.

Ikkala komponent 3 o'lchamli bosma ko'prik bilan bog'langan, u erda quvvatni yoqish va o'chirish uchun kalit ham mavjud. Ko'prik va boshqa komponentlar uchun 3D STL fayllari GitHub-dagi fayllar/3d papkasida joylashgan.

4 -qadam: quvvat

Quvvat
Quvvat

Qilich 2500 mA / soat quvvatga ega USB quvvat banki bilan ishlaydi - men topa oladigan eng kichik va eng yupqa. Powerbank 3 o'lchamli bosma qutiga o'raladi, u ham nuqta matritsali modullarga ulanadi, shuning uchun hammasini bir joyga to'playdi.

Quvvat qutisiga ikkita dumaloq magnit yopishtirilgan va shunday qilib, qilich eshikka mahkamlanadi (shuning uchun uni parvarish qilish uchun oson ajratish mumkin).

5 -qadam: sxematik

Sxematik
Sxematik
Sxematik
Sxematik
Sxematik
Sxematik

Haqiqiy sxema GitHub -da joylashgan, lekin rasm 1000 so'zdan iborat (1024 axborot texnologiyasida), shuning uchun siz mana:

Agar siz lehim quroli bilan o'z yo'lingizni bilsangiz, bu juda oddiy. E'tibor bering: 3d ko'prik qismi veroboard o'lchamlari uchun mo'ljallangan: 30 x 70 mm. Agar siz boshqasini ishlatishga qaror qilsangiz, ko'prik komponentini qayta loyihalashingiz kerak.

6 -qadam: 3D bosib chiqarish

3d bosib chiqarish
3d bosib chiqarish
3d bosib chiqarish
3d bosib chiqarish
3d bosib chiqarish
3d bosib chiqarish

Batareya qutisi va ESP32-CAM veroboardini nuqta-matritsali displeyga ulaydigan ko'prik 3d dizaynlashtirilgan va chop etilgan.

Batareya qutisi 2 qismdan iborat bo'lib, ularni bosgandan so'ng, "cho'ntak" yaratish uchun yopishtirish kerak. Ko'prikni barcha qo'llab -quvvatlovchi tuzilmalardan tozalash kerak (afsuski, ularni kamaytiradigan yaxshi yo'nalish yo'q). STL fayllari GitHub -da va TinkerCad asl nusxalari shu erda joylashgan.

TinkerCad -dagi 3D dizayni, shuningdek, qismlarning bir -biriga qanday mos kelishi va ulanishi kerakligi haqidagi simulyatsiya qilingan yig'ilish sxemasini ham o'z ichiga oladi.

7 -qadam: dasturlash

Ko'p vazifali

Ushbu dizaynda ko'p vazifalarni bajarishda FreeRTOS va kooperativlar uchun TaskScheduler kutubxonasi ishlatiladi. Qilichning xatti-harakatlari va xabarlari Blynk App orqali boshqariladi, sozlashdan so'ng (pinlar, kamera va nuqta-matritsali ishga tushirish, WiFi-ga ulanish va boshqalar) RTOS-ning ikkita asosiy vazifasi yaratiladi:

  • ESP32 dastur yadrosiga (yadro 1) biriktirilgan RTOS video oqim vazifasi.
  • Matnni ko'rsatish va Blynkni boshqarish RTOS vazifasi, ESP32 Power Core (yadro 0) ga biriktirilgan, u ham WiFi bilan bog'liq barcha vazifalar uchun javobgardir. Matn va Blynk bilan bog'liq ishlar TaskScheduler vazifalari orqali boshqariladi.

Men bildimki, RTOS vazifalarini bajarish uchun 4K hajmli bo'sh joy etarli, lekin bo'sh joy qolishi mumkin, shuning uchun agar xohlasangiz, uni 8K qilib qo'ying - ESP32 -da juda ko'p RAM mavjud.

Hamma videolarni yozib olish va translyatsiya qilish Core 1 da amalga oshiriladi. Qolganlarning hammasi Core 0 da.

ESP32 bularning barchasini ozgina terlash bilan hal qilish uchun etarli kuchga ega (video uzatishda taxta qizib ketadi).

Loyihaning asosiy maqsadi shundan iborat edi: ko'p vazifalarni bajarishning tinch va samarali yonishi!

8 -qadam: nuqta matritsasini boshqarish

Men Arduino IDE kutubxona menejerida mavjud bo'lgan juda kuchli MD_Parola va MD_MAX72xx kutubxonalaridan foydalanayapman.

Barcha matnli maxsus effektlar o'sha kutubxonalar orqali amalga oshiriladi. To'g'ri MAX72XX apparat turini (MD_MAX72XX:: ICSTATION_HW, meniki, siznikidan farq qilishi mumkin) aniqlash uchun ozgina kuch sarflandi, shundan so'ng matnni boshqarish oson.

Qilich quyidagi nazoratlarni amalga oshirishga imkon beradi:

  • Yorqinlik
  • Miltillovchi
  • Flash
  • O'tish tezligi va yo'nalishi (yuqoriga/pastga, chapga/o'ngga, barqaror)
  • Siz uni devor soatiga aylantirishingiz mumkin

9 -qadam: video oqim

Blynk ilovasida video oqim uchun kichik vidjet mavjud, lekin siz uni brauzerga, VLC pleeriga yoki MJPEG standartini qo'llab -quvvatlaydigan har qanday narsaga o'tkazishingiz mumkin.

10 ta ulangan mijoz qo'llab -quvvatlanadi.

Ulanish uchun siz ESP32-CAM-ning IP-manzilini bilib olishingiz kerak bo'ladi. Siz uni marshrutizatorda qidirishingiz yoki bu eskizni avval _DEBUG_ opsiyasi bilan kompilyatsiya qilishingiz va tarmoqqa ulanganda terminalning IP -manzilini o'qishingiz mumkin.

MUHIM: ESP32-CAM moduliga doimiy IP-manzilni tayinlash yoki DHCP orqali band qilish tavsiya etiladi, shuning uchun ijara muddati tugaganda uning manzili o'zgarmaydi. IP -manzilni oqim URL manzilida yangilash uchun Blynk ilovasini o'zgartirishingiz mumkin - agar siz bunga tayyor bo'lsangiz, qiziqarli uy vazifasi.

Hozirgi eskizda QVGA piksellar sonini ishlatilgan: 320x240 piksel, bu uni juda tez qiladi. Siz boshqa qarorlar bilan o'ynashga va sizga nima mos kelishini hal qilishga taklif qilasiz.

Operativ xotira muammo bo'lmasligi kerak, chunki eskiz PSRAM -dan foydalanadi.

10 -qadam: Konfiguratsiya

Eskiz yuklash paytida konfiguratsiya serveridan konfiguratsiya parametrlarini yuklash uchun Dictionary va EspBootstrap kutubxonalarimdan foydalanadi.

Men o'z konfiguratsion serverimni ishga tushiraman, siz ham qila olasiz (bu shunchaki Apache2 veb -serveri, faqat JSON fayllariga xizmat qiladi).

Vazifa uchun mavjud bo'lgan har qanday onlayn xizmatlardan foydalanishingiz mumkin: (OTADrive, Microsoft Azure, AWS IoT va boshqalar). Bu holda, iltimos, konfiguratsiya manbaiga ishora qiluvchi URLni to'g'ri tuzish uchun String makeConfig (String path) usulini o'zgartiring. Shu bilan bir qatorda, siz konfiguratsiya faylini ESP32-CAM-dagi SPIFFS fayl tizimiga saqlashingiz va u erdan o'qishingiz yoki barcha yozuvlarni qattiq kodlashingiz mumkin. O'z variantlaringiz uchun EspBootstrap kutubxonasining README -ga qarang.

GitHub -da konfiguratsiya faylining namunasi keltirilgan.

Agar siz qattiq kodli parametrlarni afzal ko'rsangiz, misol quyida keltirilgan:

pd ("Sarlavha", "DND qilichni o'rnatish");

pd ("ssid", "wifi ssid"); pd ("parol", "Wi -Fi parolingiz"); pd ("msg", "Salom!"); pd ("qurilmalar", "8"); pd ("blynk_auth", "sizning blynk AUTH UUID"); // agar siz faqat o'z serveringizni ishlatsangiz: pd ("blynk_host", "sizning blynk server IP -manzilingiz"); pd ("blynk_port", "sizning server portingiz");

11 -qadam: OTA dasturiy ta'minotini yangilash

Eskiz shuningdek, OTA (Over the Air) dasturiy ta'minotini yangilash yoqilgan va har yuklashda yangi dasturiy ta'minotni tekshiradi.

Shunga qaramay, men o'z OTA -ni yangilash serverini ishga tushiraman, siz ham qila olasiz (bu oddiy Apache2 veb -serveri, ikkilik fayllarga xizmat ko'rsatadigan biroz PHP skriptlari bilan).

Bundan tashqari, vazifa uchun mavjud bo'lgan har qanday onlayn IoT xizmatlaridan foydalanishingiz mumkin: (OTADrive, Microsoft Azure, AWS IoT va boshqalar). Bunday holda, ikkilik fayl manbasini ko'rsatadigan yangilanish URL manzilini mos ravishda yaratish uchun void checkOTA () usulini o'zgartiring.

Bu ixtiyoriy - ketma -ket ulanish orqali ikkilik fayllarni yuklashni tanlashingiz mumkin.

12 -qadam: MJPEG serveri

Bu mavzu bu erda batafsil tasvirlangan.

13 -qadam: Blynk ilovasi

Blynk ilovasi
Blynk ilovasi
Blynk ilovasi
Blynk ilovasi
Blynk ilovasi
Blynk ilovasi

Blynk-bu bulutga asoslangan IoT platformasi bo'lib, u ilovalarni tez ishlab chiqishga imkon beradi. Bu shaxsiy foydalanish uchun bepul va hatto o'z Blynk serverini ishga tushirish imkoniyatiga ega.

Men (siz taxmin qilganingizdek) o'z Blynk serverimni ishga tushiraman, lekin siz uchun bulutli versiyadan foydalanish osonroq bo'lishi mumkin. Blynk iOS yoki Android ilovasini o'rnating va telefoningizda ilovani qayta tiklash uchun quyidagi rasmlarga amal qiling.

Ilova sizning ilovangiz bilan ishlashi uchun siz o'zingizning Blynk Auth UUID -ni taqdim etishingiz kerak bo'ladi. Shuning uchun men konfiguratsiya fayllaridan foydalanaman. Biroq, bir martalik loyiha uchun qattiq kodlangan qiymat yaxshi ishlaydi.

MUHIM: Iltimos, Blynk loyihangiz ilova ulanganda qurilmalarga xabar berish uchun o'rnatilganligiga ishonch hosil qiling.

Video oqimi vidjetida QAYD: ba'zida video boshlanmaydi. Bu ESP32 bilan emas, balki Blynk ilovasining video vidjetida muammo bo'lib tuyuladi. Ilovani yopib, qayta ochishga yoki loyihani to'xtatishga/qaytadan boshlashga harakat qiling. Oxir -oqibat, u boshlanadi. Bu muammo brauzerda yoki VLC pleerida yo'qdek tuyuladi (masalan).

14 -qadam: Xursand bo'ling

Buni qurish va ESP32 kabi pochta markali o'lchamli qurilma video oqimidan ko'ra ko'proq narsani qila olishini isbotlash juda qiziq bo'ldi. Ushbu loyihaning ko'plab tushunchalari boshqa ilovalarda ishlatilishi mumkin.

15 -qadam: Kutubxonalar va kod

Kutubxonalar:

  • Blynk server
  • EspBootstrap kutubxonasi
  • TaskScheduler kutubxonasi
  • Lug'at kutubxonasi
  • LED matritsa kutubxonasi
  • LED matritsali modulli aylantirish uchun kutubxona

Haqiqiy ombor:

Minecraft Interactive qilich/belgiga kirmang (ESP32-CAM)

Tavsiya: