Kazalo:

Robot kamere ESP32 - FPV: 6 korakov
Robot kamere ESP32 - FPV: 6 korakov

Video: Robot kamere ESP32 - FPV: 6 korakov

Video: Robot kamere ESP32 - FPV: 6 korakov
Video: ESP32-CAM - Быстрый старт 2024, November
Anonim
Image
Image
Robot kamere ESP32 - FPV
Robot kamere ESP32 - FPV
Robot kamere ESP32 - FPV
Robot kamere ESP32 - FPV

Modul kamere ESP32 je poceni in zmogljiv PLC. Vključuje celo prepoznavanje obrazov!

Zgradimo robota za ogled prve osebe, ki ga vozite prek vmesnika na vozilu!

Ta projekt uporablja modul Geekcreit ESP32 s kamero OV2640. Temelji na modulu AIThinker.

Obstaja veliko različnih klonov kamere ESP32. Nekateri delajo, drugi ne. Predlagam, da uporabite isti modul, ki sem ga uporabil, da boste imeli priložnost za uspeh.

Robot deluje na naslednji način.

ESP32 oddaja spletni naslov vašemu omrežju, ki predstavlja video tok v živo z nekaterimi potrditvenimi polji za upravljanje nekaterih funkcij kamere. Prav tako sprejema tipke, poslane na spletno stran s tipkovnice, ki so smerni ukazi za robota. Morda boste želeli zgraditi ščit krmilne palice USB, da boste lahko robota vozili s krmilno palčko in ne tipkali ukazov na tipkovnici.

Ko ESP32 pritisne tipke, te bajte posreduje v Arduino Nano, ki nato poganja motorje, da se robot premakne.

Ta projekt ima zmerno visoke težave. Prosim, vzemite si čas.

Začnimo!

Zaloge

  • Modul kamere ESP -32 s kamero OV2640 - priporočam izdelek Geekcreit
  • Zunanja zaskočna antena za ESP-32 za največjo moč signala
  • Arduino Nano
  • Arduino Leonardo za modul Joystick (potrebujemo emulacijo tipkovnice USB, ki jo zagotavlja Leonardo)
  • Splošni modul igralne palice
  • L293D Quad H-most čip
  • Zaščitni pokrov DC-DC z izhodom 5V za napajanje ESP32
  • Serijski adapter FTDI za programiranje ESP32
  • Generično podvozje robota z dvema motorjema z zobnikom - vsako podvozje bo delovalo. Priporočeni so motorji od 3 do 6V
  • 2 x 7,4V 1300mAh LiPo baterije (ali podobne) za napajanje ESP32 in motorjev
  • 1 x 9V baterija za napajanje Arduino Nano

1. korak: Programirajte kamero ESP32

Programirajte kamero ESP32
Programirajte kamero ESP32
Programirajte kamero ESP32
Programirajte kamero ESP32

S pomočjo načrta priključite fotoaparat ESP32 na adapter FTDI na naslednji način:

FTDI ESP32

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

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

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

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

Dodatno priključite pin IO0 ("eye-oh-zero") na GND. To morate storiti, da ESP32 preklopite v način programiranja.

Razpakirajte datoteko esp32CameraWebRobotforInstructable.zip.

V tem projektu so 4 datoteke:

esp32CameraWebRobotforInstructable.ino je skica Arduino.

ap_httpd.cpp je koda, ki upravlja spletni strežnik in se ukvarja z nastavljanjem funkcij kamere s spletne strani in prejemanjem pritiskov tipk s spletne strani.

camera_index.h vsebuje kodo HTML/JavaScript za spletno aplikacijo v obliki bajtnih nizov. Sprememba spletne aplikacije močno presega obseg tega projekta. Pozneje bom vključil povezavo, kako spremeniti HTML/JavaScript.

camera_pins.h je datoteka glave, ki se nanaša na konfiguracijo zatičev kamere ESP32.

Če želite ESP32 preklopiti v način programiranja, morate priključiti IO0 ("eye-oh-zero") na ozemljitev.

Zaženite svoj Arduino IDE in pojdite na Orodja/plošče/upravitelj plošč. Poiščite esp32 in namestite knjižnico esp32.

Odprite projekt v svojem Arduino IDE.

Mrežni ID vašega usmerjevalnika in geslo vnesite v vrstice, označene na zgornji sliki. Shranite projekt.

Pojdite v meni Orodja in izberite, kot je prikazano na zgornji sliki.

Plošča: ESP32 Wrover

Hitrost nalaganja: 115200

Shema particij: "Ogromna aplikacija (3 MB brez OTA)"

in izberite vrata, na katera je priključen vaš adapter FTDI.

Kliknite gumb "Naloži".

Zdaj se včasih ESP32 ne bo začel nalagati. Zato bodite pripravljeni, da pritisnete gumb RESET na hrbtni strani ESP32, ko se med nalaganjem prikažejo znaki… ---… v konzoli. Nato se bo začel nalagati.

Ko na konzoli vidite 'pritisnite RST', je nalaganje končano.

IZKLOPITE IO0 od tal. Odklopite napetost 3,3 V med adapterjem FTDI in ESP32.

Kamera ESP32 potrebuje veliko toka za dobro delovanje. Priključite napajalnik 5V 2A na zatiče 5V in GND na ESP32.

Odprite serijski monitor, nastavite hitrost prenosa na 115200 in nato poglejte, kako se ESP32 znova zažene. Sčasoma boste videli URL strežnika.

Pojdite v brskalnik in vnesite URL. Ko se spletno mesto naloži, kliknite gumb »Začni pretakanje« in videoprenos v živo se mora začeti. Če kliknete potrditveno polje 'Floodlight', naj zasveti LED bliskavica na vozilu. Pazi! SVETLO JE!

Korak: Zgradite robota

Zgradite robota
Zgradite robota

Potrebujete dvokolesno robotsko ohišje. Vsak bo naredil. Ohišje sestavite v skladu z navodili proizvajalca.

Nato priključite robota po diagramu. Zaenkrat pustite priključke za baterije.

L293D se uporablja za krmiljenje motorjev. Upoštevajte, da je polovična zareza na čipu PROTI ESP32.

Običajno je za krmiljenje dveh motorjev potrebno 6 zatičev na Arduinu.

Ta robot potrebuje le 4 zatiča in še vedno deluje v celoti.

Zatiča 1 in 9 sta priključena na 5V vir Arduina, zato sta trajno VISOKA. Če na ta način ožičite robota, potrebujemo dva zatiča manj na Arduinu za krmiljenje motorjev.

V smeri naprej so zatiči INPUT nastavljeni na LOW, zatiči modulacije impulznega vala motorja pa na vrednosti med 0 in 255, pri čemer 0 pomeni OFF in 255 kar pomeni največjo hitrost.

V obratnih smereh so nožice INPUT nastavljene na HIGH in vrednosti PWM so obrnjene. 0 pomeni največjo hitrost, 255 pa izključeno.

Razpakirajte in naložite skico ArduinoMotorControl v Arduino Nano.

3. korak: HEJ! Počakaj malo! Zakaj potrebujem Arduino Nano?

Verjetno razmišljate: "Hej! Na kameri ESP32 so na voljo vsaj 4 IO zatiči. Zakaj jih ne morem uporabiti za krmiljenje motorjev?"

No, res je, na ESP32 so zatiči, kot sledi:

IO0 - potreben za preklop ESP32 v način programiranja

IO2 - na voljo

IO4 - LED bliskavica

IO12, IO13, IO14, IO15, IO16 - dodatni zatiči GPIO.

Če na ESP32 naložite samo osnovno skico za nadzor nožic z ukazi PWM, delujejo.

Vendar, ko v skicah aktivirate knjižnice CAMERA, ti zatiči niso več na voljo.

Najlažje je torej uporabiti Nano za krmiljenje motorjev prek PWM in ukaze iz ESP32 poslati po serijski komunikaciji po eni žici (ESP32 U0T na Arduino Rx0) in GND. Zelo preprosto.

4. korak: Priključite krmilno palčko USB (neobvezno)

Robota lahko vozite tako, da na spletno stran pritisnete tipke:

8 - Naprej

9 - Naprej desno

7 - Naprej levo

4 - Zavrtite v levo

5 - Ustavi

1 - Vzvratno levo

2 - Vzvratno

3 - Obratno desno.

Skica krmilne palice USB prevede vnose krmilne palice v pritiske tipk in jih pošlje na spletni vmesnik, ki jih posreduje Arduinu za vožnjo robota.

Krmilno palico priključite na Arduino LEONARDO na naslednji način:

Leonardo Joystick

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

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

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

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

Odprite skico usbJoyStick, izberite Arduino Leonardo za tablo in jo naložite v Leonardo.

Če ga želite preizkusiti, odprite urejevalnik besedil v računalniku, kliknite miško v oknu in začnite premikati krmilno palčko. V oknu bi morale biti prikazane vrednosti od 1 do 9

5. korak: VOŽIMO SE

Vzemite si nekaj časa in preglejte ožičenje, da se prepričate, ali je vse v redu.

Nato priključite baterije na naslednji način.

1. Vklopite kamero ESP32. Za zagon spletnega strežnika potrebuje nekaj sekund.

2. Vklopite Arduino Nano.

3. Vklopite motorje.

Zaženite brskalnik in pojdite na URL za ESP32.

Kliknite gumb Začni pretakanje.

Z miško kliknite nekje na zaslonu brskalnika, tako da je zaslon zdaj v središču pozornosti.

Robota začnite voziti z igralno palico (ali tipkovnico).

Ugotovil sem, da privzeta velikost okvirja deluje v redu za dokaj odzivno predvajanje videa v živo prek WiFi. Ko pa povečate velikost okvirja, bo tok postajal bolj nemiren, ker poskušate predvajati večje slike.

To je zahteven projekt, ki vam daje priložnost, da začnete delati s pretakanjem videa v živo in vozite robota prek WiFi. Upam, da vam je bilo zabavno!

ZDAJ POJDITE IN NAČINITE NEkaj ČUDOVITEGA!

Posodobitev januarja 2020 - zadnje fotografije prikazujejo končno različico robota, trdo spajkanega in varno pritrjenega na ohišje.

Tri sprednja stikala so naslednja:

Levo - baterija za napajanje motorja

Sredina - baterija Arduino

Desno - baterija fotoaparata ESP32

Lahko bi uporabil eno veliko baterijo z nekaj transformatorji za povečanje denarja (eno uporabljam za ESP32-to je v spodnjem desnem kotu fotografije spredaj), vendar zaradi enostavnosti obdržim samo 3 baterije.

Robot je zdaj na dostopni točki

Zdi se mi okorno, da tega robota demonstriram zunaj svojega doma, ker mi šolsko omrežje podjetja ne dovoljuje, da nanj povežem spletni strežnik robota. Kot rešitev sem opravil raziskavo o uporabi funkcije dostopne točke spletnega strežnika ESP32. Potrebno je nekaj dela, vendar zahteva precej minimalne spremembe skice glavnega robota, da bo ESP32 oddajal svoj lastni naslov IP. Ni tako zmogljiv kot namensko hitro vozlišče za visoke hitrosti (včasih visi, če se premikate prehitro), vendar deluje precej dobro in zdaj lahko robota demonstriram kjer koli želim, ne da bi ga bilo treba povezati z omrežjem! Ko robot deluje, ga poskusite sami pretvoriti v dostopno točko!

6. korak: Podrobnosti o tem, kako spremeniti kodo HTML/Javascript za spletni strežnik

To ni nujno, vendar sem imel nekaj zahtev.

Temu Google Dokumentu sem posredoval podrobnosti o uporabi CyberChefa za pretvorbo naprej in nazaj med HTML/Javascript in reprezentacijami bajtnih nizov v datoteki camera_index.h.

Priporočena: