Агуулгын хүснэгт:

Интерактив Minecraft сэлэм/тэмдэг оруулахгүй (ESP32-CAM): 15 алхам (зурагтай)
Интерактив Minecraft сэлэм/тэмдэг оруулахгүй (ESP32-CAM): 15 алхам (зурагтай)

Видео: Интерактив Minecraft сэлэм/тэмдэг оруулахгүй (ESP32-CAM): 15 алхам (зурагтай)

Видео: Интерактив Minecraft сэлэм/тэмдэг оруулахгүй (ESP32-CAM): 15 алхам (зурагтай)
Видео: Interactive Minecraft-Season 1 Episode 1-INTERACTIVE 2024, Долдугаар сарын
Anonim
Image
Image
Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн

Энэхүү төсөл хэрэгжих болсон хэд хэдэн шалтгаан бий:

1. TaskScheduler-ийн олон үйлдэлт номын сангийн зохиогчийн хувьд би хоршооны олон үйлдлийн давуу талыг давуу эрхийн давуу талтай хэрхэн хослуулахыг үргэлж сонирхож байсан. Хоёулаа давуу талтай бөгөөд хоёулаа дутагдалтай байдаг. Үүнийг хоёуланг нь хослуулах нь ашиг тусыг ашиглах, тодорхой хэрэглээний тохиолдол дээр үндэслэсэн асуудлыг шийдвэрлэх онцгой боломжийг олгодог. Сонирхолтой байна уу? Цааш унших…

2. ESP32 нь олон цөмт микроконтроллер гэдэг нь үнэхээр гайхалтай. Энэ онцлогийг ашиглаж чадвал би үргэлж сонирхож байсан. Энд хийсэн туршилт нь: ESP32 нь нэг цөмийг ашиглан видео дамжуулалтыг жигд хийж, нөгөө цөм дээрээ өөр зүйл (утга учиртай, боломжийн эрчимтэй) хийж чаддаг. Бүр илүү сонирхолтой ??? Үргэлжлүүлэн уншина уу …!

3. Надад OTA програм хангамжийн хангамж, тохиргооны менежментийн талаархи сүүлийн үеийн төслүүдээ турших газар хэрэгтэй байсан …

4. Би хэсэг хугацааны өмнө хоёр LED Dot Matrix модулийг худалдаж авсан бөгөөд тэдэнтэй юу хийхээ мэдэхгүй байв.

5. Миний хүү Minecraft тоглоом тоглодог бөгөөд ямар ч бяцхан хүү хаалгаа "Битгий ор" гэсэн зурагт хуудсаар чимэглэх дуртай …

Энд байгаа бүх сайн шалтгаанууд: ESP32 -CAM видео хаалтыг "хаалттай хаалганы цаанаас" дамжуулах интерактив хаалганы тэмдэг оруулахгүй байх эсвэл "Миний өрөөнд хэн ирэх гэж байна?"

Тэгэхээр … энэ бүхэн юуны тухай вэ?

Хэрэв та түүхийг бүхэлд нь унших тэвчээртэй бол энэ бол Minecraft сэлэмний тухай биш гэдгийг ойлгох болно. Энэхүү төсөл нь маш олон ойлголтын нотолгоо юм.

  • Урьдчилан сэргийлэх болон хамтын ажиллагааны олон үүрэг даалгавар зэрэгцэн орших
  • ESP32 цөмийг сонгон ашиглах
  • Шинэ толь бичиг, EspBootstrap санг ашиглах
  • OTA програм хангамжийн хангамж
  • Тохиргооны менежмент
  • Олон үйлчлүүлэгч рүү видео дамжуулах

ба түүнээс дээш.

Зугаацаарай

Хангамж

  • ESP32-CAM
  • MAX7219 цэг матрицын модуль 4-in-1 LED дэлгэцийн модуль Geekcreit нь Arduino-д зориулагдсан.
  • Attom Tech 2500mAh цахилгаан банк

Алхам 1: Эцсийн бүтээгдэхүүн

Эцсийн бүтээгдэхүүн
Эцсийн бүтээгдэхүүн

Би эцсийн бүтээгдэхүүн хэрхэн харагдахаас эхэлж, дараа нь хэрхэн бүтээгдсэн, түүнийг хэрхэн хянах талаар тайлбарлах болно.

Энэ нь илүү сонирхолтой санагдаж байна …

Алхам 2: Сэлмийн нүүрний хавтан

Сэлэмний нүүрний хавтан
Сэлэмний нүүрний хавтан
Сэлэмний нүүрний хавтан
Сэлэмний нүүрний хавтан

Сэлэмний нүүрний хавтанг самбараас хийж, харандаагаар тэмдэглэж, Крайола маркераар будсан болно. Энэ нь зөвхөн таны хүүхэдтэй хийх сонирхолтой төсөл байж магадгүй юм.

  • Цагаан самбар дээр сэлэм тэмдэглээрэй
  • Нүүрний хавтанг хайчилж ав
  • Квадратуудыг (эсвэл блокуудыг) тэмдэглээрэй.
  • Тэдгээрийг тус тусад нь өнгөөр будна
  • Хурц үзүүртэй хар шугамыг нэмнэ үү.

Хэрэв та товчлолыг илүүд үзвэл цагаан самбар дээр нааж болох алмазан сэлэмний дээжийн зураг бүхий нээлттэй оффисын баримт бичгийг оруулсан болно. Бүх зүйл дууссаны дараа та нүүрний хавтанг бусад хэсэгт халуунаар нааж эсвэл давхар ашиглаж болно. хажуугийн соронзон хальс.

Алхам 3: Дот матрицын LED дэлгэц

Дот матрицын LED дэлгэц
Дот матрицын LED дэлгэц
Дот матрицын LED дэлгэц
Дот матрицын LED дэлгэц
Дот матрицын LED дэлгэц
Дот матрицын LED дэлгэц

Надад тус бүр 4 сегмент бүхий 2 ширхэг байсан тул би 8 сегментийг нэг болгохоор шийдсэн.

Тохиромжтой бол нэг талд нь 5 зүүтэй эрэгтэй толгой, эсрэг талд нь 5 цооног таарна. Эр толгойг үдээс шиг хэлбэртэй болгосноор би хоёр модулийг цахилгаан болон механик байдлаар холбож чадсан юм! Хоёр шувууг нэг чулуугаар хөнөөсөн (эсвэл хоёр ялаа, нэг амаар хоёр амаа таслах, нэг бэлгээр хоёр найзтай болох, нэг нуманд хоёр уяатай байх, энэ талаар өөр ямар хэлц үг байдаг вэ - та бодож байсан уу? Уучлаарай, би ухрав.)

Эсрэг эрэгтэй толгойг ESP32-Cam болон бусад бүрэлдэхүүн хэсгүүдтэй тохирох эмэгтэй толгойг veroboard дээрээс холбоход ашиглана.

Хоёр бүрэлдэхүүн хэсэг нь 3d хэвлэсэн гүүрээр холбогдсон бөгөөд энэ нь хүчийг асаах, унтраах түлхүүрийг агуулдаг. Гүүр болон бусад бүрэлдэхүүн хэсгүүдийн 3d STL файлууд GitHub дээрх файлууд/3d хавтсанд байрладаг.

Алхам 4: Эрчим хүч

Эрчим хүч
Эрчим хүч

Сэлэм нь 2500 мАч хүчин чадалтай USB цахилгаан банкаар ажилладаг бөгөөд миний олж мэдсэн хамгийн жижиг, хамгийн нимгэн нь юм. Powerbank нь 3d хэвлэсэн хайрцаг руу ордог бөгөөд энэ нь цэг матрицын модульд залгагдаж, бүх зүйлийг хамтад нь хадгалдаг.

Цахилгаан банкны хайрцагт наасан хоёр дугуй соронз байдаг бөгөөд ингэснээр сэлэм хаалган дээр бэхлэгддэг (ингэснээр засвар үйлчилгээ хийхэд амархан салдаг).

Алхам 5: Схем

Схем
Схем
Схем
Схем
Схем
Схем

Жинхэнэ схем нь GitHub дээр байрладаг боловч зураг нь 1000 үгтэй (Мэдээллийн технологийн хувьд 1024), тиймээс энд байна:

Хэрэв та гагнуурын буу ашиглах аргыг мэддэг бол энэ нь маш энгийн зүйл юм. ТАЙЛБАР: 3 -р гүүрний хэсэг нь 30 х 70 мм хэмжээтэй, маш тодорхой хэмжээтэй veroboard -д зориулагдсан болно. Хэрэв та өөр хэрэгслийг ашиглахаар шийдсэн бол гүүрний бүрэлдэхүүн хэсгийг дахин төлөвлөх хэрэгтэй.

Алхам 6: 3d хэвлэх

3d хэвлэх
3d хэвлэх
3d хэвлэх
3d хэвлэх
3d хэвлэх
3d хэвлэх

Батерейны хайрцаг болон ESP32-CAM veroboard-ийг матрицын дэлгэцийн угсралт руу холбосон гүүрийг 3d загвараар хэвлэж хэвлэв.

Батерейны хайрцаг нь 2 хэсгээс бүрдэх бөгөөд батерейны "халаасыг" бий болгохын тулд хэвлэсний дараа наасан байх ёстой. Гүүрийг бүх дэмжлэгийн бүтцээс цэвэрлэх шаардлагатай байна (харамсалтай нь тэдгээрийг багасгах хамгийн сайн чиглэл байхгүй байна). STL файлууд GitHub дээр байдаг бөгөөд TinkerCad эх хувь нь энд байрладаг.

TinkerCad дээрх 3D дизайн нь эд ангиуд хоорондоо хэрхэн холбогдож, хоорондоо холбогдож болох загварчилсан угсралтын схемийг агуулдаг.

Алхам 7: Програмчлал

Олон үүрэг даалгавар

Энэхүү загвар нь FreeRTOS -ийг олон талт ажилд зориулан ашигладаг бөгөөд нэгдлийн хувьд TaskScheduler номын санг ашигладаг. Sword-ийн зан байдал, мессежийг Blynk App-ээр хянана. Тохиргоог хийсний дараа (тээглүүр, камер, цэг матрицыг эхлүүлэх, WiFi-д холбогдох гэх мэт) RTOS-ийн үндсэн хоёр ажлыг үүсгэдэг.

  • Видео цацалтын RTOS даалгавар, ESP32 -ийн хэрэглээний цөмд бэхлэгдсэн (үндсэн 1)
  • Текст дэлгэц ба Blynk нь RTOS даалгаврыг ESP32-ийн Power Core-д (үндсэн 0) холбосон бөгөөд WiFi-тэй холбоотой бүх ажлыг хариуцдаг. Текст ба Блинктэй холбоотой гүйцэтгэлийг TaskScheduler ажлуудаар удирддаг.

4K стекийн зай нь RTOS даалгавруудыг гүйцэтгэхэд хангалттай гэдгийг олж мэдсэн боловч стек дуусах магадлал байгаа тул хэрэв та хүсвэл үүнийг 8K болгоорой - ESP32 дээр хангалттай хэмжээний RAM байдаг.

Бүх видео бичлэг, дамжуулалт Core 1 дээр хийгддэг. Бусад бүх зүйл Core 0 дээр байдаг.

ESP32 нь энэ бүхнийг бага зэрэг хөлрөхөд хангалттай хүч чадалтай байдаг (видео цацах үед самбар халдаг).

ЭНЭ нь төслийн гол зорилго байсан: урьдчилан сэргийлэх, хамтын ажиллагааны олон үүрэг даалгаврыг энх тайван, үр бүтээлтэй зэрэгцүүлэн орших!

Алхам 8: Матрицын хяналт

Би Arduino IDE номын сангийн менежер дээр байдаг маш хүчирхэг MD_Parola болон MD_MAX72xx номын санг ашиглаж байна.

Текстийн бүх тусгай эффектүүдийг эдгээр номын сангаар дамжуулан хийдэг. Зөв MAX72XX тоног төхөөрөмжийн төрлийг тодорхойлоход бага зэрэг хүчин чармайлт шаардагджээ (MD_MAX72XX:: ICSTATION_HW миний хувьд, таных өөр байж магадгүй), үүний дараа текстийг хянах нь салхи юм.

Сэлэм нь дараахь хяналтыг зөвшөөрдөг.

  • Гэрэлтүүлэг
  • Нүдээ анивчлаа
  • Flash
  • Гүйлгэх хурд ба чиглэл (дээш/доош, зүүн/баруун, тогтвортой)
  • Та мөн үүнийг ханын цаг болгон хувиргаж болно

Алхам 9: Видео дамжуулалт

Blynk App нь видео дамжуулах жижиг виджеттэй боловч та хөтөч, VLC тоглуулагч эсвэл MJPEG стандартыг дэмждэг бусад зүйл рүү дамжуулах боломжтой.

Холбогдсон 10 хүртэлх үйлчлүүлэгчийг дэмждэг.

Холбогдохын тулд та ESP32-CAM-ийн IP хаягийг олж мэдэх шаардлагатай болно. Та үүнийг чиглүүлэгч дээрээс хайж олох эсвэл эхлээд энэ зургийг нээж _DEBUG_ сонголтыг идэвхжүүлж, сүлжээнд холбогдохдоо терминалын IP хаягийг унших боломжтой.

ЧУХАЛ: ESP32-CAM модульд байнгын IP хаяг оноох эсвэл DHCP захиалга өгөх нь зүйтэй бөгөөд ингэснээр түрээсийн хугацаа дуусахад түүний хаяг өөрчлөгдөхгүй болно. Та мөн Blynk програмыг өөрчилж, URL хаягийн IP хаягийг шинэчлэх боломжтой бөгөөд хэрэв та үүнийг хийх боломжтой бол сонирхолтой гэрийн даалгавар болно.

Одоогийн ноорог нь QVGA нарийвчлалыг ашигладаг: 320x240 пиксел бөгөөд энэ нь үүнийг маш хурдан болгодог. Та бусад шийдвэрүүдтэй тоглох, өөрт тохирох зүйлийг шийдэх эрх чөлөөтэй бөгөөд урам зоригтой байдаг.

Ноорог нь PSRAM -ийн давуу талыг ашигладаг тул RAM нь асуудал үүсгэхгүй.

Алхам 10: Тохиргоо

Ноорог нь миний толь бичиг, EspBootstrap номын сангийн давуу талыг ашиглан ачаалах үед тохиргооны серверээс тохиргооны параметрүүдийг ачаалдаг.

Би өөрийн тохиргооны серверийг ажиллуулдаг бөгөөд үүнийг та бас хийж чадна (энэ бол зүгээр л JSON файлд үйлчилдэг энгийн Apache2 вэб сервер юм).

Та даалгаварт ашиглах боломжтой онлайн үйлчилгээг ашиглаж болно: (OTADrive, Microsoft Azure, AWS IoT гэх мэт). Энэ тохиолдолд таны тохиргооны эх сурвалжийг зааж буй URL -ийг зохих ёсоор бүрдүүлэхийн тулд String makeConfig (String path) аргыг өөрчилнө үү. Эсвэл та тохиргооны файлыг ESP32-CAM дээрх SPIFFS файлын системд хадгалаад тэндээс унших эсвэл бүх оруулгыг хатуу кодлох боломжтой. Сонголтуудаа авахын тулд EspBootstrap номын сангийн README -ийг үзнэ үү.

Тохиргооны файлын жишээг GitHub дээр өгсөн болно.

Хэрэв та хатуу кодчилсон параметрүүдийг ашиглахыг хүсч байвал доорх жишээ байна.

pd ("Гарчиг", "DND сэлэм тохируулах");

pd ("ssid", "таны wifi ssid"); pd ("нууц үг", "таны wifi нууц үг"); pd ("msg", "Hello!"); pd ("төхөөрөмжүүд", "8"); pd ("blynk_auth", "таны blynk AUTH UUID"); // хэрэв та зөвхөн өөрийн сервер ажиллуулдаг бол: pd ("blynk_host", "таны blynk серверийн IP"); pd ("blynk_port", "таны серверийн порт");

Алхам 11: OTA програм хангамжийн шинэчлэлтүүд

Ноорог нь OTA (Over The Air) програмын шинэчлэлтийг идэвхжүүлсэн бөгөөд ачаалах бүрт шинэ програм хангамжийг шалгаж байна.

Дахин хэлэхэд би өөрийн OTA шинэчлэлтийн серверийг ажиллуулдаг бөгөөд үүнийг та бас хийж чадна (энэ бол хоёртын файлд үйлчилдэг бага зэрэг PHP скрипттэй Apache2 вэб сервер юм).

Та даалгаварт ашиглах боломжтой онлайн IoT үйлчилгээг ашиглаж болно: (OTADrive, Microsoft Azure, AWS IoT гэх мэт). Энэ тохиолдолд хоёртын файлын эх сурвалж руу чиглэсэн шинэчлэлтийн URL -ийг зохих ёсоор бүрдүүлэхийн тулд void checkOTA () аргыг өөрчилнө үү.

Энэ нь заавал биш юм - та зөвхөн хоёртын файлыг цуваа холболтоор байршуулахыг сонгож болно.

Алхам 12: MJPEG сервер

Энэ сэдвийг энд дэлгэрэнгүй тайлбарласан байгаа.

Алхам 13: Blynk програм

Blynk програм
Blynk програм
Blynk програм
Blynk програм
Blynk програм
Blynk програм

Blynk бол үүлэн дээр суурилсан IoT платформ бөгөөд Аппликешныг хурдан хөгжүүлэх боломжийг олгодог. Энэ нь хувийн хэрэглээнд үнэ төлбөргүй байдаг бөгөөд өөрийн Blynk серверийг ажиллуулах боломжтой байдаг.

Би (та аль хэдийн таамаглаж байсан шиг) өөрийн Blynk серверийг ажиллуулж байгаа боловч үүл хувилбарыг ашиглах нь танд илүү хялбар байх болно. Blynk iOS эсвэл Android програмыг суулгаад доорх зургуудыг дагана уу.

Аппликешнтэй ажиллахын тулд та өөрийн Blynk Auth UUID -ийг өгөх шаардлагатай болно. Тиймээс би тохиргооны файлуудыг ашигладаг. Гэсэн хэдий ч нэг удаагийн төслийн хувьд хатуу кодчилсон утга нь яг адилхан ажиллах болно.

ЧУХАЛ: Таны Blynk төсөл аппликешн холбогдсон үед төхөөрөмжүүдэд мэдэгдэх тохируулгатай байгаа эсэхийг шалгаарай.

Видео дамжуулах виджетийн ТАЙЛБАР: заримдаа видео эхлэхгүй байна. Энэ нь Blynk програмын видео виджетийн хувьд ESP32 -тэй холбоотой асуудал биш юм шиг байна. Аппыг хааж, дахин нээх эсвэл төслийг дахин зогсоох/эхлүүлэхийг оролдоорой. Эцсийн эцэст энэ нь эхэлдэг. Энэ асуудал хөтөч эсвэл VLC тоглуулагч дээр байдаггүй бололтой (жишээлбэл).

Алхам 14: Сайхан амраарай

Үүнийг бүтээх нь маш хөгжилтэй байсан бөгөөд ESP32 шиг шуудангийн хэмжээтэй төхөөрөмж нь видео дамжуулахаас илүү их зүйлийг хийж чадна гэдгийг батлах нь маш хөгжилтэй байсан. Энэхүү төслийн олон ойлголтыг бусад програмд дахин ашиглах боломжтой.

Алхам 15: Номын сан ба код

Номын сан:

  • Blynk сервер
  • EspBootstrap номын сан
  • TaskScheduler номын сан
  • Толь бичгийн номын сан
  • LED матрицын номын сан
  • Модульчлагдсан гүйдэг LED матрицын текст дэлгэцийн номын сан

Бодит репозитор:

Minecraft Interactive нь илд/тэмдэг оруулахгүй (ESP32-CAM)

Зөвлөмж болгож буй: