Mundarija:

Virtual haqiqat boshqariladigan RC avtomobili: 9 qadam
Virtual haqiqat boshqariladigan RC avtomobili: 9 qadam

Video: Virtual haqiqat boshqariladigan RC avtomobili: 9 qadam

Video: Virtual haqiqat boshqariladigan RC avtomobili: 9 qadam
Video: πŸ›œNeil Degrasse Tyson, WRONG about Tesla?!? πŸ›œ ​⁠@joerogan (30min) 2024, Iyul
Anonim
Image
Image

Siz hech qachon "Innerspace" yoki "Fantastic Voyage" kabi kemani boshqarishni xohlaganmisiz? Xo'sh, menimcha, bu sizga yaqinda keladi!

Mana, maydon:

"Real-Life" masofadan boshqarish pulti Virtual Reality buyruq konsolidan boshqarilgan. Bu shuni anglatadiki, siz VR minigarniturasini bog'lab qo'yasiz, RC avtomashinasini o'zgartirasiz, keyin VR -dan to'g'ridan -to'g'ri video uzatish orqali yuzingizga ucha olasiz.

Siz amalga oshirgan narsalar borki, ularni siz VR avtomobilida boshqarishingiz mumkin.

  1. G'ildiraklar
  2. Shox
  3. Chiroqlar

Bularning barchasida VR -da qandaydir tugma yoki qo'l bor, siz uni aylantira olasiz yoki mashinani boshqarishingiz mumkin.

To'liq repo va qo'shimcha ma'lumot uchun Github va veb -saytimni tekshiring!

1 -qadam: Materiallar va asboblar

Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar

Mexanik:

4 g'ildirakli haydovchi shassi to'plami

Elektr:

  • G'ildirak kodlovchi
  • 3S 1300 mA / soat batareya
  • Arduino Uno
  • Arduino dvigatel qalqoni
  • Piezo elektr buzzer
  • Kichik LED
  • XT60 ulagichlari
  • Boost / Buck konvertori

Kompyuter:

  • Har qanday o'rnatilgan kompyuter tizimi: Raspberry Pi, Jetson Nano va boshqalar.
  • USB -kamera (afzal - 180 darajali kamera)

Asboblar / Qo'shimcha:

  • Lehimlash temir
  • Ba'zi VR sozlamalari - menda Oculus Rift bor
  • Multimetr

2 -qadam: Avtomobil qurish

Avtomobil qurish
Avtomobil qurish
Avtomobil qurish
Avtomobil qurish
Avtomobil qurish
Avtomobil qurish

Avtomobil uchun shassi qurilishi juda oson. Dvigatellarni asosiy taxtaga ular bergan yorliqlar orqali ulash kifoya. G'ildirak va dvigatellarni o'rnatganingizdan so'ng, sizga kamerani mashinaning old qismiga ulash uchun biror narsa kerak bo'ladi.

Men uni o'rnatish uchun kamera kelgan karton qutidan foydalandim. Men katta L shaklini kesib oldim va kamerani yaxshilab urish uchun teshikni kesib tashladim. Shundan so'ng, siz kamerani teshib qo'yishingiz va uni joyida ushlab turish uchun lentani orqasiga qo'yishingiz mumkin. Agar xohlasangiz, siz hozir ham faralar uchun teshiklarni qo'yishingiz mumkin, yoki keyinroq sim uzunligini o'lchashda buni qilishingiz mumkin.

Bundan tashqari, g'ildirak kodlagichini g'ildiraklardan biriga ulashingiz kerak bo'ladi. Qaysi biri muhim emas, men uni chap g'ildirakning orqa tomoniga qo'yaman. Siz magnit diskni g'ildirakning haqiqiy miliga qo'yishingiz kerak va kodlovchi uning yonidagi mashinaga biriktirilgan bo'lishi kerak. Bu juda yaxshi qabul qilinadi, shuning uchun uni to'g'ri joylashtirishning hojati yo'q, lekin iloji boricha yaqinroq. Men koderimni lenta va fermuar bilan mahkamladim. Enkoder - bu biz mashinamizning tezligini o'lchash uchun foydalanamiz.

3 -qadam: Lehim davrlari

Lehim davrlari
Lehim davrlari
Lehim davrlari
Lehim davrlari

Bu qism juda zerikarli, lekin murakkab emas. Agar siz rasmga rioya qilsangiz va simni kesishdan oldin hamma narsani o'lchasangiz, bu unchalik yomon emas.

Buni qilayotganda, siz to'g'ri voltajni chiqarish uchun pulni konvertorini sozlashingiz kerak. Raspberry Pi va Jetson Nano 5V quvvat oladi, lekin bizning batareyamiz 11.1v. Shunday qilib, biz elektronikani qovurmasligimizga ishonch hosil qilishimiz kerak. Buning uchun batareyani konvertorning kirish qismiga ulang. Batareya ulangan bo'lsa, multimetrdan foydalanib, konvertorning chiqish tomonini o'lchang. Chiqish kuchlanishi 5v bo'lmaguncha, konvertorning potentsiometrini burish uchun kichkina tekis boshli tornavidadan foydalaning. Chiqish to'g'ri bo'lgandan so'ng, endi potentsiometrni burish shart bo'lmaydi.

4 -qadam: O'rnatilgan tizimga bog'liqliklarni o'rnating

O'rnatilgan tizimga bog'liqliklarni o'rnating
O'rnatilgan tizimga bog'liqliklarni o'rnating

Bu erda ko'p narsa qilish kerak emas, lekin baribir nihoyatda muhim.

Birinchidan, siz foydalanadigan yo'riqchiga ulanganligingizga ishonch hosil qiling, shunda u endi avtomatik ravishda ulanishi mumkin.

Keyin terminalni oching va quyidagilarni kiriting:

sudo apt yangilash

sudo apt install openssh-serverni o'rnatadi

sudo apt install python-pip pip install numpy pip install opencv-python pip install pyzmq

Bu narsalar o'rnatilgandan so'ng, biz arduino qaysi portga ulangan bo'lishidan qat'i nazar, u doimo tan olinishiga ishonch hosil qilishimiz kerak. Shunday qilib, biz UDEV qoidalari deb nomlangan narsalarni yozamiz. Bu sizning operatsion tizimingiz qoidalari, siz biror narsani ulashda nima bo'lishini boshqaradi. Biz arduino -ni ulanganda aniqlaymiz va unga kirish uchun nom beramiz. Bu ism "arduino_0" bo'ladi. Buning uchun biz uni aniqlash uchun arduino ichki seriya raqamidan foydalanamiz.

udevadm ma'lumoti -a -n /dev /ttyUSB1 | grep '{serial}' | bosh -n1

Bu seriya raqamining qiymatini o'chirib qo'yadi, davom eting va bu qiymatdan nusxa oling.

Keyin biz "99-usb-serial.rules" deb nomlangan faylni tahrir qilishimiz (yoki mavjud bo'lmasa) yaratishimiz kerak. Bu fayl quyidagi fayl yo'lida yashaydi "/etc/udev/rules.d/99-usb-serial.rules". Aytganimdek, agar u fayl bo'lmasa, uni yarating va VALUE_FROM_ABOVE bilan oldingi qatorga qo'ying, bu sizning qiymatingiz bilan almashtiriladi.

SUBSYSTEM == "tty", ATTRS {serial} == "VALUE_FROM_ABOVE", SYMLINK+= "arduino_0"

Bu operatsion tizimga ma'lum bir seriya raqamini ko'rganida uni arduino_0 deb chaqirishini aytadi.

Bu erda qilish kerak bo'lgan oxirgi narsa - pushArucoVideoPullCommands.py -ni yuklab olish va uni osongina kirish mumkin bo'lgan joyga qo'yish. Men sizning foydalanuvchingizga uy katalogini tavsiya qilardim, chunki biz keyinchalik tizimga SSH kirganimizda shu erda bo'lamiz.

5 -qadam: Statik IP -manzilni o'rnating

Statik IP -manzilni o'rnating
Statik IP -manzilni o'rnating

Endi hamma yoqadigan qism - bu IP -manzil. Ushbu loyiha ishlashi uchun kod rasmlar va boshqaruv buyruqlarini qayerga yuborishni bilishi kerak va bu bizning qurilmalarimiz uchun statik IP kerak.

Qurilmangizga statik IP -ni belgilashning ko'plab usullari mavjud, lekin bizda asosiy stansiya va o'rnatilgan tizimni bog'laydigan yo'riqnoma borligi sababli, biz unga aniq IP -manzillarni osongina berish uchun foydalanishimiz mumkin.

Routerning administrator bo'limiga o'ting, odatda (ko'pchilik yo'riqnoma uchun) bu veb -brauzerni ochish va "192.168.1.1" ga o'tish orqali amalga oshiriladi. U sizdan tizimga kirishingizni so'raydi va ko'pchilik yo'riqnoma uchun odatiy standart foydalanuvchi nomi va parol "admin" dir.

U erga borganingizda, "DHCP -server" deb yoziladigan narsaga o'ting. Bu yo'riqnoma ustida ishlaydigan va MAC -manzili orqali qaysi qurilmalar unga ulanganligini kuzatib boradigan jarayon. Bu biz xohlagan qurilmalarni tanlashni xohlaydi. haqida, yer stantsiyasi kompyuteri va ko'milgan tizim va ularni ajratilgan mijozlar bo'limiga qo'shish. Bu yo'riqchiga har ulanganida ularga statik ip beradi.

O'rnatilgan tizim IP -ni 192.168.1.122 ga o'rnatganingizga ishonch hosil qiling, er stantsiyasining IP -ni hamma narsaga o'rnatish mumkin.

6 -qadam: Arduino -ga kodni yuklang

Kodni Arduino -ga yuklang
Kodni Arduino -ga yuklang

Arduino kodini yuklash uchun avval motor qalqoni bilan ishlash uchun kutubxonani o'rnatishimiz kerak.

Arduino IDE-da Sketch-> Kutubxonani qo'shish-> Kutubxonalarni boshqarish-ga o'ting … Keyin Adafruit Motor Shield kutubxonasini qidiring. Ushbu kutubxonani o'rnating, keyin kodni arduino -ga yuklang, boshqa hech narsa talab qilinmaydi.

7 -qadam: O'chirish va kompyuterni mashinaga ulang

O'chirish va kompyuterni mashinaga ulang
O'chirish va kompyuterni mashinaga ulang

Endi sxema qurildi, hamma narsani mashinaga qo'yish vaqti keldi. Men yolg'on gapirmoqchi emasman, bu narsalarning ko'pi faqat lenta bilan mahkamlanadi, chunki bu men uchun eng oson bo'lgan narsa. Aytgancha, yuqoridagi rasmda ko'rinib turganidek, o'rnatish teshiklari o'rnatilgan.

Ko'p narsalarni mashinaning tepasida o'tirishga ruxsat berish juda oson, shuning uchun bo'sh joy bo'lmasa, xavotir olmang.

8 -qadam: VR muhitini sozlash

VR muhitini sozlash
VR muhitini sozlash

VR -ni qanday o'rnatayotganingizga qarab, bu bo'lim juda boshqacha ko'rinadi. Qanday bo'lmasin, men SteamVR -dan ushbu dasturiy ta'minotni ishlab chiqish uchun foydalanganman, shuning uchun sizga uni o'rnatish kerak bo'lishi mumkin.

Siz SteamVR -dan foydalanayotgan bo'lsangiz, boshqaruv elementlari har xil tekshirgichlarga moslashishi kerak. Men boshqaruv elementlarini tugmachalarga emas, balki "Amallar" ga joylashtirdim, shuning uchun nazariy jihatdan u hamma uchun moslashadi.

Siz faqat Unity dunyoni yaratish bilan faylni yuklab olishingiz va ochishingiz va VR_Bot.exe -ni ishga tushirishga tayyor bo'lishingiz kerak.

9 -qadam: Hammasini birgalikda ishga tushiring

Hammasini birgalikda ishga tushiring
Hammasini birgalikda ishga tushiring
Hammasini birgalikda ishga tushiring
Hammasini birgalikda ishga tushiring

Xo'sh, endi bizda mashinani sozlash va yer stantsiyasi ulangan va ishga tayyor, biz bu yomon bolani qanday boshqaramiz? Ground Station nuqtai nazaridan, buni qilish uchun biz avval ko'rgan VR_Bot.exe faylini ishlatishingiz kerak.

Shu bilan birga, siz batareyani o'rnatilgan tizimga ulashingiz va uni avtomatik ravishda ishga tushirishingiz va yo'riqnomaingizga ulashingiz kerak bo'ladi. U ishga tushirilgach, unga SSH kiriting. Bunga kirish uchun sizga yer stantsiyasida qandaydir terminal kerak bo'ladi, men GitBash -ni tavsiya qilaman.

SSH Secure Shell degan ma'noni anglatadi va bu masofali tizimlarga xavfsiz kirish protokoli. Bizning holatlarimizda, bu bizga Yer stantsiyasidan o'rnatilgan tizimga kirishga imkon beradi. Qo'shimcha ma'lumot olish uchun shu erni bosing.

Siz o'rnatilgan tizimni o'rnatgan foydalanuvchi nomini bilishingiz kerak. Malinali pi uchun standart foydalanuvchi nomi "pi" va parol "malina" dir.

O'rnatgandan so'ng, terminalni oching va quyidagilarni kiriting:

ssh {O'rnatilgan tizimning foydalanuvchi nomi}@192.168.1.122

Bu o'rnatilgan tizimda terminalni ochadi.

U erga borganingizda, biz ilgari nusxa ko'chirgan python skriptini bajarishimiz kerak.

python /path/to/pushArucoVideoPullCommands.py

Buni amalga oshirgandan so'ng, O'rnatilgan tizim rasmlarni uzatishni va yer stantsiyasiga va undan buyruqlarni qabul qilishni boshlaydi.

Siz mashinani haydash va dam olishni boshlashingiz yaxshi!

Tavsiya: