Mündəricat:

ESP32 Kamera Robotu - FPV: 6 addım
ESP32 Kamera Robotu - FPV: 6 addım

Video: ESP32 Kamera Robotu - FPV: 6 addım

Video: ESP32 Kamera Robotu - FPV: 6 addım
Video: Esp32 Cam #arduino #engineer #programming #robot #techologies #arduinorobot 2024, Noyabr
Anonim
Image
Image
ESP32 Kamera Robotu - FPV
ESP32 Kamera Robotu - FPV
ESP32 Kamera Robotu - FPV
ESP32 Kamera Robotu - FPV

ESP32 Kamera modulu ucuz və güclü bir PLC -dir. Üz tanıma da daxildir!

Gəmidə bir veb interfeysi ilə idarə etdiyiniz First Person Viewpoint robotu quraq!

Bu layihə OV2640 Kameralı Geekcreit ESP32 modulundan istifadə edir. AIThinker moduluna əsaslanır.

Orada çox fərqli ESP32 Kamera klonları var. Bəziləri işləyir, bəziləri işləmir. Uğur qazanmaq üçün yaxşı bir şansınız olduğu üçün etdiyim modulu istifadə etməyi təklif edərdim.

Robot aşağıdakı kimi işləyir.

ESP32, kameranın bəzi funksiyalarını idarə etmək üçün bəzi onay qutuları ilə canlı video axını təqdim edən şəbəkənizə bir veb URL yayımlayır. Robot üçün yönləndirici əmrlər olan klaviaturadan veb səhifəsinə göndərilən düymələri də alır. Robotu klaviatura əmrlərini yazmaqdansa joystick ilə idarə etmək üçün USB joystick qalxanı qurmaq istəyə bilərsiniz.

ESP32 düyməsini basdıqda, bu baytları Arduino Nanoya ötürür, sonra da motoru robotu hərəkətə gətirir.

Bu layihə orta-yüksək çətinliyə malikdir. Zəhmət olmasa vaxtınızı ayırın.

Gəlin başlayaq!

Təchizat

  • OV2640 Kameralı ESP -32 Kamera modulu - Geekcreit məhsulunu tövsiyə edərdim
  • Siqnal gücünü artırmaq üçün ESP-32 üçün xarici bağlanan anten
  • Arduino Nano
  • Joystick modulu üçün Arduino Leonardo (Leonardo tərəfindən təmin edilən USB klaviatura emulyasiyasına ehtiyacımız var)
  • Ümumi Joystick modulu
  • L293D Quad H-körpü çipi
  • ESP32-ni gücləndirmək üçün 5V çıxışı olan DC-DC Buck Coverter
  • ESP32 proqramlaşdırmaq üçün FTDI Serial Adapter
  • İki dişli mühərriki olan ümumi robot şassisi - istənilən şassi işləyəcək. 3 -dən 6V -a qədər mühərriklər tövsiyə olunur
  • ESP32 və mühərrikləri gücləndirmək üçün 2 x 7.4V 1300mAh LiPo batareyaları (və ya bənzəri)
  • Arduino Nano'yu gücləndirmək üçün 1 x 9V batareya

Addım 1: ESP32 Kameranı proqramlaşdırın

ESP32 Kameranı proqramlaşdırın
ESP32 Kameranı proqramlaşdırın
ESP32 Kameranı proqramlaşdırın
ESP32 Kameranı proqramlaşdırın

Çörək taxtasından istifadə edərək ESP32 Kameranızı FTDI adapterinə aşağıdakı kimi bağlayın:

FTDI ESP32

3.3V ----------- 3.3V

GND ----------- GND

TX ----------- U0R

Rx ----------- U0T

Əlavə olaraq, IO0 pinini ("göz-oh-sıfır") GND-yə bağlayın. ESP32 -ni proqramlaşdırma rejiminə keçirmək üçün bunu etməlisiniz.

Esp32CameraWebRobotforInstructable.zip faylını açın.

Bu layihədə 4 fayl var:

esp32CameraWebRobotforInstructable.ino Arduino eskizidir.

ap_httpd.cpp, veb serverini idarə edən və veb səhifədən kamera xüsusiyyətlərini təyin edən və veb səhifədən düymələri basan bir koddur.

camera_index.h, web tətbiqi üçün HTML/JavaScript kodunu bayt massivləri kimi ehtiva edir. Veb tətbiqini dəyişdirmək bu layihənin əhatə dairəsindən çox kənardadır. Daha sonra HTML/JavaScript -in necə dəyişdiriləcəyinə dair bir link daxil edəcəyəm.

camera_pins.h, ESP32 kamerasının pin konfiqurasiyasına aid başlıq sənədidir.

ESP32-ni Proqramlaşdırma Moduna keçirmək üçün IO0-u ("göz-oh-sıfır") Ground-a bağlamalısınız.

Arduino IDE -ni işə salın və Alətlər/Panolar/Lövhələr Menecerinə gedin. Esp32 axtarın və esp32 kitabxanasını quraşdırın.

Layihəni Arduino IDE -də açın.

Routerinizin şəbəkə identifikatorunu və parolunuzu yuxarıdakı şəkildə vurğulanan sətirlərə daxil edin. Layihəni qeyd edin.

Alətlər menyusuna gedin və yuxarıdakı şəkildə göstərildiyi kimi seçimlər edin.

Lövhə: ESP32 Wrover

Yükləmə Sürəti: 115200

Bölmə Sxemi: "Böyük APP (3 MB OTA olmadan)"

və FTDI adapterinizin bağlı olduğu portu seçin.

"Yüklə" düyməsini basın.

İndi bəzən ESP32 yükləməyə başlamaz. Yükləmə zamanı konsolda görünən… ---… simvollarını görməyə başlayanda ESP32 arxasındakı RESET düyməsini basmağa hazır olun. Bundan sonra yükləməyə başlayacaq.

Konsolda 'RST düyməsini basın' gördüyünüz zaman yükləmə tamamlandı.

IO0 -u Ground -dan ayırın. FTDI adapteri ilə ESP32 arasındakı 3.3V xəttini ayırın.

ESP32 Kameranın yaxşı işləməsi üçün çoxlu cərəyan lazımdır. 5V 2A güc adapterini ESP32 üzərindəki 5V və GND pinlərinə qoşun.

Serial Monitoru açın, baud sürətini 115200 olaraq təyin edin və sonra ESP32 yenidən başladıqca baxın. Nəhayət, serverin URL -ni görəcəksiniz.

Brauzerinizə gedin və URL daxil edin. Veb sayt yükləndikdə 'Yayımı Başlat' düyməsini basın və canlı video axını başlamalıdır. 'Floodlight' onay qutusunu tıklasanız, bortdakı flaş LED yanmalıdır. Diqqətli ol! Parlaqdır!

Addım 2: Robot qurun

Robot qurun
Robot qurun

İki təkərli robot şassisi lazımdır. Hər kəs edəcək. İstehsalçının təlimatlarına uyğun olaraq şassi yığın.

Sonra robotu diaqrama uyğun olaraq bağlayın. Batareya əlaqələrini hələlik buraxın.

L293D mühərrikləri idarə etmək üçün istifadə olunur. Çipdəki yarı çentikin ESP32-ə doğru olduğuna diqqət yetirin.

Tipik olaraq, Arduinoda iki mühərriki idarə etmək üçün 6 pin lazımdır.

Bu robot yalnız 4 pin tələb edir və hələ də tam işləyir.

1 və 9 pinləri Arduinonun 5V mənbəyinə bağlıdır, buna görə də daimi olaraq yüksəkdir. Robotu bu şəkildə bağlamaq, mühərrikləri idarə etmək üçün Arduino -da iki daha az sancağa ehtiyacımız olduğu deməkdir.

İrəli istiqamətlərdə, INPUT pinləri LOW olaraq, motor Pulse Wave Modulation pinləri isə 0 ilə 255 arasındakı dəyərlərə 0 mənası ilə OFF və 255 maksimum sürət mənasına gəlir.

Əks istiqamətdə, INPUT pinləri YÜKSƏK olaraq təyin olunur və PWM dəyərləri tərsinə çevrilir. 0 maksimum sürət və 255 sönmə deməkdir.

ArduinoMotorControl eskizini açın və Arduino Nano'ya yükləyin.

Addım 3: HEY! Bir saniyə gözləyin! Niyə Arduino Nanoya ehtiyacım var?

Çox güman ki, "Hey! ESP32 kamerasında ən azı 4 IO pin mövcuddur. Niyə onlardan mühərrikləri idarə etmək üçün istifadə edə bilmirəm?"

Düzdür, ESP32 -də aşağıdakı kimi pinlər var:

IO0 - ESP32 -ni proqramlaşdırma rejiminə salmaq üçün lazımdır

IO2 - mövcuddur

IO4 - Flaş LED

IO12, IO13, IO14, IO15, IO16 - əlavə GPIO sancaqları.

PWM əmrləri ilə sancaqları idarə etmək üçün sadəcə ESP32 -ə əsas bir eskiz yükləsəniz, onlar işləyir.

Bununla birlikdə, eskizlərinizdə CAMERA kitabxanalarını aktivləşdirdikdən sonra bu pinlər artıq mövcud deyil.

Buna görə etmək üçün ən asan şey, motorları PWM vasitəsilə idarə etmək və ESP32 -dən əmrləri bir tel (ESP32 U0T -dən Arduino Rx0 -a) və GND üzərindən göndərmək üçün Nano istifadə etməkdir. Çox sadə.

Addım 4: USB Joystickini bağlayın (İsteğe bağlı)

Veb səhifəsinə düymələri aşağıdakı kimi göndərərək robotu idarə edə bilərsiniz:

8 - İrəli

9 - İrəli Sağ

7 - İrəli Sol

4 - Sola çevirin

5 - Dur

1 - Ters Sola

2 - tərs

3 - Sağa tərs.

USB joystick eskizi, joystick girişlərini əsas preslərə çevirir və robotu idarə etmək üçün Arduinoya göndərən veb interfeysinə göndərir.

Joystick'i Arduino LEONARDO -ya aşağıdakı kimi bağlayın:

Leonardo Joystick

5V ---------- VCC

GND ---------- GND

A0 ---------- VRx

A1 ---------- VRy

UsbJoyStick eskizini açın, lövhə olaraq Arduino Leonardonu seçin və Leonardoya yükləyin.

Bunu sınamaq istəyirsinizsə, kompüterinizdə bir mətn redaktoru açın, pəncərədə siçanı vurun və joystickin hərəkətinə başlayın. Pəncərədə 1 -dən 9 -a qədər olan dəyərləri görməlisiniz

Addım 5: GƏLİN

Bir az vaxt ayırın və hər şeyin düzgün olduğundan əmin olmaq üçün kabellərinizə keçin.

Sonra, batareyalarınızı aşağıdakı kimi bağlayın.

1. ESP32 Kameranı işə salın. Veb serveri işə salmaq üçün bir neçə saniyə lazımdır.

2. Arduino Nanonu gücləndirin.

3. Motorları işə salın.

Brauzerinizi işə salın və ESP32 üçün URL -ə gedin.

Streaming Start düyməsini basın.

Brauzer ekranında bir yerə vurun ki, ekran indi diqqət mərkəzində olsun.

Robotunuzu joystick (və ya klaviatura) ilə idarə etməyə başlayın.

Varsayılan çərçivə ölçüsünün canlı videonun WiFi üzərindən kifayət qədər həssas şəkildə yayılması üçün yaxşı işlədiyini gördüm. Ancaq çərçivə ölçüsünü artırdıqca, daha böyük şəkillər yayımlamağa çalışdığınız üçün axın daha da dəyişkən olacaq.

Bu, canlı video axını ilə işə başlamaq və WiFi üzərindən robot sürmək imkanı verən çətin bir layihədir. Ümid edirəm əyləncəli tapdınız!

İndi gedin və möhtəşəm bir şey edin!

Yanvar 2020 Yeniləməsi - Son fotoşəkillər robotun sərt lehimli və şassiyə etibarlı şəkildə quraşdırılmış son versiyasını göstərir.

Ön tərəfə quraşdırılmış üç açar aşağıdakı kimidir:

Sol - Motor güc batareyası

Mərkəzi - Arduino batareyası

Sağda - ESP32 Kamera Batareyası

Bir neçə dollarlıq gücləndirici transformatoru olan bir böyük batareyadan istifadə edə bilərdim (birini ESP32 üçün istifadə edirəm-ön görünüşün sağ alt hissəsindədir), amma sadəlik naminə 3 batareyanı saxlayıram.

Robot indi Access Point -də

Bu robotu evimdən kənarda nümayiş etdirməyi çətin hesab edirəm, çünki məktəb müəssisə şəbəkəm robot veb serverini ona bağlamağa icazə vermir. Bir həll olaraq, ESP32 veb serverinin Giriş nöqtəsi xüsusiyyətindən istifadə etməklə bağlı araşdırma apardım. ESP32 yayımını öz IP ünvanına çevirmək üçün bir az iş lazımdır, ancaq əsas robot eskizində kifayət qədər minimal dəyişikliklər tələb olunur. Xüsusi bir yüksək sürətli wifi qovşağı qədər güclü deyil (bəzən çox sürətli hərəkət etsəniz asılır), amma olduqca yaxşı işləyir və indi robotu şəbəkəyə bağlamadan istədiyim yerdə nümayiş etdirə bilərəm! Robotu işə saldıqdan sonra onu Access Point -ə çevirməyə çalışın!

Addım 6: Web Server üçün HTML/Javascript Kodunu Dəyişdirməyin Təfərrüatları

Bu lazım deyil, amma bəzi istəklərim var.

Bu Google Sənədinə, CyberChef -in HTML/Javascript ilə kamera_index.h faylındakı bayt dizisi nümayəndəlikləri arasında irəli -geri çevirmək üçün necə istifadə ediləcəyinə dair təfərrüatlar verdim.

Tövsiyə: