Obsah:
- Zásoby
- Krok 1: Naprogramujte kameru ESP32
- Krok 2: Zostavte robota
- Krok 3: AHOJ! Počkaj! Prečo potrebujem Arduino Nano?
- Krok 4: Pripojte joystick USB (voliteľné)
- Krok 5: JAZĎME
- Krok 6: Podrobnosti o úprave kódu HTML/Javascript pre webový server
Video: Kamerový robot ESP32 - FPV: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Modul kamery ESP32 je lacné a výkonné PLC. Obsahuje dokonca aj rozpoznávanie tváre!
Postavme robota z pohľadu prvej osoby, ktorého ovládate prostredníctvom palubného webového rozhrania!
Tento projekt používa modul Geekcreit ESP32 s kamerou OV2640. Je založený na module AIThinker.
Existuje mnoho rôznych klonov kamier ESP32. Niektoré fungujú, niektoré nie. Navrhoval by som, aby ste použili ten istý modul, ktorý som použil ja, aby ste mali dobrú príležitosť byť úspešní.
Robot funguje nasledovne.
ESP32 vysiela do vašej siete webovú adresu, ktorá zobrazuje stream živého videa s niektorými zaškrtávacími políčkami na ovládanie niektorých funkcií kamery. Prijíma tiež stlačenia klávesov odoslané na webovú stránku z klávesnice, ktoré sú smerovými príkazmi pre robota. Možno budete chcieť postaviť štít joysticku USB, aby ste mohli robota riadiť joystickom, a nie písať príkazy na klávesnici.
Keď ESP32 prijme stlačenie klávesov, postúpi tieto bajty Arduino Nano, ktoré potom poháňa motory, aby sa robot rozhýbal.
Tento projekt je stredne vysokej náročnosti. Nájdite si čas.
Začnime!
Zásoby
- Modul kamery ESP -32 s kamerou OV2640 - odporúčam produkt Geekcreit
- Externá zacvakávacia anténa pre ESP-32 na maximalizáciu sily signálu
- Arduino Nano
- Arduino Leonardo pre modul Joystick (potrebujeme emuláciu klávesnice USB, ktorú poskytuje Leonardo)
- Generický modul joysticku
- L293D Quad H-mostíkový čip
- Kryt Buck DC-DC s výstupom 5 V na napájanie ESP32
- Sériový adaptér FTDI na programovanie ESP32
- Generický podvozok robota s dvoma prevodovými motormi - akýkoľvek podvozok bude fungovať. Odporúčajú sa 3 až 6V motory
- 2 x 7,4 V 1300 mAh LiPo batérie (alebo podobné) na napájanie ESP32 a motorov
- 1 x 9V batéria na napájanie Arduino Nano
Krok 1: Naprogramujte kameru ESP32
Pripojte svoju kameru ESP32 pomocou adaptéra k adaptéru FTDI nasledovne:
FTDI ESP32
3,3V ----------- 3,3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Okrem toho pripojte pin IO0 („eye-oh-zero“) k GND. Musíte to urobiť, aby ste ESP32 uviedli do režimu programovania.
Rozbaľte súbor esp32CameraWebRobotforInstructable.zip.
V tomto projekte sú 4 súbory:
esp32CameraWebRobotforInstructable.ino je skica Arduino.
ap_httpd.cpp je kód, ktorý spravuje webový server a zaoberá sa nastavením funkcií fotoaparátu z webovej stránky a prijímaním stlačení klávesov z webovej stránky.
camera_index.h obsahuje kód HTML/JavaScript pre webovú aplikáciu ako bajtové polia. Úprava webovej aplikácie je nad rámec tohto projektu. Neskôr priložím odkaz, ako upraviť HTML/JavaScript.
camera_pins.h je hlavičkový súbor týkajúci sa konfigurácie pinov kamery ESP32.
Ak chcete prepnúť ESP32 do programovacieho režimu, musíte pripojiť IO0 („eye-oh-zero“) k zemi.
Spustite Arduino IDE a prejdite na Nástroje/Dosky/Správca dosiek. Vyhľadajte súbor esp32 a nainštalujte si knižnicu esp32.
Otvorte projekt vo svojom Arduino IDE.
Do riadkov zvýraznených na obrázku vyššie zadajte ID siete a heslo vášho smerovača. Uložte projekt.
Prejdite do ponuky Nástroje a vykonajte výbery, ako je znázornené na obrázku vyššie.
Doska: ESP32 Wrover
Rýchlosť nahrávania: 115200
Schéma oddielov: „Obrovská aplikácia (3 MB bez OTA)“
a vyberte port, ku ktorému je pripojený váš adaptér FTDI.
Kliknite na tlačidlo „Nahrať“.
Teraz niekedy ESP32 nezačne nahrávať. Buďte pripravení stlačiť tlačidlo RESET na zadnej strane ESP32, keď sa vám počas nahrávania začnú zobrazovať znaky … --- … v konzole. Potom sa začne nahrávať.
Keď na konzole uvidíte „stlačte RST“, odovzdanie je dokončené.
ODPOJTE IO0 od zeme. Odpojte vedenie 3,3 V medzi adaptérom FTDI a ESP32.
Kamera ESP32 vyžaduje na správnu funkciu veľa prúdu. Pripojte 5V 2A napájací adaptér k pinom 5V a GND na ESP32.
Otvorte sériový monitor, nastavte prenosovú rýchlosť na 115200 a sledujte, ako sa ESP32 reštartuje. Nakoniec sa vám zobrazí adresa URL servera.
Prejdite do prehliadača a zadajte adresu URL. Keď sa webová stránka načíta, kliknite na tlačidlo „Spustiť streamovanie“a živé video prenos by sa mal začať. Ak kliknete na začiarkavacie políčko „Floodlight“, mala by sa rozsvietiť dióda LED integrovaného blesku. Pozor! JE TO JASNÉ!
Krok 2: Zostavte robota
Potrebujete dvojkolesový podvozok robota. Každý to urobí. Zostavte podvozok podľa pokynov výrobcu.
Potom zapojte robota podľa schémy. Pripojenia batérie zatiaľ nechajte.
L293D sa používa na ovládanie motorov. Všimnite si, že polovičný zárez na čipe je K ESP32.
Na ovládanie dvoch motorov je na Arduine spravidla potrebných 6 pinov.
Tento robot vyžaduje iba 4 piny a stále plne funguje.
Piny 1 a 9 sú pripojené k 5V zdroju Arduina, takže sú trvalo VYSOKÉ. Zapojenie robota týmto spôsobom znamená, že na ovládanie motorov potrebujeme na Arduine o dva piny menej.
V smere dopredu sú VSTUPNÉ piny nastavené na NÍZKU a kolíky modulácie pulznej vlny motora sú nastavené na hodnoty medzi 0 a 255, pričom 0 znamená OFF a 255 znamená maximálnu rýchlosť.
V opačnom smere sú VSTUPNÉ piny nastavené na VYSOKÉ a hodnoty PWM sú obrátené. 0 znamená maximálnu rýchlosť a 255 znamená vypnuté.
Rozbaľte a nahrajte skicu ArduinoMotorControl do Arduino Nano.
Krok 3: AHOJ! Počkaj! Prečo potrebujem Arduino Nano?
Pravdepodobne si myslíte: „Hej! Na kamere ESP32 sú k dispozícii najmenej 4 piny IO. Prečo ich nemôžem použiť na ovládanie motorov?“
Je pravda, že na ESP32 sú kolíky nasledovne:
IO0 - potrebné na uvedenie ESP32 do programovacieho režimu
IO2 - k dispozícii
IO4 - Flash LED
IO12, IO13, IO14, IO15, IO16 - ďalšie piny GPIO.
Ak do ESP32 načítate základný náčrt na ovládanie pinov pomocou príkazov PWM, fungujú.
Akonáhle však vo svojich náčrtkoch aktivujete knižnice CAMERA, tieto piny už nebudú k dispozícii.
Najjednoduchšie je použiť Nano na ovládanie motorov pomocou PWM a odosielať príkazy z ESP32 sériovou komunikáciou cez jeden vodič (ESP32 U0T k Arduino Rx0) a GND. Veľmi jednoduché.
Krok 4: Pripojte joystick USB (voliteľné)
Robota môžete riadiť odoslaním stlačení klávesov na webovú stránku nasledovne:
8 - Vpred
9 - Vpred vpravo
7 - Vpred vľavo
4 - Otočiť doľava
5 - Zastavte sa
1 - Spätný chod doľava
2 - Spätný chod
3 - Spiatočka vpravo.
Náčrt joysticku USB prevádza vstupy joysticku na stlačenia klávesov a odosiela ich do webového rozhrania, ktoré ich presmeruje do Arduina na riadenie robota.
Pripojte joystick k Arduino LEONARDO nasledovne:
Leonardo Joystick
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Otvorte skicu usbJoyStick, vyberte dosku Arduino Leonardo a nahrajte ju do Leonarda.
Ak to chcete otestovať, stačí otvoriť v počítači textový editor, kliknúť myšou v okne a začať pohybovať joystickom. V okne by ste mali vidieť hodnoty od 1 do 9
Krok 5: JAZĎME
Nájdite si čas a skontrolujte zapojenie, aby ste sa presvedčili, že je všetko v poriadku.
Ďalej zapojte batérie nasledovne.
1. Zapnite kameru ESP32. Spustenie webového servera trvá niekoľko sekúnd.
2. Zapnite Arduino Nano.
3. Zapnite motory.
Spustite prehliadač a prejdite na adresu URL pre ESP32.
Kliknite na tlačidlo Spustiť streamovanie.
Kliknite myšou kamkoľvek na obrazovku prehliadača, aby sa teraz zaostrovalo na obrazovku.
Začnite riadiť svojho robota pomocou joysticku (alebo klávesnice).
Zistil som, že predvolená veľkosť rámca funguje dobre pri vysielaní živého videa pomerne citlivo cez WiFi. Keď však zvýšite veľkosť snímok, stream bude nejasný, pretože sa pokúšate vysielať väčšie obrázky.
Ide o náročný projekt, ktorý vám dáva príležitosť začať pracovať so živým streamovaním videa a riadiť robota cez WiFi. Dúfam, že vás to bavilo!
HNED TERAZ A VYROBTE NIEČO ÚŽASNÉ!
Aktualizácia z januára 2020 - Na posledných fotografiách je konečná verzia robota, tvrdo spájkovaná a bezpečne namontovaná na podvozku.
Tri prepínače umiestnené vpredu sú nasledujúce:
Vľavo - batéria motora
Stred - batéria Arduino
Vpravo - batéria fotoaparátu ESP32
Mohol by som použiť jednu veľkú batériu s niektorými transformátormi typu boost (používam jednu pre ESP32-je v pravom dolnom rohu fotografie z predného pohľadu), ale kvôli jednoduchosti ponechám iba 3 batérie.
Robot teraz na prístupovom bode
Považujem za ťažkopádne predvádzať tohto robota mimo svojho domova, pretože mi sieť školských podnikov neumožňuje pripojiť k nemu webový server robotov. Ako riešenie som vykonal výskum použitia funkcie Access Point na webovom serveri ESP32. Na to, aby ESP32 vysielalo vlastnú IP adresu, vyžaduje si to trochu práce, ale vyžaduje to pomerne minimálne zmeny v hlavnom náčrte robota. Nie je to také výkonné ako vyhradený vysokorýchlostný wifi hub (niekedy visí, ak sa pohybujete príliš rýchlo), ale funguje to celkom dobre a teraz môžem robot predviesť kdekoľvek chcem, bez toho, aby som ho musel pripájať k sieti! Keď robot uvediete do prevádzky, skúste ho previesť na prístupový bod sami!
Krok 6: Podrobnosti o úprave kódu HTML/Javascript pre webový server
Nie je to potrebné, ale mal som niekoľko žiadostí.
Tento dokument Google som poskytol podrobnosti o tom, ako používať CyberChef na prevod tam a späť medzi HTML/Javascript a reprezentáciami bajtových polí v súbore camera_index.h.
Odporúča:
Kamerový mikroskop DIY: 5 krokov (s obrázkami)
DIY kamerový mikroskop: Hiiii, som späť s jednoduchým a zaujímavým projektovým kamerovým mikroskopom. Vďaka tomu môžete na obrazovke počítača alebo prenosného počítača pozorovať veľa predmetov, ktoré som urobil kvôli svojej zvedavosti voči vedeckým projektom. Na trhu nájdete aj tieto mikroskopy
Tankový robot, domáci kamerový ovládač: 5 krokov
Tank Robot Domáci kamerový ovládač: Dobrý deň, dnes vyrobím robotický tank s kamerou, je to veľmi jednoduché. Stačí vziať ruku a využiť všetko okolo seba, alebo nechať všetko tak zaujímavé, verte mi. … ZAČNI TERAZ
Začíname s ESP32 - Inštalácia dosiek ESP32 do Arduino IDE - Kód blinkru ESP32: 3 kroky
Začíname s ESP32 | Inštalácia dosiek ESP32 do Arduino IDE | Kód blinkru ESP32: V tomto návode uvidíme, ako začať pracovať s esp32 a ako nainštalovať dosky esp32 do Arduino IDE a naprogramujeme esp 32 tak, aby spustil kód blinkingu pomocou arduino ide
Vyvažovací robot / 3 -kolesový robot / robot STEM: 8 krokov
Vyvažovací robot / 3 -kolesový robot / STEM Robot: Postavili sme kombinovaný vyvažovací a 3 -kolesový robot na školské použitie a školské vzdelávacie programy. Robot je založený na Arduino Uno, vlastnom štíte (všetky konštrukčné detaily sú k dispozícii), batérii Li Ion (všetky
Vytvorte si vlastný kamerový monopod s korkovou fľašou: 3 kroky
Vytvorte si vlastný monopod fotoaparátu s korkovou fľašou: Tento návod je veľmi jednoduchý a navyše veľmi lacný. Všetko, čo potrebujete k úspechu, je 6 mm dlhá statívová skrutka (1/4 ") a korková fľaša. DÔLEŽITÉ Na tento účel musíte mať na skrutke exaktný závit, inak zničíte závit svojich kamier.