Mundarija:
- Ta'minotlar
- 1 -qadam: ESP32 kamerasini dasturlash
- 2 -qadam: Robotni yarating
- 3 -qadam: HEY! Bir soniya kuting! Nega menga Arduino Nano kerak?
- 4 -qadam: USB -datchikni ulash (ixtiyoriy)
- 5 -qadam: KO'RING
- 6 -qadam: Veb -server uchun HTML/Javascript kodini qanday o'zgartirish haqida batafsil ma'lumot
Video: ESP32 kamera roboti - FPV: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
ESP32 Camera moduli arzon va kuchli PLC hisoblanadi. Bu hatto yuzni aniqlashni ham o'z ichiga oladi!
Keling, bortdagi veb-interfeys orqali boshqariladigan First Person Viewpoint robotini yarataylik!
Ushbu loyihada OV2640 kamerali Geekcreit ESP32 moduli ishlatiladi. Bu AIThinker moduliga asoslangan.
U erda juda ko'p turli xil ESP32 kamera klonlari mavjud. Ba'zilar ishlaydi, ba'zilari ishlamaydi. Men muvaffaqiyat qozonish uchun yaxshi imkoniyatga ega bo'lish uchun men qilgan modulni ishlatishni taklif qilaman.
Robot quyidagicha ishlaydi.
ESP32 veb-manzilini tarmoqqa uzatadi, u kameraning ba'zi funktsiyalari uchun bir nechta katakchalarni o'z ichiga oladi. Shuningdek, u klaviaturadan robot uchun yo'naltiruvchi buyruqlar bo'lgan veb -sahifaga yuborilgan tugmachalarni oladi. Siz robotni klaviatura buyruqlarini yozish o'rniga joystik bilan boshqarishingiz uchun USB joystik qalqoni yasashni xohlashingiz mumkin.
ESP32 tugmachalarini bosganda, u baytlarni Arduino Nano -ga uzatadi, so'ngra dvigatellarni robotni harakatga keltiradi.
Bu loyiha o'rtacha va yuqori qiyinchilik darajasida. Iltimos, vaqtingizni ajrating.
Qani boshladik!
Ta'minotlar
- OV2640 kamerali ESP -32 kamera moduli - Men Geekcreit mahsulotini tavsiya qilaman
- Signal kuchini oshirish uchun ESP-32 uchun tashqi biriktiruvchi antenna
- Arduino Nano
- Joystick moduli uchun Arduino Leonardo (bizga Leonardo tomonidan taqdim etilgan USB klaviatura emulyatsiyasi kerak)
- Umumiy joystik moduli
- L293D Quad H-ko'prikli chip
- ESP32-ni quvvatlantirish uchun 5V kuchlanishli DC-DC Buck Coverter
- ESP32 dasturlash uchun FTDI ketma -ket adapteri
- Ikki dvigatelli umumiy robotli shassi - har qanday shassi ishlaydi. 3 dan 6V gacha bo'lgan dvigatellar tavsiya etiladi
- ESP32 va dvigatellarni quvvatlantirish uchun 2 x 7.4V 1300mAh LiPo batareyalari (yoki shunga o'xshash)
- Arduino Nano -ni quvvatlantirish uchun 1 x 9V batareya
1 -qadam: ESP32 kamerasini dasturlash
Non paneli yordamida ESP32 kamerangizni FTDI adapteriga quyidagicha ulang:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Bundan tashqari, IO0 pinini ("ko'z-oh-nol") GND ga ulang. Buni ESP32 dasturlash rejimiga o'tkazish uchun qilish kerak.
Esp32CameraWebRobotforInstructable.zip faylini oching.
Ushbu loyihada 4 ta fayl mavjud:
esp32CameraWebRobotforInstructable.ino - bu Arduino eskizi.
ap_httpd.cpp - bu veb -serverni boshqaradigan va veb -sahifadan kamera xususiyatlarini sozlash va veb -sahifadan tugmachalarni bosish bilan shug'ullanadigan kod.
camera_index.h veb -ilovasi uchun HTML/JavaScript kodini bayt massivlari sifatida o'z ichiga oladi. Veb -ilovani o'zgartirish bu loyiha doirasidan ancha tashqarida. Men keyinchalik HTML/JavaScript -ni qanday o'zgartirish kerakligi haqida havola beraman.
camera_pins.h - bu ESP32 kamerasining pin konfiguratsiyasiga tegishli sarlavha fayli.
ESP32-ni dasturlash rejimiga o'tkazish uchun siz IO0 ("ko'z-oh-nol") ni Ground-ga ulashingiz kerak.
Arduino IDE -ni ishga tushiring va asboblar/taxtalar/taxtalar menejeriga o'ting. Esp32 ni qidiring va esp32 kutubxonasini o'rnating.
Loyihani Arduino IDE -da oching.
Routeringiz tarmoq identifikatori va parolingizni yuqoridagi rasmda ko'rsatilgan qatorlarga qo'ying. Loyihani saqlang.
Asboblar menyusiga o'ting va yuqoridagi rasmda ko'rsatilgandek tanlov qiling.
Kengash: ESP32 Wrover
Yuklab olish tezligi: 115200
Bo'linish sxemasi: "Katta APP (OTA 3 MB)"
va FTDI adapteringiz ulangan portni tanlang.
"Yuklab olish" tugmasini bosing.
Endi, ba'zida, ESP32 yuklashni boshlamaydi. Yuklash paytida konsolda… ---… belgilarini ko'rishni boshlaganingizda, ESP32 orqasidagi RESET tugmasini bosishga tayyor bo'ling. Keyin u yuklashni boshlaydi.
Konsolda "RST tugmasini bosing" ni ko'rsangiz, yuklash tugallandi.
IO0 -ni Ground -dan uzing. FTDI adapteri va ESP32 o'rtasidagi 3.3V chiziqni uzing.
ESP32 kamerasi yaxshi ishlashi uchun katta oqim talab qilinadi. 5V 2A quvvat adapterini ESP32 -dagi 5V va GND pinlariga ulang.
Serial monitorni oching, tezlikni 115200 ga o'rnating va ESP32 qayta yuklanishini kuzatib boring. Oxir -oqibat, siz serverning URL manzilini ko'rasiz.
Brauzerga o'ting va URL manzilini kiriting. Veb -sayt yuklanganda, 'Oqimni boshlash' tugmasini bosing va jonli video oqimi boshlanishi kerak. Agar siz "Floodlight" katagiga belgi qo'ysangiz, bortdagi chirog'i yonadi. Ehtiyot bo `lmoq! Bu yorqin!
2 -qadam: Robotni yarating
Sizga ikkita g'ildirakli robot shassis kerak. Har kim qiladi. Ishlab chiqaruvchining ko'rsatmalariga muvofiq shassisni yig'ing.
Robotni sxemaga muvofiq ulang. Batareya ulanishlarini hozircha qoldiring.
L293D dvigatellarni boshqarish uchun ishlatiladi. E'tibor bering, chipdagi yarim chiziq ESP32 ga to'g'ri keladi.
Odatda, Arduino -da ikkita dvigatelni boshqarish uchun 6 ta pin kerak.
Bu robot faqat 4 ta pinni talab qiladi va hali ham to'liq ishlaydi.
1 va 9 -pinlar Arduino 5V manbaiga ulangan, shuning uchun ular doimo yuqori. Robotni shu tarzda ulash bizni dvigatellarni boshqarish uchun Arduino -ga ikkita kamroq pin kerak bo'ladi.
Oldinga yo'nalishda INPUT pinlari LOW holatiga o'rnatiladi va motor puls to'lqinlari modulyatsiyasi pinlari 0 dan 255 gacha qiymatlarga o'rnatiladi, bu 0 o'chirilgan va 255 maksimal tezlikni bildiradi.
Teskari yo'nalishda INPUT pinlari HIGH holatiga o'rnatiladi va PWM qiymatlari teskari bo'ladi. 0 maksimal tezlikni va 255 o'chirishni bildiradi.
ArduinoMotorControl eskizini oching va Arduino Nano -ga yuklang.
3 -qadam: HEY! Bir soniya kuting! Nega menga Arduino Nano kerak?
Siz, ehtimol, shunday deb o'ylayapsiz: "Hey! ESP32 kamerasida kamida 4 ta IO pin mavjud. Nega men ularni motorlarni boshqarish uchun ishlata olmayman?"
To'g'ri, ESP32 -da pinlar quyidagicha:
IO0 - ESP32 ni dasturlash rejimiga o'tkazish uchun kerak
IO2 - mavjud
IO4 - LED chirog'i
IO12, IO13, IO14, IO15, IO16 - qo'shimcha GPIO pinlari.
Agar siz PWM buyruqlari yordamida pinlarni boshqarish uchun ESP32 -ga asosiy eskizni yuklasangiz, ular ishlaydi.
Biroq, siz eskizlaringizda CAMERA kutubxonalarini faollashtirganingizda, bu pinlar endi mavjud bo'lmaydi.
Dvigatellarni PWM orqali boshqarish va ESP32 buyruqlarini ketma -ket aloqa orqali bitta simli (ESP32 U0T dan Arduino Rx0 gacha) va GND orqali yuborish uchun Nano -dan foydalanish eng oson ishdir. Juda oddiy.
4 -qadam: USB -datchikni ulash (ixtiyoriy)
Siz robotni boshqarishingiz mumkin, bu veb -sahifaga quyidagi tugmachalarni yuboradi:
8 - oldinga
9 - Oldinga o'ng
7 - chapga
4 - chapga burish
5 - To'xtang
1 - teskari chap
2 - teskari
3 - o'ngga teskari.
USB -joystik eskizi joystik kirishini asosiy presslarga aylantiradi va ularni veb -interfeysga yuboradi, ular robotni haydash uchun Arduino -ga yuboradi.
Joystikni Arduino LEONARDO ga quyidagicha ulang:
Leonardo Joystik
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
UsbJoyStick eskizini oching, doska sifatida Arduino Leonardoni tanlang va uni Leonardoga yuklang.
Agar siz buni sinab ko'rmoqchi bo'lsangiz, kompyuteringizda matn muharririni oching, oynadagi sichqonchani bosing va joystikni harakatlantiring. Siz oynada ko'rsatilgan 1dan 9gacha bo'lgan qiymatlarni ko'rishingiz kerak
5 -qadam: KO'RING
Bir oz vaqt ajrating va hamma narsa to'g'riligiga ishonch hosil qilish uchun simingizni tekshiring.
Keyin batareyalarni quyidagicha ulang.
1. ESP32 kamerasini yoqing. Veb -serverni ishga tushirish uchun bir necha soniya kerak bo'ladi.
2. Arduino Nano -ni yoqing.
3. Dvigatellarni quvvatlantiring.
Brauzerni ishga tushiring va ESP32 uchun URL manziliga o'ting.
Oqimni boshlash tugmasini bosing.
Brauzer ekranining biron bir joyida sichqonchani bosing, shunda ekran endi diqqat markazida bo'ladi.
Robotni joystik (yoki klaviatura) bilan boshqarishni boshlang.
Men aniqladimki, standart kvadrat o'lchami WiFi orqali jonli videoni efirga uzatish uchun yaxshi ishlaydi. Ammo siz kadrlar hajmini kattalashtirganingiz sayin, oqim yanada keskinlashadi, chunki siz katta tasvirlarni uzatishga harakat qilyapsiz.
Bu sizga loyihani jonli video uzatish va WiFi orqali robot haydash bilan ishlashni boshlash imkoniyatini beradigan qiyin loyiha. Umid qilamanki, bu sizga qiziqarli bo'ldi!
HOZIR BORING VA NIMA AJOYIBLI QILING!
2020 yil yanvar oyining yangilanishi - Oxirgi fotosuratlarda qattiq lehimli va shassisga mahkam o'rnatilgan robotning oxirgi versiyasi ko'rsatilgan.
Old tomondan o'rnatilgan uchta kalit quyidagicha:
Chapda - Dvigatel quvvatli batareya
Markaziy - Arduino batareyasi
O'ngda - ESP32 kamera batareyasi
Men bitta katta akkumulyatorni bir necha dollarlik transformatorlar bilan ishlatishim mumkin edi (men ESP32 uchun ishlataman-bu oldingi rasmning pastki o'ng tomonida), lekin soddaligi uchun men 3 ta batareyani saqlayman.
Robot hozir kirish nuqtasida
Menimcha, bu robotni uyimdan tashqarida namoyish qilish juda qiyin, chunki mening maktab korporativ tarmog'im unga robot -serverni ulashimga ruxsat bermaydi. Yechim sifatida men ESP32 veb -serverining kirish nuqtasi xususiyatidan foydalanish bo'yicha tadqiqotlar o'tkazdim. Bu biroz ishlashni talab qiladi, lekin ESP32 translyatsiyasini o'z IP -manziliga aylantirish uchun asosiy robot eskiziga minimal o'zgartirishlar kiritishni talab qiladi. Bu yuqori tezlikda ishlaydigan Wi -Fi uyasi kabi kuchli emas (agar siz juda tez harakatlansangiz, ba'zida osib qo'yiladi), lekin u juda yaxshi ishlaydi va endi men robotni tarmoqqa ulanmasdan xohlagan joyimda namoyish qila olaman! Robotni ishga tushirgandan so'ng, uni Access Point -ga o'zingiz o'zgartiring!
6 -qadam: Veb -server uchun HTML/Javascript kodini qanday o'zgartirish haqida batafsil ma'lumot
Bu shart emas, lekin menda ba'zi so'rovlar bor edi.
Men bu Google Doc -ga CyberChef -dan HTML/Javascript va kamera_index.h faylidagi baytlar qatorlari o'rtasida oldinga va orqaga aylantirish uchun qanday foydalanish haqida batafsil ma'lumot berdim.
Tavsiya:
ESP32-CAM bilan oddiy kuzatuv roboti: 4 qadam
ESP32-CAM bilan oddiy kuzatuv roboti: ESP32-CAM moduli arzon, kam quvvat sarflaydigan moduldir, lekin u ko'rish, ketma-ket aloqa va GPIO uchun ko'plab manbalarni taqdim etadi. oddiy kuzatuv rc robot, u
ESP32 bilan ishlashni boshlash - Arduino IDE -da ESP32 taxtalarini o'rnatish - ESP32 miltillovchi kod: 3 qadam
ESP32 bilan ishlashni boshlash | Arduino IDEda ESP32 taxtalarini o'rnatish | ESP32 Blink kodi: Ushbu ko'rsatmalarda biz esp32 bilan qanday ishlashni va esp32 platalarini Arduino IDE -ga qanday o'rnatishni ko'rib chiqamiz va biz esp 32 -ni arduino ide yordamida miltillovchi kodni ishga tushirishni dasturlashtiramiz
HP WebCam 101 Aka 679257-330 veb-kamera modulini umumiy USB-kamera sifatida qayta ishlating: 5 qadam
HP WebCam 101 Aka 679257-330 veb-kamera modulini umumiy USB-kamerasi sifatida qayta ishlating: Men 14 yoshli Panasonic CF-18-ni yangi veb-kamera bilan to'ldirishni xohlayman, lekin Panasonic bu ajoyib mashinani boshqa qo'llab-quvvatlamaydi, shuning uchun men bunga majburman. kulrang moddani b & amp (pivo va burger) dan ko'ra osonroq narsalarga ishlating. Bu birinchi qism
UNICORN KAMERA - Raspberry Pi Zero W NoIR 8MP kamera qurilishi: 7 qadam (rasmlar bilan)
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Camera Build: Pi Zero W NoIR 8MP Camera BuildThis Instructable infraqizil kamera yoki chindan ham ajoyib portativ kamera yoki portativ Raspberry Pi kamerasini xohlagan yoki shunchaki dam olishni xohlaydiganlarga yordam berish uchun yaratilgan. . Bu eng arzon va konfiguratsiya
ENV2 yoki boshqa kamera telefonlari uchun kamera stabilizatori: 6 qadam
ENV2 yoki boshqa kamera telefonlari uchun kamera stabilizatori: Siz hech qachon video qilishni xohlaysizmi, lekin sizda faqat kamerali telefon bormi? Siz hech qachon kamerali telefon bilan video suratga olgansiz, lekin uni ushlab tura olmaysizmi? Bu siz uchun o'rgatadigan narsadir