Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41
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
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
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:
Ammattimainen sääasema käyttäen ESP8266- ja ESP32 -DIY: 9 vaihetta (kuvilla)
Ammattimainen sääasema käyttämällä ESP8266- ja ESP32 -DIY: LineaMeteoStazione on täydellinen sääasema, joka voidaan liittää Sensirionin ammattitunnistimiin sekä joihinkin Davis -instrumenttikomponentteihin (sademittari, tuulimittari)
ESP32 TTGO WiFi -signaalin voimakkuus: 8 vaihetta (kuvilla)
ESP32 TTGO WiFi -signaalin voimakkuus: Tässä opetusohjelmassa opimme näyttämään WiFi -verkon signaalin voimakkuuden käyttämällä ESP32 TTGO -korttia
ESP32 Bluetooth -opetusohjelma - ESP32: n sisäänrakennetun Bluetoothin käyttö: 5 vaihetta
ESP32 Bluetooth -opetusohjelma | ESP32: n sisäänrakennetun Bluetoothin käyttäminen: Hei kaverit Koska ESP32 -kortin mukana tulee WiFi ja amp; Bluetooth molemmilla, mutta useimmissa projekteissamme käytämme yleensä vain Wifi -yhteyttä, emme käytä Bluetoothia, joten näissä ohjeissa näytän kuinka helppoa on käyttää ESP32 & Perusprojekteihisi
ESP32 CAM -laitteen käytön aloittaminen - Videon suoratoisto ESP CAM: n avulla Wifi -yhteyden kautta - ESP32 -turvakameraprojekti: 8 vaihetta
ESP32 CAM -laitteen käytön aloittaminen | Videon suoratoisto ESP CAM: n avulla Wifi -yhteyden kautta | ESP32 -turvakameraprojekti: Tänään opimme käyttämään tätä uutta ESP32 CAM -korttia ja miten voimme koodata sen ja käyttää sitä turvakamerana ja saada suoratoistovideon wifi -yhteyden kautta
ESP32: n käytön aloittaminen - ESP32 -levyjen asentaminen Arduino IDE: hen - ESP32 vilkkuva koodi: 3 vaihetta
ESP32: n käytön aloittaminen | ESP32 -levyjen asentaminen Arduino IDE: hen | ESP32 Blink Code: Tässä ohjeessa näemme, kuinka aloittaa työskentely esp32: n kanssa ja miten asennetaan esp32 -levyt Arduino IDE: hen, ja ohjelmoimme esp 32: n suorittamaan vilkkuva koodi käyttämällä arduino ide