Kazalo:
- Korak: Materiali in orodja
- Korak: Zgradite avto
- Korak: Spajkanje vezja
- 4. korak: Namestite odvisnosti na vdelani sistem
- 5. korak: Nastavitev statičnega naslova IP
- 6. korak: Naložite kodo v Arduino
- Korak 7: Priključite vezje in računalnik na avto
- 8. korak: Nastavite okolje VR
- 9. korak: Zaženite vse skupaj
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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.
- Kolesa
- Rog
- 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
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
Š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
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
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
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
Č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
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
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
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!