Mundarija:

ESP32 kamera roboti - FPV: 6 qadam
ESP32 kamera roboti - FPV: 6 qadam

Video: ESP32 kamera roboti - FPV: 6 qadam

Video: ESP32 kamera roboti - FPV: 6 qadam
Video: How To Make DC Motor Drone || wait for end 😱 #viralvideo #trending #shorts 2024, Noyabr
Anonim
Image
Image
ESP32 kamera roboti - FPV
ESP32 kamera roboti - FPV
ESP32 kamera roboti - FPV
ESP32 kamera roboti - FPV

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

ESP32 kamerasini dasturlash
ESP32 kamerasini dasturlash
ESP32 kamerasini dasturlash
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

Robot yaratish
Robot yaratish

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: