Sadržaj:
- Korak 1: Materijali i alati
- Korak 2: Konstruišite automobil
- Korak 3: Krugovi za lemljenje
- Korak 4: Instalirajte zavisnosti na ugrađeni sistem
- Korak 5: Postavljanje statičke IP adrese
- Korak 6: Otpremite kôd na Arduino
- Korak 7: Priključite strujna kola i računar na automobil
- Korak 8: Postavite VR okruženje
- Korak 9: Pokrenite sve zajedno
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Jeste li ikada poželjeli da vas smanje i upravljate letjelicom poput Innerspacea ili Fantastic Voyagea? Pa, mislim da je ovo najbliže što ćete dobiti u kratkom roku!
Evo koraka:
Automobil sa daljinskim upravljačem iz stvarnog života koji se pilotira sa komandne konzole Virtual Reality. To znači da vežete VR slušalice, prebacite prekidač na RC automobilu, a zatim možete upravljati iz VR -a sa video feedom uživo ravno u lice.
Postoje neke stvari koje sam implementirao i koje možete kontrolirati na VR automobilu.
- Točkovi
- Rog
- Svjetla
Svi oni imaju neku vrstu dugmeta ili ručice u VR -u koje možete okrenuti ili prebaciti za vožnju automobilom.
Za potpuni repo i više informacija posjetite moj Github i moju web stranicu!
Korak 1: Materijali i alati
Mehanički:
Komplet šasije s pogonom na četiri kotača
Električno:
- Enkoder kotača
- Baterija 3S 1300mAh
- Arduino Uno
- Arduino motorni štit
- Piezo električni zujalica
- Mala LED dioda
- XT60 Konektori
- Pretvarač pojačanja / opadanja
Računar:
- Bilo koji ugrađeni računarski sistem: Raspberry Pi, Jetson Nano itd.
- USB kamera (poželjno - kamera od 180 stepeni)
Alati / Dodatno:
- Lemilica
- Nekoliko VR postavki - imam Oculus Rift
- Multimetar
Korak 2: Konstruišite automobil
Šasija za automobil je super laka za konstrukciju. Morate samo priključiti motore na glavnu ploču preko jezičaka koje vam daju. Nakon što ste pričvrstili kotače i motore, trebat će vam i nešto za pričvršćivanje kamere na prednji dio automobila.
Za montažu sam upotrijebio kartonsku kutiju u kojoj je kamera. Izrezao sam veliki oblik slova L i izrezao rupu za kameru da je temeljito probuši. Nakon toga možete samo provući kameru i staviti neku traku sa stražnje strane kako bi ostala na mjestu. Ako želite, sada možete staviti i rupe za farove ili to učiniti kasnije pri mjerenju dužine žice.
Također ćete morati pričvrstiti enkoder kotača na jedan od kotača. Nije važno koji, stavio sam ga na zadnji lijevi kotač. Morate staviti magnetni disk na stvarnu osovinu kotača, a koder treba pričvrstiti na automobil pored njega. Prilično je prijemčiv, pa ne mora biti na njemu, već što je moguće bliže. Osigurao sam enkoder trakom i kravatom. Enkoder je ono što ćemo koristiti za mjerenje brzine našeg automobila.
Korak 3: Krugovi za lemljenje
Ovaj dio je prilično dosadan, ali nije kompliciran. Ako slijedite sliku i izmjerite sve prije nego što presiječete žicu, nije tako loše.
Dok to radite, također biste trebali kalibrirati svoj pretvarač u vrijednosti za izlaz ispravnog napona. Raspberry Pi i Jetson Nano i troše 5V, ali naša baterija je na 11.1V. Dakle, moramo paziti da ne ispržimo našu elektroniku. Da biste to učinili, uključite bateriju u ulaznu stranu pretvarača. Dok je baterija priključena, pomoću multimetra izmjerite izlaznu stranu pretvarača. Upotrijebite mali odvijač s plosnatom glavom da biste okrenuli potientiometar na konverteru sve dok izlazni napon ne bude 5v. Nakon što je izlaz ispravan, više nećete morati okretati potientiometar.
Korak 4: Instalirajte zavisnosti na ugrađeni sistem
Nema tu previše posla, ali je i dalje nevjerovatno važno.
Prvo provjerite jeste li se povezali na usmjerivač koji ćete koristiti kako bi se od sada mogao automatski povezati.
Zatim otvorite terminal i upišite sljedeće:
sudo apt update
sudo apt install openssh-server
sudo apt install python-pip pip install numpy pip install opencv-python pip install pyzmq
Nakon što se ove stvari instaliraju, moramo se pobrinuti da, bez obzira na koji port je arduino priključen, uvijek bude prepoznat. Dakle, pišemo ono što se naziva UDEV pravila. Ovo su pravila za vaš operativni sistem koja uređuju šta se dešava kada uključite stvari. Želimo identifikovati arduino kada je priključen i dati mu ime za pristup. To ime će biti "arduino_0". Da bismo to učinili, upotrijebit ćemo interni serijski broj arduina da ga identificiramo.
udevadm info -a -n /dev /ttyUSB1 | grep '{serial}' | head -n1
Ovo će ispljunuti vrijednost serijskog broja, samo naprijed i kopirajte tu vrijednost.
Zatim moramo urediti (ili stvoriti ako ne postoji) datoteku pod nazivom "99-usb-serial.rules". Ova datoteka se nalazi na sljedećoj putanji datoteke "/etc/udev/rules.d/99-usb-serial.rules". Kao što sam spomenuo, ako ta datoteka ne postoji, samo je stvorite i zalijepite u sljedeći redak s VALUE_FROM_ABOVE zamijenjenom vašom vrijednošću od ranije.
SUBSYSTEM == "tty", ATTRS {serial} == "VALUE_FROM_ABOVE", SYMLINK+= "arduino_0"
Ovo govori operativnom sistemu da kad god vidi ovaj specifični serijski broj da ga nazove arduino_0.
Posljednje što ovdje trebate učiniti je preuzeti pushArucoVideoPullCommands.py i postaviti ga na lako dostupno mjesto. Korisniku bih preporučio početni direktorij, jer ćemo tu završiti kada kasnije SSH unesemo u ugrađeni sistem.
Korak 5: Postavljanje statičke IP adrese
Sada je dio koji svi vole, IP adresiranje. Da bi ovaj projekt funkcionirao, kod mora znati kamo slati slike i kontrolne naredbe, a to znači da je našim uređajima potreban statički IP.
Postoji mnogo načina da svom uređaju dodijelite statičku IP adresu, ali budući da imamo usmjerivač koji povezuje našu zemaljsku stanicu i ugrađeni sistem, možemo ga koristiti za vrlo lako davanje određenih IP adresa.
Idite na administratorski odjeljak usmjerivača, obično (za većinu usmjerivača) to se radi otvaranjem web preglednika i odlaskom na "192.168.1.1". Od vas će se tražiti da se prijavite, a tipično standardno korisničko ime i lozinka za većinu usmjerivača je "admin".
Kad stignete tamo, idite na nešto što spominje "DHCP server". Ovo je proces koji se pokreće na vašem usmjerivaču i prati koji su uređaji povezani s njim putem njihove MAC adrese, koja je uvijek konstantna. Želimo odabrati uređaje do kojih nam je stalo o računaru zemaljske stanice i ugrađenom sistemu, te ih dodati u odjeljak rezerviranih klijenata. Ovo će im dati statički ip kad god su spojeni na ovaj usmjerivač.
Uvjerite se da ste IP ugrađenog sistema postavili na 192.168.1.122 IP zemaljske stanice se može postaviti na bilo šta.
Korak 6: Otpremite kôd na Arduino
Da bismo učitali arduino kôd, moramo prvo instalirati biblioteku za rad sa štitom motora.
Na svom Arduino IDE idite na Sketch-> Include Library-> Manage Libraries … Zatim potražite Adafruit Motor Shield Library. Instalirajte ovu biblioteku, a zatim otpremite kôd na svoj arduino, ništa drugo ne bi trebalo biti potrebno.
Korak 7: Priključite strujna kola i računar na automobil
Sada kada je kolo izgrađeno, vrijeme je da sve to stavite na automobil. Neću lagati, mnoge ove stvari se samo drže trakom jer mi je to bilo najlakše da se ošamarimo na brzinu. S tim u vezi, ugrađene su montažne rupe kao što se vidi na gornjoj slici.
Većinu stvari je prilično jednostavno jednostavno ostaviti da sjede negdje na vrhu automobila, pa ne brinite ako nema puno prostora.
Korak 8: Postavite VR okruženje
Ovaj odjeljak će izgledati malo drugačije, ovisno o vrsti VR postavki koje imate. U svakom slučaju, koristio sam SteamVR za razvoj ovog softvera, pa ćete ga možda morati instalirati.
Sve dok koristite SteamVR, kontrole bi se trebale prilagoditi različitim kontrolerima. Mape sam preslikao u "Akcije", a ne nužno u gumbe, pa će se teoretski prilagoditi svima.
Samo trebate preuzeti i raspakirati datoteku sa svijetom build Unity i biti spremni za pokretanje VR_Bot.exe.
Korak 9: Pokrenite sve zajedno
Dakle, sad kad smo postavili auto i zemaljska stanica je spojena i spremna za polazak, kako ćemo zapravo pokrenuti ovog lošeg dječaka? Pa, sa stajališta zemaljske stanice, sve što trebate učiniti je pokrenuti datoteku VR_Bot.exe koju smo vidjeli ranije.
Istovremeno, morat ćete priključiti bateriju na ugrađeni sistem i omogućiti automatsko pokretanje i povezivanje s usmjerivačem. Nakon što se podigne, SSH u nju. Da biste pristupili ovome, trebat će vam neka vrsta terminala na zemaljskoj stanici, preporučujem GitBash.
SSH znači Secure Shell i to je protokol za siguran pristup udaljenim sistemima. U našem slučaju, to će nam omogućiti pristup ugrađenom sistemu sa zemaljske stanice. Kliknite ovdje za više informacija.
Morate znati korisničko ime s kojim ste postavili svoj ugrađeni sistem. Za maline pi je zadano korisničko ime 'pi', a lozinka 'malina'.
Nakon instaliranja otvorite terminal i upišite sljedeće:
ssh {Korisničko ime ugrađenog sistema}@192.168.1.122
Ovo će otvoriti terminal u ugrađenom sistemu.
Jednom tamo, samo trebate izvršiti python skriptu koju smo ranije kopirali.
python /path/to/pushArucoVideoPullCommands.py
Nakon što to učinite, ugrađeni sistem će početi ispumpavati slike i primati naredbe do i sa zemaljske stanice.
Tada ste dobri za početak vožnje i zabave!