Isi kandungan:
- Bekalan
- Langkah 1: Programkan Kamera ESP32
- Langkah 2: Bina Robot
- Langkah 3: HEY! Tunggu sebentar! Mengapa Saya Memerlukan Arduino Nano?
- Langkah 4: Wire Up USB Joystick (Pilihan)
- Langkah 5: MARI BERJALAN
- Langkah 6: Perincian Cara Mengubah Kod HTML / Javascript untuk Pelayan Web
Video: Robot Kamera ESP32 - FPV: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Modul Kamera ESP32 adalah PLC yang murah dan hebat. Malah merangkumi pengecaman wajah!
Mari buat robot First Person Viewpoint yang anda pandu melalui antara muka web on-board!
Projek ini menggunakan modul Geekcreit ESP32 dengan Kamera OV2640. Ia berdasarkan modul AIThinker.
Terdapat banyak klon ESP32 Camera di luar sana. Ada yang bekerja, ada yang tidak. Saya cadangkan anda menggunakan modul yang sama seperti yang saya lakukan sehingga anda mempunyai peluang yang baik untuk berjaya.
Robot berfungsi seperti berikut.
ESP32 menyiarkan URL web ke rangkaian anda yang menghadirkan aliran video langsung dengan beberapa kotak pilihan untuk mengendalikan beberapa fungsi kamera. Ia juga menerima penekanan tombol yang dikirim ke halaman web dari papan kekunci yang merupakan arahan arah untuk robot. Anda mungkin ingin membina pelindung kayu bedik USB supaya anda dapat menggerakkan robot dengan kayu bedik daripada mengetik perintah papan kekunci.
Apabila ESP32 menerima penekanan kekunci, ia meneruskan byte ke Arduino Nano yang kemudian menggerakkan motor untuk membuat robot bergerak.
Projek ini mempunyai tahap kesukaran sederhana tinggi. Sila luangkan masa anda.
Mari kita mulakan!
Bekalan
- Modul kamera ESP-32 dengan Kamera OV2640 - Saya akan mengesyorkan produk Geekcreit
- Antena snap-on luaran untuk ESP-32 untuk memaksimumkan kekuatan isyarat
- Arduino Nano
- Arduino Leonardo untuk modul Joystick (kami memerlukan emulasi papan kekunci USB yang disediakan oleh Leonardo)
- Modul Joystick generik
- Cip Jambatan Quad H L293D
- DC-DC Buck Coverter dengan output 5V untuk menghidupkan ESP32
- FTDI Serial Adapter untuk pengaturcaraan ESP32
- Casis robot generik dengan dua motor gear - casis mana pun akan berfungsi. Motor 3 hingga 6V disyorkan
- 2 x 7.4V 1300mAh bateri LiPo (atau serupa) untuk memberi kuasa kepada ESP32 dan motor
- 1 x 9V bateri untuk menghidupkan Arduino Nano
Langkah 1: Programkan Kamera ESP32
Dengan menggunakan papan roti, sambungkan Kamera ESP32 anda ke penyesuai FTDI seperti 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 memasukkan ESP32 ke mod pengaturcaraan.
Nyahzip fail esp32CameraWebRobotforInstructable.zip.
Terdapat 4 fail dalam projek ini:
esp32CameraWebRobotforInstructable.ino adalah lakaran Arduino.
ap_httpd.cpp adalah kod yang menguruskan pelayan web dan berurusan dengan menetapkan ciri kamera dari laman web dan menerima penekanan kekunci dari laman web.
camera_index.h mengandungi kod HTML / JavaScript untuk aplikasi web sebagai susunan bait. Mengubah aplikasi web jauh di luar ruang lingkup projek ini. Saya akan memasukkan pautan untuk bagaimana mengubah HTML / JavaScript kemudian.
camera_pins.h adalah fail header yang berkaitan dengan konfigurasi pin kamera ESP32.
Untuk memasukkan ESP32 ke dalam Mod Programming, anda mesti menyambungkan IO0 ("eye-oh-zero") ke Ground.
Lancarkan Arduino IDE anda dan pergi ke Tools / Boards / Boards Manager. Cari esp32 dan pasang perpustakaan esp32.
Buka projek di Arduino IDE anda.
Masukkan ID rangkaian router dan kata laluan ANDA ke dalam garis yang disorot dalam gambar di atas. Simpan projek.
Pergi ke menu Tools dan buat pilihan seperti yang ditunjukkan pada gambar di atas.
Papan: ESP32 Wrover
Kelajuan Muat Naik: 115200
Skema Partition: "APP Besar (3MB no OTA)"
dan pilih port yang disambungkan oleh penyesuai FTDI anda.
Klik butang "Muat Naik".
Sekarang, kadangkala, ESP32 tidak akan mula dimuat naik. Oleh itu, bersedia untuk menekan butang RESET di bahagian belakang ESP32 apabila anda mula melihat watak… ---… muncul di konsol semasa memuat naik. Kemudian akan dimuat naik.
Apabila anda melihat 'tekan RST' di konsol, muat naik selesai.
PUTUSKAN IO0 dari Ground. Putuskan sambungan 3.3V antara penyesuai FTDI dan ESP32.
Kamera ESP32 memerlukan banyak arus untuk berfungsi dengan baik. Sambungkan penyesuai kuasa 5V 2A ke pin 5V dan GND pada ESP32.
Buka Serial Monitor, tetapkan kadar baud ke 115200 dan kemudian tonton ketika ESP32 dihidupkan semula. Akhirnya, anda akan melihat URL untuk pelayan.
Pergi ke Penyemak Imbas anda dan masukkan URL. Semasa laman web dimuat, klik butang 'Mula Streaming' dan aliran video langsung akan bermula. Sekiranya anda mengklik pada kotak pilihan 'Floodlight', LED flash on-board akan menyala. Berhati-hati! ITU CERAH!
Langkah 2: Bina Robot
Anda memerlukan casis robot beroda dua. Mana-mana orang akan lakukan. Pasang casis mengikut arahan pengeluar.
Kemudian pasangkan robot seperti gambar rajah. Tinggalkan sambungan bateri buat masa ini.
L293D digunakan untuk mengawal motor. Perhatikan bahawa setengah kedudukan pada cip MENJALANKAN ESP32.
Biasanya, 6 pin diperlukan di Arduino untuk mengawal dua motor.
Robot ini hanya memerlukan 4 pin dan masih berfungsi sepenuhnya.
Pin 1 dan 9 disambungkan ke sumber Arduino 5V sehingga kekal TINGGI. Dengan memasang robot dengan cara ini, kita memerlukan dua pin lebih sedikit di Arduino untuk mengawal motor.
Dalam arah ke hadapan, pin INPUT ditetapkan ke RENDAH dan pin Modulasi Gelombang Nadi motor ditetapkan ke nilai antara 0 dan 255 dengan 0 bermaksud MATI dan 255 bermaksud kelajuan maksimum.
Dalam arah terbalik, pin INPUT ditetapkan ke TINGGI dan nilai PWM dibalikkan. 0 bermaksud kelajuan maksimum dan 255 mati.
Buka zip dan muat naik lakaran ArduinoMotorControl ke Arduino Nano.
Langkah 3: HEY! Tunggu sebentar! Mengapa Saya Memerlukan Arduino Nano?
Anda mungkin berfikir, "Hei! Terdapat sekurang-kurangnya 4 pin IO pada kamera ESP32. Mengapa saya tidak dapat menggunakannya untuk mengawal motor?"
Betul, ada pin pada ESP32 seperti berikut:
IO0 - diperlukan untuk meletakkan ESP32 dalam mod pengaturcaraan
IO2 - tersedia
IO4 - Lampu LED
IO12, IO13, IO14, IO15, IO16 - pin GPIO tambahan.
Sekiranya anda hanya memuatkan lakaran asas ke ESP32 untuk mengawal pin dengan arahan PWM, ia berfungsi.
Bagaimanapun, setelah anda mengaktifkan perpustakaan CAMERA dalam lakaran anda, pin ini tidak lagi tersedia.
Oleh itu, perkara yang paling mudah dilakukan ialah hanya menggunakan Nano untuk mengawal motor melalui PWM dan menghantar arahan dari ESP32 melalui komunikasi bersiri melalui satu wayar (ESP32 U0T ke Arduino Rx0) dan GND. Sangat ringkas.
Langkah 4: Wire Up USB Joystick (Pilihan)
Anda boleh menggerakkan robot dengan menghantar penekanan kekunci ke laman web seperti berikut:
8 - Maju
9 - Maju Kanan
7 - Maju Kiri
4 - Putar Kiri
5 - Berhenti
1 - Belakang Kiri
2 - Terbalik
3 - Kanan Terbalik.
Sketsa joystick USB menerjemahkan input joystick ke dalam penekanan kekunci dan menghantarnya ke antara muka web yang memajukannya ke Arduino untuk menggerakkan robot.
Sambungkan kayu bedik ke Arduino LEONARDO seperti berikut:
Joystick Leonardo
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Buka lakaran usbJoyStick, pilih Arduino Leonardo sebagai papan dan muat naik ke Leonardo.
Sekiranya anda ingin mengujinya, cukup buka editor teks di komputer anda, klik tetikus di tetingkap dan mula menggerakkan kayu bedik. Anda harus melihat nilai dari 1 hingga 9 yang ditunjukkan di tetingkap
Langkah 5: MARI BERJALAN
Luangkan sedikit masa dan periksa pendawaian anda untuk memastikan semuanya betul.
Seterusnya, sambungkan bateri anda seperti berikut.
1. Hidupkan Kamera ESP32. Ia memerlukan beberapa saat untuk memulakan pelayan web.
2. Nyalakan Arduino Nano.
3. Hidupkan motor.
Lancarkan penyemak imbas anda dan pergi ke URL untuk ESP32.
Klik butang Mula Penstriman.
Klik tetikus anda di suatu tempat di skrin penyemak imbas sehingga kini layar menjadi tumpuan.
Mulakan memandu robot anda dengan kayu bedik (atau papan kekunci).
Saya mendapati bahawa ukuran bingkai lalai berfungsi dengan baik untuk menyiarkan video langsung dengan responsif melalui WiFi. Namun ketika anda meningkatkan ukuran bingkai, aliran akan menjadi lebih berombak kerana anda cuba menyiarkan gambar yang lebih besar.
Ini adalah projek yang mencabar yang memberi anda peluang untuk mula bekerja dengan streaming video langsung dan memandu robot melalui WiFi. Saya harap anda merasa seronok!
SEKARANG PERGI DAN JADIKAN SESUATU YANG MAHAL!
Kemas kini Januari 2020 - Foto terakhir menunjukkan versi terakhir robot, disolder keras dan dipasang dengan selamat ke casis.
Tiga suis yang dipasang di hadapan adalah seperti berikut:
Kiri - Bateri kuasa motor
Pusat - Bateri Arduino
Kanan - Bateri Kamera ESP32
Saya boleh menggunakan satu bateri besar dengan beberapa transformer buck-boost (saya menggunakannya untuk ESP32 - ia berada di sebelah kanan bawah foto pandangan depan), tetapi demi kesederhanaan, saya hanya menyimpan 3 bateri.
Robot kini berada di Titik Akses
Saya merasa sukar untuk menunjukkan robot ini di luar rumah saya kerana rangkaian perusahaan sekolah saya tidak membenarkan saya menghubungkan pelayan web robot dengannya. Sebagai penyelesaiannya, saya melakukan penyelidikan menggunakan ciri Access Point dari pelayan web ESP32. Ia memerlukan sedikit kerja, tetapi memerlukan sedikit perubahan pada lakaran robot utama untuk menjadikan ESP32 menyiarkan alamat IPnya sendiri. Ia tidak sekuat hab wifi berkelajuan tinggi khusus (kadang-kadang hang jika anda bergerak terlalu pantas), tetapi ia berfungsi dengan baik dan sekarang saya dapat menunjukkan robot di mana sahaja yang saya mahukan tanpa perlu menyambungkannya ke rangkaian! Setelah robot berfungsi, cubalah menukarnya menjadi Access Point sendiri!
Langkah 6: Perincian Cara Mengubah Kod HTML / Javascript untuk Pelayan Web
Ini tidak perlu, tetapi saya mempunyai beberapa permintaan.
Saya telah memberikan Dokumen Google ini dengan perincian mengenai cara menggunakan CyberChef untuk menukar bolak-balik antara HTML / Javascript dan perwakilan array byte dalam fail camera_index.h.
Disyorkan:
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): Hai kawan-kawan! Dalam arahan ini, saya akan menunjukkan kepada anda bagaimana saya menggunakan modul kamera lama dan nodeMCU untuk membuat sesuatu yang serupa dengan CCTV
Bermula dengan ESP32 CAM - Streaming Video Menggunakan ESP CAM Over Wifi - Projek Kamera Keselamatan ESP32: 8 Langkah
Bermula dengan ESP32 CAM | Streaming Video Menggunakan ESP CAM Over Wifi | Projek Kamera Keselamatan ESP32: Hari ini kita akan belajar bagaimana menggunakan papan CAM ESP32 baru ini dan bagaimana kita dapat membuat kod dan menggunakannya sebagai kamera keselamatan dan mendapatkan video streaming melalui wifi
Penstabil Kamera untuk ENV2 atau Telefon Kamera Lain: 6 Langkah
Penstabil Kamera untuk ENV2 atau Telefon Kamera Lain: Pernah mahu membuat video tetapi anda hanya mempunyai telefon kamera? Adakah anda pernah membuat video dengan telefon kamera tetapi anda tidak dapat menahannya? Lebih baik daripada ini adalah pengajaran untuk anda
Kamera web dalam Kamera Hawkeye Brownie: 3 Langkah (dengan Gambar)
Kamera web dalam Kamera Hawkeye Brownie: Beberapa ngengat lalu saya menemui majalah di majalah Make mengenai meletakkan kamera web di dalam kamera lipat lama, dan itu adalah sesuatu yang lebih dekat dengan apa yang saya cuba lakukan dengan titik dan gambar digicam tetapi saya tidak menemui kes yang sesuai untuknya. Saya suka
Tambahkan Jack Pc Sync ke Kabel Nikon Sc-28 Ttl (gunakan Tetapan Auto untuk Flash pada Kamera dan Memicu Kelipan Kamera !!): 4 Langkah
Tambahkan Jack Pc Sync ke Kabel Nikon Sc-28 Ttl (gunakan Tetapan Auto untuk Flash pada Kamera dan Pencetus Mematikan Kamera !!): dalam arahan ini saya akan menunjukkan kepada anda bagaimana untuk melepaskan salah satu penyambung TTL 3pin proprietari yang sial pada sisi kabel TTL kamera mati Nikon SC-28 dan gantinya dengan penyambung penyegerakan PC standard. ini akan membolehkan anda menggunakan lampu kilat khusus