Агуулгын хүснэгт:

Виртуал орших робот: 15 алхам
Виртуал орших робот: 15 алхам

Видео: Виртуал орших робот: 15 алхам

Видео: Виртуал орших робот: 15 алхам
Видео: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Арваннэгдүгээр
Anonim
Image
Image
Хөдөлгөөнт робот машин
Хөдөлгөөнт робот машин

Энэхүү хөдөлгөөнт робот нь алсын зайнаас хянаж буй хүний "виртуал оршихуй" -ыг илэрхийлэх замаар хүрээлэн буй орчинтойгоо харилцдаг. Амттан тарааж, тантай тоглохын тулд дэлхийн хаана ч байсан хэн ч хандаж болно.

Эндхийн ажлыг хоёр хүн (Герман, АНУ-д нэг хүн) боловсруулж, алсын зайнаас харилцан үйлчлэх физик интерфэйсийг бий болгосноор интернетэд суурилсан харилцаа холбооны уламжлалт арга хэрэгслээс даван гарахыг оролдож байна. 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)
Хөдөлгөөнт робот машин - угсралт (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 нэмэлтийг ашигладаг.

  1. Arduino IDE дээр Файл> Тохиргоо руу очно уу
  2. Дараа нь Нэмэлт самбар удирдах URL -ийн доорх Тохиргоо таб дээр дараах "https://dl.espressif.com/dl/package_esp32_index.json" оруулна уу.
  3. Одоо самбаруудын менежерийг нээгээд Tools> Board> Board Manager дээр очиж "ESP32" гэж бичээд ESP32 -ийг хайж олоорой.
  4. Та "Espressif Systems by esp32" -ийг харах ёстой. Install дээр дарна уу.
  5. Одоо ESP32 нэмэлтийг суулгах ёстой. Шалгахын тулд Arduino IDE руу буцаж очоод Tools> Board руу очоод "ESP32 Wrover Module" -г сонгоно уу.
  6. Дахин Tools> Upload Speed руу очоод "115200" болгож тохируулна уу.
  7. Эцэст нь Tools> Partition Scheme руу ороод "Huge APP (3MB No OTA/1MB SPIFFS) болгож тохируулна уу.
  8. Үүнийг дуусгасны дараа би RandomNerdTutorials -ийн энэхүү гарын авлагыг дагаж мөрдөхийг зөвлөж байна. Энэ нь ESP32 -ийг хэрхэн тохируулж дуусгах, FTDI програмистаар код байршуулах талаар дэлгэрэнгүй тайлбарласан болно.

Алхам 10: Чип диспенсер

Чип тараагч
Чип тараагч

Chip Dispenser нь хөдөлгөөнт роботын хямд нэмэлт бөгөөд орон нутгийн байгаль орчинд нөлөөлж, амттай амттан үлдээж хүн / амьтантай харьцах боломжийг олгодог. Энэ нь дотор нь 2 ширхэг servo бүхий цаасан картон хайрцаг, мөн дотор нь цаасан хайрцаг, чихэр (нохой, чихэр гэх мэт) хадгалдаг. Нэг servo нь хаалганы үүрэг гүйцэтгэдэг бол нөгөөх нь зүйлийг гадагш гаргадаг.

*Бүх хэмжээсийг миллиметрээр хэмждэг

Алхам 11: Joystick

Joystick
Joystick

Гарыг ашиглан роботыг удирдах нь хөгжилтэй байдаг ч робот таны түлхсэн чиглэлд тулгуурлан шууд хариу үйлдэл үзүүлдэг джойстикийг ашиглах нь бүр илүү хөгжилтэй бөгөөд зөн совинтой байдаг. Энэ роботыг вэб хуудсан дээр бичигдсэн товчлуур дээр дарж ажиллуулдаг тул гар дуурайхад бидний джойстик хэрэгтэй байв. Ингэснээр джойстикгүй хэрэглэгчид роботыг гарнаас шууд удирдах боломжтой боловч бусад нь джойстикийг ашиглаж болно.

Үүний тулд бидэнд зөвхөн номын санг ашиглах чадваргүй Arduino Uno байсан тул бид үүнийг Arduino -г USB HID гарны ерөнхий програмаар гэрэлтүүлэх боломжийг олгодог Device Firmware Update (DFU) гэгддэг USB протоколыг ашиглан шууд програмчилсан.. Өөрөөр хэлбэл, arduino -ийг USB -д залгахад үүнийг arduino гэж хүлээн зөвшөөрөхгүй, харин гар гэж үзэх болно!

Алхам 12: Joystick - Circuit Diagram

Joystick - хэлхээний диаграм
Joystick - хэлхээний диаграм

Бид джойстикийг хэрхэн холбосныг энд харуулав.

Алхам 13: Joystick - Keyboard Emulator

Таны Arduino Uno гарыг дуурайхын тулд та Arduino дээрх Atmega16u2 чипийг гарын авлагын төхөөрөмжийн програм хангамжийн шинэчлэлт (DFU) ашиглан шууд програмчлах хэрэгтэй. Дараахь алхамууд нь Windows машинд зориулсан үйл явцыг тайлбарлах бөгөөд бидний тулгарсан зарим асуудлаас зайлсхийхэд тусална гэж найдаж байна.

Эхний алхам бол Atmel USB драйверийг Arduino дээр гараар бичих явдал бөгөөд үүнийг USB гэж хүлээн зөвшөөрдөг бөгөөд үүнийг FLIP програмисттай хамт гэрэлтүүлэх боломжийг олгодог Arduino биш юм.

  1. Atmel -ийн FLIP програмистыг эндээс татаж аваарай
  2. Arduino Uno -г залгаарай
  3. Төхөөрөмжийн менежер рүү ороод Arduino -г олоорой. Энэ нь COM эсвэл Үл мэдэгдэх төхөөрөмж дор байх болно. Үүнийг зөв төхөөрөмж эсэхийг шалгахын тулд залгаарай.
  4. Төхөөрөмжийн менежерээс Arduino Uno -г олсны дараа хулганы баруун товчийг дараад шинж чанарууд> Драйвер> Драйверийг шинэчлэх> Драйверын програм хангамжийг үзэхийн тулд миний компьютерийг үзэх> Миний компьютер дээр байгаа драйверуудын жагсаалтаас сонгохыг зөвшөөрнө үү> Дисктэй байх> Хөтөч рүү очно уу. "atmel_usb_dfu.inf" файлыг сонгоод сонгоно уу. Энэ нь таны Atmel FLIP програмыг суулгасан хавтсанд байх ёстой. Миний компьютер дээр энд байна: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
  5. Драйверийг суулгана уу
  6. Төхөөрөмжийн менежер рүү буцаж очоод та Arduino Uno -тэй ATmega16u2 гэсэн шошготой "Atmel USB төхөөрөмжүүд" -ийг харах ёстой!

Компьютер Arduino Uno -г USB төхөөрөмж гэж хүлээн зөвшөөрсөн тул бид FLIP програмист ашиглан 3 тусдаа файлыг флаш болгож, гар болгон хувиргаж чадна.

Хэрэв та эхний хэсгийн дараа Arduino Uno -г салгасан бол дахин залгаарай.

  1. FLIP -ийг нээнэ үү
  2. Arduino Uno -г дахин тохируулж, хүчийг газард холбоно уу.
  3. Төхөөрөмжийн сонголт (микрочип шиг дүрс) дээр дараад ATmega16U2 -ийг сонгоно уу
  4. Харилцааны хэрэгсэл сонгох (USB кабель шиг дүрс) дээр дараад USB -г сонгоно уу. Хэрэв та эхний хэсгийг зөв бөглөсөн бол бусад саарал товчлуурууд ашиглах боломжтой болно.
  5. Файл> Hex файлыг ачаалах> руу очоод Arduino-usbserial-uno.hex файлыг байршуулна уу.
  6. FLIP цонхонд та үйл ажиллагааны урсгал, FLASH орчны мэдээлэл, ATmega16U2 гэсэн гурван хэсгийг харах ёстой. Үйлдлийн урсгалын хэсэгт Erase, Program, Verify гэсэн хайрцгийг шалгаад Run дээр дарна уу.
  7. Энэ процесс дууссаны дараа ATmega16U2 хэсэгт Програмыг эхлүүлэх дээр дарна уу.
  8. Arduino -г компьютераас салгаад буцааж залгаарай.
  9. Arduino Uno -г дахин тохируулж, хүчийг газард холбоно уу.
  10. Arduino IDE -ийг нээгээд JoyStickControl_Code.ino файлыг самбар дээр байршуулна уу.
  11. Arduino -г компьютераас салгаад буцааж залгаарай.
  12. Цахилгаан тэжээлийг газар руу богино холбосноор arduino -г дахин тохируулна уу.
  13. FLIP руу буцаж очоод Төхөөрөмжийн сонголт Atmega16U2 гэж бичсэн эсэхийг шалгаарай
  14. Communication Medium сонгох дээр дараад USB -г сонгоно уу.
  15. Файл> Hex файлыг ачаалах> руу очоод Arduino-keyboard-0.3.hex файлыг байршуулна уу
  16. FLIP цонхонд та үйл ажиллагааны урсгал, FLASH орчны мэдээлэл, ATmega16U2 гэсэн гурван хэсгийг харах ёстой. Үйлдлийн урсгалын хэсэгт Erase, Program, Verify гэсэн хайрцгийг шалгаад Run дээр дарна уу.
  17. Энэ процесс дуусмагц ATmega16U2 хэсэгт Програмыг эхлүүлэх дээр дарна уу.
  18. Arduino -г компьютераас салгаад буцааж залгаарай.
  19. Төхөөрөмжийн менежер рүү очиход гарны доор шинэ HID гар төхөөрөмж байх ёстой.
  20. Тэмдэглэлийн дэвтэр эсвэл текст засварлагчийг нээгээд 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 -аас бага минут шаардагдана.

  1. Бүртгэлд бүртгүүлж, нэвтэрнэ үү
  2. "Вэб" таб руу очоод "Шинэ вэб програм нэмэх" дээр дараад Flask болон Python 3.6 -ийг сонгоно уу
  3. Flask_app.py файлыг /mysite лавлах руу хуулах
  4. Robot_stream.html -ийг /mysite /templates директор руу хуулах
  5. "Дахин ачаалах" дээр дарна уу

Тэгээд … та бэлэн боллоо!

Анхааруулга: Энэхүү сүлжээний ажлын урсгал нь хурдан бөгөөд энгийн боловч хамгийн тохиромжтой зүйлээс хол байна. RTMP эсвэл сокетууд нь цацахад илүү тохиромжтой байх болно, гэхдээ тэдгээр нь ТХГН дээр дэмжигддэггүй бөгөөд сүлжээний болон серверийн тохиргооны талаар туршлага шаарддаг. Хандалтыг хянах аюулгүй байдлын зарим механизмыг нэмж оруулахыг зөвлөж байна.

Алхам 15: Бүгдийг нэгтгэх

Одоо роботоо асаагаарай, компьютер дээр handlers.py ажиллуулаарай (роботтой ижил сүлжээнд холбогдсон), та хүссэн газраасаа тохируулсан url дээр үндэслэн хөтөч дээрээс роботыг удирдах боломжтой болно. (жишээ нь

Зөвлөмж болгож буй: