Daftar Isi:

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

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

Video: Minecraft Interaktif Jangan Masuk Pedang/Tanda (ESP32-CAM): 15 Langkah (dengan Gambar)
Video: PEDANG TER CURSED SEPANJANG MASA 2024, Juli
Anonim
Image
Image
Produk akhir
Produk akhir

Sebenarnya ada beberapa alasan mengapa proyek ini muncul:

1. Sebagai penulis perpustakaan multitasking kooperatif TaskScheduler saya selalu ingin tahu bagaimana menggabungkan manfaat multitasking kooperatif dengan manfaat pre-emptive. Ada manfaat untuk keduanya dan keduanya memiliki kekurangan. Menggabungkan keduanya memungkinkan peluang unik untuk memanfaatkan manfaat dan mengecilkan masalah dari keduanya berdasarkan kasus penggunaan tertentu. Menarik? Baca terus…

2. Fakta bahwa ESP32 adalah mikrokontroler multi-core sangat menarik. Saya selalu ingin tahu apakah saya dapat memanfaatkan fitur itu. Jadi eksperimennya di sini adalah: dapatkah ESP32 melakukan streaming video dengan lancar menggunakan satu inti sambil melakukan sesuatu yang lain (sesuatu yang lain yang bermakna dan cukup intensif) pada inti lainnya. Lebih menarik lagi?? Baca terus…!

3. Saya membutuhkan tempat pengujian untuk proyek terbaru saya seputar penyediaan firmware OTA dan manajemen konfigurasi…

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

5. Anak saya adalah seorang gamer Minecraft, dan seperti anak kecil lainnya suka mendekorasi pintunya dengan poster "Jangan masuk"…

Jadi ini dia - semua alasan bagus untuk: Interaktif Jangan Masuki tanda pintu dengan streaming video feed ESP32-CAM "dari balik pintu tertutup" - atau "Siapa yang datang ke kamar saya?"

Jadi … apa itu semua?

Jika Anda memiliki kesabaran untuk membaca keseluruhan cerita, Anda akan menyadari bahwa ini bukan benar-benar tentang pedang Minecraft. Proyek ini adalah bukti dari banyak konsep:

  • Koeksistensi multitasking Preemptive dan Cooperative
  • Penggunaan inti ESP32 secara selektif
  • Penggunaan kamus baru dan perpustakaan EspBootstrap
  • Penyediaan firmware OTA
  • Manajemen konfigurasi
  • Streaming video ke banyak klien

dan banyak lagi.

Menikmati

Perlengkapan

  • ESP32-CAM
  • MAX7219 Modul Dot Matrix Modul Tampilan LED 4-in-1 Geekcreit untuk Arduino
  • Power Bank Attom Tech 2500mAh

Langkah 1: Produk Akhir

Produk akhir
Produk akhir

Saya akan mulai dengan bagaimana produk akhir terlihat, dan kemudian menjelaskan bagaimana produk itu dibuat dan bagaimana mengontrolnya.

Sepertinya lebih menarik dengan cara ini …

Langkah 2: Pelat Wajah Pedang

pelat muka pedang
pelat muka pedang
pelat muka pedang
pelat muka pedang

Pelat muka pedang terbuat dari papan tulis, ditandai dengan pensil, dan diwarnai dengan spidol Crayola. Ini saja bisa menjadi proyek yang menarik dengan anak Anda:

  • Tandai pedang di papan tulis
  • Potong pelat muka
  • Tandai kotak (atau blok)
  • Warnai mereka satu per satu
  • Tambahkan garis hitam dengan sharpie.

Saya menyertakan dokumen kantor terbuka dengan contoh gambar pedang berlian yang dapat Anda rekatkan di atas papan tulis jika Anda lebih suka pintasan…Setelah semuanya selesai, Anda dapat menempelkan pelat muka ke bagian rakitan lainnya atau menggunakan double- pita samping.

Langkah 3: Tampilan LED Dot Matrix

Tampilan LED Dot Matrix
Tampilan LED Dot Matrix
Tampilan LED Dot Matrix
Tampilan LED Dot Matrix
Tampilan LED Dot Matrix
Tampilan LED Dot Matrix

Saya memiliki 2 dari mereka, masing-masing 4 segmen, jadi saya memutuskan untuk membuat satu 8-segmen.

Nyaman ada header laki-laki 5-pin di satu sisi, dan mencocokkan 5 lubang di sisi yang berlawanan. Membengkokkan header jantan menjadi bentuk] seperti staples, saya dapat menghubungkan kedua modul baik secara elektrik maupun mekanis! Membunuh dua burung dengan satu batu (atau dua lalat dengan satu pukulan, untuk menghentikan dua mulut dengan satu suap, untuk membuat dua teman dengan satu hadiah, memiliki dua tali untuk satu busur, apa idiom lain dalam hal ini - pernahkah Anda berpikir? Maaf, saya menyimpang).

Header pria yang berlawanan akan digunakan untuk menghubungkan header wanita yang cocok dari veroboard dengan ESP32-Cam dan komponen lainnya.

Kedua komponen terhubung dengan jembatan cetak 3d, yang juga menampung sakelar untuk menghidupkan dan mematikan daya. File STL 3d untuk jembatan dan komponen lainnya terletak di folder files/3d di GitHub.

Langkah 4: Kekuatan

Kekuasaan
Kekuasaan

Pedang ini didukung oleh bank daya USB 2500 mAh - yang terkecil dan tertipis yang bisa saya temukan. Powerbank meluncur ke dalam kotak cetak 3D, yang juga menempel pada modul dot matrix, sehingga menyatukan semuanya.

Ada dua magnet bundar yang direkatkan ke casing bank daya, dan begitulah cara pedang dilekatkan pada pintu (sehingga dapat dengan mudah dilepas untuk perawatan).

Langkah 5: Skema

Skema
Skema
Skema
Skema
Skema
Skema

Skema sebenarnya terletak di GitHub, tetapi sebuah gambar bernilai 1000 kata (1024 dalam Teknologi Informasi), jadi inilah Anda:

Ini cukup mudah jika Anda tahu jalan Anda dengan pistol solder. CATATAN: Bagian jembatan 3d dirancang untuk ukuran veroboard yang sangat spesifik: 30 x 70 mm. Jika Anda memutuskan untuk menggunakan yang lain, Anda perlu mendesain ulang komponen jembatan.

Langkah 6: Pencetakan 3d

Pencetakan 3d
Pencetakan 3d
Pencetakan 3d
Pencetakan 3d
Pencetakan 3d
Pencetakan 3d

Casing baterai dan jembatan yang menghubungkan veroboard ESP32-CAM ke unit display dot-matrix dirancang dan dicetak 3d.

Kasing baterai terdiri dari 2 bagian, yang perlu direkatkan setelah dicetak untuk membuat "kantong" untuk baterai. Jembatan hanya perlu dibersihkan dari semua struktur pendukung (sayangnya tidak ada orientasi baik yang benar-benar meminimalkannya). File STL ada di GitHub dan file asli TinkerCad ada di sini.

Desain 3D pada TinkerCad juga mencakup skema perakitan simulasi tentang bagaimana bagian-bagiannya cocok dan harus dihubungkan.

Langkah 7: Pemrograman

Multi-multitasking

Desain ini menggunakan FreeRTOS untuk multitasking preemptive dan perpustakaan TaskScheduler untuk yang kooperatif. Perilaku dan pesan Sword dikendalikan melalui Aplikasi Blynk. Setelah penyiapan (pin, kamera, dan inisialisasi dot-matrix, menghubungkan ke WiFi, dll.), dua tugas RTOS utama dibuat:

  • Tugas RTOS streaming video, disematkan ke Application Core ESP32 (core 1)
  • Tampilan teks dan tugas RTOS kontrol Blynk, disematkan ke Power Core ESP32 (core 0), yang juga bertanggung jawab untuk semua tugas terkait WiFi. Eksekusi terkait teks dan Blynk dikelola melalui tugas Penjadwal Tugas.

Saya menemukan bahwa 4K ruang tumpukan sudah cukup untuk tugas RTOS, tetapi ada kemungkinan kehabisan tumpukan, jadi jika Anda mau, buat 8K - ada banyak RAM di ESP32.

Semua perekaman dan streaming video dilakukan di Core 1. Lainnya - di Core 0.

ESP32 memiliki kekuatan yang cukup untuk menangani semua itu dengan sedikit berkeringat (papan menjadi panas saat streaming video).

INI adalah tujuan utama dari proyek: koeksistensi damai dan produktif dari multitasking preemptive dan kooperatif!

Langkah 8: Kontrol Dot Matrix

Saya menggunakan perpustakaan MD_Parola dan MD_MAX72xx yang sangat kuat yang juga tersedia di pengelola perpustakaan Arduino IDE.

Semua efek khusus tekstual dilakukan melalui perpustakaan tersebut. Butuh sedikit usaha untuk menentukan jenis perangkat keras MAX72XX yang benar (MD_MAX72XX::ICSTATION_HW dalam kasus saya, milik Anda mungkin berbeda), setelah itu, mengontrol teks sangat mudah.

Pedang memungkinkan kontrol berikut:

  • Kecerahan
  • berkedip
  • Kilatan
  • Kecepatan dan arah gulir (atas/bawah, kiri/kanan, stabil)
  • Anda juga dapat mengubahnya menjadi Jam Dinding

Langkah 9: Streaming Video

Aplikasi Blynk memiliki sedikit widget untuk streaming video, tetapi Anda dapat melakukan streaming ke browser, pemutar VLC, atau apa pun yang mendukung standar MJPEG.

Hingga 10 klien yang terhubung didukung.

Anda harus mencari tahu alamat IP ESP32-CAM Anda untuk dapat terhubung dengannya. Anda dapat mencarinya di router Anda, atau mengkompilasi sketsa ini dengan opsi _DEBUG_ diaktifkan terlebih dahulu, dan membaca alamat IP terminal saat terhubung ke jaringan Anda.

PENTING: Sangat disarankan untuk menetapkan alamat IP permanen, atau membuat reservasi DHCP untuk modul ESP32-CAM sehingga alamatnya tidak berubah saat masa sewa berakhir. Anda juga dapat memodifikasi Aplikasi Blynk untuk memperbarui alamat IP di URL streaming - tugas pekerjaan rumah yang menarik jika Anda mau.

Sketsa saat ini menggunakan resolusi QVGA: 320x240 piksel, yang membuatnya cukup cepat. Anda bebas dan didorong untuk bermain dengan resolusi lain dan memutuskan apa yang cocok untuk Anda.

RAM seharusnya tidak menjadi masalah karena sketsa memanfaatkan PSRAM.

Langkah 10: Konfigurasi

Sketsa memanfaatkan perpustakaan Dictionary dan EspBootstrap saya untuk memuat parameter konfigurasi dari server konfigurasi saat boot.

Saya menjalankan server konfigurasi saya sendiri, yang dapat Anda lakukan juga (ini adalah server web Apache2 sederhana yang benar-benar hanya melayani file JSON).

Anda juga dapat menggunakan salah satu layanan online yang tersedia untuk tugas tersebut: (OTADrive, Microsoft Azure, AWS IoT, dll.). Dalam hal ini, harap ubah metode String makeConfig(String path) untuk membuat URL yang menunjuk ke sumber konfigurasi Anda dengan tepat. Atau, Anda dapat menyimpan file konfigurasi ke dalam sistem file SPIFFS pada ESP32-CAM dan membacanya dari sana, atau cukup hardcode semua entri. Silakan lihat README dari perpustakaan EspBootstrap untuk opsi Anda.

Contoh file konfigurasi disediakan di GitHub.

Jika Anda lebih suka parameter hardcode, contohnya di bawah ini:

pd("Judul", "Penyiapan Pedang DND");

pd("ssid", "ssid wifi anda"); pd("password", "password wifi anda"); pd("pesan", "Halo!");pd("perangkat", "8"); pd("blynk_auth", "UUID AUTH blynk Anda"); // jika Anda hanya menjalankan server Anda sendiri: pd("blynk_host", "IP server blynk Anda"); pd("blynk_port", "port server anda");

Langkah 11: Pembaruan Firmware OTA

Sketsa juga mengaktifkan pembaruan firmware OTA (Over The Air) dan memeriksa firmware baru di setiap boot.

Sekali lagi, saya menjalankan server pembaruan OTA saya sendiri, yang juga dapat Anda lakukan (ini adalah server web Apache2 sederhana dengan sedikit skrip PHP yang menyajikan file biner).

Anda juga dapat menggunakan salah satu layanan IoT online yang tersedia untuk tugas tersebut: (OTADrive, Microsoft Azure, AWS IoT, dll.). Dalam hal ini, harap ubah metode void checkOTA() untuk membuat URL pembaruan dengan tepat yang menunjuk ke sumber file biner Anda.

Ini opsional - Anda dapat memilih untuk hanya mengunggah binari melalui koneksi serial.

Langkah 12: Server MJPEG

Topik ini dijelaskan secara rinci di sini.

Langkah 13: Aplikasi Blynk

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

Blynk adalah platform IoT berbasis cloud yang memungkinkan pengembangan Aplikasi yang cepat. Ini gratis untuk penggunaan pribadi dan bahkan memiliki opsi untuk menjalankan server Blynk Anda sendiri.

Saya (seperti yang mungkin sudah Anda duga) menjalankan server Blynk saya sendiri, tetapi mungkin lebih mudah bagi Anda untuk menggunakan versi cloud. Instal Aplikasi Blynk iOS atau Android, dan ikuti gambar di bawah ini untuk merekonstruksi Aplikasi di ponsel Anda.

Anda harus memberikan UUID Blynk Auth Anda sendiri agar aplikasi dapat bekerja dengan Aplikasi Anda. Inilah sebabnya saya menggunakan file konfigurasi. Namun, untuk proyek satu kali, nilai hardcode akan bekerja dengan baik.

PENTING: Pastikan Proyek Blynk Anda disetel ke Notify Devices When App Connected.

CATATAN pada widget streaming video: terkadang video tidak dimulai. Tampaknya tidak menjadi masalah dengan ESP32, melainkan dengan widget video dari aplikasi Blynk. Coba tutup dan buka kembali Aplikasi atau hentikan/mulai proyek lagi. Akhirnya, itu dimulai. Masalah ini sepertinya tidak ada di browser atau pemutar VLC (misalnya).

Langkah 14: Nikmati

Sangat menyenangkan membangun ini dan membuktikan bahwa perangkat berukuran cap pos seperti ESP32 dapat melakukan lebih dari sekadar streaming video. Banyak konsep dari proyek ini yang dapat digunakan kembali di aplikasi lain.

Langkah 15: Perpustakaan dan Kode

Perpustakaan:

  • Server Blynk
  • Perpustakaan EspBootstrap
  • Pustaka Penjadwal Tugas
  • perpustakaan kamus
  • Perpustakaan Matriks LED
  • Perpustakaan untuk tampilan teks matriks LED bergulir modular

Repositori sebenarnya:

Minecraft Interactive Jangan Masuk Sword/Sign (ESP32-CAM)

Direkomendasikan: