Cuprins:

Mașină RC controlată de realitate virtuală: 9 pași
Mașină RC controlată de realitate virtuală: 9 pași

Video: Mașină RC controlată de realitate virtuală: 9 pași

Video: Mașină RC controlată de realitate virtuală: 9 pași
Video: Orizont: Vestul interzis (Filmul) 2024, Noiembrie
Anonim
Image
Image

Ai dorit vreodată să fii micșorat și să pilotezi o ambarcațiune precum Innerspace sau Fantastic Voyage? Ei bine, cred că acest lucru este la fel de aproape pe cât veți primi cu scurt timp!

Iată terenul:

O mașină cu telecomandă din viața reală pilotată de pe o consolă de comandă de realitate virtuală. Aceasta înseamnă că conectați o cască VR, întoarceți un comutator la o mașină RC, apoi puteți pilota de la VR cu flux video live direct pe față.

Sunt lucruri pe care le-am implementat pe care le poți controla pe VR Car.

  1. Roți
  2. corn
  3. Lumini

Toate acestea au un fel de buton sau pârghie în VR pe care îl puteți roti sau comuta pentru a conduce mașina.

Pentru repo completă și mai multe informații, consultați Github și site-ul meu!

Pasul 1: Materiale și instrumente

Materiale și instrumente
Materiale și instrumente
Materiale și instrumente
Materiale și instrumente

Mecanic:

Set șasiu cu 4 roți

Electric:

  • Codificator roti
  • Baterie 3S 1300mAh
  • Arduino Uno
  • Scut motor Arduino
  • Piezo Electric Buzzer
  • LED mic
  • Conectori XT60
  • Convertor Boost / Buck

Calculator:

  • Orice sistem de computer încorporat: Raspberry Pi, Jetson Nano etc.
  • Cameră USB (de preferat - cameră de 180 de grade)

Instrumente / Extra:

  • Ciocan de lipit
  • Unele setări VR - Am Oculus Rift
  • Multimetru

Pasul 2: Construiți mașina

Construiți mașina
Construiți mașina
Construiți mașina
Construiți mașina
Construiți mașina
Construiți mașina

Șasiul pentru mașină este foarte ușor de construit. Trebuie doar să atașați motoarele la placa principală prin intermediul filelor pe care vi le oferă. După ce ați atașat roțile și motoarele, veți avea nevoie și de ceva pentru a atașa camera foto în partea din față a mașinii.

Am folosit cutia de carton în care a intrat camera pentru ao monta. Am decupat o formă mare de L și am tăiat o gaură pentru ca camera să se arunce bine. După aceea, puteți doar să introduceți camera și să puneți o bandă în spate pentru ao menține în poziție. Dacă doriți, puteți pune și găuri pentru farurile dvs. acum sau puteți face asta mai târziu atunci când măsurați lungimea firului.

De asemenea, va trebui să atașați codificatorul roții la una dintre roți. Nu contează care, l-am pus pe roata din stânga din spate. Trebuie să puneți discul magnetic pe arborele real al roții, iar codificatorul ar trebui să fie atașat la mașină lângă acesta. Este destul de receptiv, așa că nu trebuie să fie chiar sus, ci cât mai aproape posibil. Mi-am asigurat codificatorul cu bandă și o cravată cu fermoar. Codificatorul este ceea ce vom folosi pentru a măsura viteza mașinii noastre.

Pasul 3: Circuite de lipit

Circuite de lipit
Circuite de lipit
Circuite de lipit
Circuite de lipit

Această parte este destul de obositoare, dar nu complicată. Dacă urmați imaginea și măsurați totul înainte de a vă tăia firul, nu este prea rău.

În timp ce faceți acest lucru, ar trebui, de asemenea, să vă calibrați convertorul pentru a genera tensiunea corectă. Raspberry Pi și Jetson Nano acceptă ambii 5v, dar bateria noastră este la 11,1v. Deci, trebuie să ne asigurăm că nu ne prăjim electronica. Pentru a face acest lucru, conectați bateria la partea de intrare a convertorului Buck. În timp ce bateria este conectată, utilizați multimetrul pentru a măsura partea de ieșire a convertorului buck. Folosiți o șurubelniță mică cu cap plat pentru a roti potențiometrul pe convertorul buck până când tensiunea de ieșire este de 5v. Odată ce ieșirea este corectă, nu va mai trebui să rotiți potențiometrul.

Pasul 4: Instalați dependențe pe sistemul încorporat

Instalați dependențe pe sistemul încorporat
Instalați dependențe pe sistemul încorporat

Nu prea mult de făcut aici, dar totuși incredibil de important.

Mai întâi, asigurați-vă că vă conectați la routerul pe care îl veți utiliza, astfel încât să se poată conecta automat de acum înainte.

Apoi, deschideți un terminal și introduceți următoarele:

actualizare sudo apt

sudo apt instalează openssh-server

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

Odată ce aceste lucruri s-au instalat, trebuie să ne asigurăm că, indiferent de portul în care este conectat arduino, acesta este întotdeauna recunoscut. Deci, scriem ceea ce se numesc reguli UDEV. Acestea sunt reguli pentru sistemul dvs. de operare care guvernează ce se întâmplă atunci când conectați lucrurile. Vrem să identificăm arduino atunci când este conectat și să-i dăm un nume pentru a-l accesa. Numele respectiv va fi „arduino_0”. Pentru a face acest lucru, vom folosi numărul de serie intern al arduino pentru al identifica.

udevadm info -a -n / dev / ttyUSB1 | grep '{serial}' | cap -n1

Aceasta va scuipa o valoare pentru numărul de serie, continuați și copiați acea valoare.

Apoi, trebuie să edităm (sau să creăm dacă nu există) un fișier numit „99-usb-serial.rules”. Acest fișier se află în următoarea cale a fișierului „/etc/udev/rules.d/99-usb-serial.rules”. Așa cum am menționat, dacă acel fișier nu există, creați-l și lipiți-l în următoarea linie cu VALUE_FROM_ABOVE înlocuit cu valoarea dvs. de mai înainte.

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

Acest lucru spune sistemului de operare că ori de câte ori vede acest număr de serie specific să-l apeleze arduino_0.

Ultimul lucru de făcut aici este să descărcați pushArucoVideoPullCommands.py și să îl puneți undeva ușor accesibil. Aș recomanda directorul principal pentru utilizatorul dvs., deoarece acolo vom ajunge atunci când vom SSH în sistemul încorporat mai târziu.

Pasul 5: Configurați adresa IP statică

Configurați adresa IP statică
Configurați adresa IP statică

Acum este partea pe care toată lumea o iubește, adresarea IP. Pentru ca acest proiect să funcționeze, codul trebuie să știe unde să trimită imagini și să controleze comenzile, ceea ce înseamnă că dispozitivele noastre au nevoie de un IP static.

Există multe modalități de a atribui dispozitivului dvs. un IP static, dar, deoarece avem un router care conectează stația noastră la sol și sistemul încorporat, îl putem folosi pentru a ne oferi adrese IP specifice foarte ușor.

Navigați la secțiunea de administrare a routerului, de obicei (pentru majoritatea routerelor) acest lucru se face deschizând un browser web și accesând „192.168.1.1”. Vă va cere să vă conectați, iar numele de utilizator și parola standard tipice pentru majoritatea routerelor sunt „admin”.

Odată ajuns acolo, navigați la ceva care menționează „Server DHCP . Acesta este un proces care rulează pe routerul dvs. și ține evidența dispozitivelor conectate la acesta prin adresa MAC, care este întotdeauna constantă. Vrem să selectăm dispozitivele care ne interesează despre computerul stației la sol și sistemul încorporat și adăugați-le la secțiunea client rezervată. Acest lucru le va oferi un IP static ori de câte ori sunt conectate la acest router.

Asigurați-vă că setați adresa IP a sistemului încorporat la 192.168.1.122 IP-ul stației de la sol poate fi setat la orice.

Pasul 6: Încărcați codul pe Arduino

Încărcați codul pe Arduino
Încărcați codul pe Arduino

Pentru a încărca codul arduino, trebuie mai întâi să instalăm o bibliotecă pentru a lucra cu scutul motorului.

Pe ID-ul dvs. Arduino, accesați Schiță-> Includeți bibliotecă-> Gestionați bibliotecile … Apoi, căutați Biblioteca Adafruit Motor Shield. Instalați această bibliotecă, apoi încărcați codul pe arduino, nimic altceva nu ar trebui să fie necesar.

Pasul 7: Atașați circuitele și computerul la mașină

Atașați circuitele și computerul la mașină
Atașați circuitele și computerul la mașină

Acum, când circuitul este construit, este timpul să punem totul pe mașină. Nu am de gând să mint, o mulțime de lucruri astea sunt ținute doar cu bandă, pentru că asta a fost cel mai ușor pentru mine de a plesni foarte repede. Acestea fiind spuse, au montat găuri de montare așa cum se vede în imaginea de mai sus.

Majoritatea lucrurilor sunt destul de ușor de lăsat să stea undeva deasupra mașinii, așa că nu vă faceți griji dacă nu există mult spațiu.

Pasul 8: Configurați mediul VR

Configurare mediu VR
Configurare mediu VR

Această secțiune va arăta puțin diferită, în funcție de ce fel de configurare VR aveți. Oricare ar fi cazul, am folosit SteamVR pentru a dezvolta acest software, deci este posibil să aveți nevoie să îl instalați.

Atâta timp cât utilizați SteamVR, comenzile ar trebui să se adapteze diferitelor controlere. Am mapat comenzile la „Acțiuni” nu neapărat butoane, deci, teoretic, se va adapta pentru toată lumea.

Trebuie doar să descărcați și să dezarhivați fișierul cu lumea Unity build și să fiți gata să rulați VR_Bot.exe.

Pasul 9: Rulați totul împreună

Rulați totul împreună
Rulați totul împreună
Rulați totul împreună
Rulați totul împreună

Deci, acum că avem instalarea mașinii și stația de la sol este conectată și gata de plecare, cum îl conducem de fapt pe acest băiat rău? Ei bine, din punctul de vedere al stației de la sol, tot ce trebuie să faceți este să rulați fișierul VR_Bot.exe pe care l-am văzut mai devreme.

În același timp, va trebui să conectați bateria la sistemul încorporat și să îl porniți automat și să vă conectați la router. Odată pornit, SSH în el. Pentru a accesa acest lucru, veți avea nevoie de un fel de terminal pe stația de la sol, vă recomand GitBash.

SSH înseamnă Secure Shell și este un protocol pentru accesarea sistemelor la distanță în siguranță. În cazul nostru, ne va oferi acces la sistemul încorporat de la stația de la sol. Apasa aici pentru a afla mai multe.

Trebuie să știți numele de utilizator cu care vă configurați sistemul încorporat. Pentru raspberry pi, numele de utilizator implicit este „pi” și parola „raspberry”.

Odată instalat, deschideți un terminal și introduceți următoarele:

ssh {numele de utilizator al sistemului încorporat}@192.168.1.122

Aceasta va deschide un terminal în sistemul încorporat.

Odată ajuns acolo, trebuie doar să executați scriptul python pe care l-am copiat mai devreme.

python /path/to/pushArucoVideoPullCommands.py

După ce faceți acest lucru, sistemul încorporat va începe să pompeze imagini și să primească comenzi către și de la stația de la sol.

Ești bine să începi să conduci și să te distrezi!

Recomandat: