Mundarija:
- Ta'minotlar
- 1 -qadam: Mobil robotli avtomobil
- 2 -qadam: Mobil robotli avtomobil - O'chirish diagrammasi
- 3 -qadam: Mobil robotli avtomobil - yig'ish (motorlar)
- 4 -qadam: Mobil robotli avtomobil - yig'ish (masofa sensori)
- 5 -qadam: Mobil robotli avtomobil - yig'ish (ESP32 CAM)
- 6 -qadam: Mobil robotli avtomobil - yig'ish (chip tarqatuvchi)
- 7 -qadam: Mobil robotli avtomobil - montaj (cookie fayllari!)
- 8 -qadam: Mobil robotli avtomobil - Arduino kodi
- 9 -qadam: Mobil robotli avtomobil - ESP32 kodi
- 10 -qadam: Chip dispenser
- 11 -qadam: Joystick
- 12 -qadam: Joystik - O'chirish diagrammasi
- 13 -qadam: Joystick - Klaviatura emulyatori
- 14 -qadam: Tarmoq aloqasi
- 15 -qadam: Hammasini bir joyga to'plash
Video: Virtual mavjudlik roboti: 15 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Bu mobil robot, uni masofadan boshqaradigan odamning "virtual borligi" ni ifodalab, uning atrofidagi muhit bilan o'zaro aloqada bo'ladi. Har kim, dunyoning istalgan nuqtasida, sizlarga sovg'alar berish va siz bilan o'ynash uchun kirishi mumkin.
Bu erdagi ishni ikki kishi (biri Germaniyada, ikkinchisi AQShda) uzoqdan o'zaro ta'sirlashish uchun jismoniy interfeys yaratish orqali Internetga asoslangan an'anaviy aloqa vositalaridan tashqariga chiqishga urinish sifatida ishlab chiqdilar. COVID-19 dunyoga ta'sir qilishda davom etar ekan va har kim odamlarga jismoniy ta'sirimizni cheklash uchun javobgar bo'lsa, biz jismoniy o'zaro ta'sirning bir qismi bo'lgan aniq aloqani qaytarishga harakat qilamiz.
U ESP32-Kamera-Robot-FPV-O'qituvchi-Kirish ko'rsatmalariga asoslanadi va masofa sensori, dispenser va "dunyoning istalgan nuqtasidan boshqarish" qobiliyatini o'z ichiga olgan holda o'zgartirilgan, agar sizda Internet barqaror bo'lsa.
Ta'minotlar
Loyiha 4 ta asosiy qismdan iborat - mobil robotli mashina, chip tarqatuvchi, joystik va tarmoq aloqasini o'rnatish.
Mobil robotli avtomobil
- Non paneli
- 2 g'ildirakli dvigatel va shassis robot to'plami (g'ildiraklar, shahar motorlari, o'rnatish taxtasi va vintlarni o'z ichiga oladi)
- Arduino Mega 2560 (agar siz masofa sensori yoki chip dispenserisiz qursangiz, Uno uchun etarli pinlar bo'ladi)
- (3) 9V batareyalar (yana bir nechta joylar bor, chunki siz ularni disk raskadrovka ishlarini tugatasiz)
- LM2596 Quvvat manbai moduli DC/DC Buck 3A regulyatori (yoki shunga o'xshash)
- ESP32-CAM Wi-Fi moduli
- FT232RL FTDI USB-TTL ketma-ket konvertori (ESP32-CAM dasturlash uchun)
- HC-SR04 Ultrasonik masofa sensori
- L298N dvigatel uchun haydovchi
- (3) LEDlar (har qanday rang)
- (3) 220 Ohmli rezistorlar
Chip dispenser
- (2) SG90 servo
- Karton / karton
Joystick
- Arduino Uno
- Joystik moduli
- Mini Breadboard, (1) LED, (1) 220 Ohm qarshilik (ixtiyoriy)
Boshqa
Ko'plab non taxtali o'tish simlari Qo'shimcha karton / karton lenta Scissors Ruler / o'lchash tasmasi Kichik Philips tornavida Kichkina tekis tornavida
Sabr =)
1 -qadam: Mobil robotli avtomobil
Robot Avtomobil shassisi mobil platforma bo'lib xizmat qiladi, Arduino MEGA dvigatellarni boshqaradigan, sensor qiymatlarini o'qiydigan va servolarni boshqaradigan asosiy mikro-nazoratchi. Aksariyat harakatlar Arduino MEGA-ga ESP32-CAM-dan yuborilgan ketma-ket aloqa orqali buyruqlarni qabul qilish orqali amalga oshiriladi. ESP32 robotni boshqarish uchun kamerali jonli translyatsiyani ta'minlasa, uning boshqa vazifasi robot va server o'rtasidagi simsiz ulanishni boshqarish, shuning uchun foydalanuvchilarga dunyoning istalgan nuqtasidan boshqarish imkonini beradi. ESP32 veb -sahifadan buyruqlarni tugma bosish orqali qabul qiladi va ularni Arduino MEGA -ga char qiymati sifatida yuboradi. Qabul qilingan qiymatga qarab, mashina oldinga, orqaga va hokazo bo'ladi, chunki Internet orqali masofadan boshqarish ko'p tashqi omillarga bog'liq, shu jumladan yuqori kechikish, past oqim sifati va hatto uzilishlar, robot qulab tushmasligi uchun masofa sensori o'rnatilgan. *ESP32 chipining yuqori va o'zgaruvchan quvvat talablari tufayli batareya quvvati bilan ishlash uchun quvvat manbai regulyatori tavsiya etiladi (simlar sxemasiga qarang).
2 -qadam: Mobil robotli avtomobil - O'chirish diagrammasi
Biz sizga bu bosqichma -bosqich yig'ish bo'yicha ko'rsatma beramiz.
3 -qadam: Mobil robotli avtomobil - yig'ish (motorlar)
2WD shassisini yig'gandan so'ng, biz motorlar va batareyani L298N drayveri orqali Arduino MEGA ga ulashdan boshlaymiz.
4 -qadam: Mobil robotli avtomobil - yig'ish (masofa sensori)
Ulanish uchun juda ko'p komponentlar mavjud bo'lgani uchun, keling, taxtani qo'shamiz, shunda biz kuch va umumiy erni osonroq ulashimiz mumkin. Biz simlarni qayta tashkil qilgandan so'ng, masofa sensori ulang va uni robotning old qismiga o'rnating.
5 -qadam: Mobil robotli avtomobil - yig'ish (ESP32 CAM)
Keyin, ESP32-CAM modulini ulang va uni robot old qismidagi masofa sensori yoniga o'rnating. Esda tutingki, kuch talab qiladigan bu komponentga o'z batareyasi va shahar regulyatori kerak bo'ladi.
6 -qadam: Mobil robotli avtomobil - yig'ish (chip tarqatuvchi)
Keling, chip-dispenserni qo'shamiz (bu haqda "Chip dispenser" bo'limida batafsilroq). Fritzing diagrammasi bo'yicha ikkita servo simni ulang va dispenserni robotning dumiga mahkamlang.
7 -qadam: Mobil robotli avtomobil - montaj (cookie fayllari!)
Nihoyat, biz dispenserga shirinliklar qo'shamiz!
8 -qadam: Mobil robotli avtomobil - Arduino kodi
RobotCar_Code - bu Arduino Mega -ga yuklashingiz kerak bo'lgan kod.
Bu qanday ishlaydi: Arduino 115200 diapazonida ketma -ket aloqa orqali ESP32 -dan yuborilgan baytlarni tinglaydi. Qabul qilingan baytga asoslanib, avtomobil oldinga, orqaga, chapga, o'ngga va boshqalarga harakat qiladi, bu esa motorlarga yo'nalishni boshqarish uchun yuqori yoki past kuchlanish, shuningdek tezlikni boshqarish uchun 0-255 oralig'idagi PWM o'zgaruvchisini yuboradi. To'qnashuvlarning oldini olish uchun ushbu kod masofa sensori orqali keladigan qiymatlarni ham o'qiydi va agar masofa belgilangan chegaradan past bo'lsa, robot oldinga siljimaydi. Nihoyat, agar Arduino ovqat tarqatish buyrug'ini olsa, u chip tarqatgichdagi servolarni faollashtiradi.
9 -qadam: Mobil robotli avtomobil - ESP32 kodi
ESP32 server va Arduino o'rtasida Wi -Fi orqali aloqa o'rnatishga imkon beradi. U Arduino -dan alohida dasturlashtirilgan va o'z kodiga ega:
- ESP32_Code.ino - bu ESP32 uchun ma'lumotni Arduino -ga yuborish kodi
- app_httpd.cpp - bu standart ESP32 veb -serveri uchun zarur bo'lgan kod va tugmachalarni bosishni tinglash funktsiyasini sozlash. Mahalliy Wi -Fi -da nosozliklarni tuzatish va sinab ko'rish uchun yaxshi. Mahalliy tarmoqdan tashqarida muloqot qilish uchun ishlatilmaydi.
- camera_index.h - bu standart veb -ilovalar uchun HTML kod
- camera_pins.h pinlarni ESP32 modeliga qarab belgilaydi
ESP32 kodi Wifi kutubxonasidan va ESP32 plaginidan foydalanadi, uni Arduino IDE-ga quyidagi amallarni bajarish orqali o'rnatish mumkin:
- Arduino IDE -da Fayl> Tanlovlar -ga o'ting
- Keyin Sozlamalar ko'rinishida Qo'shimcha taxtalar menejeri URL manzilining ostiga "https://dl.espressif.com/dl/package_esp32_index.json" kiriting.
- Kengash menejerini oching va asboblar> taxta> taxtalar menejeri -ga o'ting va "ESP32" yozib ESP32 -ni qidiring.
- Siz "Espressif Systems by esp32" ni ko'rishingiz kerak. O'rnatish -ni bosing.
- Endi ESP32 qo'shimchasini o'rnatish kerak. Tekshirish uchun Arduino IDE -ga qaytib, Asboblar> Kengash -ga o'ting va "ESP32 Wrover Module" -ni tanlang.
- Yana asboblar> yuklash tezligiga o'ting va uni "115200" ga o'rnating.
- Nihoyat, Asboblar> Bo'limlar sxemasiga o'ting va uni "Katta APP" ga o'rnating (3 MB OTA/1 MB SPIFFS yo'q)
- Buni tugatgandan so'ng, men RandomNerdTutorials tomonidan berilgan qo'llanmani bajarishni maslahat beraman, u ESP32 -ni sozlashni yakunlash va FTDI dasturchisi bilan kodni yuklashni batafsil tushuntiradi ESP32 -ni dasturlash.
10 -qadam: Chip dispenser
Chip dispenser - bu mobil robotga arzon qo'shimchadir, u mahalliy muhitga ta'sir qiladi va mazali taom qoldirib, odamlar / hayvonlar bilan muloqot qiladi. U 2 ta servo o'rnatilgan kartonli tashqi qutidan, shuningdek, tarqatish uchun buyumlar (masalan, shirinliklar yoki itlarga sovg'alar) saqlanadigan karton kartridjdan iborat. Bir servo eshik vazifasini bajaradi, ikkinchisi esa buyumni tashqariga chiqaradi.
*Barcha o'lchamlar millimetrda
11 -qadam: Joystick
Robotni klaviatura yordamida boshqarish qiziqarli bo'lishi mumkin bo'lsa -da, joystikdan foydalanish yanada qiziqarli va intuitiv bo'ladi, bu erda robot to'g'ridan -to'g'ri siz bosgan yo'nalishga qarab javob beradi. Ushbu robot veb -sahifada yozilgan tugmachalarni bosish orqali boshqarilgandan so'ng, bizga klaviaturani taqlid qilish uchun joystik kerak edi. Shunday qilib, joystiksiz foydalanuvchilar robotni to'g'ridan -to'g'ri klaviaturadan boshqarishi mumkin, lekin boshqalar joystikdan foydalanishlari mumkin.
Buning uchun bizda faqat kutubxonadan foydalanish imkoniyati bo'lmagan Arduino Uno bor edi, shuning uchun biz uni to'g'ridan -to'g'ri USB HID klaviatura proshivkasi bilan arduino -ni o'chirish imkonini beruvchi Device Firmware Update (DFU) deb nomlanuvchi USB protokoli yordamida dasturlashtirdik.. Boshqacha aytganda, arduino USB -ga ulanganida, u endi arduino sifatida emas, balki klaviatura sifatida tan olinadi!
12 -qadam: Joystik - O'chirish diagrammasi
Mana, biz joystikni qanday bog'ladik.
13 -qadam: Joystick - Klaviatura emulyatori
Arduino Uno -ga klaviatura taqlid qilishi uchun siz Arduino -dagi Atmega16u2 chipini qo'lda qurilma dasturiy ta'minotini yangilash (DFU) orqali to'g'ridan -to'g'ri dasturlashingiz kerak. Quyidagi qadamlar Windows mashinasi jarayonini tasvirlab beradi va umid qilamanki, biz duch kelgan ba'zi muammolarni oldini olishga yordam beradi.
Birinchi qadam, Arduino -ga Atmel usb drayverini qo'lda yozishdir, shuning uchun u Arduino emas, balki USB sifatida tan olinadi, bu uni FLIP dasturchisi bilan o'chirishga imkon beradi.
- Atmel FLIP dasturchisini bu erdan yuklab oling
- Arduino Uno -ni ulang
- Qurilma menejeriga o'ting va Arduino -ni toping. Bu COM yoki noma'lum qurilma ostida bo'ladi. To'g'ri qurilma ekanligiga ishonch hosil qilish uchun uni rozetkaga ulang.
- Qurilma menejerida Arduino Uno -ni topganingizdan so'ng, sichqonchaning o'ng tugmachasini bosing va xususiyatlarni tanlang> Haydovchi> Drayverni yangilash> Kompyuterimni haydovchilar uchun dasturiy ta'minotni ko'rib chiqish> Kompyuterimdagi mavjud drayverlar ro'yxatidan tanlashga ruxsat bering> Disk bor> Ko'rish "atmel_usb_dfu.inf" faylini tanlang va uni tanlang. Bu Atmel FLIP dasturchi o'rnatilgan papkada bo'lishi kerak. Mening kompyuterimda bu erda: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- Drayverni o'rnating
- Endi Qurilma menejeriga qayting, siz Arduino Uno -da ATmega16u2 deb belgilangan "Atmel USB qurilmalari" ni ko'rishingiz kerak!
Endi kompyuter Arduino Uno -ni USB qurilmasi sifatida tan olganda, biz FLIP dasturchisidan foydalanib, uni 3 ta alohida fayl bilan o'chirib, klaviaturaga aylantirishimiz mumkin.
Agar siz birinchi qismdan keyin Arduino Uno -ni ajratib qo'ysangiz, uni qayta ulang.
- FLIP -ni oching
- Quvvatni erga qisqa ulash orqali Arduino Uno -ni qayta o'rnating.
- Qurilma tanlovini bosing (mikrochip kabi belgi) va ATmega16U2 -ni tanlang
- Aloqa vositasini tanlash -ni bosing (usb kabeli kabi belgi) va USB -ni tanlang. Agar siz birinchi qismni to'g'ri to'ldirgan bo'lsangiz, boshqa kulrang tugmachalardan foydalanish mumkin bo'ladi.
- Fayl> Hex faylini yuklash> ga o'ting va Arduino-usbserial-uno.hex faylini yuklang.
- FLIP oynasida siz uchta bo'limni ko'rishingiz kerak: Operatsiyalar oqimi, FLASH bufer ma'lumoti va ATmega16U2. Operatsion oqimida O'chirish, Dastur va Tasdiqlash katakchalarini belgilang, so'ng Ishga tushirish -ni bosing.
- Jarayon tugagandan so'ng, ATmega16U2 bo'limida "Ilovani ishga tushirish" ni bosing.
- Arduino -ni kompyuterdan uzing va qayta ulang.
- Quvvatni erga qisqa ulash orqali Arduino Uno -ni qayta o'rnating.
- Arduino IDE -ni oching va JoyStickControl_Code.ino faylini doskaga yuklang.
- Arduino -ni kompyuterdan uzing va qayta ulang.
- Quvvatni erga qisqa ulash orqali arduino -ni qayta o'rnating.
- FLIP -ga qayting, Qurilmani tanlashda Atmega16U2 yozilganligiga ishonch hosil qiling
- Aloqa vositasini tanlash -ni bosing va USB -ni tanlang.
- Fayl> Hex faylini yuklash> ga o'ting va Arduino-keyboard-0.3.hex faylini yuklang
- FLIP oynasida siz uchta bo'limni ko'rishingiz kerak: Operatsiyalar oqimi, FLASH bufer ma'lumoti va ATmega16U2. Operatsion oqimida O'chirish, Dastur va Tasdiqlash katakchalarini belgilang, so'ng Ishga tushirish -ni bosing.
- Jarayon tugagandan so'ng, ATmega16U2 bo'limida "Ilovani ishga tushirish" ni bosing.
- Arduino -ni kompyuterdan uzing va qayta ulang.
- Endi siz Qurilma menejeriga kirganingizda, klaviatura ostida yangi HID klaviatura qurilmasi bo'lishi kerak.
- Notepad yoki biron -bir matn muharririni oching va joystikni siljitishni boshlang. Siz raqamlar yozilishini ko'rishingiz kerak!
Agar siz Arduino eskizidagi kodni o'zgartirmoqchi bo'lsangiz, masalan, joystikka yangi buyruqlar yozsangiz, uni har safar 3 ta fayl bilan o'chirib qo'yishingiz kerak bo'ladi.
Ba'zi foydali havolalar: Arduino DFUAtLibUsbDfu.dll topilmadi
Bu klaviatura emulyatori Mayklning 2012 yil 24 -iyundagi qo'llanmasiga asoslangan.
14 -qadam: Tarmoq aloqasi
Dunyoning istalgan burchagidan video oqimini olish va robotga buyruqlar yuborish uchun bizga ESP32-CAM-dan ma'lumotlarni olish usuli kerak. Bu ikki qismdan iborat: mahalliy tarmoqdagi ulanish ishlovchisi va umumiy server. Bunga erishish uchun uchta faylni yuklab oling:
- Handlers.py: ESP32-CAM va umumiy server ma'lumotlarini uzatadi (Python 3.8 da sinovdan o'tgan)
- Flask_app.py: ilovangiz kiruvchi so'rovlarga qanday javob berishini belgilaydi.
- Robot_stream.html: brauzerda videoni ko'rsatadi va klaviatura / joystik orqali buyruqlarni tinglaydi (Chrome -da sinovdan o'tgan)
Ulanish ishlovchisi Siz buni to'g'ridan -to'g'ri app_httpd.cpp saytida kodlashingiz mumkin, lekin tuzatishni osonlashtirish uchun biz bir xil tarmoqqa ulangan kompyuterda ishlaydigan Python skriptidan foydalanamiz. Handlers.py -ni oching va IP -manzil va foydalanuvchi nomini yangilang, shunda siz borishga tayyormiz. Bu faylni ishga tushirganingizda oqim boshlanadi.
Umumiy server Internetdagi hamma narsaga kirish uchun siz tanlagan PaaS bilan serverni ishga tushirishingiz mumkin. Pythonanywhere (PA) da bu sozlash 5 daqiqadan kam vaqtni oladi:
- Hisob qaydnomasiga yoziling va kiring
- "Veb" yorlig'iga o'ting va "Yangi veb -ilovasini qo'shish" ni bosing, Flask va Python 3.6 ni tanlang
- Flask_app.py faylini /mysite katalogiga nusxalash
- Robot_stream.html -ni /mysite /templates katalogiga nusxalash
- "Qayta yuklash" ni bosing
Va … hammasi tayyor!
Ogohlantirishlar: Bu tarmoq ish jarayoni tez va sodda, lekin idealdan juda uzoqda. RTMP yoki rozetkalar oqim uchun ko'proq mos keladi, lekin ular PAda qo'llab -quvvatlanmaydi va tarmoq va serverni sozlash bo'yicha ba'zi tajribani talab qiladi. Shuningdek, kirishni boshqarish uchun ba'zi xavfsizlik mexanizmlarini qo'shish tavsiya etiladi.
15 -qadam: Hammasini bir joyga to'plash
Endi robotni yoqing, kompyuterda handlers.py -ni ishga tushiring (robot bilan bir xil tarmoqqa ulangan) va siz xohlagan joydan o'rnatgan url -ga asoslangan brauzer orqali robotni boshqarishingiz mumkin. (masalan,
Tavsiya:
Virtual yashirish o'yini: 3 qadam
Virtual yashirish o'yini: Bizning nabiralarimiz yashirinib o'ynashni yaxshi ko'radilar, lekin ular uchun bino ichida yaxshi joylar ko'p emas. Men ular hali ham ovdan zavqlanishlari uchun virtual yashirin o'yin o'tkazishga qaror qildim. Mening versiyamda, biror narsa RF qabul qilgichi bilan yashiriladi va
Virtual bosim o'lchagichi 1 -qism.: 4 qadam
Virtual bosim o'lchagichi 1 -qism. Bosim o'lchagichlari neft konlari kabi sohalarda qo'llaniladi. Men kundalik ishimda, ayniqsa gidravlik mashinalar bilan ishlaganda, bosim o'lchagichlarini ko'p ishlatganman. Va men qanday qilib virtual bosim o'lchagichini yasashim mumkinligi haqida o'yladim, bu loyiha 2-darajali
Mavjudlik sensori: 12 qadam
Mavjudlik sensori: taqiladigan narsalar odatda BLE yoqilgan qurilmalardir. Ular vaqti -vaqti bilan MAC -manzili bo'yicha ba'zi ma'lumotlarni reklama qilishlari odatiy holdir. Biz ushbu ma'lumotlarni skanerlash uchun ESP -dan foydalanamiz va ma'lum bir MAC -manzil topilsa, Internet orqali voqeani ishga tushiramiz. Bu maxsus
Virtual quti virtual mashinasi: 6 qadam
Virtual quti virtual mashinasi: VirtualBox -ni o'rnatish va ishlatish bo'yicha ko'rsatmaga xush kelibsiz
Android uchun ishlov berish yordamida virtual virtual haqiqat (TfCD): 7 qadam (rasmlar bilan)
Android uchun protsessor yordamida mobil virtual haqiqat (TfCD): Virtual haqiqat (VR) - bu kelajakdagi mahsulotlar qiziqarli bo'lishi mumkin bo'lgan yangi texnologiyalardan biri. Bu juda ko'p imkoniyatlarga ega va sizga qimmat VR ko'zoynaklari ham kerak emas (Oculus Rift). O'zingizni qilish juda qiyin bo'lib tuyulishi mumkin, lekin asosiysi