INHOUDSOPGAWE:

ESP32 kamera robot - FPV: 6 stappe
ESP32 kamera robot - FPV: 6 stappe

Video: ESP32 kamera robot - FPV: 6 stappe

Video: ESP32 kamera robot - FPV: 6 stappe
Video: Большой обзор FPV систем для квадрокоптера 2024, November
Anonim
Image
Image
ESP32 kamera robot - FPV
ESP32 kamera robot - FPV
ESP32 kamera robot - FPV
ESP32 kamera robot - FPV

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

Programmeer die ESP32 -kamera
Programmeer die ESP32 -kamera
Programmeer die ESP32 -kamera
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

Bou die robot
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: