Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Programmer ESP32 -kameraet
- Trin 2: Byg robotten
- Trin 3: HEJ! Vent lige lidt! Hvorfor har jeg brug for en Arduino Nano?
- Trin 4: Tilslut USB -joysticket (valgfrit)
- Trin 5: Lad os ride
- Trin 6: Oplysninger om, hvordan du ændrer HTML/Javascript -koden til webserveren
Video: ESP32 kamerarobot - FPV: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
ESP32 kameramodulet er en billig og kraftfuld PLC. Det inkluderer endda ansigtsgenkendelse!
Lad os bygge en First Person Viewpoint-robot, som du kører gennem en indbygget webgrænseflade!
Dette projekt bruger Geekcreit ESP32 modulet med OV2640 kamera. Det er baseret på AIThinker -modulet.
Der er mange forskellige ESP32 kamerakloner derude. Nogle virker, nogle gør ikke. Jeg vil foreslå, at du bruger det samme modul, som jeg gjorde, så du har en god mulighed for at få succes.
Robotten fungerer som følger.
ESP32 sender en web-URL til dit netværk, der viser live-videostrømmen med nogle afkrydsningsfelter til betjening af nogle funktioner i kameraet. Det modtager også tastetryk sendt til websiden fra tastaturet, der er retningskommandoer for robotten. Du vil måske bygge USB -joystick -skærmen, så du kan køre robotten med joysticket frem for at skrive tastaturkommandoer.
Når ESP32 modtager tastetryk, videresender den disse bytes til Arduino Nano, som derefter driver motorerne for at få robotten til at bevæge sig.
Dette projekt er af moderat til høj vanskelighed. Tag dig god tid.
Lad os komme igang!
Forbrugsvarer
- ESP -32 kameramodul med OV2640 kamera - jeg vil anbefale Geekcreit -produktet
- Ekstern snap-on antenne til ESP-32 for at maksimere signalstyrken
- Arduino Nano
- Arduino Leonardo til Joystick -modulet (vi har brug for USB -tastaturemulering leveret af Leonardo)
- Generisk joystick -modul
- L293D Quad H-brochip
- DC-DC Buck Coverter med 5V output til at drive ESP32
- FTDI Serial Adapter til programmering af ESP32
- Et generisk robotchassis med to gearmotorer - ethvert chassis fungerer. 3 til 6V motorer anbefales
- 2 x 7,4V 1300mAh LiPo -batterier (eller lignende) til at drive ESP32 og motorerne
- 1 x 9V batteri til strøm til Arduino Nano
Trin 1: Programmer ESP32 -kameraet
Brug et brødbræt til at slutte dit ESP32 -kamera til FTDI -adapteren som følger:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Tilslut desuden pin IO0 ("eye-oh-zero") til GND. Du skal gøre dette for at sætte ESP32 i programmeringstilstand.
Pak pakken esp32CameraWebRobotforInstructable.zip ud.
Der er 4 filer i dette projekt:
esp32CameraWebRobotforInstructable.ino er Arduino -skitsen.
ap_httpd.cpp er den kode, der administrerer webserveren og beskæftiger sig med indstilling af kamerafunktionerne fra websiden og modtagelse af tastetryk fra websiden.
camera_index.h indeholder HTML/JavaScript -koden til webapplikationen som byte -arrays. Ændring af webapplikationen er langt uden for omfanget af dette projekt. Jeg vil inkludere et link til, hvordan du senere ændrer HTML/JavaScript.
camera_pins.h er header -filen vedrørende pin -konfigurationen af ESP32 -kameraet.
For at sætte ESP32 i programmeringstilstand skal du slutte IO0 ("eye-oh-zero") til Ground.
Start din Arduino IDE og gå til Tools/Boards/Boards Manager. Søg efter esp32, og installer esp32 -biblioteket.
Åbn projektet i din Arduino IDE.
Sæt DIN routers netværks -ID og DIN adgangskode i linjerne fremhævet i billedet ovenfor. Gem projektet.
Gå til menuen Værktøjer, og vælg som vist på billedet ovenfor.
Bord: ESP32 Wrover
Uploadhastighed: 115200
Partitionsordning: "Kæmpe APP (3MB ingen OTA)"
og vælg den port, som din FTDI -adapter er tilsluttet.
Klik på knappen "Upload".
Nu, nogle gange, begynder ESP32 ikke at uploade. Så vær klar til at trykke på RESET-knappen på bagsiden af ESP32, når du begynder at se… ---… tegnene vises i konsollen under upload. Det vil derefter begynde at uploade.
Når du ser 'tryk på RST' på konsollen, er overførslen fuldført.
AFSLUT IO0 fra jorden. Afbryd 3.3V -ledningen mellem FTDI -adapteren og ESP32.
ESP32 -kameraet kræver meget strøm for at fungere godt. Tilslut en 5V 2A strømadapter til 5V- og GND -benene på ESP32.
Åbn den serielle skærm, indstil baudhastigheden til 115200, og se derefter, når ESP32 genstarter. Til sidst ser du webadressen til serveren.
Gå til din browser, og indtast webadressen. Når webstedet indlæses, skal du klikke på knappen 'Start streaming', og livevideostrømmen skal begynde. Hvis du klikker på afkrydsningsfeltet 'Floodlight', skal den indbyggede flash-LED lyse. Pas på! DET ER LYS!
Trin 2: Byg robotten
Du skal bruge et tohjulet robotchassis. Enhver vil gøre. Saml chassiset i henhold til producentens anvisninger.
Tilslut derefter robotten i henhold til diagrammet. Lad batteriforbindelserne stå nu.
L293D bruges til at styre motorerne. Bemærk, at den halve hak på chippen er mod ESP32.
Typisk er det nødvendigt med 6 ben på Arduino for at styre to motorer.
Denne robot kræver kun 4 ben og fungerer stadig fuldt ud.
Stifter 1 og 9 er forbundet til 5V -kilden til Arduino, så de er permanent HØJ. Kabelføring af robotten på denne måde betyder, at vi har brug for to færre stifter på Arduino for at styre motorerne.
I retning fremad er INPUT -benene indstillet til LAVT, og motorens pulsbølgemoduleringsstifter er indstillet til værdier mellem 0 og 255 med 0, der betyder OFF og 255, der betyder maksimal hastighed.
I omvendt retning sættes INPUT -benene til HIGH, og PWM -værdierne vendes om. 0 betyder maksimal hastighed og 255 betyder slukket.
Pak ud og upload ArduinoMotorControl -skitsen til Arduino Nano.
Trin 3: HEJ! Vent lige lidt! Hvorfor har jeg brug for en Arduino Nano?
Du tænker sikkert, "Hey! Der er mindst 4 IO -pins til rådighed på ESP32 -kameraet. Hvorfor kan jeg ikke bruge dem til at styre motorerne?"
Det er rigtigt, der er stifter på ESP32 som følger:
IO0 - nødvendig for at sætte ESP32 i programmeringstilstand
IO2 - tilgængelig
IO4 - Flash LED
IO12, IO13, IO14, IO15, IO16 - yderligere GPIO -ben.
Hvis du bare indlæser en grundlæggende skitse på ESP32 for at styre stifterne med PWM -kommandoer, virker de.
MEN når du aktiverer CAMERA -bibliotekerne i dine skitser, er disse pins ikke længere tilgængelige.
Så den letteste ting at gøre er bare at bruge en Nano til at styre motorerne via PWM og sende kommandoerne fra ESP32 ved seriel kommunikation over en ledning (ESP32 U0T til Arduino Rx0) og GND. Meget simpelt.
Trin 4: Tilslut USB -joysticket (valgfrit)
Du kan køre robotten ved at sende tastetryk til websiden som følger:
8 - Fremad
9 - Fremad til højre
7 - Fremad Venstre
4 - Drej til venstre
5 - Stop
1 - Tilbage til venstre
2 - Omvendt
3 - Tilbage til højre.
USB -joystick -skitsen oversætter joystick -input til tastetryk og sender dem til webgrænsefladen, der videresender dem til Arduino for at køre robotten.
Tilslut joysticket til Arduino LEONARDO som følger:
Leonardo joystick
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Åbn usbJoyStick -skitsen, vælg Arduino Leonardo som tavlen og upload den til Leonardo.
Hvis du vil teste det, skal du bare åbne et tekstredigeringsprogram på din computer, klikke med musen i vinduet og begynde at flytte joysticket. Du bør se værdierne fra 1 til 9, der vises i vinduet
Trin 5: Lad os ride
Brug lidt tid og gå over dine ledninger for at sikre, at alt er korrekt.
Tilslut derefter dine batterier som følger.
1. Tænd for ESP32 -kameraet. Det tager et par sekunder at starte webserveren.
2. Tænd for Arduino Nano.
3. Tænd motorerne.
Start din browser, og gå til URL'en til ESP32.
Klik på knappen Start streaming.
Klik med musen et sted i browserskærmen, så skærmen nu er i fokus.
Start med at køre din robot med joysticket (eller tastaturet).
Jeg har fundet ud af, at standardrammestørrelsen fungerer i orden til udsendelse af livevideoen temmelig lydhør over WiFi. Men når du øger rammestørrelsen, bliver strømmen mere urolig, fordi du forsøger at udsende større billeder.
Dette er et udfordrende projekt, der giver dig mulighed for at begynde at arbejde med live video streaming og køre en robot over WiFi. Jeg håber, at du fandt det sjovt!
GÅ NU OG GØR NOGET FORFÆRDIGT!
Januar 2020 -opdatering - De sidste fotos viser den sidste version af robotten, hårdloddet og sikkert monteret på chassiset.
De tre frontmonterede kontakter er som følger:
Venstre - Motorens batteri
Center - Arduino batteri
Højre - ESP32 kamerabatteri
Jeg kunne bruge et stort batteri med nogle buck-boost-transformere (jeg bruger et til ESP32-det er nederst til højre på billedet set forfra), men for enkelhedens skyld beholder jeg bare de 3 batterier.
Robot nu på Access Point
Jeg finder det besværligt at demonstrere denne robot uden for mit hjem, fordi mit skolevirksomheds netværk ikke tillader mig at forbinde robotwebserveren til den. Som en løsning undersøgte jeg om brug af Access Point -funktionen på ESP32 -webserveren. Det kræver noget arbejde, men det kræver temmelig minimale ændringer af hovedrobotskitsen for at få ESP32 til at udsende sin egen IP -adresse. Det er ikke så kraftfuldt som en dedikeret højhastigheds wifi -hub (hænger nogle gange, hvis du bevæger dig for hurtigt), men det fungerer ganske godt, og nu kan jeg demonstrere robotten hvor som helst, jeg vil uden at skulle tilslutte den til et netværk! Når du får robotten til at fungere, kan du prøve at konvertere den til Access Point selv!
Trin 6: Oplysninger om, hvordan du ændrer HTML/Javascript -koden til webserveren
Dette er ikke nødvendigt, men jeg har haft nogle anmodninger.
Jeg har givet denne Google Doc detaljer om, hvordan man bruger CyberChef til at konvertere frem og tilbage mellem HTML/Javascript og byte -array -repræsentationer i filen camera_index.h.
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
ESP32 Bluetooth -vejledning - Sådan bruges indbygget Bluetooth af ESP32: 5 trin
ESP32 Bluetooth -vejledning | Sådan bruges indbygget Bluetooth af ESP32: Hej fyre Siden ESP32 -kortet leveres med WiFi & Bluetooth begge, men for vores mesteprojekter bruger vi normalt kun Wifi, vi bruger ikke Bluetooth.Så i denne instruktion viser jeg, hvor let det er at bruge Bluetooth af ESP32 & Til dine grundlæggende projekter
Kom godt i gang med ESP32 CAM - Streaming af video ved hjælp af ESP CAM over Wifi - ESP32 sikkerhedskamera projekt: 8 trin
Kom godt i gang med ESP32 CAM | Streaming af video ved hjælp af ESP CAM over Wifi | ESP32 Security Camera Project: I dag lærer vi, hvordan man bruger dette nye ESP32 CAM -kort, og hvordan vi kan kode det og bruge det som et sikkerhedskamera og få en streaming video over wifi
Kom godt i gang med ESP32 - Installation af ESP32 -plader i Arduino IDE - ESP32 Blink -kode: 3 trin
Kom godt i gang med ESP32 | Installation af ESP32 -plader i Arduino IDE | ESP32 Blink -kode: I denne instruks kan vi se, hvordan man begynder at arbejde med esp32, og hvordan man installerer esp32 -kort i Arduino IDE, og vi vil programmere esp 32 til at køre blinkkode ved hjælp af arduino ide