Sisällysluettelo:

ESP32 -kamerarobotti - FPV: 6 vaihetta
ESP32 -kamerarobotti - FPV: 6 vaihetta

Video: ESP32 -kamerarobotti - FPV: 6 vaihetta

Video: ESP32 -kamerarobotti - FPV: 6 vaihetta
Video: DIY Drone ESP32 2024, Heinäkuu
Anonim
Image
Image
ESP32 -kamerarobotti - FPV
ESP32 -kamerarobotti - FPV
ESP32 -kamerarobotti - FPV
ESP32 -kamerarobotti - FPV

ESP32 -kameramoduuli on edullinen ja tehokas PLC. Se sisältää jopa kasvojentunnistuksen!

Rakennetaan First Person Viewpoint -robotti, jota ajetaan sisäisen verkkokäyttöliittymän kautta!

Tämä projekti käyttää Geekcreit ESP32 -moduulia OV2640 -kameran kanssa. Se perustuu AIThinker -moduuliin.

Siellä on monia erilaisia ESP32 -kameraklooneja. Jotkut toimivat, jotkut eivät. Ehdotan, että käytät samaa moduulia kuin minä, joten sinulla on hyvä mahdollisuus menestyä.

Robotti toimii seuraavasti.

ESP32 lähettää verkko-URL-osoitteen verkkoon, joka esittää live-videovirran ja jossain valintaruutuja joidenkin kameran toimintojen käyttämiseksi. Se vastaanottaa myös näppäimistöltä Web -sivulle lähetetyt näppäimen painallukset, jotka ovat robotille suunnattuja komentoja. Voit halutessasi rakentaa USB -ohjaussauvan, jotta voit ajaa robottia ohjaussauvalla näppäimistökomentojen kirjoittamisen sijaan.

Kun ESP32 vastaanottaa näppäinpainallukset, se välittää nämä tavut Arduino Nano -laitteelle, joka sitten ohjaa moottoreita saadakseen robotin liikkumaan.

Tämä projekti on kohtalaisen vaikea. Kaikessa rauhassa.

Aloitetaan!

Tarvikkeet

  • ESP -32 -kameramoduuli, jossa on OV2640 -kamera - suosittelen Geekcreit -tuotetta
  • Ulkoinen kiinnitettävä antenni ESP-32: lle signaalin voimakkuuden maksimoimiseksi
  • Arduino Nano
  • Arduino Leonardo Joystick -moduulille (tarvitsemme Leonardo -laitteen tarjoaman USB -näppäimistöemuloinnin)
  • Yleinen joystick -moduuli
  • L293D Quad H-silta
  • DC-DC Buck Coverter 5 V: n ulostulolla ESP32: n virransyöttöön
  • FTDI -sarjasovitin ESP32: n ohjelmointiin
  • Yleinen robottirunko, jossa on kaksi vaihdemoottoria - mikä tahansa alusta toimii. 3-6 V moottoreita suositellaan
  • 2 x 7,4 V: n 1300 mAh: n LiPo -akkua (tai vastaavaa) ESP32: n ja moottoreiden virransyöttöön
  • 1 x 9 V: n akku Arduino Nanon virransyöttöön

Vaihe 1: Ohjelmoi ESP32 -kamera

Ohjelmoi ESP32 -kamera
Ohjelmoi ESP32 -kamera
Ohjelmoi ESP32 -kamera
Ohjelmoi ESP32 -kamera

Liitä ESP32 -kamera FPDI -sovittimeen leipälevyn avulla seuraavasti:

FTDI ESP32

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

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

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

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

Liitä lisäksi nasta IO0 ("eye-oh-zero") GND: hen. Sinun on tehtävä tämä asettaaksesi ESP32 ohjelmointitilaan.

Pura esp32CameraWebRobotforInstructable.zip -tiedosto.

Tässä projektissa on 4 tiedostoa:

esp32CameraWebRobotforInstructable.ino on Arduino -luonnos.

ap_httpd.cpp on koodi, joka hallinnoi verkkopalvelinta ja käsittelee kameran ominaisuuksien asettamista verkkosivulta ja näppäinten painallusten vastaanottamista verkkosivulta.

camera_index.h sisältää verkkosovelluksen HTML-/JavaScript -koodin tavutaulukkona. Verkkosovelluksen muokkaaminen on paljon tämän hankkeen ulkopuolella. Lisään myöhemmin linkin HTML/JavaScriptin muokkaamiseen.

camera_pins.h on otsikkotiedosto, joka liittyy ESP32 -kameran nastan kokoonpanoon.

Jotta ESP32 voidaan asettaa ohjelmointitilaan, sinun on liitettävä IO0 ("eye-oh-zero") maahan.

Käynnistä Arduino IDE ja siirry kohtaan Työkalut/Taulut/Taulujen hallinta. Hae esp32 ja asenna esp32 -kirjasto.

Avaa projekti Arduino IDE: ssäsi.

Kirjoita reitittimesi verkkotunnus ja salasanasi yllä olevassa kuvassa korostetuille riveille. Tallenna projekti.

Siirry Työkalut -valikkoon ja tee valinnat yllä olevan kuvan mukaisesti.

Alusta: ESP32 Wrover

Latausnopeus: 115200

Osiointiohjelma: "Valtava APP (3 Mt ei OTA)"

ja valitse portti, johon FTDI -sovittimesi on liitetty.

Napsauta "Lataa" -painiketta.

Joskus ESP32 ei käynnisty. Ole siis valmis painamaan ESP32-laitteen takana olevaa RESET-painiketta, kun alat nähdä… ---… -merkkejä konsolissa latauksen aikana. Sen jälkeen lataus alkaa.

Kun konsolissa näkyy teksti "paina RST", lataus on valmis.

IRROTA IO0 maasta. Irrota FTDI -sovittimen ja ESP32: n välinen 3,3 V: n johto.

ESP32 -kamera vaatii paljon virtaa toimiakseen hyvin. Liitä 5V 2A -virtasovitin ESP32 -laitteen 5V- ja GND -nastoihin.

Avaa Serial Monitor, aseta baudinopeudeksi 115200 ja katso sitten, kuinka ESP32 käynnistyy uudelleen. Lopulta näet palvelimen URL -osoitteen.

Siirry selaimeesi ja kirjoita URL -osoite. Kun verkkosivusto latautuu, napsauta Aloita suoratoisto -painiketta ja live -videovirran pitäisi alkaa. Jos napsautat Floodlight-valintaruutua, sisäisen salaman LED-valon pitäisi syttyä. Varo! SE ON KIRKAS!

Vaihe 2: Rakenna robotti

Rakenna robotti
Rakenna robotti

Tarvitset kaksipyöräisen robotin alustan. Kuka tahansa tekee. Kokoa runko valmistajan ohjeiden mukaisesti.

Johda sitten robotti kaavion mukaisesti ja jätä akkuliitännät toistaiseksi.

L293D: tä käytetään moottorien ohjaamiseen. Huomaa, että sirun puoli lovi on ESP32: ta kohti.

Tyypillisesti Arduinolla tarvitaan kuusi nastaa kahden moottorin ohjaamiseen.

Tämä robotti vaatii vain 4 nastaa ja toimii edelleen täysin.

Nastat 1 ja 9 on kytketty Arduinon 5 V: n lähteeseen, joten ne ovat pysyvästi KORKEA. Robotin kytkeminen tällä tavalla tarkoittaa, että tarvitsemme kaksi vähemmän nastaa Arduinossa moottorien ohjaamiseen.

Eteenpäin suunnattuna INPUT -nastat on asetettu LOW -asentoon ja moottorin pulssiaaltomodulaatiotapit asetetaan arvoihin 0 ja 255, 0 tarkoittaa OFF ja 255 tarkoittaa suurinta nopeutta.

Käänteisessä suunnassa INPUT -nastat asetetaan HIGH -asentoon ja PWM -arvot käännetään. 0 tarkoittaa suurinta nopeutta ja 255 pois päältä.

Pura ja lataa ArduinoMotorControl -luonnos Arduino Nano -laitteeseen.

Vaihe 3: HEI! Hetkinen! Miksi tarvitsen Arduino Nanon?

Luultavasti ajattelet: "Hei! ESP32 -kamerassa on vähintään 4 IO -nastaa. Miksi en voi käyttää niitä moottoreiden ohjaamiseen?"

No, se on totta, ESP32: ssa on nastat seuraavasti:

IO0 - tarvitaan ESP32: n asettamiseen ohjelmointitilaan

IO2 - saatavana

IO4 - salaman LED

IO12, IO13, IO14, IO15, IO16 - muut GPIO -nastat.

Jos lataat perusluonnoksen ESP32: een ohjataksesi nastoja PWM -komennoilla, ne toimivat.

Kuitenkin, kun olet aktivoinut CAMERA -kirjastot luonnoksissasi, nämä nastat eivät ole enää käytettävissä.

Helpoin asia on siis vain käyttää nanoa moottorien ohjaamiseen PWM: n kautta ja lähettää komennot ESP32: sta sarjaliikenteellä yhden johdon (ESP32 U0T - Arduino Rx0) ja GND: n kautta. Erittäin yksinkertainen.

Vaihe 4: Yhdistä USB -ohjaussauva (valinnainen)

Voit ajaa robottia lähettämällä näppäimen painallukset verkkosivulle seuraavasti:

8 - Eteenpäin

9 - Eteenpäin oikea

7 - Eteenpäin vasen

4 - Kierrä vasemmalle

5 - Lopeta

1 - Käänteinen vasen

2 - Käänteinen

3 - Käännä oikea.

USB -joystick -luonnos muuntaa ohjaussauvan syötteet näppäinpainalluksiksi ja lähettää ne verkkokäyttöliittymään, joka välittää ne Arduinolle robotin ohjaamiseksi.

Liitä ohjaussauva Arduino LEONARDOon seuraavasti:

Leonardo -ohjaussauva

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

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

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

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

Avaa usbJoyStick -luonnos, valitse tauluksi Arduino Leonardo ja lataa se Leonardoon.

Jos haluat testata sitä, avaa vain tekstieditori tietokoneellasi, napsauta hiiren ikkunassa ja aloita ohjaussauvan siirtäminen. Sinun pitäisi nähdä arvot 1 - 9 ikkunassa

Vaihe 5: RETS

Ota hetki aikaa ja käy läpi johdotukset varmistaaksesi, että kaikki on oikein.

Liitä seuraavaksi paristot seuraavasti.

1. Käynnistä ESP32 -kamera. Verkkopalvelimen käynnistäminen kestää muutaman sekunnin.

2. Käynnistä Arduino Nano.

3. Käynnistä moottorit.

Käynnistä selain ja siirry ESP32: n URL -osoitteeseen.

Napsauta Aloita suoratoisto -painiketta.

Napsauta hiirtä jossain selainnäytössä niin, että näyttö on nyt keskittynyt.

Aloita robotin ajaminen ohjaussauvalla (tai näppäimistöllä).

Olen havainnut, että oletuskehyskoko toimii oikein lähetettäessä live -videota melko reagoivasti WiFi -yhteyden kautta. Kuitenkin, kun kasvatat kehyksen kokoa, virta muuttuu katkeruudeksi, koska yrität lähettää suurempia kuvia.

Tämä on haastava projekti, joka antaa sinulle mahdollisuuden aloittaa työskentely videon suoratoiston ja robotin ohjaamisen kanssa WiFi -yhteyden kautta. Toivottavasti pidit hauskaa!

MENE NYT JA TEE JOTAIN IHANA!

Tammikuun 2020 päivitys - Viimeiset valokuvat näyttävät robotin lopullisen version, kovajuotettuna ja tukevasti kiinni rungossa.

Edessä olevat kolme kytkintä ovat seuraavat:

Vasen - Moottorin akku

Keskellä - Arduino -akku

Oikea - ESP32 -kameran akku

Voisin käyttää yhtä isoa akkua joidenkin buck-boost-muuntajien kanssa (käytän yhtä ESP32: lle-se on edestä katsottavan kuvan oikeassa alakulmassa), mutta yksinkertaisuuden vuoksi pidän vain kolme akkua.

Robotti nyt tukiasemassa

Minusta on vaikeaa esitellä tätä robottia kotini ulkopuolella, koska koulun yritysverkko ei salli minun yhdistää robotin verkkopalvelinta siihen. Ratkaisuna tein tutkimusta ESP32 -verkkopalvelimen Access Point -ominaisuuden käytöstä. Se vaatii jonkin verran työtä, mutta vaatii melko vähäisiä muutoksia päärobotin luonnokseen, jotta ESP32 lähettää oman IP -osoitteen. Se ei ole yhtä tehokas kuin oma nopea wifi -keskitin (joskus roikkuu, jos liikut liian nopeasti), mutta se toimii varsin hyvin, ja nyt voin osoittaa robotin minne tahansa haluan liittämättä sitä verkkoon! Kun saat robotin toimimaan, kokeile muuntaa se itse Access Pointiksi!

Vaihe 6: Tietoja verkkopalvelimen HTML-/Javascript -koodin muokkaamisesta

Tämä ei ole välttämätöntä, mutta minulla on ollut joitain pyyntöjä.

Olen toimittanut tälle Google -asiakirjalle yksityiskohtaisia tietoja siitä, miten CyberChefin avulla voidaan muuntaa edestakaisin HTML/Javascript -tiedostojen ja tavut array -esitysten välillä kameran_index.h -tiedostossa.

Suositeltava: