Isi kandungan:

Minecraft Interaktif Jangan Masukkan Pedang / Tanda (ESP32-CAM): 15 Langkah (dengan Gambar)
Minecraft Interaktif Jangan Masukkan Pedang / Tanda (ESP32-CAM): 15 Langkah (dengan Gambar)

Video: Minecraft Interaktif Jangan Masukkan Pedang / Tanda (ESP32-CAM): 15 Langkah (dengan Gambar)

Video: Minecraft Interaktif Jangan Masukkan Pedang / Tanda (ESP32-CAM): 15 Langkah (dengan Gambar)
Video: Villager Paling Pintar? 2024, Julai
Anonim
Image
Image
Produk akhir
Produk akhir

Terdapat beberapa sebab mengapa projek ini wujud:

1. Sebagai pengarang perpustakaan multitasking koperasi TaskScheduler, saya selalu ingin tahu bagaimana menggabungkan faedah multitasking koperasi dengan faedah yang pertama. Terdapat faedah untuk kedua-duanya dan kedua-duanya mempunyai kekurangan. Menggabungkan keduanya memungkinkan peluang unik untuk memanfaatkan faedah dan meremehkan masalah sama ada berdasarkan kes penggunaan tertentu. Menarik? Teruskan membaca…

2. Hakikat bahawa ESP32 adalah mikrokontroler pelbagai teras sangat menarik. Saya selalu ingin tahu sekiranya saya dapat memanfaatkan ciri itu. Oleh itu, percubaan di sini adalah: bolehkah ESP32 menstrim video dengan lancar menggunakan satu teras sambil melakukan sesuatu yang lain (sesuatu yang bermakna dan intensif yang lain) pada inti yang lain. Lebih menarik lagi ?? Teruskan membaca…!

3. Saya memerlukan tempat ujian untuk projek baru-baru ini mengenai penyediaan firmware dan pengurusan konfigurasi OTA…

4. Saya telah membeli dua modul LED Dot Matrix beberapa waktu yang lalu dan tidak dapat mengetahui apa yang harus dilakukan dengannya …

5. Anak saya adalah pemain permainan Minecraft, dan kerana mana-mana budak kecil suka menghias pintunya dengan poster "Jangan masukkan" …

Jadi, ini semua - sebab baik untuk: Interaktif Jangan Masukkan tanda pintu dengan streaming ESP32-CAM suapan video "dari belakang pintu tertutup" - atau "Siapa yang akan datang ke bilik saya?"

Jadi … apa sebenarnya?

Sekiranya anda mempunyai kesabaran untuk membaca keseluruhan cerita, anda sedar bahawa ini bukan mengenai pedang Minecraft. Projek ini adalah bukti banyak konsep:

  • Bersama multitasking Preemptive dan Cooperative
  • Pemilihan teras ESP32 secara terpilih
  • Penggunaan perpustakaan Kamus dan EspBootstrap baru
  • Penyediaan firmware OTA
  • Pengurusan konfigurasi
  • Penstriman video ke beberapa pelanggan

dan banyak lagi.

Selamat mencuba

Bekalan

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4-in-1 LED Display Module Geekcreit untuk Arduino
  • Bank Kuasa Attom Tech 2500mAh

Langkah 1: Produk Akhir

Produk akhir
Produk akhir

Saya akan mulakan dengan bagaimana rupa produk akhir, dan kemudian menerangkan bagaimana produk itu dihasilkan dan bagaimana mengawalnya.

Nampaknya lebih menarik dengan cara ini …

Langkah 2: Pedang Muka Pedang

Pedang Muka Pedang
Pedang Muka Pedang
Pedang Muka Pedang
Pedang Muka Pedang

Pelat muka pedang dibuat dari papan putih, ditandai dengan pensil, dan diwarnai dengan penanda Crayola. Ini sahaja boleh menjadi projek yang menarik untuk anak anda:

  • Tandakan pedang di papan putih
  • Potong bahagian muka
  • Tandakan petak (atau blok)
  • Warnakannya secara individu
  • Tambahkan garis hitam dengan sharpie.

Saya menyertakan dokumen pejabat terbuka dengan contoh gambar pedang berlian yang boleh anda lekatkan di atas papan putih jika anda lebih suka jalan pintas … Setelah semuanya selesai, anda boleh melekatkan pelat muka ke bahagian lain dari pemasangan atau menggunakan pita sisi.

Langkah 3: Paparan Dot Matrix LED

Paparan LED Dot Matrix
Paparan LED Dot Matrix
Paparan LED Dot Matrix
Paparan LED Dot Matrix
Paparan LED Dot Matrix
Paparan LED Dot Matrix

Saya mempunyai 2 daripadanya, masing-masing 4 segmen, jadi saya memutuskan untuk membuat satu 8 segmen.

Dengan mudah terdapat header lelaki 5-pin di satu sisi, dan sepadan dengan 5 lubang di sisi yang bertentangan. Membongkok header lelaki ke bentuk staple-like], saya dapat menyambungkan kedua modul elektrik dan mekanikal! Membunuh dua burung dengan satu batu (atau dua lalat dengan satu swat, untuk menghentikan dua mulut dengan satu sepotong, untuk membuat dua rakan dengan satu hadiah, untuk mempunyai dua tali pada satu busur, apakah simpulan bahasa lain mengenai perkara itu - sudahkah anda fikirkan? Maaf, saya merosot).

Header lelaki yang berlawanan akan digunakan untuk menghubungkan header wanita yang sepadan dari papan kenyataan dengan ESP32-Cam dan komponen lain.

Kedua-dua komponen dihubungkan dengan jambatan bercetak 3d, yang juga menempatkan suis untuk menghidupkan dan mematikan kuasa. 3d STL fail untuk jambatan dan komponen lain terletak di folder fail / 3d di GitHub.

Langkah 4: Kuasa

Kuasa
Kuasa

Pedang dikuasakan oleh bank kuasa USB 2500 mAh - terkecil dan paling tipis yang dapat saya temui. Powerbank meluncur ke dalam cetakan 3D, yang juga melekat pada modul dot matrix, sehingga menyatukan keseluruhan perkara.

Terdapat dua magnet bulat yang terpaku pada casing power bank, dan begitulah pedang terpasang pada pintu (sehingga dapat dilepaskan dengan mudah untuk pemeliharaan).

Langkah 5: Skematik

Skematik
Skematik
Skematik
Skematik
Skematik
Skematik

Skema sebenar terletak di GitHub, tetapi gambar bernilai 1000 perkataan (1024 dalam Teknologi Maklumat), jadi di sini anda:

Ini cukup mudah jika anda mengetahui cara anda menggunakan pistol pematerian. CATATAN: Bahagian jambatan 3d direka untuk ukuran papan kenyataan yang sangat spesifik: 30 x 70 mm. Sekiranya anda memutuskan untuk menggunakan yang lain, anda perlu merancang semula komponen jambatan.

Langkah 6: Percetakan 3d

Percetakan 3d
Percetakan 3d
Percetakan 3d
Percetakan 3d
Percetakan 3d
Percetakan 3d

Sarung bateri dan jambatan yang menghubungkan papan verifikasi ESP32-CAM ke unit paparan dot-matrix direka bentuk dan dicetak 3d.

Kotak bateri terdapat dalam 2 bahagian, yang perlu dilekatkan bersama setelah dicetak untuk membuat "poket" untuk bateri. Jambatan itu hanya perlu dibersihkan dari semua struktur sokongan (sayangnya tidak ada orientasi yang baik yang meminimumkannya). Fail STL ada di GitHub dan TinkerCad yang asal terdapat di sini.

Reka bentuk 3D di TinkerCad juga merangkumi skema pemasangan simulasi bagaimana bahagian-bahagian itu sesuai dan harus disambungkan.

Langkah 7: Pengaturcaraan

Berbilang tugas

Reka bentuk ini menggunakan FreeRTOS untuk multitasking preemptive dan perpustakaan TaskScheduler untuk koperasi. Tingkah laku dan mesej Pedang dikendalikan melalui Aplikasi Blynk. Selepas persediaan (pin, permulaan kamera dan dot-matriks, menyambung ke WiFi, dll.), Dua tugas RTOS utama dibuat:

  • Tugas streaming video RTOS, disematkan ke Teras Aplikasi ESP32 (teras 1)
  • Paparan teks dan Blynk mengawal tugas RTOS, disematkan ke Power Core ESP32 (core 0), yang juga bertanggungjawab untuk semua tugas yang berkaitan dengan WiFi. Pelaksanaan berkaitan teks dan Blynk diuruskan melalui tugas TaskScheduler.

Saya mendapat tahu bahawa ruang tumpukan 4K cukup untuk tugas RTOS, tetapi ada kemungkinan kehabisan timbunan, jadi jika anda mahu, buat 8K - terdapat banyak RAM pada ESP32.

Semua tangkapan dan penstriman video berlaku di Core 1. Yang lain - pada Core 0.

ESP32 mempunyai kekuatan yang cukup untuk menangani semua itu dengan sedikit keringat (papan menjadi panas ketika menstrim video).

INI adalah matlamat utama projek ini: wujud bersama damai dan produktif multitasking preemptive dan koperasi!

Langkah 8: Dot Matrix Control

Saya menggunakan perpustakaan MD_Parola dan MD_MAX72xx yang sangat kuat juga terdapat di pengurus perpustakaan Arduino IDE.

Semua kesan khas teks dilakukan melalui perpustakaan tersebut. Saya memerlukan sedikit usaha untuk menentukan jenis perkakasan MAX72XX yang betul (MD_MAX72XX:: ICSTATION_HW dalam kes saya, anda mungkin berbeza), selepas itu, mengawal teks adalah mudah.

Pedang membolehkan kawalan berikut:

  • Kecerahan
  • Berkelip
  • Kilat
  • Kelajuan dan arah tatal (atas / bawah, kiri / kanan, stabil)
  • Anda juga boleh mengubahnya menjadi Jam Dinding

Langkah 9: Penstriman Video

Aplikasi Blynk mempunyai sedikit widget untuk streaming video, tetapi anda boleh melakukan streaming ke penyemak imbas, pemain VLC, atau apa sahaja yang menyokong standard MJPEG.

Sehingga 10 pelanggan yang disambungkan disokong.

Anda harus mengetahui alamat IP ESP32-CAM anda untuk dapat menyambungnya. Anda boleh mencarinya di penghala anda, atau menyusun lakaran ini dengan pilihan _DEBUG_ diaktifkan terlebih dahulu, dan membaca alamat IP terminal ketika menghubungkan ke rangkaian anda.

PENTING: Sangat disarankan untuk memberikan alamat IP tetap ke, atau membuat tempahan DHCP untuk, modul ESP32-CAM sehingga alamatnya tidak berubah ketika sewa berakhir. Anda juga boleh mengubah Blynk App untuk mengemas kini alamat IP dalam URL aliran - tugasan kerja rumah yang menarik jika anda mengikutinya.

Lakaran semasa menggunakan resolusi QVGA: 320x240 piksel, yang menjadikannya cukup pantas. Anda bebas dan digalakkan untuk bermain dengan ketetapan lain dan memutuskan apa yang sesuai untuk anda.

RAM tidak boleh menjadi masalah kerana lakaran memanfaatkan PSRAM.

Langkah 10: Konfigurasi

Sketsa memanfaatkan perpustakaan Kamus dan EspBootstrap saya untuk memuat parameter konfigurasi dari pelayan konfigurasi semasa boot.

Saya menjalankan pelayan konfigurasi saya sendiri, yang boleh anda lakukan juga (ia adalah pelayan web Apache2 sederhana yang hanya melayani fail JSON).

Anda juga boleh menggunakan mana-mana perkhidmatan dalam talian yang tersedia untuk tugas tersebut: (OTADrive, Microsoft Azure, AWS IoT, dll.). Dalam kes ini, sila ubah kaedah String makeConfig (String path) untuk membina URL dengan tepat yang menunjuk ke sumber konfigurasi anda. Sebagai alternatif, anda boleh menyimpan fail konfigurasi ke dalam sistem fail SPIFFS pada ESP32-CAM dan membacanya dari sana, atau hanya memasukkan semua entri dengan keras. Sila baca README perpustakaan EspBootstrap untuk pilihan anda.

Contoh fail konfigurasi disediakan di GitHub.

Sekiranya anda lebih suka parameter kod keras, contohnya adalah di bawah:

pd ("Tajuk", "Persediaan Pedang DND");

pd ("ssid", "wifi ssid anda"); pd ("kata laluan", "kata laluan wifi anda"); pd ("msg", "Hello!"); pd ("peranti", "8"); pd ("blynk_auth", "blynk AUTH UUID anda"); // jika anda hanya menjalankan pelayan anda sendiri: pd ("blynk_host", "IP pelayan blynk anda"); pd ("blynk_port", "port pelayan anda");

Langkah 11: Kemas kini Firmware OTA

Sketsa ini juga membolehkan kemas kini firmware OTA (Over The Air) diaktifkan dan sedang memeriksa firmware baru pada setiap but.

Sekali lagi, saya menjalankan pelayan kemas kini OTA saya sendiri, yang boleh anda lakukan juga (ini adalah pelayan web Apache2 sederhana dengan sedikit skrip PHP yang menyajikan fail binari).

Anda juga boleh menggunakan mana-mana perkhidmatan IoT dalam talian yang tersedia untuk tugas: (OTADrive, Microsoft Azure, AWS IoT, dll.). Dalam kes ini, sila ubah kaedah checkOTA yang tidak sah () untuk membina URL kemas kini dengan tepat yang menunjuk ke sumber fail binari anda.

Ini adalah pilihan - anda mungkin memilih untuk hanya memuat naik binari melalui sambungan bersiri.

Langkah 12: Pelayan MJPEG

Topik ini dijelaskan secara terperinci di sini.

Langkah 13: Aplikasi Blynk

Aplikasi Blynk
Aplikasi Blynk
Aplikasi Blynk
Aplikasi Blynk
Aplikasi Blynk
Aplikasi Blynk

Blynk adalah platform IoT berasaskan awan yang membolehkan pengembangan Aplikasi pantas. Ia percuma untuk kegunaan peribadi dan bahkan mempunyai pilihan untuk menjalankan pelayan Blynk anda sendiri.

Saya (kerana anda mungkin sudah menduga) menjalankan pelayan Blynk saya sendiri, tetapi mungkin lebih mudah bagi anda untuk menggunakan versi awan. Pasang Aplikasi Blynk iOS atau Android, dan ikuti gambar di bawah untuk membina semula Aplikasi di telefon anda.

Anda perlu menyediakan UUID Blynk Auth anda sendiri agar aplikasi berfungsi dengan Aplikasi anda. Inilah sebabnya mengapa saya menggunakan fail konfigurasi. Namun, untuk projek satu kali, nilai hardcod akan berfungsi dengan baik.

PENTING: Pastikan Projek Blynk anda disetel ke Notify Devices When App Connected.

CATATAN pada widget streaming video: kadang-kadang video tidak bermula. Nampaknya tidak ada masalah dengan ESP32, sebaliknya dengan widget video aplikasi Blynk. Cuba tutup dan buka semula Aplikasi atau menghentikan / memulakan projek sekali lagi. Akhirnya, ia bermula. Masalah ini nampaknya tidak wujud dalam penyemak imbas atau pemain VLC (misalnya).

Langkah 14: Nikmati

Sangat menyeronokkan membina ini dan membuktikan bahawa peranti berukuran posmark seperti ESP32 dapat melakukan lebih banyak daripada sekadar streaming video. Banyak konsep dari projek ini dapat digunakan kembali dalam aplikasi lain.

Langkah 15: Perpustakaan dan Kod

Perpustakaan:

  • Pelayan Blynk
  • Perpustakaan EspBootstrap
  • Perpustakaan TaskScheduler
  • Perpustakaan kamus
  • Perpustakaan Matriks LED
  • Perpustakaan untuk paparan teks matriks LED bergulir modular

Repositori sebenar:

Minecraft Interactive Jangan Masukkan Pedang / Tanda (ESP32-CAM)

Disyorkan: