Kazalo:

RC avtomobil, ki ga nadzira virtualna resničnost: 9 korakov
RC avtomobil, ki ga nadzira virtualna resničnost: 9 korakov

Video: RC avtomobil, ki ga nadzira virtualna resničnost: 9 korakov

Video: RC avtomobil, ki ga nadzira virtualna resničnost: 9 korakov
Video: WRC Generations REVIEW: Now That's What I Call RALLY! 2024, November
Anonim
Image
Image

Ste si kdaj želeli, da bi vas skrčili in upravljali plovilo, kot sta Innerspace ali Fantastic Voyage? No, mislim, da je to tako blizu, kot boste prišli kmalu!

Tukaj je smola:

Avtomobil z daljinskim upravljalnikom v resničnem življenju, pilotiran z ukazne konzole navidezne resničnosti. To pomeni, da na slušalke VR pripnete slušalko VR, obrnete stikalo na avtomobilu RC in nato pilotirate iz VR z video posnetki v živo naravnost v obraz.

Izvedel sem nekaj stvari, ki jih lahko nadzirate v avtomobilu VR.

  1. Kolesa
  2. Rog
  3. Luči

Vsi ti imajo v VR -ju nekakšen gumb ali ročico, ki jo lahko obrnete ali preklopite za vožnjo avtomobila.

Za celoten repo in več informacij si oglejte moj Github in mojo spletno stran!

Korak: Materiali in orodja

Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja

Mehanski:

Komplet šasije s štirikolesnim pogonom

Električno:

  • Kodirnik kolesa
  • 3S 1300mAh baterija
  • Arduino Uno
  • Motorni ščit Arduino
  • Piezo električni zvočni signal
  • Majhna LED
  • Priključki XT60
  • Boost / Buck Converter

Računalnik:

  • Vsak vgrajen računalniški sistem: Raspberry Pi, Jetson Nano itd.
  • USB kamera (po možnosti - kamera 180 stopinj)

Orodja / Dodatno:

  • Spajkalnik
  • Nekaj nastavitev VR - imam Oculus Rift
  • Multimeter

Korak: Zgradite avto

Konstruiraj avto
Konstruiraj avto
Konstruiraj avto
Konstruiraj avto
Konstruiraj avto
Konstruiraj avto

Šasija za avto je zelo enostavna za izdelavo. Motorje morate samo pritrditi na glavno ploščo prek jezičkov, ki vam jih dajo. Ko namestite kolesa in motorje, boste potrebovali tudi nekaj za pritrditev kamere na sprednji del avtomobila.

Za montažo sem uporabil kartonsko škatlo, v katero je prišla kamera. Izrezal sem veliko obliko L in izrezal luknjo, v kateri bo fotoaparat temeljito prebodel. Po tem lahko preprosto vstavite fotoaparat in na zadnji strani postavite nekaj traku, da ostane na svojem mestu. Če želite, lahko tudi zdaj vstavite luknje za žaromete ali pa to storite pozneje pri merjenju dolžine žice.

Dajalnik koles morate pritrditi tudi na eno od koles. Ni važno kateri, postavil sem ga na zadnje levo kolo. Magnetni disk morate postaviti na dejansko gred kolesa, dajalnik pa mora biti pritrjen na avto poleg njega. Je precej dojemljiv, zato mu ni treba biti čisto na vrhu, ampak čim bližje. Enkoder sem zavaroval s trakom in kravato na zadrgo. Dajalnik je tisto, kar bomo uporabili za merjenje hitrosti našega avtomobila.

Korak: Spajkanje vezja

Spajkalna vezja
Spajkalna vezja
Spajkalna vezja
Spajkalna vezja

Ta del je precej dolgočasen, vendar ni zapleten. Če sledite sliki in izmerite vse, preden odrežete žico, ni tako slabo.

Medtem ko to počnete, morate kalibrirati tudi pretvornik, ki oddaja pravilno napetost. Raspberry Pi in Jetson Nano imata 5V, vendar je baterija pri 11.1V. Zato moramo paziti, da ne prepražimo naše elektronike. To naredite tako, da baterijo priključite na vhodno stran pretvornika. Ko je baterija priključena, z multimetrom izmerite izhodno stran pretvornika. Z majhnim izvijačem z ravno glavo zavrtite potientiometer na pretvorniku, dokler izhodna napetost ni 5 V. Ko je izhod pravilen, vam ne bo treba več obračati potientiometra.

4. korak: Namestite odvisnosti na vdelani sistem

Namestite odvisnosti na vdelani sistem
Namestite odvisnosti na vdelani sistem

Tu ni preveč dela, a vseeno neverjetno pomembno.

Najprej se povežite z usmerjevalnikom, ki ga boste uporabljali, da se bo lahko odslej samodejno povezal.

Nato odprite terminal in vnesite naslednje:

sudo apt posodobitev

sudo apt namestite strežnik openssh

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

Ko so te stvari nameščene, se moramo prepričati, da jih ne glede na vrata, v katera je priključen arduino, vedno prepoznamo. Tako pišemo tako imenovana pravila UDEV. To so pravila za vaš operacijski sistem, ki urejajo, kaj se zgodi, ko priključite stvari. Želimo identificirati arduino, ko je priključen, in mu dati ime za dostop do njega. To ime bo "arduino_0". Za to bomo uporabili notranjo serijsko številko arduina, da jo identificiramo.

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

To bo izpljunilo vrednost serijske številke, kopirajte to vrednost.

Nato moramo urediti (ali ustvariti, če ne obstaja) datoteko, imenovano "99-usb-serial.rules". Ta datoteka se nahaja na naslednji poti datoteke /etc/udev/rules.d/99-usb-serial.rules. Kot sem že omenil, če ta datoteka ne obstaja, jo preprosto ustvarite in prilepite v naslednjo vrstico z vrednostjo VALUE_FROM_ABOVE, zamenjano z vašo vrednostjo od prej.

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

To operacijskemu sistemu pove, da ga vsakič, ko vidi to posebno serijsko številko, pokliče arduino_0.

Nazadnje morate tukaj prenesti pushArucoVideoPullCommands.py in ga postaviti na lahko dostopno mesto. Za vašega uporabnika bi priporočil domači imenik, saj bomo tam končali, ko bomo kasneje SSH vstavili v vgrajeni sistem.

5. korak: Nastavitev statičnega naslova IP

Nastavitev statičnega naslova IP
Nastavitev statičnega naslova IP

Zdaj je del, ki ga imajo vsi radi, naslavljanje IP. Da bi ta projekt deloval, mora koda vedeti, kam poslati slike in nadzorne ukaze, kar pomeni, da naše naprave potrebujejo statični IP.

Obstaja veliko načinov za dodelitev vaše naprave statičnemu IP -ju, a ker imamo usmerjevalnik, ki povezuje našo zemeljsko postajo in vgrajen sistem, ga lahko uporabimo za preprosto podajanje določenih naslovov IP.

Pomaknite se do skrbniškega razdelka usmerjevalnika, običajno (za večino usmerjevalnikov) to storite tako, da odprete spletni brskalnik in pojdite na "192.168.1.1". Od vas se bo zahtevalo, da se prijavite, tipično standardno uporabniško ime in geslo za večino usmerjevalnikov pa je "admin".

Ko ste tam, se pomaknite do nečesa, kar omenja "strežnik DHCP". To je postopek, ki se izvaja na vašem usmerjevalniku in spremlja, katere naprave so z njim povezane z naslovom MAC, ki je vedno stalen. Želimo izbrati naprave, ki so nam pomembne približno, računalnik zemeljske postaje in vgrajen sistem ter jih dodajte v razdelek rezerviranih odjemalcev, kar jim bo dalo statični IP, kadar koli so povezani s tem usmerjevalnikom.

Prepričajte se, da ste IP vdelanega sistema nastavili na 192.168.1.122 IP zemeljske postaje lahko nastavite na karkoli.

6. korak: Naložite kodo v Arduino

Naloži kodo v Arduino
Naloži kodo v Arduino

Če želite naložiti kodo arduino, moramo najprej namestiti knjižnico za delo s ščitom motorja.

V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries … Nato poiščite Adafruit Motor Shield Library. Namestite to knjižnico, nato kodo naložite v svoj arduino, nič drugega ne bi bilo potrebno.

Korak 7: Priključite vezje in računalnik na avto

Priključite vezje in računalnik na avto
Priključite vezje in računalnik na avto

Zdaj, ko je vezje zgrajeno, je čas, da vse postavite na avto. Ne bom lagal, veliko teh stvari se le drži na traku, ker je bilo to tisto, kar sem najlažje hitro udaril skupaj. Kot rečeno, ima vgrajene montažne luknje, kot je prikazano na zgornji sliki.

Večino stvari je precej preprosto pustiti sedeti nekje na vrhu avtomobila, zato ne skrbite, če ni veliko prostora.

8. korak: Nastavite okolje VR

Nastavite okolje VR
Nastavite okolje VR

Ta razdelek bo videti nekoliko drugače, odvisno od tega, kakšno nastavitev VR imate. Ne glede na to sem za razvoj te programske opreme uporabil SteamVR, zato jo boste morda morali namestiti.

Dokler uporabljate SteamVR, se morajo kontrole prilagoditi različnim krmilnikom. Kontrolnike sem preslikal v »Dejanja«, ne nujno v gumbe, zato se bo teoretično prilagodil vsem.

Prenesti morate in razpakirati datoteko s svetom build Unity in biti pripravljeni na zagon datoteke VR_Bot.exe.

9. korak: Zaženite vse skupaj

Zaženi vse skupaj
Zaženi vse skupaj
Zaženi vse skupaj
Zaženi vse skupaj

Torej, zdaj, ko imamo nastavljen avto in zemeljsko postajo, ki je priklopljena in pripravljena za odhod, kako bomo dejansko vodili tega slabega fanta? No, z vidika zemeljske postaje je vse, kar morate storiti, zagnati datoteko VR_Bot.exe, ki smo jo videli prej.

Hkrati boste morali v vgrajeni sistem priključiti baterijo, da se samodejno zažene in poveže z usmerjevalnikom. Ko se zažene, vanj vstavite SSH. Za dostop do tega boste potrebovali nekakšen terminal na zemeljski postaji, priporočam GitBash.

SSH pomeni Secure Shell in je protokol za varen dostop do oddaljenih sistemov. V našem primeru nam bo omogočil dostop do vdelanega sistema s kopenske postaje. Kliknite tukaj, če želite izvedeti več.

Vedeti morate uporabniško ime, s katerim ste nastavili vgrajeni sistem. Privzeto uporabniško ime za malino pi je 'pi' in geslo 'malina'.

Ko je nameščen, odprite terminal in vnesite naslednje:

ssh {Uporabniško ime vdelanega sistema}@192.168.1.122

To bo odprlo terminal v vgrajenem sistemu.

Ko ste tam, morate samo izvesti skript python, ki smo ga kopirali prej.

python /path/to/pushArucoVideoPullCommands.py

Ko to storite, bo vgrajeni sistem začel črpati slike in prejemati ukaze do in iz zemeljske postaje.

Potem lahko začnete voziti in se zabavati!

Priporočena: