Tartalomjegyzék:

ESP32 kamerarobot - FPV: 6 lépés
ESP32 kamerarobot - FPV: 6 lépés

Videó: ESP32 kamerarobot - FPV: 6 lépés

Videó: ESP32 kamerarobot - FPV: 6 lépés
Videó: Как подключить вебкамеру к Arduino для трансляции видео с помощью Dragino Yun Shield 2024, Július
Anonim
Image
Image
ESP32 kamerarobot - FPV
ESP32 kamerarobot - FPV
ESP32 kamerarobot - FPV
ESP32 kamerarobot - FPV

Az ESP32 kamera modul olcsó és hatékony PLC. Még az arcfelismerést is tartalmazza!

Építsünk egy First Person Viewpoint robotot, amelyet egy fedélzeti webes felületen keresztül vezetsz!

Ez a projekt a Geekcreit ESP32 modult használja az OV2640 kamerával. Az AIThinker modulon alapul.

Sokféle ESP32 kameraklón létezik. Van aki működik, van aki nem. Azt javaslom, hogy ugyanazt a modult használja, mint én, így jó lehetősége lesz a sikerre.

A robot a következőképpen működik.

Az ESP32 egy webes URL-t sugároz a hálózatához, amely az élő videófolyamot néhány jelölőnégyzettel jeleníti meg a kamera egyes funkcióinak működtetéséhez. Ezenkívül fogadja a billentyűzetről a weboldalra küldött gombnyomásokat, amelyek irányító parancsok a robot számára. Érdemes felépíteni az USB joystick pajzsát, hogy a botot a botkormánnyal vezesse, ahelyett, hogy billentyűparancsokat írna.

Amikor az ESP32 gombnyomást kap, továbbítja ezeket a bájtokat az Arduino Nano -nak, amely ezután hajtja a motorokat, hogy a robot mozogjon.

Ez a projekt közepes-nagy nehézségű. Kérjük, szánjon rá időt.

Lássunk neki!

Kellékek

  • ESP -32 Kamera modul OV2640 kamerával - a Geekcreit terméket ajánlom
  • Külső rápattintható antenna az ESP-32 számára a térerő maximalizálása érdekében
  • Arduino Nano
  • Arduino Leonardo a Joystick modulhoz (szükségünk van a Leonardo által biztosított USB billentyűzet emulációra)
  • Általános joystick modul
  • L293D Quad H-híd chip
  • DC-DC Buck Coverter 5V kimenettel az ESP32 táplálásához
  • FTDI soros adapter az ESP32 programozásához
  • Általános robotváz két hajtóműves motorral - minden alváz működni fog. 3-6V motorok használata ajánlott
  • 2 x 7.4V 1300mAh LiPo akkumulátor (vagy hasonló) az ESP32 és a motorok táplálására
  • 1 x 9 V -os akkumulátor az Arduino Nano táplálására

1. lépés: Programozza be az ESP32 kamerát

Programozza be az ESP32 kamerát
Programozza be az ESP32 kamerát
Programozza be az ESP32 kamerát
Programozza be az ESP32 kamerát

Kenyérlap használatával csatlakoztassa az ESP32 kamerát az FTDI adapterhez az alábbiak szerint:

FTDI ESP32

3.3V ----------- 3.3V

GND ----------- GND

TX ----------- U0R

Rx ----------- U0T

Ezenkívül csatlakoztassa az IO0 csapot ("eye-oh-zero") a GND-hez. Ezt meg kell tennie, hogy az ESP32 programozási módba kerüljön.

Csomagolja ki az esp32CameraWebRobotforInstructable.zip fájlt.

Ebben a projektben 4 fájl található:

esp32CameraWebRobotforInstructable.ino az Arduino vázlata.

Az ap_httpd.cpp az a kód, amely a webszervert kezeli, és foglalkozik a kamera funkcióinak beállításával a weboldalról, és a gomb megnyomásával.

A camera_index.h byte tömbként tartalmazza a webes alkalmazás HTML/JavaScript kódját. A webes alkalmazás módosítása messze túlmutat ezen projekt keretein. Később csatolok egy linket a HTML/JavaScript módosításához.

A camera_pins.h az ESP32 kamera tűkonfigurációjához tartozó fejlécfájl.

Az ESP32 programozási módba kapcsolásához csatlakoztatnia kell az IO0 ("eye-oh-zero") földhöz.

Indítsa el Arduino IDE -jét, és lépjen az Eszközök/Táblák/Táblákkezelő oldalra. Keresse meg az esp32 szót, és telepítse az esp32 könyvtárat.

Nyissa meg a projektet az Arduino IDE -ben.

Írja be útválasztója hálózati azonosítóját és jelszavát a fenti képen kiemelt sorokba. Mentse el a projektet.

Lépjen az Eszközök menübe, és válassza ki a fenti képen látható beállításokat.

Alaplap: ESP32 Wrover

Feltöltési sebesség: 115200

Partíciós rendszer: "Hatalmas APP (3 MB nem OTA)"

és válassza ki azt a portot, amelyhez az FTDI adapter csatlakozik.

Kattintson a "Feltöltés" gombra.

Néha az ESP32 nem kezdi el a feltöltést. Tehát készen áll arra, hogy nyomja meg a RESET gombot az ESP32 hátoldalán, amikor elkezdi látni a… ---… karaktereket a konzolon a feltöltés során. Ezután megkezdődik a feltöltés.

Amikor a konzolon megjelenik az „RST megnyomása” üzenet, a feltöltés befejeződött.

Távolítsa el az IO0 -t a földről. Válassza le a 3.3V -os vezetéket az FTDI adapter és az ESP32 között.

Az ESP32 kamera nagy áramot igényel, hogy jól működjön. Csatlakoztasson 5V 2A hálózati adaptert az ESP32 5V és GND csapjaihoz.

Nyissa meg a Soros monitort, állítsa az átviteli sebességet 115200 -ra, majd nézze meg, ahogy az ESP32 újraindul. Végül látni fogja a szerver URL -jét.

Nyissa meg a böngészőt, és írja be az URL -t. Amikor a webhely betöltődik, kattintson a "Streamelés indítása" gombra, és az élő videófolyamnak meg kell kezdődnie. Ha rákattint a „Floodlight” jelölőnégyzetre, a fedélzeti vaku LED-jének fel kell világítania. Vigyázz! FÉNYES!

2. lépés: Építse fel a robotot

Építsd fel a robotot
Építsd fel a robotot

Szüksége van egy kétkerekű robot alvázra. Bármelyik megteszi. Szerelje össze az alvázat a gyártó utasításai szerint.

Ezután kösse be a robotot az ábra szerint. Hagyja el az akkumulátor csatlakozásait.

Az L293D a motorok vezérlésére szolgál. Vegye figyelembe, hogy a chipen lévő félbevágás az ESP32 irányába mutat.

Általában 6 csap szükséges az Arduino -n két motor vezérléséhez.

Ez a robot mindössze 4 csapot igényel, és még mindig teljesen működik.

Az 1 -es és a 9 -es érintkezők az Arduino 5V -os forrásához vannak csatlakoztatva, így tartósan MAGASak. A robot ilyen módon történő bekötése azt jelenti, hogy két kevesebb csapra van szükségünk az Arduino -n a motorok vezérléséhez.

Előre irányban az INPUT csapok LOW -ra vannak állítva, a motor impulzushullám -modulációs csapjai pedig 0 és 255 közötti értékekre vannak állítva, 0 pedig OFF és 255 maximális sebességet jelent.

Fordított irányban az INPUT csapok HIGH értékre vannak állítva, és a PWM értékek megfordulnak. A 0 maximális sebességet és 255 kikapcsolást jelent.

Csomagolja ki és töltse fel az ArduinoMotorControl vázlatot az Arduino Nano készülékre.

3. lépés: Szia! Várjunk csak! Miért van szükségem Arduino Nano -ra?

Valószínűleg arra gondol, hogy "Hé! Az ESP32 kamerán legalább 4 IO -tű található. Miért nem tudom használni őket a motorok vezérlésére?"

Nos, igaz, az ESP32 -en vannak csapok az alábbiak szerint:

IO0 - szükséges az ESP32 programozási módba állításához

IO2 - elérhető

IO4 - a vaku LED

IO12, IO13, IO14, IO15, IO16 - további GPIO csapok.

Ha csak egy alapvető vázlatot tölt be az ESP32 -re, hogy a csapokat PWM parancsokkal vezérelje, akkor működnek.

Azonban ha aktiválja a CAMERA könyvtárakat a vázlataiban, ezek a csapok már nem érhetők el.

Tehát a legegyszerűbb, ha csak egy Nano segítségével irányítja a motorokat PWM -en keresztül, és elküldi a parancsokat az ESP32 -ből soros kommunikáción keresztül egy vezetéken (ESP32 U0T - Arduino Rx0) és GND -n keresztül. Nagyon egyszerű.

4. lépés: Csatlakoztassa az USB joystickot (opcionális)

A robotot úgy hajthatja meg, hogy gombnyomásokat küld a weboldalra az alábbiak szerint:

8 - Előre

9 - Előre jobbra

7 - Előre balra

4 - Forgatás balra

5 - Állj

1 - Fordított bal

2 - Fordított

3 - Fordított jobbra.

Az USB joystick vázlat lefordítja a joystick bemeneteket gombnyomásokká, és elküldi azokat a webes felületre, amely továbbítja őket az Arduino -hoz a robot meghajtásához.

Csatlakoztassa a joystickot az Arduino LEONARDO -hoz az alábbiak szerint:

Leonardo joystick

5V ---------- VCC

GND ---------- GND

A0 ---------- VRx

A1 ---------- VRy

Nyissa meg az usbJoyStick vázlatot, válassza ki az Arduino Leonardót táblaként, és töltse fel a Leonardo -ba.

Ha tesztelni szeretné, csak nyisson meg egy szövegszerkesztőt a számítógépén, kattintson az egérrel az ablakban, és kezdje el mozgatni a joystickot. Látnia kell az 1 és 9 közötti értékeket az ablakban

5. lépés: Lovagoljunk

Szánjon egy kis időt, és nézze át a vezetékeket, hogy megbizonyosodjon arról, hogy minden rendben van.

Ezután csatlakoztassa az elemeket az alábbiak szerint.

1. Kapcsolja be az ESP32 kamerát. A webszerver elindításához néhány másodpercre van szükség.

2. Kapcsolja be az Arduino Nano készüléket.

3. Kapcsolja be a motorokat.

Indítsa el a böngészőt, és lépjen az ESP32 URL -címére.

Kattintson a Streamelés indítása gombra.

Kattintson az egérrel valahol a böngésző képernyőjén, hogy a képernyő legyen a fókuszban.

Kezdje robotja vezetését a joystick (vagy billentyűzet) segítségével.

Azt tapasztaltam, hogy az alapértelmezett képméret jól működik az élő videó meglehetősen érzékeny sugárzásához WiFi -n keresztül. A képkocka méretének növelésével azonban az adatfolyam hullámosabb lesz, mert nagyobb képeket próbál sugározni.

Ez egy nagy kihívást jelentő projekt, amely lehetőséget ad arra, hogy elkezdjen dolgozni az élő videó streameléssel és a robot WiFi -n keresztüli vezetésével. Remélem, szórakoztatónak találta!

MOST MENJ, ÉS LÉGY CSODÁLATOSAT!

2020. januári frissítés - Az utolsó fényképeken a robot végleges verziója látható, keményforrasztással és biztonságosan rögzítve az alvázra.

Az elülső három kapcsoló a következő:

Bal - Motoros akkumulátor

Középen - Arduino akkumulátor

Jobbra - ESP32 fényképezőgép akkumulátor

Használhatnék egy nagy akkumulátort néhány buck-boost transzformátorral (egyet használok az ESP32-hez-ez az elölnézet jobb alsó sarkában van), de az egyszerűség kedvéért csak a 3 elemet tartom meg.

Robot most az Access Pointon

Nehéznek tartom a robot bemutatását az otthonomon kívül, mert az iskolai vállalati hálózat nem teszi lehetővé, hogy a robot webszervert hozzákapcsoljam. Megoldásként kutattam az ESP32 webszerver Access Point funkciójának használatával kapcsolatban. Ez némi munkát igényel, de meglehetősen minimális változtatásokat igényel a fő robotvázlaton ahhoz, hogy az ESP32 sugározza saját IP -címét. Nem olyan erős, mint egy dedikált nagysebességű wifi hub (néha lefagy, ha túl gyorsan mozog), de egész jól működik, és most már bárhol tudom demonstrálni a robotot, anélkül, hogy hálózathoz kellene csatlakoztatnom! Miután a robot működésbe lép, próbálja meg Ön is átalakítani Access Point -ra!

6. lépés: A webszerver HTML/Javascript kódjának módosításának részletei

Ez nem szükséges, de voltak kéréseim.

A Google Dokumentumban részletesen ismertettem a CyberChef használatával a HTML/Javascript és a camera_index.h fájl bájt tömb ábrázolásai közötti oda -vissza konvertálást.

Ajánlott: