Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Хөдөлгөөнт робот машин
- Алхам 2: Хөдөлгөөнт робот машин - Хэлхээ диаграм
- Алхам 3: Хөдөлгөөнт робот машин - Ассемблей (Мотор)
- Алхам 4: Хөдөлгөөнт робот машин - Ассемблей (зайны мэдрэгч)
- Алхам 5: Хөдөлгөөнт робот машин - Ассемблер (ESP32 CAM)
- Алхам 6: Хөдөлгөөнт робот машин - Ассемблер (чип түгээгүүр)
- Алхам 7: Хөдөлгөөнт робот машин - Ассемблей (жигнэмэг!)
- Алхам 8: Хөдөлгөөнт робот машин - Arduino код
- Алхам 9: Хөдөлгөөнт робот машин - ESP32 код
- Алхам 10: Чип диспенсер
- Алхам 11: Joystick
- Алхам 12: Joystick - Circuit Diagram
- Алхам 13: Joystick - Keyboard Emulator
- Алхам 14: Сүлжээний харилцаа холбоо
- Алхам 15: Бүгдийг нэгтгэх
Видео: Виртуал орших робот: 15 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Энэхүү хөдөлгөөнт робот нь алсын зайнаас хянаж буй хүний "виртуал оршихуй" -ыг илэрхийлэх замаар хүрээлэн буй орчинтойгоо харилцдаг. Амттан тарааж, тантай тоглохын тулд дэлхийн хаана ч байсан хэн ч хандаж болно.
Эндхийн ажлыг хоёр хүн (Герман, АНУ-д нэг хүн) боловсруулж, алсын зайнаас харилцан үйлчлэх физик интерфэйсийг бий болгосноор интернетэд суурилсан харилцаа холбооны уламжлалт арга хэрэгслээс даван гарахыг оролдож байна. COVID-19 дэлхий ертөнцөд нөлөөлсөөр байгаа бөгөөд хүн бүр бидний бие махбодид үзүүлэх нөлөөллийг хязгаарлах үүрэгтэй тул бид бие махбодийн харилцан үйлчлэлийн нэг хэсэг болох бодит холболтыг буцааж авчрахыг хичээдэг.
Энэ нь ESP32-Камер-Робот-FPV-Багш-Оролтын зааварчилгаанд суурилсан бөгөөд зайны мэдрэгч, диспенсер, "дэлхийн аль ч өнцгөөс хянах" чадварыг багтаасан бөгөөд хэрэв танд интернет тогтвортой байгаа бол.
Хангамж
Энэхүү төсөл нь хөдөлгөөнт робот машин, чип хуваарилагч, джойстик, сүлжээний холбооны тохиргоо гэсэн үндсэн 4 хэсгээс бүрдэнэ.
Хөдөлгөөнт робот машин
- Талхны самбар
- 2 дугуйгаар хөтлөгчтэй мотор ба явах эд ангийн роботын иж бүрдэл (дугуй, тогтмол гүйдлийн мотор, бэхэлгээний самбар, эрэг орно)
- Arduino Mega 2560 (хэрэв та зайны мэдрэгчгүй эсвэл чип диспенсергүй бол Uno хангалттай тээглүүртэй болно)
- (3) 9В зай
- LM2596 Цахилгаан хангамжийн модуль DC/DC Buck 3A зохицуулагч (эсвэл үүнтэй төстэй)
- ESP32-CAM Wifi модуль
- FT232RL FTDI USB-ээс TTL цуваа хөрвүүлэгч (ESP32-CAM програмчлахад зориулагдсан)
- HC-SR04 хэт авианы зайн мэдрэгч
- L298N мотор драйвер
- (3) LED (ямар ч өнгө)
- (3) 220 Ом эсэргүүцэл
Чип тараагч
- (2) SG90 servo
- Картон / цаасан самбар
Joystick
- Ардуино Уно
- Joystick модуль
- Mini Breadboard, (1) LED, (1) 220 Ом эсэргүүцэл (заавал биш)
Бусад
Олон тооны талхны самбарын холбогч утас Нэмэлт картон / цаасан тууз
Тэвчээр =)
Алхам 1: Хөдөлгөөнт робот машин
Робот машины явах эд анги нь хөдөлгөөнт платформ болж үйлчилдэг бөгөөд Arduino MEGA нь моторыг жолооддог, мэдрэгчийн утгыг уншиж, servo-ийг ажиллуулдаг гол микро хянагч юм. Ихэнх үйлдлүүд нь Arduino MEGA-г ESP32-CAM-ээс илгээсэн цуваа холболтоор дамжуулан команд хүлээн авах замаар хийгддэг. ESP32 нь роботыг хянахын тулд камерын шууд дамжуулалтаар хангадаг бол түүний өөр нэг үүрэг бол робот ба сервер хоёрын хооронд утасгүй холболтыг удирдах явдал юм. ESP32 нь вэб хуудаснаас командыг товчлуур дарах замаар хүлээн авч, тэдгээрийг Arduino MEGA руу char утга болгон илгээдэг. Хүлээн авсан үнэ дээр үндэслэн машин урагш, ухрах гэх мэт явах болно. Интернэтээр дамжуулан алсын удирдлага хийх нь хоцрогдол, дамжуулалтын чанар муу, таслах зэрэг олон гадны хүчин зүйлээс хамаардаг тул робот осолдохгүйн тулд зайны мэдрэгч суурилуулсан болно. ESP32 чипийн өндөр ба хэлбэлзэлтэй тэжээлийн шаардлагын улмаас цахилгаан хангамжийн зохицуулагчийг батерейгаар ашиглахыг зөвлөж байна (холболтын диаграмыг үзнэ үү).
Алхам 2: Хөдөлгөөнт робот машин - Хэлхээ диаграм
Бид энэ алхамыг алхам алхамаар угсрах болно.
Алхам 3: Хөдөлгөөнт робот машин - Ассемблей (Мотор)
Та 2WD явах эд ангиудыг угсарсны дараа L298N драйвераар дамжуулан мотор, батерейг Arduino MEGA -д холбож эхэлнэ.
Алхам 4: Хөдөлгөөнт робот машин - Ассемблей (зайны мэдрэгч)
Холбох хэд хэдэн бүрэлдэхүүн хэсгүүд байгаа тул талхыг нэмж оруулъя, ингэснээр бид хүч чадал болон хуваалцсан газрыг илүү хялбар холбож чадна. Бид утсыг дахин зохион байгуулсны дараа зайны мэдрэгчийг холбоод роботын урд талд засна уу.
Алхам 5: Хөдөлгөөнт робот машин - Ассемблер (ESP32 CAM)
Дараа нь ESP32-CAM модулийг холбоод роботын урд талын зайны мэдрэгчийн хажууд засна уу. Эрчим хүчээр маш их цэнэглэгддэг энэхүү бүрэлдэхүүн хэсэг нь өөрийн зай, тогтмол гүйдлийн зохицуулагч шаарддаг гэдгийг санаарай.
Алхам 6: Хөдөлгөөнт робот машин - Ассемблер (чип түгээгүүр)
Одоо би чип тараагчийг нэмж оруулъя (энэ талаар "Chip Dispenser" хэсэгт дэлгэрэнгүй үзнэ үү). Fritzing диаграмын дагуу хоёр servo -ийг утастай болгож, роботын сүүл хэсэгт хуваарилагчийг засаарай.
Алхам 7: Хөдөлгөөнт робот машин - Ассемблей (жигнэмэг!)
Эцэст нь бид диспенсерт амттан нэмж өгдөг!
Алхам 8: Хөдөлгөөнт робот машин - Arduino код
RobotCar_Code бол Arduino Mega дээр ачаалах шаардлагатай код юм.
Энэ нь хэрхэн ажилладагийг энд харуулав: Arduino нь ESP32 -ээс 115200 зурваст цуваа холболтоор илгээгдсэн байтуудыг сонсдог. Хүлээн авсан байт дээр үндэслэн машин нь чиглэлийг хянахын тулд мотор руу өндөр эсвэл бага хүчдэл, мөн хурдыг хянахын тулд 0-255 хооронд ХОУХ-ны хувьсагчийг илгээж урагш, хойш, зүүн, баруун гэх мэт хөдөлнө. Мөргөлдөхөөс зайлсхийхийн тулд энэ код нь зайн мэдрэгчээс ирж буй утгыг уншдаг бөгөөд хэрэв зай нь заасан босгоос бага байвал робот урагшлахгүй. Эцэст нь хэлэхэд, хэрэв Arduino нь амттан тараах тушаалыг хүлээн авбал энэ нь чип диспенсер дэх servos -ийг идэвхжүүлнэ.
Алхам 9: Хөдөлгөөнт робот машин - ESP32 код
ESP32 нь сервер болон Arduino хооронд Wi -Fi -ээр холбогдох боломжийг олгодог. Энэ нь Arduino -аас тусад нь програмчлагдсан бөгөөд өөрийн гэсэн кодтой:
- ESP32_Code.ino бол Arduino руу мэдээлэл илгээх ESP32 код юм
- app_httpd.cpp бол анхдагч ESP32 вэб серверт шаардлагатай код бөгөөд товчлуур дарахад сонсох функцийг тохируулдаг. Орон нутгийн wifi дээр дибаг хийх, туршихад тохиромжтой. Энэ нь дотоод сүлжээнээс гадуур харилцахад ашиглагддаггүй.
- camera_index.h бол анхдагч вэб програмын html код юм
- camera_pins.h нь зүүг ESP32 загвараас хамааран тодорхойлдог
ESP32 код нь дараах алхамуудыг дагаж Arduino IDE-д суулгаж болох Wifi номын сан болон ESP32 нэмэлтийг ашигладаг.
- Arduino IDE дээр Файл> Тохиргоо руу очно уу
- Дараа нь Нэмэлт самбар удирдах URL -ийн доорх Тохиргоо таб дээр дараах "https://dl.espressif.com/dl/package_esp32_index.json" оруулна уу.
- Одоо самбаруудын менежерийг нээгээд Tools> Board> Board Manager дээр очиж "ESP32" гэж бичээд ESP32 -ийг хайж олоорой.
- Та "Espressif Systems by esp32" -ийг харах ёстой. Install дээр дарна уу.
- Одоо ESP32 нэмэлтийг суулгах ёстой. Шалгахын тулд Arduino IDE руу буцаж очоод Tools> Board руу очоод "ESP32 Wrover Module" -г сонгоно уу.
- Дахин Tools> Upload Speed руу очоод "115200" болгож тохируулна уу.
- Эцэст нь Tools> Partition Scheme руу ороод "Huge APP (3MB No OTA/1MB SPIFFS) болгож тохируулна уу.
- Үүнийг дуусгасны дараа би RandomNerdTutorials -ийн энэхүү гарын авлагыг дагаж мөрдөхийг зөвлөж байна. Энэ нь ESP32 -ийг хэрхэн тохируулж дуусгах, FTDI програмистаар код байршуулах талаар дэлгэрэнгүй тайлбарласан болно.
Алхам 10: Чип диспенсер
Chip Dispenser нь хөдөлгөөнт роботын хямд нэмэлт бөгөөд орон нутгийн байгаль орчинд нөлөөлж, амттай амттан үлдээж хүн / амьтантай харьцах боломжийг олгодог. Энэ нь дотор нь 2 ширхэг servo бүхий цаасан картон хайрцаг, мөн дотор нь цаасан хайрцаг, чихэр (нохой, чихэр гэх мэт) хадгалдаг. Нэг servo нь хаалганы үүрэг гүйцэтгэдэг бол нөгөөх нь зүйлийг гадагш гаргадаг.
*Бүх хэмжээсийг миллиметрээр хэмждэг
Алхам 11: Joystick
Гарыг ашиглан роботыг удирдах нь хөгжилтэй байдаг ч робот таны түлхсэн чиглэлд тулгуурлан шууд хариу үйлдэл үзүүлдэг джойстикийг ашиглах нь бүр илүү хөгжилтэй бөгөөд зөн совинтой байдаг. Энэ роботыг вэб хуудсан дээр бичигдсэн товчлуур дээр дарж ажиллуулдаг тул гар дуурайхад бидний джойстик хэрэгтэй байв. Ингэснээр джойстикгүй хэрэглэгчид роботыг гарнаас шууд удирдах боломжтой боловч бусад нь джойстикийг ашиглаж болно.
Үүний тулд бидэнд зөвхөн номын санг ашиглах чадваргүй Arduino Uno байсан тул бид үүнийг Arduino -г USB HID гарны ерөнхий програмаар гэрэлтүүлэх боломжийг олгодог Device Firmware Update (DFU) гэгддэг USB протоколыг ашиглан шууд програмчилсан.. Өөрөөр хэлбэл, arduino -ийг USB -д залгахад үүнийг arduino гэж хүлээн зөвшөөрөхгүй, харин гар гэж үзэх болно!
Алхам 12: Joystick - Circuit Diagram
Бид джойстикийг хэрхэн холбосныг энд харуулав.
Алхам 13: Joystick - Keyboard Emulator
Таны Arduino Uno гарыг дуурайхын тулд та Arduino дээрх Atmega16u2 чипийг гарын авлагын төхөөрөмжийн програм хангамжийн шинэчлэлт (DFU) ашиглан шууд програмчлах хэрэгтэй. Дараахь алхамууд нь Windows машинд зориулсан үйл явцыг тайлбарлах бөгөөд бидний тулгарсан зарим асуудлаас зайлсхийхэд тусална гэж найдаж байна.
Эхний алхам бол Atmel USB драйверийг Arduino дээр гараар бичих явдал бөгөөд үүнийг USB гэж хүлээн зөвшөөрдөг бөгөөд үүнийг FLIP програмисттай хамт гэрэлтүүлэх боломжийг олгодог Arduino биш юм.
- Atmel -ийн FLIP програмистыг эндээс татаж аваарай
- Arduino Uno -г залгаарай
- Төхөөрөмжийн менежер рүү ороод Arduino -г олоорой. Энэ нь COM эсвэл Үл мэдэгдэх төхөөрөмж дор байх болно. Үүнийг зөв төхөөрөмж эсэхийг шалгахын тулд залгаарай.
- Төхөөрөмжийн менежерээс Arduino Uno -г олсны дараа хулганы баруун товчийг дараад шинж чанарууд> Драйвер> Драйверийг шинэчлэх> Драйверын програм хангамжийг үзэхийн тулд миний компьютерийг үзэх> Миний компьютер дээр байгаа драйверуудын жагсаалтаас сонгохыг зөвшөөрнө үү> Дисктэй байх> Хөтөч рүү очно уу. "atmel_usb_dfu.inf" файлыг сонгоод сонгоно уу. Энэ нь таны Atmel FLIP програмыг суулгасан хавтсанд байх ёстой. Миний компьютер дээр энд байна: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- Драйверийг суулгана уу
- Төхөөрөмжийн менежер рүү буцаж очоод та Arduino Uno -тэй ATmega16u2 гэсэн шошготой "Atmel USB төхөөрөмжүүд" -ийг харах ёстой!
Компьютер Arduino Uno -г USB төхөөрөмж гэж хүлээн зөвшөөрсөн тул бид FLIP програмист ашиглан 3 тусдаа файлыг флаш болгож, гар болгон хувиргаж чадна.
Хэрэв та эхний хэсгийн дараа Arduino Uno -г салгасан бол дахин залгаарай.
- FLIP -ийг нээнэ үү
- Arduino Uno -г дахин тохируулж, хүчийг газард холбоно уу.
- Төхөөрөмжийн сонголт (микрочип шиг дүрс) дээр дараад ATmega16U2 -ийг сонгоно уу
- Харилцааны хэрэгсэл сонгох (USB кабель шиг дүрс) дээр дараад USB -г сонгоно уу. Хэрэв та эхний хэсгийг зөв бөглөсөн бол бусад саарал товчлуурууд ашиглах боломжтой болно.
- Файл> Hex файлыг ачаалах> руу очоод Arduino-usbserial-uno.hex файлыг байршуулна уу.
- FLIP цонхонд та үйл ажиллагааны урсгал, FLASH орчны мэдээлэл, ATmega16U2 гэсэн гурван хэсгийг харах ёстой. Үйлдлийн урсгалын хэсэгт Erase, Program, Verify гэсэн хайрцгийг шалгаад Run дээр дарна уу.
- Энэ процесс дууссаны дараа ATmega16U2 хэсэгт Програмыг эхлүүлэх дээр дарна уу.
- Arduino -г компьютераас салгаад буцааж залгаарай.
- Arduino Uno -г дахин тохируулж, хүчийг газард холбоно уу.
- Arduino IDE -ийг нээгээд JoyStickControl_Code.ino файлыг самбар дээр байршуулна уу.
- Arduino -г компьютераас салгаад буцааж залгаарай.
- Цахилгаан тэжээлийг газар руу богино холбосноор arduino -г дахин тохируулна уу.
- FLIP руу буцаж очоод Төхөөрөмжийн сонголт Atmega16U2 гэж бичсэн эсэхийг шалгаарай
- Communication Medium сонгох дээр дараад USB -г сонгоно уу.
- Файл> Hex файлыг ачаалах> руу очоод Arduino-keyboard-0.3.hex файлыг байршуулна уу
- FLIP цонхонд та үйл ажиллагааны урсгал, FLASH орчны мэдээлэл, ATmega16U2 гэсэн гурван хэсгийг харах ёстой. Үйлдлийн урсгалын хэсэгт Erase, Program, Verify гэсэн хайрцгийг шалгаад Run дээр дарна уу.
- Энэ процесс дуусмагц ATmega16U2 хэсэгт Програмыг эхлүүлэх дээр дарна уу.
- Arduino -г компьютераас салгаад буцааж залгаарай.
- Төхөөрөмжийн менежер рүү очиход гарны доор шинэ HID гар төхөөрөмж байх ёстой.
- Тэмдэглэлийн дэвтэр эсвэл текст засварлагчийг нээгээд joystick -ийг хөдөлгөж эхлээрэй. Та тоонуудыг бичиж байгааг харах ёстой!
Хэрэв та Arduino ноорог дээрх кодыг өөрчлөхийг хүсч байвал, жишээ нь джойстикт шинэ командыг бичихийг хүсвэл, үүнийг 3 файлын хамт заавал флэшлэх шаардлагатай болно.
Зарим хэрэгтэй холбоосууд: Arduino DFUAtLibUsbDfu.dll олдсонгүй
Энэхүү гарын эмуляторыг 2012 оны 6 -р сарын 24 -нд Майклын бичсэн энэхүү гарын авлагад үндэслэсэн болно.
Алхам 14: Сүлжээний харилцаа холбоо
Дэлхийн өнцөг булан бүрээс видео дамжуулалт хүлээн авах, робот руу командыг илгээхийн тулд бидэнд ESP32-CAM-аас өгөгдөл авах арга зам хэрэгтэй. Энэ нь таны дотоод сүлжээний холболтын зохицуулагч, нийтийн сервер гэсэн хоёр хэсгээс бүрдэнэ. Үүнийг хийхийн тулд гурван файлыг татаж аваарай.
- Handlers.py: ESP32-CAM болон нийтийн серверээс мэдээлэл дамжуулдаг (Python 3.8 дээр туршсан)
- Flask_app.py: Таны апп ирж буй хүсэлтэд хэрхэн хариу өгөхийг тодорхойлдог.
- Robot_stream.html: таны хөтөч дээр видео үзүүлж, гар / джойстик ашиглан тушаалуудыг сонсдог (Chrome дээр туршсан)
Холболтын зохицуулагч Та үүнийг шууд app_httpd.cpp хаягаар кодлох боломжтой боловч дибаг хийхэд хялбар болгохын тулд бид нэг сүлжээнд холбогдсон компьютер дээр ажилладаг Python скриптийг ашигладаг. Handlers.py -ийг нээгээд IP хаяг, хэрэглэгчийн нэрээ шинэчилснээр та бэлэн боллоо. Таныг энэ файлыг ажиллуулахад урсгал эхэлнэ.
Нийтийн сервер Интернэтэд байгаа бүх зүйлд хандахын тулд та PaaS -тэй өөрийн хүссэн серверээ ажиллуулж болно. Pythonanywhere (PA) дээр үүнийг тохируулахад 5 -аас бага минут шаардагдана.
- Бүртгэлд бүртгүүлж, нэвтэрнэ үү
- "Вэб" таб руу очоод "Шинэ вэб програм нэмэх" дээр дараад Flask болон Python 3.6 -ийг сонгоно уу
- Flask_app.py файлыг /mysite лавлах руу хуулах
- Robot_stream.html -ийг /mysite /templates директор руу хуулах
- "Дахин ачаалах" дээр дарна уу
Тэгээд … та бэлэн боллоо!
Анхааруулга: Энэхүү сүлжээний ажлын урсгал нь хурдан бөгөөд энгийн боловч хамгийн тохиромжтой зүйлээс хол байна. RTMP эсвэл сокетууд нь цацахад илүү тохиромжтой байх болно, гэхдээ тэдгээр нь ТХГН дээр дэмжигддэггүй бөгөөд сүлжээний болон серверийн тохиргооны талаар туршлага шаарддаг. Хандалтыг хянах аюулгүй байдлын зарим механизмыг нэмж оруулахыг зөвлөж байна.
Алхам 15: Бүгдийг нэгтгэх
Одоо роботоо асаагаарай, компьютер дээр handlers.py ажиллуулаарай (роботтой ижил сүлжээнд холбогдсон), та хүссэн газраасаа тохируулсан url дээр үндэслэн хөтөч дээрээс роботыг удирдах боломжтой болно. (жишээ нь
Зөвлөмж болгож буй:
Нууцлах виртуал тоглоом: 3 алхам
Виртуал нуугдах тоглоом: Манай ач зээ нар нуугдаж тоглох дуртай боловч дотор нь тийм ч сайн газар байдаггүй. Тэд ан хийх дуртай хэвээр байхын тулд би виртуал нуугдах тоглоом хийхээр шийдсэн. Миний хувилбарт RF хүлээн авагчтай зүйлийг нуух болно
Виртуал даралт хэмжигч 1 -р хэсэг. 4 алхам
Виртуал даралт хэмжигч 1 -р хэсэг. Даралт хэмжигчийг газрын тосны талбай гэх мэт салбарт ашигладаг. Би өдөр тутмын ажилдаа, ялангуяа гидравлик машинтай харьцахдаа даралт хэмжигчийг олон удаа ашигладаг байсан. Виртуал даралт хэмжигчийг хэрхэн яаж хийх вэ гэж би бодож байсан
Орших мэдрэгч: 12 алхам
Бэлэн байдлын мэдрэгч: Өмсдөг зүйлс нь ихэвчлэн BLE идэвхжүүлсэн төхөөрөмжүүд байдаг. Тэд MAC хаягийнхаа дагуу зарим өгөгдлийг үе үе сурталчлах нь түгээмэл байдаг. Бид ESP ашиглан эдгээр өгөгдлийг сканнердаж, тодорхой MAC хаягийг олох үед интернетээр дамжуулан үйл явдлыг өдөөдөг. Энэхүү тодорхой
Тэнцвэржүүлэх робот / 3 дугуйт робот / STEM робот: 8 алхам
Тэнцвэржүүлэх робот / 3 дугуйт робот / STEM робот: Бид сургуулиудад болон сургуулийн дараах боловсролын хөтөлбөрт зориулан тэнцвэржүүлэгч, 3 дугуйт роботыг бүтээсэн. Энэхүү робот нь Arduino Uno, захиалгат бамбай (барилгын бүх дэлгэрэнгүй мэдээллийг өгсөн болно), Li Ion батерейны багц дээр суурилсан (бүх бүтэц
[Arduino робот] Хөдөлгөөнт робот хэрхэн хийх вэ - Эрхий хурууны робот - Servo мотор - Эх код: 26 алхам (зурагтай)
[Arduino робот] Хөдөлгөөнт робот хэрхэн хийх вэ | Эрхий хурууны робот | Servo мотор | Эх код: Эрхий хуруу робот. MG90S servo моторын потенциометрийг ашигласан. Энэ нь маш хөгжилтэй, хялбар юм! Код нь маш энгийн. Энэ нь ердөө 30 орчим мөр юм. Энэ нь хөдөлгөөнт зураг шиг харагдаж байна. Асуух зүйл эсвэл санал хүсэлтээ үлдээнэ үү! [Заавар] Эх код https: //github.c