Sisukord:

ESP32 kaamerarobot - FPV: 6 sammu
ESP32 kaamerarobot - FPV: 6 sammu
Anonim
Image
Image
ESP32 kaamerarobot - FPV
ESP32 kaamerarobot - FPV
ESP32 kaamerarobot - FPV
ESP32 kaamerarobot - FPV

ESP32 kaamera moodul on odav ja võimas PLC. See sisaldab isegi näotuvastust!

Ehitame esimese inimese vaatepunkti roboti, millega sõidate läbi pardal oleva veebiliidese!

See projekt kasutab Geekcreit ESP32 moodulit koos OV2640 kaameraga. See põhineb AIThinkeri moodulil.

Seal on palju erinevaid ESP32 kaamera kloone. Mõni töötab, mõni mitte. Soovitan teil kasutada sama moodulit, mida tegin, nii et teil oleks hea võimalus edukaks saada.

Robot töötab järgmiselt.

ESP32 edastab teie võrku veebi-URL-i, mis esitab otsevideovoo koos mõnede märkeruutudega kaamera teatud funktsioonide kasutamiseks. Samuti saab see klaviatuurilt veebilehele saadetud klahvivajutusi, mis on roboti suunakäsud. Võib -olla soovite ehitada USB -juhtkangi kaitsekilbi, et saaksite juhtida robotit juhthoovaga, mitte sisestada klaviatuuri käske.

Kui ESP32 saab klahvivajutusi, edastab ta need baidid Arduino Nano -le, mis seejärel juhib mootoreid, et robot liikuma panna.

See projekt on keskmise raskusega. Palun võtke aega.

Alustame!

Tarvikud

  • ESP -32 Kaameramoodul koos OV2640 kaameraga - ma soovitaksin Geekcreiti toodet
  • Väline kinnitatav antenn ESP-32 jaoks, et maksimeerida signaali tugevust
  • Arduino Nano
  • Arduino Leonardo juhtkangi mooduli jaoks (vajame Leonardo pakutavat USB -klaviatuuri emuleerimist)
  • Üldine juhtkangi moodul
  • L293D Quad H-silla kiip
  • DC-DC Buck Coverter 5V väljundiga ESP32 toiteks
  • FTDI jadaadapter ESP32 programmeerimiseks
  • Üldine robotraam kahe käigukastiga mootoriga - mis tahes šassii töötab. Soovitatav on 3 kuni 6 V mootorid
  • 2 x 7,4 V 1300mAh LiPo akusid (või sarnaseid) ESP32 ja mootorite toiteks
  • 1 x 9 V aku Arduino Nano toiteks

Samm: programmeerige ESP32 kaamera

Programmeerige ESP32 kaamera
Programmeerige ESP32 kaamera
Programmeerige ESP32 kaamera
Programmeerige ESP32 kaamera

Ühendage ESP32 kaamera leivaplaadi abil FTDI -adapteriga järgmiselt.

FTDI ESP32

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

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

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

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

Lisaks ühendage tihvt IO0 ("silma-oh-null") GND-ga. Seda peate tegema, et lülitada ESP32 programmeerimisrežiimi.

Pakkige fail esp32CameraWebRobotforInstructable.zip lahti.

Selles projektis on 4 faili:

esp32CameraWebRobotforInstructable.ino on Arduino visand.

ap_httpd.cpp on kood, mis haldab veebiserverit ja tegeleb kaamera funktsioonide seadistamisega veebilehelt ning klahvivajutuste vastuvõtmisega veebilehelt.

camera_index.h sisaldab veebirakenduse HTML/JavaScripti koodi baidimassiividena. Veebirakenduse muutmine väljub selle projekti raamidest. Lisan hiljem lingi HTML/JavaScripti muutmiseks.

camera_pins.h on päisefail, mis on seotud ESP32 kaamera pin -konfiguratsiooniga.

ESP32 programmeerimisrežiimi lülitamiseks peate maandusega ühendama IO0 ("eye-oh-zero").

Käivitage oma Arduino IDE ja minge jaotisse Tööriistad/Lauad/Laudade haldur. Otsige esp32 ja installige teek esp32.

Avage projekt oma Arduino IDE -s.

Sisestage oma ruuteri võrgu -ID ja oma parool ülaltoodud pildil esile tõstetud ridadele. Salvestage projekt.

Minge menüüsse Tööriistad ja tehke valikud, nagu on näidatud ülaltoodud pildil.

Tahvel: ESP32 Wrover

Üleslaadimiskiirus: 115200

Jaotusskeem: "Suur rakendus (3 MB ilma OTA -ta)"

ja valige port, millega teie FTDI -adapter on ühendatud.

Klõpsake nuppu "Laadi üles".

Mõnikord ei hakka ESP32 üles laadima. Nii et olge valmis vajutama ESP32 tagaküljel asuvat nuppu RESET, kui hakkate üleslaadimise ajal konsooli nägema… ---… märke. Seejärel hakatakse seda üles laadima.

Kui näete konsoolil nuppu „RST”, on üleslaadimine lõpetatud.

Ühendage maapinnast lahti IO0. Ühendage lahti FTDI adapteri ja ESP32 vaheline 3,3 V liin.

ESP32 kaamera vajab hästi töötamiseks palju voolu. Ühendage 5V 2A toiteadapter ESP32 5V ja GND kontaktidega.

Avage jadamonitor, seadke edastuskiiruseks 115200 ja vaadake, kuidas ESP32 taaskäivitub. Lõpuks näete serveri URL -i.

Minge oma brauserisse ja sisestage URL. Kui veebisait laaditakse, klõpsake nuppu „Alusta voogesitust” ja video otseülekanne peaks algama. Kui klõpsate märkeruutu „Floodlight”, peaks rongisisene välklambi LED-tuli süttima. Vaata ette! SEE ON HELE!

Samm: ehitage robot

Ehita robot
Ehita robot

Teil on vaja kaherattalist robotraami. Igaüks teeb. Pange šassii kokku vastavalt tootja juhistele.

Seejärel ühendage robot vastavalt skeemile. Jätke akuühendused praegu alles.

L293D kasutatakse mootorite juhtimiseks. Pange tähele, et kiibi poolik sälk on ESP32 suunas.

Tavaliselt on kahe mootori juhtimiseks vaja Arduinole 6 tihvti.

See robot vajab ainult 4 tihvti ja töötab endiselt täielikult.

Pistikud 1 ja 9 on ühendatud Arduino 5V allikaga, nii et need on püsivalt KÕRGED. Roboti sel viisil ühendamine tähendab, et vajame Arduino mootorite juhtimiseks kahte tihvti vähem.

Edasisuunas on INPUT -tihvtide asendiks LOW ja mootori impulsslaine modulatsiooni tihvtide väärtused vahemikus 0 kuni 255, kusjuures 0 tähendab OFF ja 255 tähendab maksimaalset kiirust.

Vastupidises suunas on INPUT tihvtid seatud asendisse HIGH ja PWM väärtused pööratakse vastupidiseks. 0 tähendab maksimaalset kiirust ja 255 tähendab väljalülitamist.

Pakkige lahti ja laadige ArduinoMotorControli visand Arduino Nano -sse üles.

3. samm: HEI! Oota sekund! Miks ma vajan Arduino Nano?

Tõenäoliselt mõtlete: "Hei! ESP32 kaameral on saadaval vähemalt 4 IO kontakti. Miks ma ei saa neid mootorite juhtimiseks kasutada?"

Noh, see on tõsi, ESP32 -l on järgmised tihvtid:

IO0 - vajalik ESP32 programmeerimisrežiimi viimiseks

IO2 - saadaval

IO4 - välklambi LED

IO12, IO13, IO14, IO15, IO16 - täiendavad GPIO tihvtid.

Kui laadite ESP32 -le lihtsalt põhijoonise, et tihvte juhtida PWM -käskudega, siis need toimivad.

Kui olete visandites CAMERA teegid aktiveerinud, pole need tihvtid enam saadaval.

Nii et kõige lihtsam on lihtsalt Nano abil mootoreid juhtida PWM -i kaudu ja saata käsud ESP32 -lt jadaühenduse kaudu ühe juhtme (ESP32 U0T kuni Arduino Rx0) ja GND kaudu. Väga lihtne.

Samm: ühendage USB juhtkangi (valikuline)

Saate robotit juhtida, saates veebilehele klahvivajutusi järgmiselt.

8 - edasi

9 - Edasi paremale

7 - Edasi vasakule

4 - pöörake vasakule

5 - Peatu

1 - tagurpidi vasakule

2 - tagurpidi

3 - tagurpidi paremale.

USB -juhtkangi visand teisendab juhtkangi sisendid klahvivajutusteks ja saadab need veebiliidesesse, mis edastab need Arduinole roboti juhtimiseks.

Ühendage juhtkang Arduino LEONARDO -ga järgmiselt.

Leonardo juhtkang

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

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

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

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

Avage usbJoySticki visand, valige tahvliks Arduino Leonardo ja laadige see Leonardosse üles.

Kui soovite seda testida, avage lihtsalt oma arvutis tekstiredaktor, klõpsake aknas hiirt ja hakake juhtkangi liigutama. Te peaksite nägema aknas väärtusi 1 kuni 9

5. samm: RATSAME

Võtke aega ja vaadake oma juhtmestik üle, et veenduda, kas kõik on õigesti.

Seejärel ühendage akud järgmiselt.

1. Lülitage ESP32 kaamera sisse. Veebiserveri käivitamiseks kulub mõni sekund.

2. Lülitage Arduino Nano sisse.

3. Lülitage mootorid sisse.

Käivitage oma brauser ja minge ESP32 URL -ile.

Klõpsake nuppu Alusta voogesitust.

Klõpsake hiirega kuskil brauseri ekraanil, nii et ekraan on nüüd fookuses.

Alustage oma roboti juhtimist juhtkangi (või klaviatuuri) abil.

Olen avastanud, et vaikimisi kasutatav kaadrisuurus sobib hästi otsevideo edastamiseks WiFi kaudu. Kuid kui suurendate kaadrisuurust, muutub voog katkemaks, kuna proovite edastada suuremaid pilte.

See on väljakutseid pakkuv projekt, mis annab teile võimaluse alustada tööd video otseülekandega ja juhtida robotit WiFi kaudu. Loodan, et leidsite selle lõbusaks!

NÜÜD NÜÜD JA TEE MIDAGI IMELISEKS!

Jaanuari 2020 värskendus - viimastel fotodel on näha roboti lõplik versioon, kõvasti joodetud ja kindlalt šassiile kinnitatud.

Esiküljel olevad kolm lülitit on järgmised:

Vasakule - mootori aku

Keskel - Arduino aku

Paremal - ESP32 kaamera aku

Võiksin kasutada ühte suurt akut koos mõne buck-boost trafoga (kasutan ühte ESP32 jaoks-see on eestvaate foto paremas alanurgas), kuid lihtsuse huvides hoian alles 3 akut.

Robot nüüd pääsupunktis

Minu arvates on selle roboti demonstreerimine väljaspool kodu tülikas, sest minu kooli ettevõtete võrk ei luba mul roboti veebiserverit sellega ühendada. Lahendusena uurisin ESP32 veebiserveri pääsupunkti funktsiooni kasutamist. See võtab natuke tööd, kuid nõuab peamise roboti visandis üsna minimaalseid muudatusi, et muuta ESP32 enda IP -aadress. See ei ole nii võimas kui spetsiaalne kiire WiFi -jaotur (mõnikord hangub, kui liigute liiga kiiresti), kuid see toimib üsna hästi ja nüüd saan ma näidata robotit kõikjal, kus tahan, ilma et peaksin seda võrku ühendama! Kui olete robot tööle saanud, proovige see ise pöörduspunktiks teisendada!

6. toiming: üksikasjad veebiserveri HTML/Javascripti koodi muutmise kohta

See pole vajalik, kuid mul on olnud mõned taotlused.

Esitasin sellele Google'i dokumendile üksikasjad selle kohta, kuidas kasutada CyberChefi HTML/Javascripti ja failide camera_index.h baidimassiivide vahel edasi -tagasi teisendamiseks.

Soovitan: