Satura rādītājs:

ESP32 kameras robots - FPV: 6 soļi
ESP32 kameras robots - FPV: 6 soļi

Video: ESP32 kameras robots - FPV: 6 soļi

Video: ESP32 kameras robots - FPV: 6 soļi
Video: Advanced Mecanum Wheels Robot using Arduino & ESP32 CAM || 4WD Omnidirectional Movement 2024, Novembris
Anonim
Image
Image
ESP32 kameras robots - FPV
ESP32 kameras robots - FPV
ESP32 kameras robots - FPV
ESP32 kameras robots - FPV

ESP32 kameras modulis ir lēts un jaudīgs PLC. Tas ietver pat sejas atpazīšanu!

Izveidosim pirmās personas skata punkta robotu, ar kuru braucat caur borta tīmekļa saskarni!

Šajā projektā tiek izmantots Geekcreit ESP32 modulis ar kameru OV2640. Tas ir balstīts uz AIThinker moduli.

Tur ir daudz dažādu ESP32 kameru klonu. Daži strādā, daži ne. Es ieteiktu jums izmantot to pašu moduli, ko es izmantoju, lai jums būtu laba iespēja gūt panākumus.

Robots darbojas šādi.

ESP32 jūsu tīklā pārraida tīmekļa URL, kas piedāvā tiešraides video straumi ar dažām izvēles rūtiņām dažu kameras funkciju darbināšanai. Tas arī saņem taustiņu nospiešanu, kas no tastatūras tiek nosūtīts uz tīmekļa lapu un ir robota virziena komandas. Iespējams, vēlēsities izveidot USB kursorsviras vairogu, lai varētu vadīt robotu ar kursorsviru, nevis rakstīt tastatūras komandas.

Kad ESP32 saņem taustiņu nospiešanu, tas pārsūta šos baitus uz Arduino Nano, kas pēc tam dzen motorus, lai robots kustētos.

Šim projektam ir vidējas un augstas grūtības. Lūdzu, nesteidzieties.

Sāksim!

Piegādes

  • ESP -32 kameras modulis ar kameru OV2640 - es ieteiktu Geekcreit produktu
  • Ārējā piespiežamā antena ESP-32, lai palielinātu signāla stiprumu
  • Arduino Nano
  • Arduino Leonardo kursorsviras modulim (mums nepieciešama Leonardo nodrošinātā USB tastatūras emulācija)
  • Vispārējs kursorsviras modulis
  • L293D Quad H-tilta mikroshēma
  • Līdzstrāvas līdzstrāvas pārveidotājs ar 5 V izeju ESP32 barošanai
  • FTDI seriālais adapteris ESP32 programmēšanai
  • Vispārēja robota šasija ar diviem motoriem ar pārnesumu - derēs jebkura šasija. Ieteicami 3 līdz 6 V motori
  • 2 x 7.4V 1300mAh LiPo baterijas (vai līdzīgas), lai darbinātu ESP32 un motorus
  • 1 x 9 V akumulators, lai darbinātu Arduino Nano

1. darbība: ieprogrammējiet kameru ESP32

Programmējiet kameru ESP32
Programmējiet kameru ESP32
Programmējiet kameru ESP32
Programmējiet kameru ESP32

Izmantojot maizes dēli, pievienojiet savu ESP32 kameru FTDI adapterim šādi:

FTDI ESP32

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

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

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

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

Turklāt pievienojiet tapu IO0 ("eye-oh-zero") ar GND. Tas jādara, lai ESP32 ieslēgtu programmēšanas režīmā.

Izsaiņojiet failu esp32CameraWebRobotforInstructable.zip.

Šajā projektā ir 4 faili:

esp32CameraWebRobotforInstructable.ino ir Arduino skice.

ap_httpd.cpp ir kods, kas pārvalda tīmekļa serveri un nodarbojas ar kameras funkciju iestatīšanu no tīmekļa lapas un taustiņu nospiešanu no tīmekļa lapas.

camera_index.h satur baitu masīvus tīmekļa lietojumprogrammas HTML/JavaScript kodu. Tīmekļa lietojumprogrammas pārveidošana krietni pārsniedz šī projekta darbības jomu. Vēlāk ievietošu saiti, kā mainīt HTML/JavaScript.

camera_pins.h ir galvenes fails, kas attiecas uz ESP32 kameras tapas konfigurāciju.

Lai ESP32 ieslēgtu programmēšanas režīmā, jums ir jāpievieno IO0 ("eye-oh-zero") zemei.

Palaidiet savu Arduino IDE un dodieties uz Tools/Boards/Boards Manager. Meklējiet esp32 un instalējiet esp32 bibliotēku.

Atveriet projektu savā Arduino IDE.

Ievietojiet SAVA maršrutētāja tīkla ID un SAVU paroli rindiņās, kas iezīmētas iepriekš redzamajā attēlā. Saglabājiet projektu.

Dodieties uz izvēlni Rīki un izvēlieties, kā parādīts attēlā.

Dēlis: ESP32 Wrover

Augšupielādes ātrums: 115200

Sadalīšanās shēma: "Milzīga APP (3 MB bez OTA)"

un izvēlieties portu, kuram ir pievienots jūsu FTDI adapteris.

Noklikšķiniet uz pogas "Augšupielādēt".

Tagad dažreiz ESP32 netiks sākta augšupielāde. Tāpēc esiet gatavs nospiest RESET pogu ESP32 aizmugurē, kad sākat redzēt … ---… rakstzīmes augšupielādes laikā konsolē. Pēc tam tiks sākta augšupielāde.

Kad konsolē redzat “nospiediet RST”, augšupielāde ir pabeigta.

Atvienojiet IO0 no zemes. Atvienojiet 3.3V līniju starp FTDI adapteri un ESP32.

Lai ESP32 kamera darbotos labi, nepieciešama liela strāva. Pievienojiet 5V 2A strāvas adapteri ESP32 5V un GND tapām.

Atveriet sērijas monitoru, iestatiet pārraides ātrumu uz 115200 un pēc tam skatieties, kā ESP32 tiek restartēts. Galu galā jūs redzēsit servera URL.

Dodieties uz savu pārlūkprogrammu un ievadiet URL. Kad vietne tiek ielādēta, noklikšķiniet uz pogas Sākt straumēšanu, un jāsākas video tiešraidei. Ja noklikšķināsit uz izvēles rūtiņas “Floodlight”, borta zibspuldzes gaismas diodei vajadzētu iedegties. Uzmanies! TAS IR GAIŠI!

2. darbība: izveidojiet robotu

Izveidojiet robotu
Izveidojiet robotu

Jums ir nepieciešama divriteņu robotu šasija. Jebkurš darīs. Salieciet šasiju saskaņā ar ražotāja norādījumiem.

Pēc tam pievienojiet robotu, kā norādīts diagrammā. Šobrīd atstājiet akumulatora savienojumus.

L293D tiek izmantots motoru vadīšanai. Ņemiet vērā, ka mikroshēmas puspagrieziens atrodas virzienā uz ESP32.

Parasti, lai kontrolētu divus motorus, Arduino ir nepieciešamas 6 tapas.

Šim robotam ir nepieciešamas tikai 4 tapas un tas joprojām darbojas pilnībā.

1. un 9. tapas ir savienotas ar Arduino 5V avotu, tāpēc tās ir pastāvīgi AUGSTAS. Šāda veida robota savienošana nozīmē, ka mums ir vajadzīgas divas mazākas Arduino tapas, lai kontrolētu motorus.

Uz priekšu virzoties, IEEJAS tapas ir iestatītas uz LOW un motora impulsa viļņu modulācijas tapas ir iestatītas uz vērtībām starp 0 un 255 ar 0 nozīmē OFF un 255 nozīmē maksimālo ātrumu.

Apgrieztā virzienā INPUT tapas ir iestatītas uz HIGH un PWM vērtības tiek apgrieztas. 0 nozīmē maksimālo ātrumu un 255 - izslēgtu.

Izsaiņojiet un augšupielādējiet ArduinoMotorControl skici Arduino Nano.

3. solis: Čau! Uzgaidiet mirklīti! Kāpēc man ir nepieciešams Arduino Nano?

Jūs droši vien domājat: "Hei! ESP32 kamerā ir pieejamas vismaz 4 IO tapas. Kāpēc es nevaru tās izmantot, lai vadītu motorus?"

Tā ir taisnība, uz ESP32 ir šādas tapas:

IO0 - nepieciešams ESP32 ieslēgšanai programmēšanas režīmā

IO2 - pieejams

IO4 - zibspuldzes gaismas diode

IO12, IO13, IO14, IO15, IO16 - papildu GPIO tapas.

Ja jūs vienkārši ielādējat pamata skici ESP32, lai kontrolētu tapas ar PWM komandām, tās darbojas.

Tomēr, kad savās skicēs esat aktivizējis CAMERA bibliotēkas, šīs tapas vairs nav pieejamas.

Tāpēc vienkāršākais ir vienkārši izmantot Nano, lai vadītu motorus, izmantojot PWM, un nosūtīt komandas no ESP32, izmantojot seriālos sakarus pa vienu vadu (ESP32 U0T uz Arduino Rx0) un GND. Ļoti vienkārši.

4. darbība: pievienojiet USB kursorsviru (pēc izvēles)

Jūs varat vadīt robotu, nosūtot taustiņus uz tīmekļa lapu šādi:

8 - uz priekšu

9 - Uz priekšu pa labi

7 - Uz priekšu pa kreisi

4 - pagriezt pa kreisi

5 - apstāties

1 - Reverss pa kreisi

2 - Reverss

3 - Reverss pa labi.

USB kursorsviru skice pārvērš kursorsviru ievades taustiņu nospiešanas reizēs un nosūta tās uz tīmekļa saskarni, kas pārsūta tās uz Arduino, lai vadītu robotu.

Savienojiet kursorsviru ar Arduino LEONARDO šādi:

Leonardo kursorsvira

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

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

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

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

Atveriet usbJoyStick skici, kā dēli atlasiet Arduino Leonardo un augšupielādējiet to Leonardo.

Ja vēlaties to pārbaudīt, vienkārši atveriet datorā teksta redaktoru, noklikšķiniet uz peles logā un sāciet pārvietot kursorsviru. Logā vajadzētu redzēt vērtības no 1 līdz 9

5. solis: BRAUCAM

Veltiet nedaudz laika un pārbaudiet elektroinstalāciju, lai pārliecinātos, ka viss ir pareizi.

Pēc tam pievienojiet baterijas šādi.

1. Ieslēdziet ESP32 kameru. Lai palaistu tīmekļa serveri, nepieciešamas dažas sekundes.

2. Ieslēdziet Arduino Nano.

3. Ieslēdziet motorus.

Palaidiet pārlūkprogrammu un dodieties uz ESP32 URL.

Noklikšķiniet uz pogas Sākt straumēšanu.

Noklikšķiniet uz peles kaut kur pārlūkprogrammas ekrānā, lai ekrāns tagad būtu fokusā.

Sāciet vadīt savu robotu, izmantojot kursorsviru (vai tastatūru).

Es atklāju, ka noklusējuma rāmja izmērs darbojas pareizi, lai tiešraidē pārraidītu video diezgan ātri, izmantojot WiFi. Tomēr, palielinot kadru izmēru, straume kļūs nemierīgāka, jo jūs mēģināt pārraidīt lielākus attēlus.

Šis ir izaicinošs projekts, kas dod jums iespēju sākt strādāt ar video tiešraidi un vadīt robotu, izmantojot WiFi. Es ceru, ka jums tas šķita jautri!

TAGAD EJI UN PADARI KĀDU BRĪNIŠĶĪGU!

2020. gada janvāra atjauninājums - pēdējās fotogrāfijās ir redzama robota galīgā versija, cieti pielodēta un droši piestiprināta pie šasijas.

Trīs priekšpusē uzstādītie slēdži ir šādi:

Pa kreisi - motora barošanas akumulators

Centrs - Arduino akumulators

Pa labi - ESP32 kameras akumulators

Es varētu izmantot vienu lielu akumulatoru ar dažiem buck-boost transformatoriem (es to izmantoju ESP32-tas ir priekšējā skata fotoattēla apakšējā labajā stūrī), bet vienkāršības labad es tikai paturu 3 baterijas.

Robots tagad piekļuves punktā

Man šķiet apgrūtinoši demonstrēt šo robotu ārpus manas mājas, jo mans skolas uzņēmumu tīkls neļauj man tam pievienot robota tīmekļa serveri. Kā risinājums es veicu izpēti par ESP32 tīmekļa servera piekļuves punkta funkcijas izmantošanu. Tas prasa zināmu darbu, bet prasa minimālas izmaiņas galvenajā robota skicē, lai ESP32 pārraidītu savu IP adresi. Tas nav tik spēcīgs kā īpašs ātrgaitas wifi centrmezgls (dažreiz karājas, ja pārvietojaties pārāk ātri), taču tas darbojas diezgan labi, un tagad es varu demonstrēt robotu jebkur, kur vien vēlos, bez nepieciešamības to savienot ar tīklu! Kad esat saņēmis robota darbību, mēģiniet pats to pārveidot par piekļuves punktu!

6. darbība. Sīkāka informācija par to, kā modificēt tīmekļa servera HTML/Javascript kodu

Tas nav nepieciešams, bet man ir bijuši daži pieprasījumi.

Šim Google dokumentam esmu sniedzis sīkāku informāciju par to, kā izmantot CyberChef, lai pārvērstu turp un atpakaļ starp HTML/Javascript un baitu masīva attēlojumiem failā camera_index.h.

Ieteicams: