Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Programmer ESP32 -kameraet
- Trinn 2: Bygg roboten
- Trinn 3: HEY! Vent et sekund! Hvorfor trenger jeg en Arduino Nano?
- Trinn 4: Koble opp USB -joysticken (valgfritt)
- Trinn 5: La oss ri
- Trinn 6: Detaljer om hvordan du endrer HTML/Javascript -koden for webserveren
Video: ESP32 kamerarobot - FPV: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
ESP32 -kameramodulen er en billig og kraftig PLS. Det inkluderer til og med ansiktsgjenkjenning!
La oss bygge en First Person Viewpoint-robot som du kjører gjennom et innebygd webgrensesnitt!
Dette prosjektet bruker Geekcreit ESP32 -modulen med OV2640 -kamera. Den er basert på AIThinker -modulen.
Det er mange forskjellige ESP32 kamerakloner der ute. Noen jobber, andre ikke. Jeg vil foreslå at du bruker den samme modulen som jeg gjorde, slik at du har en god mulighet til å lykkes.
Roboten fungerer som følger.
ESP32 sender en nettadresse til nettverket ditt som viser live videostrømmen med noen avmerkingsbokser for å betjene noen av funksjonene til kameraet. Den mottar også tastetrykk som sendes til nettsiden fra tastaturet som er retningskommandoer for roboten. Det kan være lurt å bygge USB -joystick -skjoldet slik at du kan kjøre roboten med joysticken i stedet for å skrive tastaturkommandoer.
Når ESP32 mottar tastetrykk, videresender den byte til Arduino Nano som deretter driver motorene for å få roboten til å bevege seg.
Dette prosjektet er av middels til høy vanskelighet. Vennligst ta den tiden du trenger.
La oss komme i gang!
Rekvisita
- ESP -32 kameramodul med OV2640 kamera - Jeg vil anbefale Geekcreit -produktet
- Ekstern snap-on-antenne for ESP-32 for å maksimere signalstyrken
- Arduino Nano
- Arduino Leonardo for joystick -modulen (vi trenger USB -tastaturemulering levert av Leonardo)
- Generisk joystick -modul
- L293D Quad H-brobrikke
- DC-DC Buck Coverter med 5V utgang for å drive ESP32
- FTDI Serial Adapter for programmering av ESP32
- Et generisk robotchassis med to girmotorer - ethvert chassis vil fungere. 3 til 6V motorer anbefales
- 2 x 7,4V 1300mAh LiPo -batterier (eller lignende) for å drive ESP32 og motorene
- 1 x 9V batteri for å drive Arduino Nano
Trinn 1: Programmer ESP32 -kameraet
Koble ESP32 -kameraet til FTDI -adapteren på følgende måte med et brødbrett:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
I tillegg kobler du pin IO0 ("eye-oh-zero") til GND. Du må gjøre dette for å sette ESP32 i programmeringsmodus.
Pakk ut filen esp32CameraWebRobotforInstructable.zip.
Det er 4 filer i dette prosjektet:
esp32CameraWebRobotforInstructable.ino er Arduino -skissen.
ap_httpd.cpp er koden som administrerer webserveren og omhandler innstilling av kamerafunksjonene fra websiden og mottak av tastetrykk fra websiden.
camera_index.h inneholder HTML/JavaScript -koden for webprogrammet som byte -matriser. Å endre webapplikasjonen er langt utenfor omfanget av dette prosjektet. Jeg vil inkludere en lenke for hvordan du endrer HTML/JavaScript senere.
camera_pins.h er overskriftsfilen som gjelder pin -konfigurasjonen til ESP32 -kameraet.
For å sette ESP32 i programmeringsmodus, må du koble IO0 ("eye-oh-zero") til Ground.
Start Arduino IDE og gå til Tools/Boards/Boards Manager. Søk etter esp32 og installer esp32 -biblioteket.
Åpne prosjektet i din Arduino IDE.
Sett din ruters nettverks -ID og passordet ditt i linjene som er markert i bildet ovenfor. Lagre prosjektet.
Gå til Verktøy -menyen og velg som vist på bildet ovenfor.
Brett: ESP32 Wrover
Last opp hastighet: 115200
Partisjonsskjema: "Stor APP (3MB ingen OTA)"
og velg porten som FTDI -adapteren er koblet til.
Klikk på "Last opp" -knappen.
Noen ganger begynner ikke ESP32 å laste opp. Så vær klar til å trykke på RESET-knappen på baksiden av ESP32 når du begynner å se… ---… tegnene vises i konsollen under opplasting. Den vil deretter begynne å laste opp.
Når du ser "trykk på RST" på konsollen, er opplastingen fullført.
KOBLING IO0 fra bakken. Koble fra 3.3V -ledningen mellom FTDI -adapteren og ESP32.
ESP32 -kameraet krever mye strøm for å fungere godt. Koble en 5V 2A strømadapter til 5V- og GND -pinnene på ESP32.
Åpne Serial Monitor, sett overføringshastigheten til 115200, og se deretter på når ESP32 starter på nytt. Til slutt ser du URL -adressen til serveren.
Gå til nettleseren din og skriv inn nettadressen. Når nettstedet lastes inn, klikker du på "Start Streaming" -knappen og live videostrømmen skal begynne. Hvis du klikker på avmerkingsboksen 'Floodlight', bør den innebygde blitslampen lyse. Pass på! DET ER LYS!
Trinn 2: Bygg roboten
Du trenger et tohjuls robotchassis. Enhver vil gjøre. Monter chassiset i henhold til produsentens instruksjoner.
Deretter kabler du opp roboten i henhold til diagrammet. La batterikoblingen stå for øyeblikket.
L293D brukes til å kontrollere motorene. Legg merke til at halvhakk på brikken er MOT ESP32.
Vanligvis trengs det 6 pinner på Arduino for å kontrollere to motorer.
Denne roboten krever bare 4 pinner og fungerer fortsatt fullt ut.
Pins 1 og 9 er koblet til 5V -kilden til Arduino, så de er permanent HIGH. Kabling av roboten på denne måten betyr at vi trenger to færre pinner på Arduino for å kontrollere motorene.
I retning fremover er INPUT -pinnene satt til LOW og motorens pulsbølgemoduleringspinner er satt til verdier mellom 0 og 255 med 0 som betyr OFF og 255 som betyr maksimal hastighet.
I omvendt retning er INPUT -pinnene satt til HIGH og PWM -verdiene er reversert. 0 betyr maksimal hastighet og 255 betyr av.
Pakk ut og last opp ArduinoMotorControl -skissen til Arduino Nano.
Trinn 3: HEY! Vent et sekund! Hvorfor trenger jeg en Arduino Nano?
Du tenker sikkert: "Hei! Det er minst 4 IO -pinner tilgjengelig på ESP32 -kameraet. Hvorfor kan jeg ikke bruke dem til å styre motorene?"
Vel, det er sant, det er pinner på ESP32 som følger:
IO0 - nødvendig for å sette ESP32 i programmeringsmodus
IO2 - tilgjengelig
IO4 - Flash LED
IO12, IO13, IO14, IO15, IO16 - ekstra GPIO -pinner.
Hvis du bare laster en grunnskisse på ESP32 for å kontrollere pinnene med PWM -kommandoer, fungerer de.
MEN når du aktiverer CAMERA -bibliotekene i skissene dine, er disse pinnene ikke lenger tilgjengelige.
Så det enkleste er å bare bruke en Nano til å kontrollere motorene via PWM og sende kommandoene fra ESP32 ved seriell kommunikasjon over en ledning (ESP32 U0T til Arduino Rx0) og GND. Veldig enkelt.
Trinn 4: Koble opp USB -joysticken (valgfritt)
Du kan kjøre roboten ved å sende tastetrykk til websiden som følger:
8 - Fremover
9 - Fremover Høyre
7 - Fremover venstre
4 - Roter til venstre
5 - Stopp
1 - Revers Venstre
2 - Omvendt
3 - Bakover til høyre.
USB -joystick -skissen oversetter joystickinngangene til tastetrykk og sender dem til webgrensesnittet som videresender dem til Arduino for å kjøre roboten.
Koble joysticken til Arduino LEONARDO på følgende måte:
Leonardo joystick
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Åpne usbJoyStick -skissen, velg Arduino Leonardo som tavle og last den opp til Leonardo.
Hvis du vil teste det, åpner du bare et tekstredigeringsprogram på datamaskinen, klikker på musen i vinduet og begynner å flytte joysticken. Du bør se verdiene fra 1 til 9 som vises i vinduet
Trinn 5: La oss ri
Ta deg tid og gå over ledningene for å kontrollere at alt er riktig.
Deretter kobler du batteriene som følger.
1. Slå på ESP32 -kameraet. Det trenger noen sekunder å starte webserveren.
2. Slå på Arduino Nano.
3. Slå på motorene.
Start nettleseren og gå til URL -adressen til ESP32.
Klikk på Start streaming.
Klikk musen et sted i nettleserskjermen slik at skjermen nå er i fokus.
Begynn å kjøre roboten med joysticken (eller tastaturet).
Jeg har funnet ut at standardrammestørrelsen fungerer greit for å kringkaste livevideoen ganske responsivt over WiFi. Men etter hvert som du øker rammestørrelsen, blir strømmen mer hakkete fordi du prøver å kringkaste større bilder.
Dette er et utfordrende prosjekt som gir deg muligheten til å begynne å jobbe med live videostrømming og kjøre en robot over WiFi. Jeg håper du synes det var gøy!
GÅ NÅ OG GJØR NOE UNDERLIGT!
Januar 2020 -oppdatering - De siste bildene viser den endelige versjonen av roboten, hardloddet og sikkert montert på kabinettet.
De tre frontmonterte bryterne er som følger:
Venstre - Motorbatteri
Senter - Arduino -batteri
Høyre - ESP32 kamerabatteri
Jeg kan bruke ett stort batteri med noen buk-boost-transformatorer (jeg bruker en til ESP32-den er nederst til høyre på bildet foran), men for enkelhets skyld beholder jeg bare de 3 batteriene.
Robot nå på Access Point
Jeg synes det er tungvint å demonstrere denne roboten utenfor hjemmet mitt fordi skolens virksomhetsnettverk ikke tillater meg å koble robotens webserver til den. Som en løsning forsket jeg på bruk av Access Point -funksjonen på ESP32 -webserveren. Det krever litt arbeid, men krever ganske minimale endringer i hovedrobotteskissen for å få ESP32 til å sende sin egen IP -adresse. Det er ikke så kraftig som et dedikert høyhastighets wifi -hub (noen ganger henger hvis du beveger deg for fort), men det fungerer ganske bra, og nå kan jeg demonstrere roboten hvor jeg vil uten å måtte koble den til et nettverk! Når du får roboten til å fungere, kan du prøve å konvertere den til Access Point selv!
Trinn 6: Detaljer om hvordan du endrer HTML/Javascript -koden for webserveren
Dette er ikke nødvendig, men jeg har hatt noen forespørsler.
Jeg har gitt denne Google -dokumentet informasjon om hvordan du bruker CyberChef til å konvertere frem og tilbake mellom HTML/Javascript og byte -array -representasjonene i camera_index.h -filen.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
ESP32 Bluetooth -opplæring - Slik bruker du innebygd Bluetooth av ESP32: 5 trinn
ESP32 Bluetooth -opplæring | Hvordan bruke innebygd Bluetooth av ESP32: Hei folkens siden ESP32 -kortet kommer med WiFi & Bluetooth begge, men for de fleste prosjektene bruker vi vanligvis bare Wifi, vi bruker ikke Bluetooth. Så i denne instruksjonene viser jeg hvor enkelt det er å bruke Bluetooth av ESP32 & For dine grunnleggende prosjekter
Komme i gang med ESP32 CAM - Streaming av video ved bruk av ESP CAM over Wifi - ESP32 sikkerhetskamera -prosjekt: 8 trinn
Komme i gang med ESP32 CAM | Streaming av video ved bruk av ESP CAM over Wifi | ESP32 Security Camera Project: I dag lærer vi hvordan du bruker dette nye ESP32 CAM -kortet og hvordan vi kan kode det og bruke det som et sikkerhetskamera og få en streaming video over wifi
Komme i gang med ESP32 - Installere ESP32 -kort i Arduino IDE - ESP32 Blink -kode: 3 trinn
Komme i gang med ESP32 | Installere ESP32 -kort i Arduino IDE | ESP32 Blink -kode: I denne instruksjonsboken vil vi se hvordan du begynner å jobbe med esp32 og hvordan du installerer esp32 -kort i Arduino IDE, og vi vil programmere esp 32 for å kjøre blinkkode ved hjelp av arduino ide