Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Mobile Robot Car
- Hakbang 2: Mobile Robot Car - Circuit Diagram
- Hakbang 3: Mobile Robot Car - Assembly (Motors)
- Hakbang 4: Mobile Robot Car - Assembly (Distance Sensor)
- Hakbang 5: Mobile Robot Car - Assembly (ESP32 CAM)
- Hakbang 6: Mobile Robot Car - Assembly (Chip Dispenser)
- Hakbang 7: Mobile Robot Car - Assembly (Cookies!)
- Hakbang 8: Mobile Robot Car - Arduino Code
- Hakbang 9: Mobile Robot Car - ESP32 Code
- Hakbang 10: Dispenser ng Chip
- Hakbang 11: Joystick
- Hakbang 12: Joystick - Circuit Diagram
- Hakbang 13: Joystick - Keyboard Emulator
- Hakbang 14: Komunikasyon sa Network
- Hakbang 15: Pagsasama-sama sa Lahat ng Ito
Video: Robot ng Pagkakaroon ng Virtual: 15 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Nakikipag-ugnay ang mobile robot na ito sa pisikal na nakapaligid, sa pamamagitan ng kumakatawan sa "virtual na presensya" ng taong kinokontrol ito nang malayuan. Maaari itong ma-access ng sinuman, kahit saan sa mundo, upang maipamahagi ang mga pakikitungo at makipaglaro sa iyo.
Ang gawain dito ay binuo ng dalawang tao (isa sa Alemanya at isa sa US) bilang isang pagtatangka na lumipat nang lampas sa tradisyunal na paraan ng komunikasyon na nakabatay sa internet sa pamamagitan ng paglikha ng isang pisikal na interface para sa remote na pakikipag-ugnayan. Habang patuloy na nakakaapekto ang COVID-19 sa mundo, at responsable ang bawat isa sa paglilimita sa aming pisikal na pagkakalantad sa mga tao, sinubukan naming ibalik ang nasasalat na koneksyon na bahagi ng pisikal na pakikipag-ugnay.
Ito ay batay sa ESP32-Camera-Robot-FPV-Teacher-Entry na Maaaring turuan at mabago upang maisama ang distansya sensor, gamutin ang dispenser at "kontrol mula sa kahit saan sa mundo" na kakayahan, sa kondisyon na mayroon kang isang medyo matatag na koneksyon sa internet.
Mga gamit
Ang proyekto ay may 4 pangunahing bahagi - isang Mobile Robot Car, isang Chip Dispenser, isang Joystick, at Network Communication Setup.
Mobile Robot Car
- Breadboard
- 2 Wheel Drive Motor at Chassis Robot Kit (may kasamang mga gulong, DC motor, mounting board at Turnilyo)
- Arduino Mega 2560 (kung bumuo ka nang walang distansya sensor o ang Chip Dispenser isang Uno ay magkakaroon ng sapat na mga pin)
- (3) 9V Baterya (magkaroon ng ilang higit pa sa paligid dahil tatanggalin mo ang mga ito sa pag-debug)
- LM2596 Power Supply Module DC / DC Buck 3A Regulator (o katulad)
- ESP32-CAM Wifi Module
- FT232RL FTDI USB sa TTL Serial Converter (para sa pagprograma ng ESP32-CAM)
- HC-SR04 Ultrasonic Distance Sensor
- L298N Motor Driver
- (3) LEDS (anumang kulay)
- (3) 220 Ohm Resistors
Dispenser ng Chip
- (2) SG90 Mga Serbisyo
- Karton / karton
Joystick
- Arduino Uno
- Module ng Joystick
- Mini Breadboard, (1) LED, (1) 220 Ohm Resistor (opsyonal)
Iba pa
Maraming Breadboard Jumper WiresExtra Cardboard / PaperboardTapeScissorsRuler / Pagsukat ng TapeSmall Philips ScrewdriverSmall Flathead Screwdriver
Pasensya =)
Hakbang 1: Mobile Robot Car
Ang chassis ng Robot Car ay nagsisilbing isang mobile platform, na may isang Arduino MEGA bilang pangunahing micro-controller na nagmamaneho ng mga motor, binabasa ang mga halaga ng sensor at pinapagalaw ang mga servo. Karamihan sa mga pagkilos ay ginaganap sa pamamagitan ng pagkakaroon ng Arduino MEGA na makatanggap ng mga utos sa pamamagitan ng serial na komunikasyon, na ipinadala mula sa ESP32-CAM. Habang nagbibigay ang ESP32 ng live stream ng camera upang makontrol ang robot, ang iba pang pagpapaandar nito ay upang pamahalaan ang isang wireless na koneksyon sa pagitan ng robot at ng server, samakatuwid pinapayagan ang mga gumagamit na kontrolin ito mula sa kahit saan sa mundo. Ang ESP32 ay tumatanggap ng mga utos mula sa web page sa pamamagitan ng keypress at ipinapadala ang mga ito sa Arduino MEGA bilang mga halaga ng char. Batay sa natanggap na halagang ang kotse ay magpapatuloy, paatras atbp Dahil ang remote control sa pamamagitan ng internet ay nakasalalay sa maraming mga panlabas na kadahilanan kabilang ang mataas na latency, mahinang kalidad ng stream, at kahit na mga pagkakakonekta, isang distansya sensor ay isinasama upang mapanatili ang robot mula sa pag-crash sa mga bagay. * Dahil sa mataas at nagbabagu-bago na mga kinakailangan ng kuryente ng chip ng ESP32 isang rekomendasyon para sa Power Supply Regulator ay inirerekomenda para magamit sa lakas ng baterya (tingnan ang diagram ng mga kable).
Hakbang 2: Mobile Robot Car - Circuit Diagram
Dadalhin ka namin sa pamamagitan ng pag-iipon ng hakbang na ito.
Hakbang 3: Mobile Robot Car - Assembly (Motors)
Matapos mong tipunin ang 2WD chassis, nagsisimula kami sa pamamagitan ng pagkonekta sa mga motor at baterya sa Arduino MEGA sa pamamagitan ng driver ng L298N.
Hakbang 4: Mobile Robot Car - Assembly (Distance Sensor)
Tulad ng may ilang mga bahagi upang kumonekta, magdagdag tayo ng isang breadboard, upang madali nating maiugnay ang lakas at ibinahagi ang lupa. Pagkatapos naming ayusin muli ang mga wire, ikonekta ang distansya sensor at ayusin ito sa harap ng robot.
Hakbang 5: Mobile Robot Car - Assembly (ESP32 CAM)
Susunod, ikonekta ang module na ESP32-CAM, at ayusin ito sa tabi ng distansya sensor malapit sa harap ng robot. Alalahanin ang bahagyang nagugutom na sangkap na ito ay nangangailangan ng sarili nitong baterya at isang DC-regulator.
Hakbang 6: Mobile Robot Car - Assembly (Chip Dispenser)
Ngayon, idagdag natin ang chip-dispenser (higit pa dito sa seksyong "Chip Dispenser"). Wire up ang dalawang servos ayon sa diagram ng Fritzing, at ayusin ang dispenser sa buntot ng robot.
Hakbang 7: Mobile Robot Car - Assembly (Cookies!)
Sa wakas, nagdagdag kami ng mga gamot sa dispenser!
Hakbang 8: Mobile Robot Car - Arduino Code
Ang RobotCar_Code ay ang code na kakailanganin mong i-load sa Arduino Mega.
Narito kung paano ito gumagana: ang Arduino ay nakikinig sa mga byte na ipinadala mula sa ESP32 sa pamamagitan ng serial na komunikasyon sa bandang 115200. Batay sa natanggap na byte, ang kotse ay uusad, paatras, pakaliwa, kanan atbp sa pamamagitan ng pagpapadala ng alinman sa TAAS o MABABANG boltahe sa mga motor upang makontrol ang direksyon, pati na rin ang isang variable na PWM sa pagitan ng 0-255 upang makontrol ang bilis. Upang maiwasan ang mga banggaan ang code na ito ay binabasa din ang mga halagang nagmumula mula sa distansya sensor at kung ang distansya ay mas mababa sa isang tinukoy na threshold, ang robot ay hindi sumulong. Panghuli, kung ang Arduino ay tumatanggap ng isang utos na magtapon ng isang paggamot, buhayin nito ang mga servo sa Chip Dispenser.
Hakbang 9: Mobile Robot Car - ESP32 Code
Pinapayagan ng ESP32 ang komunikasyon sa pagitan ng server at Arduino sa pamamagitan ng Wifi. Ito ay nai-program na hiwalay mula sa Arduino, at mayroong sariling code:
- Ang ESP32_Code.ino ay ang code para sa ESP32 upang magpadala ng impormasyon sa Arduino
- Ang app_httpd.cpp ay ang code na kinakailangan para sa default na ESP32 webserver at itinakda ang pagpapaandar upang makinig para sa mga keypress. Mabuti para sa pag-debug at pagsubok sa lokal na wifi. Hindi ito ginagamit para sa komunikasyon sa labas ng lokal na network.
- Ang camera_index.h ay ang html code para sa default na web application
- tinutukoy ng camera_pins.h ang mga pin depende sa modelo ng ESP32
Gumagamit ang code ng ESP32 sa Wifi library pati na rin ang Add-on ng ESP32, na maaaring mai-install sa Arduino IDE sa pamamagitan ng pagsunod sa mga hakbang na ito:
- Sa Arduino IDE pumunta sa File> Mga Kagustuhan
- Pagkatapos sa tab na Mga Setting sa ilalim ng Karagdagang Mga Boards Manager URL ipasok ang sumusunod na "https://dl.espressif.com/dl/package_esp32_index.json"
- Ngayon buksan ang Boards Manager at pumunta sa Tools> Board> Boards Manager at hanapin ang ESP32 sa pamamagitan ng pag-type ng "ESP32"
- Dapat mong makita ang "esp32 ng Espressif Systems". I-click ang I-install.
- Ngayon dapat na mai-install ang add-on na ESP32. Upang suriin bumalik sa Arduino IDE at pumunta sa Tools> Board at piliin ang "ESP32 Wrover Module".
- Muli pumunta sa Mga Tool> Bilis ng Pag-upload at itakda ito sa "115200".
- Panghuli, pumunta sa Mga Tool> Partition Scheme at itakda ito sa "Napakalaking APP (3MB Walang OTA / 1MB SPIFFS)
- Kapag nakumpleto mo na ito, inirerekumenda kong sundin ang tutorial na ito ng RandomNerdTutorials na nagpapaliwanag nang detalyado kung paano i-finalize ang pag-set up ng ESP32 at i-upload ang code kasama ang FTDI ProgrammerProgramming ang ESP32
Hakbang 10: Dispenser ng Chip
Ang Chip Dispenser ay isang murang karagdagan sa mobile robot na pinapayagan itong makaapekto sa lokal na kapaligiran at makipag-ugnay sa mga tao / hayop sa pamamagitan ng pag-iwan ng masarap na gamutin. Binubuo ito ng isang panlabas na kahon ng karton na may 2 servos na naka-mount sa loob, pati na rin isang panloob na karton ng karton na nagtataglay ng mga item (tulad ng kendi o aso na tinatrato) upang maalis. Ang isang servo ay gumaganap bilang isang gate habang ang isa ay itinutulak ang item sa labas.
* Lahat ng mga sukat ay nasa millimeter
Hakbang 11: Joystick
Habang maaaring maging kasiya-siya upang makontrol ang isang robot gamit ang keyboard, mas masaya at intuitive na gumamit ng isang joystick, kung saan direktang reaksyon ang robot batay sa direksyong itinulak mo. Dahil ang robot na ito ay na-aktibo sa pamamagitan ng mga keypress na naitala sa webpage kailangan namin ang aming joystick upang tularan ang isang keyboard. Sa ganitong paraan ang mga gumagamit na walang isang joystick ay maaari pa ring makontrol ang robot nang direkta mula sa isang keyboard, ngunit ang iba ay maaaring gumamit ng joystick.
Para sa mga ito nagkaroon lamang kami ng Arduino Uno na walang kakayahang gamitin ang library kaya't na-program namin ito nang direkta gamit ang isang USB protocol na kilala bilang Device Firmware Update (DFU) na nagpapahintulot sa arduino na ma-flash gamit ang isang generic na USB HID keyboard firmware. Sa madaling salita, kapag ang arduino ay naka-plug sa usb hindi na ito kinikilala bilang isang arduino ngunit bilang isang keyboard!
Hakbang 12: Joystick - Circuit Diagram
Narito kung paano namin nag-wire ang joystick.
Hakbang 13: Joystick - Keyboard Emulator
Upang ang iyong Arduino Uno ay gayahin ang isang keyboard, kailangan mong direktang programa ang Atmega16u2 chip sa Arduino sa pamamagitan ng isang Manu-manong Device Firmware Update (DFU). Ang mga sumusunod na hakbang ay ilalarawan ang proseso para sa isang Windows machine, at sana ay matulungan kang maiwasan ang ilan sa mga isyung nasagasaan namin.
Ang unang hakbang ay manu-manong isulat ang Atmel usb driver sa Arduino kaya kinikilala ito bilang isang USB at hindi isang Arduino na nagbibigay-daan sa ito upang mai-flash kasama ang FLIP programmer.
- I-download ang Atmel's FLIP Programmer mula rito
- I-plug ang iyong Arduino Uno
- Pumunta sa Device Manager at hanapin ang Arduino. Ito ay sasailalim sa COM o Unknown Device. I-plug in at palabas upang matiyak na ito ang tamang aparato.
- Kapag nahanap mo ang Arduino Uno sa Device Manager, i-right click ito at piliin ang mga pag-aari> Driver> Update Driver> Browse My Computer For Driver Software> Hayaan akong pumili mula sa isang listahan ng mga magagamit na driver sa aking computer> Magkaroon ng Disk> Mag-browse sa file "atmel_usb_dfu.inf" at piliin ito. Dapat itong nasa folder kung saan naka-install ang iyong Atmel FLIP Programmer. Sa aking computer narito ito: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- I-install ang driver
- Bumalik ngayon sa Device Manager dapat mong makita ang isang "Atmel USB Devices" na may Arduino Uno na may label na ngayon bilang isang ATmega16u2!
Ngayon na kinikilala ng computer ang Arduino Uno bilang isang USB Device maaari naming gamitin ang FLIP Programmer upang i-flash ito sa 3 magkakahiwalay na mga file at gawin itong isang keyboard.
Kung na-unplug mo ang iyong Arduino Uno pagkatapos ng unang bahagi, i-plug in muli ito.
- Buksan ang FLIP
- I-reset ang Arduino Uno sa pamamagitan ng maikling pagdugtong ng lakas sa lupa.
- I-click ang Pagpili ng Device (icon tulad ng isang microchip) at piliin ang ATmega16U2
- I-click ang Piliin ang isang Medium ng Komunikasyon (icon tulad ng isang usb cord) at piliin ang USB. Kung nakumpleto mo nang tama ang unang bahagi ang iba pang mga greyed na pindutan ay dapat magamit.
- Pumunta sa File> Load Hex File> at i-upload ang file na Arduino-usbserial-uno.hex
- Sa window ng FLIP dapat mong makita ang tatlong mga seksyon: Daloy ng Mga Operasyon, Impormasyon ng FLASH Buffer, at ATmega16U2. Sa Daloy ng Mga Operasyon suriin ang mga kahon para sa Burahin, Program, at I-verify, pagkatapos ay i-click ang Run.
- Kapag nakumpleto ang prosesong ito, i-click ang Start Application sa seksyong ATmega16U2.
- I-plug ang arduino sa pamamagitan ng pag-unplug nito mula sa computer at i-plug ito muli.
- I-reset ang Arduino Uno sa pamamagitan ng maikling pagdugtong ng lakas sa lupa.
- Buksan ang Arduino IDE at i-upload ang file na JoyStickControl_Code.ino sa pisara.
- I-plug ang arduino sa pamamagitan ng pag-unplug nito mula sa computer at i-plug ito muli.
- I-reset ang arduino sa pamamagitan ng maikling pagdugtong ng lakas sa lupa.
- Bumalik sa FLIP, tiyakin na ang Pinili ng Device ay nagsabi ng Atmega16U2
- I-click ang Piliin ang isang Medium ng Komunikasyon at piliin ang USB.
- Pumunta sa File> Load Hex File> at i-upload ang file na Arduino-keyboard-0.3.hex
- Sa window ng FLIP dapat mong makita ang tatlong mga seksyon: Daloy ng Mga Operasyon, Impormasyon ng FLASH Buffer, at ATmega16U2. Sa Daloy ng Mga Operasyon suriin ang mga kahon para sa Burahin, Program, at I-verify, pagkatapos ay i-click ang Run.
- Kapag nakumpleto ang prosesong ito, i-click ang Simulan ang Application sa seksyong ATmega16U2.
- I-plug ang arduino sa pamamagitan ng pag-unplug nito mula sa computer at i-plug ito muli.
- Ngayon kapag nagpunta ka sa Device Manager dapat mayroong isang bagong HID Keyboard Device sa ilalim ng Mga Keyboard.
- Magbukas ng isang notepad o anumang text editor at simulang ilipat ang joystick. Dapat mong makita ang mga numero na nai-type!
Kung nais mong baguhin ang code sa Arduino sketch, halimbawa ng pagsusulat ng mga bagong utos sa joystick, kakailanganin mong i-flash ito sa lahat ng 3 mga file sa bawat oras.
Ang ilang mga kapaki-pakinabang na link: Hindi nahanap ang Arduino DFUAtLibUsbDfu.dll
Ang emulator ng keyboard na ito ay batay sa tutorial na ito ni Michael noong Hunyo 24, 2012.
Hakbang 14: Komunikasyon sa Network
Upang makatanggap ng video stream at magpadala ng mga utos sa robot mula sa kahit saan sa mundo, kailangan namin ng isang paraan ng pagkuha ng data papunta at mula sa ESP32-CAM. Ginagawa ito sa dalawang bahagi, isang handler ng koneksyon sa iyong lokal na network, at isang pampublikong server. I-download ang tatlong mga file upang makamit ito:
- Handlers.py: nagpapasa ng impormasyon mula sa ESP32-CAM at sa pampublikong server (nasubukan sa Python 3.8)
- Ang Flask_app.py: tumutukoy sa kung paano tumutugon ang iyong app sa mga papasok na kahilingan.
- Robot_stream.html: nagbibigay ng video sa iyong browser at nakikinig para sa mga utos sa pamamagitan ng keyboard / joystick (nasubukan sa Chrome)
Maaari mong mai-code ito nang direkta sa app_httpd.cpp, ngunit para sa mas madaling pag-debug ay gumagamit kami ng isang Python script na tumatakbo sa isang PC na konektado sa parehong network. Buksan ang handlers.py at i-update ang IP address at username sa iyong sarili, at handa ka nang pumunta. Magsisimula ang stream kapag pinatakbo mo ang file na ito.
Public Server Upang ma-access ang lahat sa internet, maaari kang magsimula sa isang server na may gusto mong PaaS. Sa pythonanywhere (PA) pagse-set up na ito ay kukuha ng mas mababa sa 5 minuto:
- Mag-sign up para sa isang account at mag-log in
- Pumunta sa tab na "Web" at pindutin ang "Magdagdag ng isang bagong Web App", piliin ang Flask at Python 3.6
- Kopyahin ang flask_app.py sa direktoryo / mysite
- Kopyahin ang robot_stream.html sa direktoryo / mysite / template
- I-click ang "Reload"
At… handa ka na!
Pagwawaksi: Ang daloy ng trabaho sa networking na ito ay mabilis at simple ngunit napakalayo mula sa perpekto. Ang RTMP o sockets ay magiging mas naaangkop para sa streaming, ngunit hindi sila suportado sa PA at nangangailangan ng ilang karanasan sa pag-set up ng network at server. Inirerekumenda rin na magdagdag ka ng ilang mekanismo sa seguridad upang makontrol ang pag-access.
Hakbang 15: Pagsasama-sama sa Lahat ng Ito
Ngayon, i-on ang iyong robot, magpatakbo ng handlers.py sa isang computer (konektado sa parehong network tulad ng robot), at makontrol mo ang robot mula sa isang browser batay sa url na itinakda mo mula sa kahit saan mo nais. (hal.
Inirerekumendang:
Clock ng Iskedyul: Ang iyong Virtual na Katulong sa Pagiging Produktibo .: 6 Mga Hakbang (na may Mga Larawan)
Clock ng Iskedyul: Ang iyong Virtual na Katulong sa Pagiging Produktibo .: Ako ay isang propesyonal na tagapagpaliban! Ang lock down na ito ay inilalagay ako sa isang time loop, kung saan araw-araw ay lilipad lamang nang walang anumang produktibong trabaho. Upang talunin ang aking pagpapaliban, nagawa ko ang simple at mabilis na orasan na ito, na nag-iskedyul ng aking trabaho. Ngayon ay maaari lamang akong dumikit sa
10 Mga kahalili sa DIY sa Mga Off-The-Shelf na Elektroniko na Mga Bahagi: 11 Mga Hakbang (na may Mga Larawan)
10 Mga Kahalili sa DIY sa Mga Off-The-Shelf na Mga Elektroniko na Bahagi: Maligayang pagdating sa aking kauna-unahang itinuro! Sa palagay mo ba ang ilang mga bahagi mula sa mga tagatingi sa online ay masyadong mahal o may mababang kalidad? Kailangan bang makakuha ng isang prototype nang mabilis at tumatakbo nang mabilis at hindi makapaghintay linggo para sa pagpapadala? Walang mga lokal na electronics distributor? Ang fol
Recycled Digital Photo Frame Na May Virtual na Pare-pareho: 7 Mga Hakbang (na may Mga Larawan)
Recycled Digital Photo Frame Sa Virtual na Pare-pareho: Kumusta ang lahat! Ang itinuturo na ito ay ipinanganak mula sa isang laptop na nahati sa kalahati, binili mula sa isang kaibigan. Ang unang pagtatangka ng naturang proyekto ay ang aking Lego Digital Photo Frame, subalit, bilang isang masigasig na gumagamit ng Siri at Google Ngayon, napagpasyahan kong dalhin ito sa isang bagong
Mga Salamin sa Virtual at Mixed Reality: 15 Hakbang (na may Mga Larawan)
Virtual at Mixed Reality Glasses: Panimula: Sa panahon ng master course na Teknolohiya para sa Disenyo ng Konsepto ay tinanong kaming tuklasin ang isang umuusbong na teknolohiya na nababagay sa aming pangunahing proyekto at subukan ang teknolohiyang ito sa pamamagitan ng paggawa ng isang prototype. Ang mga teknolohiyang pinili namin ay parehong Virtual reali
Mobile Virtual Reality Gamit ang Pagproseso para sa Android (TfCD): 7 Mga Hakbang (na may Mga Larawan)
Mobile Virtual Reality Gamit ang Pagproseso para sa Android (TfCD): Ang Virtual Reality (VR) ay isa sa mga bagong teknolohiya na maaaring maging kawili-wili ay mga produkto sa hinaharap. Mayroon itong maraming mga pagkakataon at hindi mo na kailangan ng mamahaling mga VR baso (Oculus Rift). Maaaring mukhang napakahirap gawin ang iyong sarili, ngunit ang pangunahing kaalaman ay