INHOUDSOPGAWE:
- Voorrade
- Stap 1: Programmeer die ESP32 -kamera
- Stap 2: Bou die robot
- Stap 3: HEY! Wag 'n oomblik! Waarom het ek 'n Arduino Nano nodig?
- Stap 4: Verbind die USB -joystick (opsioneel)
- Stap 5: KOM ONS RIT
- Stap 6: Besonderhede oor hoe om die HTML/Javascript -kode vir die webbediener te verander
Video: ESP32 kamera robot - FPV: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Die ESP32 -kameramodule is 'n goedkoop en kragtige PLC. Dit bevat selfs gesigsherkenning!
Kom ons bou 'n First Person Viewpoint-robot waarmee u deur 'n ingeboude webkoppelvlak ry!
Hierdie projek gebruik die Geekcreit ESP32 -module met OV2640 -kamera. Dit is gebaseer op die AIThinker -module.
Daar is baie verskillende ESP32 -kamera -klone. Sommige werk, ander nie. Ek stel voor dat u dieselfde module as ek gebruik, sodat u 'n goeie geleentheid het om suksesvol te wees.
Die robot werk soos volg.
Die ESP32 saai 'n web-URL na u netwerk uit wat die lewendige videostroom bevat met 'n paar blokkies om sekere funksies van die kamera te bestuur. Dit ontvang ook sleutelpers wat vanaf die sleutelbord na die webblad gestuur word, wat rigtingsopdragte vir die robot is. Miskien wil u die USB -joystick -skild bou sodat u die robot met die joystick kan bestuur eerder as om sleutelbordopdragte in te tik.
As die ESP32 sleutelpers ontvang, stuur dit die grepe deur na die Arduino Nano wat die motors dan aandryf om die robot te laat beweeg.
Hierdie projek is van matige tot hoë moeilikheidsgraad. Neem asseblief u tyd.
Laat ons begin!
Voorrade
- ESP -32 kameramodule met OV2640 kamera - ek beveel die Geekcreit -produk aan
- Eksterne snap-on antenna vir die ESP-32 om die seinsterkte te maksimeer
- Arduino Nano
- Arduino Leonardo vir die joystick -module (ons benodig USB -sleutelbordemulasie wat deur die Leonardo verskaf word)
- Generiese joystick -module
- L293D Quad H-brug chip
- DC-DC Buck-omskakelaar met 5V-uitgang om die ESP32 aan te dryf
- FTDI Serial Adapter vir die programmering van die ESP32
- 'N Generiese robotonderstel met twee ratmotors - enige onderstel werk. 3 tot 6V motors word aanbeveel
- 2 x 7.4V 1300mAh LiPo -batterye (of soortgelyk) om die ESP32 en die motors aan te dryf
- 1 x 9V battery om die Arduino Nano aan te dryf
Stap 1: Programmeer die ESP32 -kamera
Koppel u ESP32 -kamera op 'n broodbord soos volg aan die FTDI -adapter:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Koppel ook pen IO0 ("eye-oh-zero") aan GND. U moet dit doen om die ESP32 in die programmeermodus te plaas.
Pak die esp32CameraWebRobotforInstructable.zip -lêer uit.
Daar is 4 lêers in hierdie projek:
esp32CameraWebRobotforInstructable.ino is die Arduino -skets.
ap_httpd.cpp is die kode wat die webbediener bestuur en handel oor die instelling van die kamerafunksies vanaf die webblad en die druk van sleutels van die webbladsy.
camera_index.h bevat die HTML/JavaScript -kode vir die webtoepassing as byte -skikkings. Die aanpassing van die webtoepassing is ver buite die omvang van hierdie projek. Ek sal 'n skakel insluit om later die HTML/JavaScript te verander.
camera_pins.h is die koplêer wat betrekking het op die speldkonfigurasie van die ESP32 -kamera.
Om die ESP32 in die programmeermodus te plaas, moet u IO0 ("eye-oh-zero") aan die grond koppel.
Begin u Arduino IDE en gaan na Tools/Boards/Boards Manager. Soek esp32 en installeer die esp32 -biblioteek.
Maak die projek oop in u Arduino IDE.
Plaas JOU router se netwerk -ID en JOU wagwoord in die lyne wat in die prent hierbo gemerk is. Stoor die projek.
Gaan na die menu Tools en maak die keuses soos in die prent hierbo getoon.
Bord: ESP32 Wrover
Oplaaisnelheid: 115200
Verdelingskema: "Enorme app (3 MB sonder OTA)"
en kies die poort waarmee u FTDI -adapter gekoppel is.
Klik op die knoppie "Laai op".
Soms begin die ESP32 nie oplaai nie. Wees dus gereed om op die RESET-knoppie aan die agterkant van die ESP32 te druk wanneer u die … --- … karakters in die konsole tydens die oplaai begin sien. Dit sal dan begin oplaai.
As u 'druk RST' op die konsole sien, is die oplaai voltooi.
KOPEL IO0 van die grond af. Ontkoppel die 3.3V -lyn tussen die FTDI -adapter en die ESP32.
Die ESP32 -kamera verg baie stroom om goed te werk. Koppel 'n 5V 2A -kragadapter aan die 5V- en GND -penne op die ESP32.
Maak die Serial Monitor oop, stel die baud -tempo op 115200 en kyk dan hoe die ESP32 herlaai. Uiteindelik sal u die URL vir die bediener sien.
Gaan na u blaaier en voer die URL in. As die webwerf gelaai is, klik op die 'Begin stroom' -knoppie en die regstreekse videostroom moet begin. As u op die boks 'Floodlight' klik, moet die ingeboude flits-LED brand. Passop! DIT IS HELDER!
Stap 2: Bou die robot
U benodig 'n tweewielige robot -onderstel. Enige een sal doen. Monteer die onderstel volgens die vervaardiger se instruksies.
Draai dan die robot op volgens die diagram. Laat die batteryaansluitings vir eers.
Die L293D word gebruik om die motors te beheer. Let daarop dat die halwe kerf op die skyf na die ESP32 is.
Gewoonlik is 6 penne op die Arduino nodig om twee motors te bestuur.
Hierdie robot benodig slegs 4 penne en werk steeds ten volle.
Spelde 1 en 9 is gekoppel aan die 5V bron van die Arduino, sodat hulle permanent HOOG is. Deur die robot op hierdie manier aan te sluit, het ons twee minder penne op die Arduino nodig om die motors te beheer.
In voorwaartse rigtings word die INPUT -penne op LAAG gestel en die motorpulsgolfmodulasie -penne is ingestel op waardes tussen 0 en 255 met 0 wat beteken OFF en 255 wat maksimum spoed beteken.
In omgekeerde rigtings word die INPUT -penne op HOOG gestel en die PWM -waardes word omgekeer. 0 beteken maksimum spoed en 255 beteken af.
Pak die ArduinoMotorControl -skets uit en laai dit op na die Arduino Nano.
Stap 3: HEY! Wag 'n oomblik! Waarom het ek 'n Arduino Nano nodig?
U dink waarskynlik: "Haai! Daar is ten minste 4 IO -penne op die ESP32 -kamera beskikbaar. Waarom kan ek dit nie gebruik om die motors te beheer nie?"
Dit is waar, daar is penne op die ESP32 soos volg:
IO0 - nodig om die ESP32 in die programmeermodus te plaas
IO2 - beskikbaar
IO4 - die flits -LED
IO12, IO13, IO14, IO15, IO16 - ekstra GPIO -penne.
As u net 'n basiese skets op die ESP32 laai om die penne met PWM -opdragte te beheer, werk dit wel.
As u egter die CAMERA -biblioteke in u sketse aktiveer, is hierdie penne nie meer beskikbaar nie.
Die maklikste om te doen is om 'n Nano te gebruik om die motors via PWM te beheer en die opdragte van die ESP32 te stuur deur seriële kommunikasie oor een draad (ESP32 U0T na Arduino Rx0) en GND. Baie eenvoudig.
Stap 4: Verbind die USB -joystick (opsioneel)
U kan die robot bestuur deur sleutelpersse soos volg na die webblad te stuur:
8 - Vorentoe
9 - Regs vorentoe
7 - vorentoe links
4 - Draai links
5 - Stop
1 - Links agter
2 - Omgekeer
3 - agteruit regs.
Die USB -joystick -skets vertaal die invoer van die joystick in sleutelpers en stuur dit na die webkoppelvlak wat dit na die Arduino stuur om die robot te bestuur.
Koppel die joystick soos volg aan die Arduino LEONARDO:
Leonardo joystick
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Maak die usbJoyStick -skets oop, kies Arduino Leonardo as die bord en laai dit op na die Leonardo.
As u dit wil toets, maak net 'n teksredakteur op u rekenaar oop, klik met die muis in die venster en begin die joystick beweeg. U moet die waardes van 1 tot 9 in die venster sien
Stap 5: KOM ONS RIT
Neem 'n rukkie en maak seker dat alles korrek is.
Koppel dan u batterye soos volg.
1. Skakel die ESP32 -kamera aan. Dit benodig 'n paar sekondes om die webbediener te begin.
2. Skakel die Arduino Nano aan.
3. Skakel die motors aan.
Begin u blaaier en gaan na die URL vir die ESP32.
Klik op die knoppie Begin stroom.
Klik met u muis iewers in die blaaierskerm sodat die skerm nou die fokus is.
Begin met u robot met die joystick (of sleutelbord).
Ek het gevind dat die standaard raamgrootte goed werk om die lewendige video redelik reageer via WiFi. As u die raamgrootte vergroot, word die stroom egter meer onstuimig omdat u groter beelde probeer uitsaai.
Dit is 'n uitdagende projek wat u die geleentheid bied om met lewendige videostroom te begin werk en 'n robot oor WiFi te bestuur. Ek hoop jy het dit lekker gevind!
GAAN NOU EN MAAK IETS WONDERLIK!
Update van Januarie 2020 - Die laaste foto's toon die finale weergawe van die robot, hardgesoldeer en stewig aan die onderstel gemonteer.
Die drie skakelaars aan die voorkant is soos volg:
Links - Motorkragbattery
Middel - Arduino -battery
Regs - ESP32 kamera battery
Ek kan 'n groot battery met 'n paar buk-boost-transformators gebruik (ek gebruik een vir die ESP32-dit is regs onder in die voorkantfoto), maar vir die eenvoud hou ek net die 3 batterye.
Robot nou op toegangspunt
Ek vind dit omslagtig om hierdie robot buite my huis te demonstreer, want my skoolondernemingsnetwerk laat my nie toe om die robotwebbediener daaraan te koppel nie. As oplossing het ek navorsing gedoen oor die gebruik van die Access Point -funksie van die ESP32 -webbediener. Dit verg 'n bietjie werk, maar dit verg redelik minimale veranderinge aan die hoofrobotskets om die ESP32 se eie IP -adres uit te saai. Dit is nie so kragtig soos 'n toegewyde hoëspoed -wifi -hub nie (hang soms as u te vinnig beweeg), maar dit werk redelik goed en nou kan ek die robot demonstreer waar ek wil sonder om dit aan 'n netwerk te hoef te koppel! Sodra u die robot aan die werk gekry het, probeer om dit self na toegangspunt te omskep!
Stap 6: Besonderhede oor hoe om die HTML/Javascript -kode vir die webbediener te verander
Dit is nie nodig nie, maar ek het 'n paar versoeke gehad.
Ek het hierdie Google -dokument besonderhede verskaf oor hoe u CyberChef kan gebruik om heen en weer te omskakel tussen HTML/Javascript en die byte -skikking -voorstellings in die camera_index.h -lêer.
Aanbeveel:
Time-lapse-kamera met behulp van die ESP32-CAM-bord: 6 stappe
Time-lapse-kamera met behulp van die ESP32-CAM-bord: Hierdie projek bou voort op die vorige digitale beeldkamera-projek en ons bou 'n time-lapse-kamera met behulp van die ESP32-CAM-bord. Al die beelde word in volgorde op die microSD -kaart gestoor en die bord gaan slaap nadat hy 'n prentjie geneem het om po
Aan die gang met ESP32 - Die installering van ESP32 -borde in Arduino IDE - ESP32 Knipper -kode: 3 stappe
Aan die gang met ESP32 | Die installering van ESP32 -borde in Arduino IDE | ESP32 Blink -kode: In hierdie instruksies sal ons sien hoe om met esp32 te begin werk en hoe om esp32 -borde in Arduino IDE te installeer, en ons sal esp 32 programmeer om 'n blink kode te gebruik met behulp van arduino ide
Voeg 'n PC Sync-aansluiting by 'n Nikon Sc-28 Ttl-kabel (gebruik outomatiese instellings vir 'n flits op die kamera en aktiveer die flits van die kamera !!): 4 stappe
Voeg 'n Pc Sync-aansluiting by 'n Nikon Sc-28 Ttl-kabel (gebruik outomatiese instellings vir 'n flits op die kamera en aktiveer flitsers van die kamera !!): in hierdie instruksies sal ek jou wys hoe om een van die lastige eie 3-pins TTL-aansluitings op te verwyder aan die kant van 'n Nikon SC-28-kamera met TTL-kabel en vervang dit met 'n standaard rekenaar-sinchronisasie-aansluiting. Hiermee kan u 'n spesiale flits gebruik
Stel u kamera in 'militêre nagvisie', voeg nagvisseffek by of skep 'n nagvisie -modus op enige kamera !!!: 3 stappe
Om u kamera in 'militêre Nightvision' te maak, Nightvision -effek by te voeg of NightVision -modus op enige kamera te skep !!!: *** Dit is ingeskryf vir die DIGITALE & DAG & FOTO FOTO & WEDSTryd, stem asseblief vir my ** *As u hulp nodig het, stuur 'n e -pos aan: [email protected] Ek praat Engels, Frans, Japannees, Spaans en ek ken ander tale as u
Neem ongelooflike makrofoto's met enige kamera -kamera Veral 'n iPhone: 6 stappe
Neem ongelooflike makro -foto's met enige kamera -telefoonkamera … Veral 'n iPhone: wou u ooit een van die wonderlike naby -foto's neem … die een wat sê: WOW!? … met 'n kamera -kamera nie minder nie !? Eintlik is dit 'n aanvullingsaanvulling vir enige kamera -kamera om u bestaande kameralens te vergroot om