Innholdsfortegnelse:

Virtual Reality Controlled RC Car: 9 trinn
Virtual Reality Controlled RC Car: 9 trinn

Video: Virtual Reality Controlled RC Car: 9 trinn

Video: Virtual Reality Controlled RC Car: 9 trinn
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, November
Anonim
Image
Image

Har du noen gang ønsket å bli krympet og prøve et håndverk som Innerspace eller Fantastic Voyage? Jeg tror dette er så nært som du kommer på kort varsel!

Her er banen:

En bil fra Real-Life fjernkontroll som ble pilotert fra en kommando-konsoll i Virtual Reality. Dette betyr at du setter på et VR -headset, snur en bryter på en RC -bil og deretter kan pilotere fra VR med live videofeed rett til ansiktet ditt.

Det er deg ting jeg implementerte som du kan kontrollere på VR -bilen.

  1. Hjul
  2. Horn
  3. Lys

Alle disse har en slags knapp eller spak i VR som du kan snu eller bytte for å kjøre bilen.

For full repo og mer informasjon, sjekk ut min Github og nettstedet mitt!

Trinn 1: Materialer og verktøy

Materialer og verktøy
Materialer og verktøy
Materialer og verktøy
Materialer og verktøy

Mekanisk:

Chassis -sett med fire hjul

Elektrisk:

  • Hjulkoder
  • 3S 1300mAh batteri
  • Arduino Uno
  • Arduino motorskjerm
  • Piezo elektrisk summer
  • Liten LED
  • XT60 -kontakter
  • Boost / Buck -omformer

Datamaskin:

  • Ethvert innebygd datasystem: Raspberry Pi, Jetson Nano, etc.
  • USB -kamera (å foretrekke - 180 graders kamera)

Verktøy / Ekstra:

  • Loddejern
  • Noen VR -oppsett - jeg har Oculus Rift
  • Multimeter

Trinn 2: Bygg bil

Bygg bil
Bygg bil
Bygg bil
Bygg bil
Bygg bil
Bygg bil

Chassiset til bilen er superenkelt å konstruere. Du trenger bare å feste motorene til hovedkortet via fanene de gir deg. Etter at du har festet hjulene og motorene, trenger du også noe for å feste kameraet foran på bilen.

Jeg brukte pappkassen som kameraet kom med for å montere den. Jeg kuttet ut en stor L -form og skar et hull for kameraet å stikke grundig. Etter det kan du bare sette kameraet igjennom og sette tape på baksiden for å holde det på plass. Hvis du vil, kan du også sette hull i frontlysene dine nå også, eller gjøre det senere når du måler ut lengden på ledningen.

Du må også feste hjulkoderen til et av hjulene. Det spiller ingen rolle hvilken, jeg satte den på venstre bakhjul. Du må sette magnetskiven på selve akselen på hjulet, og koder skal festes til bilen ved siden av den. Det er ganske mottagelig, så det trenger ikke å være rett på det, men så nært som mulig. Jeg sikret koderen min med tape og et glidelås. Koderen er det vi skal bruke til å måle hastigheten på bilen vår.

Trinn 3: Loddekretser

Loddekretser
Loddekretser
Loddekretser
Loddekretser

Denne delen er ganske kjedelig, men ikke komplisert. Hvis du følger bildet og måler alt før du kutter tråden, er det ikke så ille.

Mens du gjør dette, bør du også kalibrere bukkomformeren for å levere riktig spenning. Raspberry Pi og Jetson Nano tar begge 5v i, men batteriet vårt er på 11,1v. Så vi må sørge for at vi ikke steker elektronikken vår. For å gjøre dette, koble batteriet til inngangssiden til bukkomformeren. Mens batteriet er plugget inn, må du bruke multimeteret til å måle utgangssiden til bukkomformeren. Bruk en liten skrutrekker til å skru potensiometeret på bukkomformeren til utgangsspenningen er 5v. Når utgangen er riktig, trenger du ikke å snu potensiometeret lenger.

Trinn 4: Installer avhengigheter på det innebygde systemet

Installer avhengigheter på det innebygde systemet
Installer avhengigheter på det innebygde systemet

Ikke for mye å gjøre her, men likevel utrolig viktig.

Sørg først for at du kobler til ruteren du skal bruke, slik at den kan koble til automatisk fra nå av.

Deretter åpner du en terminal og skriver inn følgende:

sudo apt oppdatering

sudo apt installer openssh-server

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

Når disse tingene er installert, må vi sørge for at den, uansett hvilken port arduinoen er koblet til, alltid blir gjenkjent. Så vi skriver det som kalles UDEV -regler. Dette er regler for operativsystemet som styrer hva som skjer når du kobler til ting. Vi vil identifisere arduinoen når den er plugget inn, og gi den et navn for å få tilgang til den. Det navnet vil være "arduino_0". For å gjøre dette, bruker vi arduinoens interne serienummer for å identifisere det.

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

Dette vil spytte ut en verdi for serienummeret, fortsett og kopier den verdien.

Vi må deretter redigere (eller opprette hvis den ikke eksisterer) en fil som heter "99-usb-serial.rules". Denne filen lever i følgende filbane "/etc/udev/rules.d/99-usb-serial.rules". Som jeg nevnte, hvis den filen ikke eksisterer, er det bare å lage den og lime den inn på følgende linje med VALUE_FROM_ABOVE erstattet med verdien din fra før.

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

Dette forteller operativsystemet at når det ser dette spesifikke serienummeret for å kalle det arduino_0.

Det siste du må gjøre her er å laste ned pushArucoVideoPullCommands.py og legge den til et lett tilgjengelig sted. Jeg vil anbefale hjemmekatalogen for brukeren din, da det er der vi vil ende opp når vi SSH inn i det innebygde systemet senere.

Trinn 5: Konfigurer statisk IP -adresse

Oppsett statisk IP -adresse
Oppsett statisk IP -adresse

Nå er delen alle liker, IP -adressering. For at dette prosjektet skal fungere, må koden vite hvor du skal sende bilder og kontrollkommandoer til, og det betyr at enhetene våre trenger en statisk IP.

Det er mange måter å tilordne enheten din en statisk IP på, men fordi vi har en ruter som kobler bakkestasjonen og det innebygde systemet vårt, kan vi bruke det til å gi oss spesifikke IP -adresser veldig enkelt.

Naviger til ruterens admin -seksjon, vanligvis (for de fleste rutere) gjøres dette ved å åpne en nettleser og gå til "192.168.1.1". Den vil be deg om å logge på, og det vanlige standard brukernavnet og passordet for de fleste rutere er "admin".

Når du er der, navigerer du til noe som nevner 'DHCP -server'. Dette er en prosess som kjører på ruteren din og holder oversikt over hvilke enheter som er koblet til den med deres MAC -adresse, som alltid er konstant. Vi vil velge enhetene vi bryr oss om om, bakkestasjonsdatamaskinen og det innebygde systemet, og legg dem til i den reserverte klientseksjonen. Dette vil gi dem en statisk ip når de er koblet til denne ruteren.

Sørg for at du har angitt det innebygde systemets IP til 192.168.1.122 Jordstasjonens IP kan settes til hva som helst.

Trinn 6: Last opp kode til Arduino

Last opp kode til Arduino
Last opp kode til Arduino

For å laste opp arduino -koden må vi først installere et bibliotek for å jobbe med motorskjermen.

Gå til Sketch-> Inkluder bibliotek-> Administrer biblioteker på Arduino IDE … Søk deretter etter Adafruit Motor Shield Library. Installer dette biblioteket, og last deretter opp koden til din arduino, ingenting annet bør være nødvendig.

Trinn 7: Fest krets og datamaskin til bilen

Fest krets og datamaskin til bilen
Fest krets og datamaskin til bilen

Nå som kretsen er bygget, er det på tide å sette alt på bilen. Jeg kommer ikke til å lyve, mange av disse tingene blir bare holdt på med tape fordi det var det som var lettest for meg å slå sammen veldig fort. Når det er sagt, har den monterte monteringshull som vist på bildet ovenfor.

De fleste tingene er ganske enkle å bare la sitte et sted på toppen av bilen, så ikke bekymre deg hvis det ikke er mye plass.

Trinn 8: Sett opp VR -miljø

Sett opp VR -miljø
Sett opp VR -miljø

Denne delen kommer til å se litt annerledes ut, avhengig av hva slags VR -oppsett du har på gang. Uansett brukte jeg SteamVR til å utvikle denne programvaren, så du må kanskje installere den.

Så lenge du bruker SteamVR, bør kontrollene tilpasse seg forskjellige kontrollere. Jeg har kartlagt kontrollene til "Handlinger", ikke nødvendigvis knapper, så i teorien vil det tilpasse seg alle.

Du trenger bare å laste ned og pakke ut filen med build Unity -verdenen og være klar til å kjøre VR_Bot.exe.

Trinn 9: Kjør alt sammen

Kjør alt sammen
Kjør alt sammen
Kjør alt sammen
Kjør alt sammen

Så nå som vi har satt opp bilen og bakkestasjonen er koblet til og klar til å gå, hvordan driver vi egentlig denne dårlige gutten? Fra bakkestasjonens synspunkt, alt du trenger å gjøre for å kjøre VR_Bot.exe -filen vi så fra tidligere.

Samtidig må du koble batteriet til det innebygde systemet og la det starte automatisk opp og koble til ruteren din. Når den er startet opp, SSH inn i den. For å få tilgang til dette trenger du en slags terminal på bakkestasjonen, jeg anbefaler GitBash.

SSH står for Secure Shell og er en protokoll for sikker tilgang til eksterne systemer. I vårt tilfelle vil det gi oss tilgang til det innebygde systemet fra bakkestasjonen. Klikk her for å lære mer.

Du må vite brukernavnet som du konfigurerte det innebygde systemet ditt med. For bringebær pi er standard brukernavn 'pi' og passord 'bringebær'.

Når den er installert, åpner du en terminal og skriver inn følgende:

ssh {Innebygd systems brukernavn}@192.168.1.122

Dette åpner en terminal i det innebygde systemet.

Når du er der, trenger du bare å utføre python -skriptet vi kopierte over tidligere.

python /path/to/pushArucoVideoPullCommands.py

Etter at du har gjort det, vil det innebygde systemet begynne å pumpe ut bilder og motta kommandoer til og fra bakkestasjonen.

Da er du god til å begynne å kjøre og ha det gøy!

Anbefalt: