Orodha ya maudhui:

Robot ya Kamera ya ESP32 - FPV: 6 Hatua
Robot ya Kamera ya ESP32 - FPV: 6 Hatua

Video: Robot ya Kamera ya ESP32 - FPV: 6 Hatua

Video: Robot ya Kamera ya ESP32 - FPV: 6 Hatua
Video: ESP32-CAM - Быстрый старт 2024, Novemba
Anonim
Image
Image
Roboti ya Kamera ya ESP32 - FPV
Roboti ya Kamera ya ESP32 - FPV
Robot ya Kamera ya ESP32 - FPV
Robot ya Kamera ya ESP32 - FPV

Moduli ya Kamera ya ESP32 ni PLC ya bei rahisi na yenye nguvu. Inajumuisha hata utambuzi wa uso!

Wacha tujenge roboti ya Mtazamo wa Mtu wa Kwanza ambayo unaendesha kupitia kiwambo cha wavuti!

Mradi huu unatumia moduli ya Geekcreit ESP32 na Kamera ya OV2640. Inategemea moduli ya AIThinker.

Kuna aina nyingi za kamera za ESP32 huko nje. Baadhi ya kazi, wengine hawafanyi. Napenda kupendekeza utumie moduli ile ile niliyofanya ili uwe na nafasi nzuri ya kufanikiwa.

Roboti inafanya kazi kama ifuatavyo.

ESP32 inatangaza URL ya wavuti kwenye mtandao wako ambayo inawasilisha mkondo wa video ya moja kwa moja na visanduku vya kukagua kwa kufanya kazi kadhaa za kamera. Inapokea pia mashinikizo muhimu yaliyotumwa kwenye ukurasa wa wavuti kutoka kwa kibodi ambayo ni maagizo ya mwelekeo wa roboti. Unaweza kutaka kujenga ngao ya faraja ya USB ili uweze kuendesha robot na fimbo badala ya kuandika amri za kibodi.

Wakati ESP32 inapokea mashinikizo muhimu, hupeleka baiti hizo kwa Arduino Nano ambayo kisha huendesha motors kufanya roboti isonge.

Mradi huu ni wa shida ya wastani. Tafadhali chukua muda wako.

Tuanze!

Vifaa

  • Moduli ya Kamera ya ESP-32 na Kamera ya OV2640 - ningependekeza bidhaa ya Geekcreit
  • Antena ya nje ya snap kwa ESP-32 ili kuongeza nguvu ya ishara
  • Arduino Nano
  • Arduino Leonardo kwa moduli ya Joystick (tunahitaji uigaji wa kibodi ya USB iliyotolewa na Leonardo)
  • Moduli ya Kiwiko cha Joystick
  • L293D Quad H-daraja chip
  • Jalada la DC-DC la Buck na pato la 5V kuwezesha ESP32
  • Adapta ya Serial ya FTDI kwa programu ya ESP32
  • Chassier ya generic ya kawaida na motors mbili zilizolengwa - chasisi yoyote itafanya kazi. Motors 3 hadi 6V zinapendekezwa
  • 2 x 7.4V 1300mAh LiPo betri (au sawa) kuwezesha ESP32 na motors.
  • 1 x 9V betri kuwezesha Arduino Nano

Hatua ya 1: Panga Kamera ya ESP32

Panga Kamera ya ESP32
Panga Kamera ya ESP32
Panga Kamera ya ESP32
Panga Kamera ya ESP32

Kutumia ubao wa mkate, unganisha Kamera yako ya ESP32 kwa adapta ya FTDI kama ifuatavyo:

FTDI ESP32

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

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

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

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

Kwa kuongeza, unganisha pini IO0 ("eye-oh-zero") kwa GND. Unahitaji kufanya hivyo ili kuweka ESP32 katika hali ya programu.

Fungua faili ya esp32CameraWebRobotforInstructable.zip.

Kuna faili 4 katika mradi huu:

esp32CameraWebRobotforInstructable.ino ni mchoro wa Arduino.

ap_httpd.cpp ni nambari inayosimamia seva ya wavuti na inashughulika na kuweka vipengee vya kamera kutoka ukurasa wa wavuti na kupokea mashinikizo muhimu kutoka kwa ukurasa wa wavuti.

camera_index.h ina msimbo wa HTML / JavaScript kwa programu ya wavuti kama safu ya baiti. Kubadilisha matumizi ya wavuti ni zaidi ya upeo wa mradi huu. Nitajumuisha kiunga cha jinsi ya kurekebisha HTML / JavaScript baadaye.

camera_pins.h ni faili ya kichwa inayohusu usanidi wa pini wa kamera ya ESP32.

Ili kuweka ESP32 katika Modi ya Programu, lazima uunganishe IO0 ("eye-oh-zero") kwa Ardhi.

Anzisha IDE yako ya Arduino na nenda kwa Meneja wa Zana / Bodi / Bodi. Tafuta esp32 na usakinishe maktaba ya esp32.

Fungua mradi katika Arduino IDE yako.

Weka kitambulisho cha mtandao cha router yako na nywila YAKO kwenye mistari iliyoangaziwa kwenye picha hapo juu. Okoa mradi.

Nenda kwenye menyu ya Zana na ufanye chaguzi kama inavyoonyeshwa kwenye picha hapo juu.

Bodi: ESP32 Wrover

Kasi ya Kupakia: 115200

Mpango wa kuhesabu: "APP Kubwa (3MB hakuna OTA)"

na uchague bandari ambayo adapta yako ya FTDI imeunganishwa.

Bonyeza kitufe cha "Pakia".

Sasa, wakati mwingine, ESP32 haitaanza kupakia. Kwa hivyo uwe tayari kubonyeza kitufe cha Rudisha nyuma ya ESP32 unapoanza kuona… ---… herufi zinaonekana kwenye koni wakati wa kupakia. Kisha itaanza kupakia.

Unapoona 'bonyeza RST' kwenye koni, upakiaji umekamilika.

FANYA IO0 kutoka Ground. Tenganisha laini ya 3.3V kati ya adapta ya FTDI na ESP32.

Kamera ya ESP32 inahitaji mengi ya sasa ili kufanya kazi vizuri. Unganisha adapta ya nguvu ya 5V 2A kwenye pini za 5V na GND kwenye ESP32.

Fungua Monitor Monitor, weka kiwango cha baud hadi 115200 halafu angalia wakati ESP32 inaanza upya. Mwishowe, utaona URL ya seva.

Nenda kwenye Kivinjari chako na uweke URL. Wakati wavuti inapobeba, bonyeza kitufe cha "Anza Kutiririsha" na mkondo wa video wa moja kwa moja unapaswa kuanza. Ukibonyeza kwenye kisanduku cha kuangalia cha 'Floodlight', taa ya kwenye bodi inapaswa kuwasha. Jihadharini! INANG'ARA!

Hatua ya 2: Jenga Robot

Jenga Robot
Jenga Robot

Unahitaji chassier ya magurudumu mawili. Mtu yeyote atafanya. Kusanya chasisi kulingana na maagizo ya mtengenezaji.

Kisha waya waya kama ilivyo kwenye mchoro. Acha unganisho la betri kwa sasa.

L293D hutumiwa kudhibiti motors. Ona kwamba nusu-notch kwenye chip ni KUELEKEA ESP32.

Kwa kawaida, pini 6 zinahitajika kwenye Arduino kudhibiti motors mbili.

Roboti hii inahitaji tu pini 4 na bado inafanya kazi kikamilifu.

Pini 1 na 9 zimeunganishwa na chanzo cha 5V cha Arduino kwa hivyo ziko juu kabisa. Wiring robot kwa njia hii inamaanisha tunahitaji pini mbili chache kwenye Arduino kudhibiti motors.

Kwa mwelekeo wa mbele, pini za INPUT zimewekwa chini na pini za moduli za Pulse Wave zimepangwa kwa maadili kati ya 0 na 255 na 0 ikimaanisha OFF na 255 ikimaanisha kasi ya juu.

Kwa mwelekeo wa nyuma, pini za INPUT zimewekwa juu na maadili ya PWM hubadilishwa. 0 inamaanisha kasi ya juu na 255 inamaanisha kuzima.

Unzip na pakia mchoro wa ArduinoMotorControl kwa Arduino Nano.

Hatua ya 3: HEY! Subiri kwa Pili! Kwa nini ninahitaji Nano ya Arduino?

Labda unafikiria, "Hei! Kuna angalau pini 4 za IO zinazopatikana kwenye kamera ya ESP32. Kwanini siwezi kuzitumia kudhibiti motors?"

Kweli, ni kweli, kuna pini kwenye ESP32 kama ifuatavyo:

IO0 - inahitajika kwa kuweka ESP32 katika hali ya programu

IO2 - inapatikana

IO4 - Kiwango cha LED

IO12, IO13, IO14, IO15, IO16 - pini za ziada za GPIO.

Ukipakia tu mchoro wa msingi kwenye ESP32 kudhibiti pini na amri za PWM, zinafanya kazi.

HATA hivyo, ukishaamilisha maktaba za CAMERA kwenye michoro yako, pini hizi hazipatikani tena.

Kwa hivyo jambo rahisi kufanya ni kutumia tu Nano kudhibiti motors kupitia PWM na kutuma maagizo kutoka ESP32 kwa mawasiliano ya serial juu ya waya mmoja (ESP32 U0T hadi Arduino Rx0) na GND. Rahisi sana.

Hatua ya 4: Futa waya wa USB (Hiari)

Unaweza kuendesha roboti kwa kutuma vyombo vya habari muhimu kwenye ukurasa wa wavuti kama ifuatavyo:

8 - Mbele

9 - Mbele Kulia

7 - Mbele Kushoto

4 - Zungusha Kushoto

5 - Acha

1 - Rejea kushoto

2 - Kubadilisha

3 - Rejea Haki.

Mchoro wa joystick wa USB hutafsiri pembejeo za shangwe kwenye vyombo vya habari muhimu na kuzipeleka kwa kiolesura cha wavuti ambacho huwapeleka kwa Arduino kuendesha roboti.

Unganisha fimbo ya furaha na Arduino LEONARDO kama ifuatavyo:

Leonardo Joystick

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

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

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

A1 ---------- Uvumbuzi

Fungua mchoro wa usbJoyStick, chagua Arduino Leonardo kama bodi na uipakie kwa Leonardo.

Ikiwa unataka kuijaribu, fungua tu kihariri cha maandishi kwenye kompyuta yako, bonyeza panya kwenye dirisha na uanze kusonga fimbo ya furaha. Unapaswa kuona maadili kutoka 1 hadi 9 kuonyesha kwenye dirisha

Hatua ya 5: TUENDESHE

Chukua muda na pitia wiring yako ili kuhakikisha yote ni sahihi.

Ifuatayo, unganisha betri zako kama ifuatavyo.

1. Wezesha Kamera ya ESP32. Inahitaji sekunde chache kuanza seva ya wavuti.

2. Wezesha Arduino Nano.

3. Imarisha motors.

Zindua kivinjari chako na nenda kwenye URL ya ESP32.

Bonyeza kitufe cha Kuanza Kutiririsha.

Bonyeza panya yako mahali pengine kwenye skrini ya kivinjari ili skrini sasa iwe lengo.

Anza kuendesha roboti yako na fimbo ya kufurahisha (au kibodi).

Nimeona kuwa saizi ya fremu chaguo-msingi inafanya kazi sawa kwa kutangaza video ya moja kwa moja kwa usikivu juu ya WiFi. Walakini unapoongeza muafaka, mkondo utazidi kuwa mbaya kwa sababu unajaribu kutangaza picha kubwa.

Huu ni mradi wenye changamoto ambao hukupa fursa ya kuanza kufanya kazi na utiririshaji wa video moja kwa moja na kuendesha roboti juu ya WiFi. Natumai umeiona kuwa ya kufurahisha!

SASA ENDA NA UFANYE KITU CHA AJABU!

Sasisho la Januari 2020 - Picha za mwisho zinaonyesha toleo la mwisho la roboti, lililouzwa kwa bidii na lililowekwa vyema kwenye chasisi.

Swichi tatu zilizowekwa mbele ni kama ifuatavyo:

Kushoto - Betri ya nguvu ya gari

Kituo - Batri ya Arduino

Kulia - ESP32 Betri ya Kamera

Ningeweza kutumia betri moja kubwa na vibadilishaji vingine vya kuongeza pesa (ninatumia moja kwa ESP32 - iko kulia chini ya picha ya kutazama mbele), lakini kwa sababu ya unyenyekevu, ninazingatia tu betri 3.

Robot sasa kwenye Kituo cha Ufikiaji

Ninaona ni ngumu kuonyesha roboti hii nje ya nyumba yangu kwa sababu mtandao wa biashara yangu hauniruhusu kuunganisha seva ya wavuti ya roboti kwake. Kama suluhisho, nilifanya utafiti juu ya kutumia huduma ya Wavuti ya Ufikiaji wa seva ya wavuti ya ESP32. Inachukua kazi, lakini inahitaji mabadiliko madogo sana kwenye mchoro kuu wa roboti ili kufanya utangazaji wa ESP32 ni anwani yake ya IP. Haina nguvu kama kitovu cha wifi cha kujitolea cha kasi (wakati mwingine hutegemea ikiwa unasonga haraka sana), lakini inafanya kazi vizuri na sasa ninaweza kuonyesha roboti mahali popote ninapotaka bila kuiunganisha kwenye mtandao! Mara tu unapofanya roboti ifanye kazi, jaribu kuibadilisha iwe Point ya Ufikiaji mwenyewe!

Hatua ya 6: Maelezo ya Jinsi ya Kurekebisha Msimbo wa HTML / Javascript kwa Webserver

Hii sio lazima, lakini nimekuwa na maombi kadhaa.

Nimeipa Google Doc hii maelezo juu ya jinsi ya kutumia CyberChef kugeuza kurudi na kurudi kati ya HTML / Javascript na uwakilishi wa safu ya ka kwenye faili ya kamera_index.h.

Ilipendekeza: