Innehållsförteckning:

Virtual Reality Controlled RC Car: 9 steg
Virtual Reality Controlled RC Car: 9 steg

Video: Virtual Reality Controlled RC Car: 9 steg

Video: Virtual Reality Controlled RC Car: 9 steg
Video: Amazing! Real life racing video game,no limit distance fpv rc car racing.remote control rc car 2024, Juli
Anonim
Image
Image

Har du någonsin velat krympa ner och testa ett hantverk som Innerspace eller Fantastic Voyage? Jag tror att det här är så nära som du kommer att få med kort varsel!

Här är planen:

En bil från Real-Life-fjärrkontrollen styrd från en kommando-konsol i Virtual Reality. Det betyder att du spänner på ett VR -headset, vrider på en omkopplare på en RC -bil och sedan kan pilotera från VR med livevideoflöde direkt till ditt ansikte.

Det finns saker som jag implementerade som du kan styra på VR -bilen.

  1. Hjul
  2. horn
  3. Ljus

Alla dessa har någon sorts knapp eller spak i VR som du kan vända eller växla för att köra bilen.

För fullständig repo och mer information, kolla in min Github och min webbplats!

Steg 1: Material och verktyg

Material och verktyg
Material och verktyg
Material och verktyg
Material och verktyg

Mekanisk:

Chassi med fyra hjul

Elektrisk:

  • Hjulkodare
  • 3S 1300mAh batteri
  • Arduino Uno
  • Arduino motorskydd
  • Piezo elektrisk summer
  • Liten LED
  • XT60 -kontakter
  • Boost / Buck -omvandlare

Dator:

  • Alla inbyggda datorsystem: Raspberry Pi, Jetson Nano, etc.
  • USB -kamera (att föredra - 180 graders kamera)

Verktyg / Extra:

  • Lödkolv
  • Vissa VR -inställningar - jag har Oculus Rift
  • Multimeter

Steg 2: Konstruera bilen

Konstruera bil
Konstruera bil
Konstruera bil
Konstruera bil
Konstruera bil
Konstruera bil

Chassit för bilen är superenkelt att konstruera. Du behöver bara fästa motorerna på huvudkortet via flikarna som de ger dig. När du har fäst hjulen och motorerna behöver du också något för att fästa kameran på bilens framsida.

Jag använde kartongen som kameran kom med för att montera den. Jag skar ut en stor L -form och skar ett hål för kameran att peta ordentligt. Efter det kan du bara slå igenom kameran och sätta in tejp på baksidan för att hålla den på plats. Om du vill kan du också sätta hål i dina strålkastare nu också, eller göra det senare när du mäter längden på tråden.

Du måste också fästa hjulkodaren på ett av hjulen. Det spelar ingen roll vilken, jag satte den på det bakre vänstra hjulet. Du måste sätta magnetskivan på hjulets egentliga axel, och pulsgivaren ska fästas vid bilen bredvid den. Det är ganska mottagligt, så det behöver inte vara rätt på det, men så nära som möjligt. Jag säkrade min kodare med tejp och en dragkedja. Kodaren är vad vi kommer att använda för att mäta hastigheten på vår bil.

Steg 3: Lödkretsar

Lödkretsar
Lödkretsar
Lödkretsar
Lödkretsar

Den här delen är ganska tråkig, men inte komplicerad. Om du följer bilden och mäter ut allt innan du skär din tråd är det inte så illa.

Medan du gör detta bör du också kalibrera din buck -omvandlare för att mata ut rätt spänning. Raspberry Pi och Jetson Nano tar båda 5v in, men vårt batteri är på 11,1v. Så vi måste se till att vi inte steker vår elektronik. För att göra detta, anslut ditt batteri till ingångssidan av buck -omvandlaren. Medan batteriet är inkopplat kan du använda din multimeter för att mäta utmatningssidan på omvandlaren. Använd en liten plattskruvmejsel för att vrida potentiometern på buckomvandlaren tills utspänningen är 5v. När utgången är korrekt behöver du inte vrida potentiometern längre.

Steg 4: Installera beroenden på det inbäddade systemet

Installera beroenden på det inbäddade systemet
Installera beroenden på det inbäddade systemet

Inte för mycket att göra här, men ändå otroligt viktigt.

Kontrollera först att du ansluter till routern du kommer att använda så att den kan ansluta automatiskt från och med nu.

Öppna sedan en terminal och skriv in följande:

sudo apt uppdatering

sudo apt installera openssh-server

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

När dessa saker har installerats måste vi se till att den, oavsett vilken port arduino är ansluten till, alltid känns igen. Så vi skriver vad som kallas UDEV -regler. Detta är regler för ditt operativsystem som styr vad som händer när du kopplar in saker. Vi vill identifiera arduino när den är inkopplad och ge den ett namn för att komma åt den genom. Det namnet kommer att vara "arduino_0". För att göra detta kommer vi att använda arduinos interna serienummer för att identifiera det.

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

Detta kommer att spotta ut ett värde för serienumret, fortsätt och kopiera det värdet.

Vi måste sedan redigera (eller skapa om den inte finns) en fil som heter "99-usb-serial.rules". Denna fil finns i följande filsökväg "/etc/udev/rules.d/99-usb-serial.rules". Som jag nämnde, om den filen inte finns, skapar du den och klistrar in på följande rad med VALUE_FROM_ABOVE ersatt med ditt värde från tidigare.

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

Detta berättar för operativsystemet att när det ser detta specifika serienummer för att kalla det arduino_0.

Det sista du ska göra här är att ladda ner pushArucoVideoPullCommands.py och placera den någonstans lättillgängligt. Jag skulle rekommendera hemkatalogen för din användare, eftersom det är där vi kommer att hamna när vi SSH in i det inbäddade systemet senare.

Steg 5: Konfigurera statisk IP -adress

Konfigurera statisk IP -adress
Konfigurera statisk IP -adress

Nu är den del som alla älskar, IP -adressering. För att detta projekt ska fungera måste koden veta vart man ska skicka bilder och styrkommandon till, och det betyder att våra enheter behöver en statisk IP.

Det finns många sätt att tilldela din enhet en statisk IP, men eftersom vi har en router som ansluter vår markstation och vårt inbyggda system kan vi använda den för att ge oss specifika IP -adresser mycket enkelt.

Navigera till din routers admin -sektion, vanligtvis (för de flesta routrar) görs detta genom att öppna en webbläsare och gå till "192.168.1.1". Den kommer att be dig logga in, och det vanliga användarnamnet och lösenordet för de flesta routrar är "admin".

Väl där, navigera till något som nämner "DHCP -server". Detta är en process som körs på din router och håller reda på vilka enheter som är anslutna till den med deras MAC -adress, som alltid är konstant. Vi vill välja de enheter vi bryr oss om om, markstationsdatorn och det inbäddade systemet och lägg till dem i den reserverade klientsektionen. Detta ger dem en statisk ip när de är anslutna till denna router.

Se till att du ställer in det inbyggda systemets IP på 192.168.1.122 Markstationens IP kan ställas in på vad som helst.

Steg 6: Ladda upp kod till Arduino

Ladda upp koden till Arduino
Ladda upp koden till Arduino

För att ladda upp arduino -koden måste vi först installera ett bibliotek för att arbeta med motorskyddet.

Gå till Sketch-> Inkludera bibliotek-> Hantera bibliotek på din Arduino IDE … Sök sedan efter Adafruit Motor Shield Library. Installera det här biblioteket och ladda upp koden till din arduino, inget annat bör krävas.

Steg 7: Anslut kretsar och dator till bilen

Anslut kretsar och dator till bilen
Anslut kretsar och dator till bilen

Nu när kretsen är byggd är det dags att lägga allt på bilen. Jag tänker inte ljuga, en hel del av de här grejerna hålls bara fast med tejp eftersom det var det som var lättast för mig att slå ihop riktigt snabbt. Med detta sagt har den monterade monteringshål enligt bilden ovan.

De flesta sakerna är ganska enkla att bara låta sitta någonstans ovanpå bilen, så oroa dig inte om det inte finns mycket utrymme.

Steg 8: Konfigurera VR -miljö

Konfigurera VR -miljö
Konfigurera VR -miljö

Det här avsnittet kommer att se lite annorlunda ut beroende på vilken typ av VR -inställningar du har på gång. Hur som helst använde jag SteamVR för att utveckla denna programvara, så du kan behöva ha den installerad.

Så länge du använder SteamVR bör kontrollerna anpassas till olika kontroller. Jag har kartlagt kontrollerna till "Åtgärder" inte nödvändigtvis knappar, så i teorin kommer det att anpassas för alla.

Du behöver bara ladda ner och packa upp filen med build Unity -världen och vara redo att köra VR_Bot.exe.

Steg 9: Kör allt tillsammans

Kör allt tillsammans
Kör allt tillsammans
Kör allt tillsammans
Kör allt tillsammans

Så, nu när vi har installerat bilen och markstationen är ansluten och redo att gå, hur kör vi egentligen den här dåliga pojken? Från markstationens synvinkel är det bara att köra VR_Bot.exe -filen som vi såg från tidigare.

Samtidigt måste du ansluta batteriet till det inbyggda systemet och låta det starta upp automatiskt och ansluta till din router. När det har startats upp, SSH in i det. För att komma åt detta behöver du någon form av terminal på markstationen, jag rekommenderar GitBash.

SSH står för Secure Shell och det är ett protokoll för säker åtkomst till fjärrsystem. I vårt fall kommer det att ge oss tillgång till det inbyggda systemet från markstationen. Klicka här för att lära dig mer.

Du måste känna till användarnamnet som du konfigurerade ditt inbäddade system med. För hallon pi är standard användarnamn 'pi' och lösenord 'hallon'.

När du har installerat öppnar du upp en terminal och skriver in följande:

ssh {Inbyggt systems användarnamn}@192.168.1.122

Detta öppnar en terminal i det inbäddade systemet.

Väl där behöver du bara köra python -skriptet som vi kopierade över tidigare.

python /path/to/pushArucoVideoPullCommands.py

När du har gjort det börjar det inbäddade systemet pumpa ut bilder och ta emot kommandon till och från markstationen.

Du är då bra att börja köra och ha kul!

Rekommenderad: