Daftar Isi:
- Perlengkapan
- Langkah 1: Program Kamera ESP32
- Langkah 2: Bangun Robot
- Langkah 3: HAI! Tunggu sebentar! Mengapa Saya Membutuhkan Arduino Nano?
- Langkah 4: Pasang Joystick USB (Opsional)
- Langkah 5: MARI BERKENDARA
- Langkah 6: Detail Cara Memodifikasi Kode HTML/Javascript untuk Webserver
Video: Robot Kamera ESP32 - FPV: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Modul Kamera ESP32 adalah PLC yang murah dan kuat. Bahkan termasuk pengenalan wajah!
Mari buat robot Sudut Pandang Orang Pertama yang Anda kendarai melalui antarmuka web terpasang!
Proyek ini menggunakan modul Geekcreit ESP32 dengan Kamera OV2640. Ini didasarkan pada modul AIThinker.
Ada banyak klon Kamera ESP32 yang berbeda di luar sana. Beberapa bekerja, beberapa tidak. Saya sarankan Anda menggunakan modul yang sama dengan yang saya lakukan sehingga Anda memiliki peluang bagus untuk sukses.
Robot bekerja sebagai berikut.
ESP32 menyiarkan URL web ke jaringan Anda yang menyajikan streaming video langsung dengan beberapa kotak centang untuk mengoperasikan beberapa fungsi kamera. Itu juga menerima penekanan tombol yang dikirim ke halaman web dari keyboard yang merupakan perintah arah untuk robot. Anda mungkin ingin membuat pelindung joystick USB sehingga Anda dapat mengemudikan robot dengan joystick daripada mengetik perintah keyboard.
Ketika ESP32 menerima penekanan tombol, ia meneruskan byte tersebut ke Arduino Nano yang kemudian menggerakkan motor untuk membuat robot bergerak.
Proyek ini memiliki tingkat kesulitan sedang-tinggi. Silakan luangkan waktu Anda.
Mari kita mulai!
Perlengkapan
- Modul Kamera ESP-32 dengan Kamera OV2640 - Saya akan merekomendasikan produk Geekcreit
- Antena snap-on eksternal untuk ESP-32 untuk memaksimalkan kekuatan sinyal
- Arduino Nano
- Arduino Leonardo untuk modul Joystick (kami membutuhkan emulasi keyboard USB yang disediakan oleh Leonardo)
- Modul Joystick Umum
- Chip L293D Quad H-bridge
- DC-DC Buck Coverter dengan output 5V untuk memberi daya pada ESP32
- Adaptor Serial FTDI untuk memprogram ESP32
- Sasis robot generik dengan dua motor roda gigi - sasis apa pun akan berfungsi. Motor 3 hingga 6V direkomendasikan
- Baterai LiPo 2 x 7.4V 1300mAh (atau serupa) untuk memberi daya pada ESP32 dan motor
- Baterai 1 x 9V untuk memberi daya pada Arduino Nano
Langkah 1: Program Kamera ESP32
Menggunakan papan tempat memotong roti, sambungkan Kamera ESP32 Anda ke adaptor FTDI sebagai berikut:
FTDI ESP32
3.3V----------- 3.3V
GND-----------GND
TX ----------- U0R
Rx ----------- U0T
Selain itu, sambungkan pin IO0 ("eye-oh-zero") ke GND. Anda perlu melakukan ini untuk menempatkan ESP32 ke mode pemrograman.
Buka zip file esp32CameraWebRobotforInstructable.zip.
Ada 4 file dalam proyek ini:
esp32CameraWebRobotforInstructable.ino adalah sketsa Arduino.
ap_httpd.cpp adalah kode yang mengelola server web dan menangani pengaturan fitur kamera dari halaman web dan menerima penekanan tombol dari halaman web.
camera_index.h berisi kode HTML/JavaScript untuk aplikasi web sebagai array byte. Memodifikasi aplikasi web jauh di luar cakupan proyek ini. Saya akan menyertakan tautan untuk cara memodifikasi HTML/JavaScript nanti.
camera_pins.h adalah file header yang berkaitan dengan konfigurasi pin kamera ESP32.
Untuk memasukkan ESP32 ke Mode Pemrograman, Anda harus menghubungkan IO0 ("eye-oh-zero") ke Ground.
Luncurkan Arduino IDE Anda dan buka Tools/Boards/Boards Manager. Cari esp32 dan instal perpustakaan esp32.
Buka proyek di Arduino IDE Anda.
Masukkan ID jaringan router ANDA dan kata sandi ANDA ke dalam baris yang disorot pada gambar di atas. Simpan proyek.
Buka menu Tools dan buat pilihan seperti yang ditunjukkan pada gambar di atas.
Papan: ESP32 Wrover
Kecepatan Unggah: 115200
Skema Partisi: "APP Besar (3MB tanpa OTA)"
dan pilih port yang terhubung dengan adaptor FTDI Anda.
Klik tombol "Unggah".
Sekarang, terkadang, ESP32 tidak mulai mengunggah. Jadi bersiaplah untuk menekan tombol RESET di bagian belakang ESP32 ketika Anda mulai melihat karakter ……--… muncul di konsol saat mengunggah. Ini kemudian akan mulai mengunggah.
Saat Anda melihat 'tekan RST' di konsol, pengunggahan selesai.
PUTUSKAN IO0 dari Ground. Putuskan sambungan saluran 3.3V antara adaptor FTDI dan ESP32.
Kamera ESP32 membutuhkan banyak arus untuk bekerja dengan baik. Hubungkan adaptor daya 5V 2A ke pin 5V dan GND pada ESP32.
Buka Serial Monitor, atur baud rate ke 115200 dan kemudian perhatikan saat ESP32 reboot. Akhirnya, Anda akan melihat URL untuk server.
Buka Browser Anda dan masukkan URL. Saat situs web dimuat, klik tombol 'Mulai Streaming' dan streaming video langsung akan dimulai. Jika Anda mengklik kotak centang 'Floodlight', LED flash on-board akan menyala. Hati-Hati! ITU CERAH!
Langkah 2: Bangun Robot
Anda membutuhkan sasis robot roda dua. Siapa pun akan melakukannya. Pasang sasis sesuai instruksi pabrik.
Kemudian pasang robot sesuai diagram. Biarkan sambungan baterai untuk saat ini.
L293D digunakan untuk mengontrol motor. Perhatikan bahwa setengah takik pada chip adalah MENUJU ESP32.
Biasanya, 6 pin diperlukan pada Arduino untuk mengontrol dua motor.
Robot ini hanya membutuhkan 4 pin dan masih berfungsi penuh.
Pin 1 dan 9 terhubung ke sumber 5V Arduino sehingga secara permanen TINGGI. Menghubungkan robot dengan cara ini berarti kita membutuhkan dua pin lebih sedikit di Arduino untuk mengontrol motor.
Dalam arah maju, pin INPUT diatur ke LOW dan pin Modulasi Gelombang Pulsa motor diatur ke nilai antara 0 dan 255 dengan 0 berarti OFF dan 255 berarti kecepatan maksimum.
Dalam arah terbalik, pin INPUT diatur ke HIGH dan nilai PWM dibalik. 0 berarti kecepatan maksimum dan 255 berarti mati.
Buka zip dan unggah sketsa ArduinoMotorControl ke Arduino Nano.
Langkah 3: HAI! Tunggu sebentar! Mengapa Saya Membutuhkan Arduino Nano?
Anda mungkin berpikir, "Hei! Setidaknya ada 4 pin IO yang tersedia di kamera ESP32. Mengapa saya tidak dapat menggunakannya untuk mengontrol motor?"
Nah, ternyata benar ada pin pada ESP32 sebagai berikut:
IO0 - diperlukan untuk menempatkan ESP32 dalam mode pemrograman
IO2 - tersedia
IO4 - LED Flash
IO12, IO13, IO14, IO15, IO16 - pin GPIO tambahan.
Jika Anda hanya memuat sketsa dasar ke ESP32 untuk mengontrol pin dengan perintah PWM, mereka berfungsi.
NAMUN, setelah Anda mengaktifkan perpustakaan KAMERA di sketsa Anda, pin ini tidak lagi tersedia.
Jadi hal termudah untuk dilakukan adalah dengan hanya menggunakan Nano untuk mengontrol motor melalui PWM dan mengirim perintah dari ESP32 melalui komunikasi serial melalui satu kabel (ESP32 U0T ke Arduino Rx0) dan GND. Sangat sederhana.
Langkah 4: Pasang Joystick USB (Opsional)
Anda dapat menggerakkan robot dengan mengirimkan penekanan tombol ke halaman web sebagai berikut:
8 - Maju
9 - Maju Kanan
7 - Maju Kiri
4 - Putar Kiri
5 - Berhenti
1 - Mundur Kiri
2 - Terbalik
3 - Balik Kanan.
Sketsa joystick USB menerjemahkan input joystick menjadi penekanan tombol dan mengirimkannya ke antarmuka web yang meneruskannya ke Arduino untuk menggerakkan robot.
Hubungkan joystick ke Arduino LEONARDO sebagai berikut:
Leonardo Joystick
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Buka sketsa usbJoyStick, pilih Arduino Leonardo sebagai papan dan unggah ke Leonardo.
Jika Anda ingin mengujinya, cukup buka editor teks di komputer Anda, klik mouse di jendela dan mulai gerakkan joystick. Anda akan melihat nilai dari 1 hingga 9 ditampilkan di jendela
Langkah 5: MARI BERKENDARA
Luangkan waktu dan periksa kabel Anda untuk memastikan semuanya benar.
Selanjutnya, sambungkan baterai Anda sebagai berikut.
1. Nyalakan Kamera ESP32. Perlu beberapa detik untuk memulai server web.
2. Nyalakan Arduino Nano.
3. Nyalakan motor.
Luncurkan browser Anda dan buka URL untuk ESP32.
Klik tombol Mulai Streaming.
Klik mouse Anda di suatu tempat di layar browser sehingga layar sekarang menjadi fokus.
Mulai mengemudikan robot Anda dengan joystick (atau keyboard).
Saya telah menemukan bahwa ukuran bingkai default berfungsi dengan baik untuk menyiarkan video langsung dengan cukup responsif melalui WiFi. Namun saat Anda meningkatkan ukuran bingkai, aliran akan menjadi lebih terputus-putus karena Anda mencoba menyiarkan gambar yang lebih besar.
Ini adalah proyek menantang yang memberi Anda kesempatan untuk mulai bekerja dengan streaming video langsung dan mengemudikan robot melalui WiFi. Saya harap Anda menemukan itu menyenangkan!
SEKARANG PERGI DAN BUAT SESUATU YANG LUAR BIASA!
Pembaruan Januari 2020 - Foto terakhir menunjukkan versi final robot, disolder keras dan dipasang dengan aman ke sasis.
Tiga sakelar yang dipasang di depan adalah sebagai berikut:
Kiri - Baterai daya motor
Pusat - baterai Arduino
Kanan - Baterai Kamera ESP32
Saya dapat menggunakan satu baterai besar dengan beberapa transformator buck-boost (saya menggunakan satu untuk ESP32 - itu ada di kanan bawah foto tampak depan), tetapi demi kesederhanaan, saya hanya menyimpan 3 baterai.
Robot sekarang di Access Point
Saya merasa sulit untuk mendemonstrasikan robot ini di luar rumah saya karena jaringan perusahaan sekolah saya tidak mengizinkan saya untuk menghubungkan server web robot ke sana. Sebagai solusinya, saya melakukan riset untuk menggunakan fitur Access Point pada web server ESP32. Dibutuhkan beberapa pekerjaan, tetapi membutuhkan perubahan yang cukup minimal pada sketsa robot utama untuk membuat ESP32 menyiarkan alamat IP-nya sendiri. Ini tidak sekuat hub wifi kecepatan tinggi khusus (terkadang hang jika Anda bergerak terlalu cepat), tetapi bekerja dengan cukup baik dan sekarang saya dapat mendemonstrasikan robot di mana saja saya inginkan tanpa harus menghubungkannya ke jaringan! Setelah robot bekerja, coba ubah sendiri menjadi Access Point!
Langkah 6: Detail Cara Memodifikasi Kode HTML/Javascript untuk Webserver
Ini tidak perlu, tapi saya punya beberapa permintaan.
Saya telah memberikan Google Doc ini dengan detail tentang cara menggunakan CyberChef untuk mengonversi bolak-balik antara HTML/Javascript dan representasi array byte dalam file camera_index.h.
Direkomendasikan:
Kamera CCTV Dengan NodeMCU + Modul Kamera Laptop Lama (Dengan dan Tanpa Menggunakan Blynk): 5 Langkah
Kamera CCTV Dengan NodeMCU + Modul Kamera Laptop Lama (Dengan dan Tanpa Menggunakan Blynk): Hi guys! Dalam instruksi ini, saya akan menunjukkan kepada Anda bagaimana saya menggunakan modul kamera laptop lama dan nodeMCU untuk membuat sesuatu yang mirip dengan CCTV
Memulai Dengan ESP32 CAM - Streaming Video Menggunakan ESP CAM Melalui Wifi - Proyek Kamera Keamanan ESP32: 8 Langkah
Memulai Dengan ESP32 CAM | Streaming Video Menggunakan ESP CAM Melalui Wifi | Proyek Kamera Keamanan ESP32: Hari ini kita akan belajar cara menggunakan papan CAM ESP32 baru ini dan bagaimana kita dapat mengkodekannya dan menggunakannya sebagai kamera keamanan dan mendapatkan video streaming melalui wifi
Stabilizer Kamera untuk ENV2 atau Ponsel Kamera Lainnya: 6 Langkah
Penstabil Kamera untuk ENV2 atau Ponsel Kamera Lainnya: Pernah ingin membuat video tetapi hanya memiliki ponsel kamera? Pernahkah Anda membuat video dengan ponsel kamera tetapi Anda tidak dapat menahannya? Nah dari ini adalah instruksi untuk Anda
Tambahkan Soket Sinkronisasi Pc ke Kabel Ttl Nikon Sc-28 (gunakan Pengaturan Otomatis untuk menyalakan Flash Kamera dan Memicu Flash Kamera Mati!!): 4 Langkah
Tambahkan Soket Sinkronisasi Pc ke Kabel Ttl Nikon Sc-28 (gunakan Pengaturan Otomatis untuk Flash Kamera dan Pemicu Flash Kamera Mati!!): dalam instruksi ini saya akan menunjukkan kepada Anda cara melepas salah satu konektor TTL 3pin berpemilik sial pada sisi kabel TTL kamera Nikon SC-28 lepas dan ganti dengan konektor sinkronisasi PC standar. ini akan memungkinkan Anda untuk menggunakan flash khusus, s
Menjadikan Kamera Anda Menjadi "Nightvision militer", Menambahkan Efek Nightvision, atau Membuat Mode NightVision" di Semua Kamera!!!: 3 Langkah
Menjadikan Kamera Anda Menjadi "Nightvision militer", Menambahkan Efek Nightvision, atau Membuat Mode NightVision" pada Kamera Apa Pun!!!: *** Ini telah dimasukkan dalam DIGITAL DAYS PHOTO CONTEST Mohon pilih saya** *Jika Anda memerlukan bantuan, silakan kirim email ke: [email protected] Saya berbicara bahasa Inggris, Prancis, Jepang, Spanyol, dan saya tahu bahasa lain jika Anda