Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: I-program ang Camera na ESP32
- Hakbang 2: Buuin ang Robot
- Hakbang 3: HOY! Maghintay lang ng saglit! Bakit Kailangan Ko ng isang Arduino Nano?
- Hakbang 4: Wire Up ang USB Joystick (Opsyonal)
- Hakbang 5: Sumakay TAYO
- Hakbang 6: Mga Detalye ng Paano baguhin ang HTML / Javascript Code para sa Webserver
Video: Robot ng Camera ng ESP32 - FPV: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ang module ng ESP32 Camera ay isang mura at makapangyarihang PLC. May kasama pa itong pagkilala sa mukha!
Bumuo tayo ng isang robot ng First Person Viewpoint na iyong hinihimok sa pamamagitan ng isang on-board na web interface!
Gumagamit ang proyektong ito ng Geekcreit ESP32 module na may OV2640 Camera. Batay ito sa module ng AIThinker.
Mayroong maraming iba't ibang mga clone ng ESP32 Camera doon. Ang ilan ay nagtatrabaho, ang ilan ay hindi. Iminumungkahi kong gamitin mo ang parehong module na ginawa ko upang magkaroon ka ng magandang pagkakataon upang maging matagumpay.
Gumagana ang robot tulad ng sumusunod.
Nag-broadcast ang ESP32 ng isang web URL sa iyong network na nagpapakita ng live na video stream na may ilang mga check-box para sa pagpapatakbo ng ilang mga pagpapaandar ng camera. Tumatanggap din ito ng mga pangunahing pagpindot na ipinadala sa web page mula sa keyboard na mga direksyong utos para sa robot. Maaari mong hilingin na buuin ang kalasag ng USB joystick upang maaari mong himukin ang robot gamit ang joystick kaysa sa pag-type ng mga utos sa keyboard.
Kapag nakatanggap ang ESP32 ng mga pangunahing pagpindot, ipinapasa nito ang mga byte sa Arduino Nano na pagkatapos ay hinihimok ang mga motor upang ilipat ang robot.
Ang proyektong ito ay may katamtamang mataas na kahirapan. Mangyaring maglaan ng iyong oras
Magsimula na tayo!
Mga gamit
- Modul ng Camera ng ESP-32 na may OV2640 Camera - Inirerekumenda ko ang produktong Geekcreit
- Panlabas na snap-on na antena para sa ESP-32 upang ma-maximize ang lakas ng signal
- Arduino Nano
- Arduino Leonardo para sa module ng Joystick (kailangan namin ng pagtulad sa USB keyboard na ibinigay ng Leonardo)
- Generikong module ng Joystick
- L293D Quad H-bridge chip
- DC-DC Buck Coverter na may 5V output upang mapagana ang ESP32
- FTDI Serial Adapter para sa pagprograma ng ESP32
- Isang generic robot chassis na may dalawang nakatuon na motor - gagana ang anumang chassis. Inirerekumenda ang 3 hanggang 6V na mga motor
- 2 x 7.4V 1300mAh LiPo na mga baterya (o katulad) upang mapagana ang ESP32 at ang mga motor
- 1 x 9V na baterya upang mapagana ang Arduino Nano
Hakbang 1: I-program ang Camera na ESP32
Gamit ang isang breadboard, ikonekta ang iyong ESP32 Camera sa FTDI adapter tulad ng sumusunod:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Bilang karagdagan, ikonekta ang pin IO0 ("eye-oh-zero") sa GND. Kailangan mong gawin ito upang ilagay ang ESP32 sa mode ng pagprograma.
I-unzip ang file na esp32CameraWebRobotforInstructable.zip.
Mayroong 4 na mga file sa proyektong ito:
esp32CameraWebRobotforInstructable.ino ay ang Arduino sketch.
Ang ap_httpd.cpp ay ang code na namamahala sa web server at nakikipag-usap sa pagtatakda ng mga tampok ng camera mula sa web page at pagtanggap ng mga pangunahing pagpindot mula sa web page.
naglalaman ang camera_index.h ng HTML / JavaScript code para sa web application bilang mga byte arrays. Ang pagbabago ng application ng web ay higit sa saklaw ng proyektong ito. Magsasama ako ng isang link para sa kung paano baguhin ang HTML / JavaScript sa paglaon.
Ang camera_pins.h ay ang header file na nauugnay sa pagsasaayos ng pin ng camera ng ESP32.
Upang mailagay ang ESP32 sa Programming Mode, dapat mong ikonekta ang IO0 ("eye-oh-zero") sa Ground.
Ilunsad ang iyong Arduino IDE at pumunta sa Tools / Boards / Boards Manager. Maghanap para sa esp32 at i-install ang esp32 library.
Buksan ang proyekto sa iyong Arduino IDE.
Ilagay ang network ID ng IYONG router at ang IYONG password sa mga linya na naka-highlight sa larawan sa itaas. I-save ang proyekto.
Pumunta sa menu ng Mga Tool at gawin ang mga napili tulad ng ipinakita sa larawan sa itaas.
Lupon: ESP32 Wrover
Bilis ng Pag-upload: 115200
Partition Scheme: "Napakalaking APP (3MB walang OTA)"
at piliin ang port kung saan nakakonekta ang iyong FTDI adapter.
I-click ang pindutang "Mag-upload".
Ngayon, kung minsan, hindi magsisimulang mag-upload ang ESP32. Kaya maging handa na pindutin ang pindutang I-reset ang sa likuran ng ESP32 kapag sinimulan mong makita ang… --- … mga character na lilitaw sa console habang ina-upload. Magsisimula na itong mag-upload.
Kapag nakita mong 'pindutin ang RST' sa console, kumpleto na ang pag-upload.
DISCONNECT IO0 mula sa Ground. Idiskonekta ang linya ng 3.3V sa pagitan ng FTDI adapter at ng ESP32.
Ang ESP32 Camera ay nangangailangan ng maraming kasalukuyang upang gumana nang maayos. Ikonekta ang isang 5V 2A power adapter sa mga 5V at GND na pin sa ESP32.
Buksan ang Serial Monitor, itakda ang rate ng baud sa 115200 at pagkatapos ay panoorin bilang mga reboot ng ESP32. Sa paglaon, makikita mo ang URL para sa server.
Pumunta sa iyong Browser at ilagay ang URL. Kapag naglo-load ang web site, i-click ang pindutang 'Start Streaming' at dapat magsimula ang live na stream ng video. Kung nag-click ka sa checkbox na 'Floodlight', dapat na ilaw ang on-board flash LED. Tingnan mo! ANG GANDA!
Hakbang 2: Buuin ang Robot
Kailangan mo ng isang two wheeled robot chassis. Kahit sino ang gagawa. Ipunin ang chassis alinsunod sa mga tagubilin ng gumawa.
Pagkatapos ay i-wire ang robot ayon sa diagram. Iwanan ang mga koneksyon ng baterya sa ngayon.
Ginagamit ang L293D upang makontrol ang mga motor. Pansinin na ang kalahating-bingaw sa maliit na tilad ay TOWARDS ang ESP32.
Karaniwan, 6 na pin ang kinakailangan sa Arduino upang makontrol ang dalawang motor.
Ang robot na ito ay nangangailangan lamang ng 4 na mga pin at gumagana pa rin nang buo.
Ang mga pine 1 at 9 ay konektado sa 5V na mapagkukunan ng Arduino kaya't sila ay permanenteng TAAS. Ang pag-kable ng robot sa ganitong paraan ay nangangahulugang kailangan namin ng dalawang mas kaunting mga pin sa Arduino upang makontrol ang mga motor.
Sa mga pasulong na direksyon, ang mga INPUT na pin ay nakatakda sa LOW at ang motor Pulse Wave Modulation pin ay nakatakda sa mga halaga sa pagitan ng 0 at 255 na may 0 na ibig sabihin OFF at 255 nangangahulugang maximum na bilis.
Sa mga pabalik na direksyon, ang mga INPUT pin ay nakatakda sa TAAS at ang mga halaga ng PWM ay nabaligtad. Ang ibig sabihin ng 0 ay ang maximum na bilis at ang 255 ay nangangahulugang off.
I-unzip at i-upload ang ArduinoMotorControl sketch sa Arduino Nano.
Hakbang 3: HOY! Maghintay lang ng saglit! Bakit Kailangan Ko ng isang Arduino Nano?
Marahil ay iniisip mo, "Hoy! Mayroong hindi bababa sa 4 na mga pin ng IO na magagamit sa camera ng ESP32. Bakit hindi ko magamit ang mga ito upang makontrol ang mga motor?"
Kaya, totoo, may mga pin sa ESP32 tulad ng sumusunod:
IO0 - kinakailangan para sa paglalagay ng ESP32 sa mode ng programa
IO2 - magagamit
IO4 - ang Flash LED
IO12, IO13, IO14, IO15, IO16 - karagdagang mga GPIO pin.
Kung naglo-load ka lamang ng isang pangunahing sketch sa ESP32 upang makontrol ang mga pin sa mga utos ng PWM, gumagana ang mga ito.
Gayunpaman, sa sandaling buhayin mo ang mga aklatan ng CAMERA sa iyong mga sketch, ang mga pin na ito ay hindi na magagamit.
Kaya ang pinakamadaling gawin ay gumamit lamang ng isang Nano upang makontrol ang mga motor sa pamamagitan ng PWM at ipadala ang mga utos mula sa ESP32 sa pamamagitan ng mga serial na komunikasyon sa isang wire (ESP32 U0T sa Arduino Rx0) at GND. Napakasimple.
Hakbang 4: Wire Up ang USB Joystick (Opsyonal)
Maaari mong himukin ang robot sa pamamagitan ng pagpapadala ng mga pangunahing pagpindot sa web page tulad ng sumusunod:
8 - Ipasa
9 - Ipasa ang Karapatan
7 - Ipasa ang Kaliwa
4 - Paikutin ang Kaliwa
5 - Itigil
1 - Baliktarin ang Kaliwa
2 - Baligtarin
3 - Baliktarin ang Kanan.
Isinalin ng sketch ng USB joystick ang mga input ng joystick sa mga pangunahing pagpindot at ipinapadala sila sa web interface na nagpapasa sa kanila sa Arduino upang himukin ang robot.
Ikonekta ang joystick sa Arduino LEONARDO tulad ng sumusunod:
Leonardo Joystick
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Buksan ang usbJoyStick sketch, piliin ang Arduino Leonardo bilang board at i-upload ito sa Leonardo.
Kung nais mong subukan ito, buksan lamang ang isang text editor sa iyong computer, i-click ang mouse sa window at simulang ilipat ang joystick. Dapat mong makita ang mga halagang nagpapakita ng 1 hanggang 9 sa window
Hakbang 5: Sumakay TAYO
Maglaan ng ilang oras at tingnan ang iyong mga kable upang matiyak na tama ang lahat.
Susunod, ikonekta ang iyong mga baterya tulad ng sumusunod.
1. Patayin ang ESP32 Camera. Kailangan nito ng ilang segundo upang simulan ang web server.
2. Palakasin ang Arduino Nano.
3. Palakasin ang mga motor.
Ilunsad ang iyong browser at pumunta sa URL para sa ESP32.
I-click ang pindutang Start Streaming.
I-click ang iyong mouse sa isang lugar sa screen ng browser upang ang screen ang focus na ngayon.
Simulan ang pagmamaneho ng iyong robot gamit ang joystick (o keyboard).
Nalaman ko na ang default na laki ng frame ay gumagana nang maayos para sa pag-broadcast ng live na video nang medyo tumutugon sa paglipas ng WiFi. Gayunpaman habang pinapataas mo ang frame, magiging mas choppy ang stream dahil sinusubukan mong mag-broadcast ng mas malalaking mga imahe.
Ito ay isang hamon na proyekto na nagbibigay sa iyo ng pagkakataon na magsimulang magtrabaho kasama ang live na video streaming at magmaneho ng isang robot sa paglipas ng WiFi. Sana nasumpungan mo itong masaya!
NGAYON PUMUNTA AT GUMAGAWA NG MAHINDI!
Update sa Enero 2020 - Ipinapakita ng mga huling larawan ang pangwakas na bersyon ng robot, hard solder at ligtas na naka-mount sa chassis.
Ang tatlong mga switch na naka-mount sa harap ay ang mga sumusunod:
Kaliwa - Baterya ng kuryente ng motor
Center - Arduino na baterya
Kanan - Baterya ng Camera ng ESP32
Maaari akong gumamit ng isang malaking baterya na may ilang mga buck-boost transformer (Gumagamit ako ng isa para sa ESP32 - nasa kanang ibabang larawan ng front-view), ngunit alang-alang sa pagiging simple, pinapanatili ko lamang ang 3 mga baterya.
Ang Robot ngayon ay nasa Access Point na
Nahahanap ko itong masalimuot na ipakita ang robot na ito sa labas ng aking bahay dahil hindi ako pinapayagan ng network ng aking negosyo sa paaralan na ikonekta ang robot web server dito. Bilang isang solusyon, nagsaliksik ako sa paggamit ng tampok na Access Point ng ESP32 web server. Tumatagal ito ng ilang trabaho, ngunit nangangailangan ng medyo kaunting mga pagbabago sa pangunahing sketch ng robot upang maisagawa ang broadcast ng ESP32 na ito ay sariling IP address. Hindi ito kasing lakas ng isang dedikadong high speed wifi hub (kung minsan ay nabitin kung gumalaw ka ng masyadong mabilis), ngunit gumagana ito ng maayos at ngayon ay maipakikita ko ang robot kahit saan ko gusto nang hindi kinakailangang ikonekta ito sa isang network! Kapag napatakbo mo na ang robot, subukang i-convert ito sa Access Point sa iyong sarili!
Hakbang 6: Mga Detalye ng Paano baguhin ang HTML / Javascript Code para sa Webserver
Hindi ito kinakailangan, ngunit mayroon akong ilang mga kahilingan.
Ibinigay ko sa Google Doc na ito ang mga detalye sa kung paano gamitin ang CyberChef upang mag-convert pabalik-balik sa pagitan ng HTML / Javascript at ng mga byte array na representasyon sa file ng camera_index.h.
Inirerekumendang:
CCTV Camera Sa NodeMCU + Module ng Camera ng Lumang Laptop (Gamit at Nang Hindi Gumagamit ng Blynk): 5 Hakbang
CCTV Camera With NodeMCU + Module ng Camera ng Lumang Laptop (Gamit at Nang Hindi Gumagamit ng Blynk): Kumusta kayong mga tao! Sa itinuturo na ito, ipapakita ko sa iyo kung paano ko ginamit ang module ng camera ng isang luma na laptop at nodeMCU upang makagawa ng katulad sa CCTV
Pagsisimula Sa ESP32 CAM - Pag-streaming ng Video Gamit ang ESP CAM Over Wifi - Project ng Camera ng ESP32 Security: 8 Hakbang
Pagsisimula Sa ESP32 CAM | Pag-streaming ng Video Gamit ang ESP CAM Over Wifi | Project ng Camera ng ESP32 Security: Malalaman natin ngayon kung paano gamitin ang bagong board ng ESP32 CAM at kung paano namin ito mai-code at gamitin ito bilang isang security camera at makakuha ng streaming video sa pamamagitan ng wifi
UNICORN CAMERA - Bumuo ng Raspberry Pi Zero W NoIR 8MP Camera: 7 Hakbang (na may Mga Larawan)
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Camera Build: Ang Pi Zero W NoIR 8MP Camera Build Ang Instructable na ito ay nilikha upang matulungan ang sinumang nais ng isang Infrared Camera o isang Talagang Cool Portable Camera o isang Portable Raspberry Pi Camera o nais lamang magsaya, heheh . Ito ang pinaka-abot-kayang at mag-configure
Tagapangalaga V1.0 -- Pag-upgrade ng Camera ng Peephole Camera Na May Arduino (Pag-record ng Paggalaw ng Paggalaw at Mga Tampok ng Electric Shock): 5 Hakbang
Tagapangalaga V1.0 || Pag-upgrade ng Camera Peephole Camera Sa Arduino (Pag-record ng Motion Detection & Electric Shock Features): Nag-order ako ng isang peephole camera ngunit nang gamitin ko ito, napagtanto na walang auto recording function (na-activate ng detection ng paggalaw). Pagkatapos ay nagsimula akong siyasatin kung paano ito gumagana. Upang magrekord ng isang video, dapat mong 1 panatilihing pinindot ang pindutan ng kuryente halos 2 sec
Kumuha ng Kamangha-manghang Mga Litrato ng Macro Sa Anumang Camera Camera Camera Lalo na ang isang IPhone: 6 na Hakbang
Kumuha ng Mga Kamangha-manghang Mga Litrato ng Macro Sa Anumang Camera Camera Camera … Lalo na ang isang iPhone: Kailanman nais na makakuha ng isa sa mga kamangha-manghang mga larawan na malapit … ang isa na nagsasabing … WOW!? … gamit ang isang camera phone camera na mas kaunti !? Talaga, ito ay isang addon ng pagpapalaki para sa anumang camera phone camera upang mapalaki ang iyong umiiral na lens ng camera upang magawa