Sommario:

Auto RC controllata da realtà virtuale: 9 passaggi
Auto RC controllata da realtà virtuale: 9 passaggi

Video: Auto RC controllata da realtà virtuale: 9 passaggi

Video: Auto RC controllata da realtà virtuale: 9 passaggi
Video: Vai a lettoooo! 2024, Dicembre
Anonim
Image
Image

Hai mai desiderato essere rimpicciolito e pilotare un'imbarcazione come Innerspace o Fantastic Voyage? Bene, penso che questo sia il più vicino possibile con breve preavviso!

Ecco il passo:

Un'auto telecomandata Real-Life pilotata da una console di comando in realtà virtuale. Ciò significa che ti allacci un auricolare VR, aziona un interruttore su un'auto RC, quindi puoi pilotare dalla realtà virtuale con feed video in diretta direttamente sul tuo viso.

Ci sono tre cose che ho implementato che puoi controllare sull'auto VR.

  1. Ruote
  2. Corno
  3. Luci

Tutti questi hanno una sorta di pulsante o leva in VR che puoi capovolgere o cambiare per guidare l'auto.

Per il repository completo e maggiori informazioni, controlla il mio Github e il mio sito web!

Passaggio 1: materiali e strumenti

Materiali e strumenti
Materiali e strumenti
Materiali e strumenti
Materiali e strumenti

Meccanico:

Kit telaio a 4 ruote motrici

Elettrico:

  • Encoder ruota
  • Batteria 3S 1300mAh
  • Arduino Uno
  • Scudo motore Arduino
  • Cicalino piezoelettrico
  • LED piccolo
  • Connettori XT60
  • Convertitore Boost / Buck

Computer:

  • Qualsiasi sistema informatico integrato: Raspberry Pi, Jetson Nano, ecc.
  • Fotocamera USB (preferibile - fotocamera a 180 gradi)

Strumenti / Extra:

  • Saldatore
  • Alcune impostazioni VR - Ho l'Oculus Rift
  • Multimetro

Passaggio 2: costruisci l'auto

Costruisci auto
Costruisci auto
Costruisci auto
Costruisci auto
Costruisci auto
Costruisci auto

Il telaio per l'auto è super facile da costruire. Hai solo bisogno di collegare i motori alla scheda principale tramite le linguette che ti danno. Dopo aver collegato le ruote e i motori, avrai anche bisogno di qualcosa per fissare la fotocamera alla parte anteriore dell'auto.

Ho usato la scatola di cartone in cui è arrivata la fotocamera per montarla. Ho ritagliato una grande forma a L e ho praticato un foro per consentire alla fotocamera di colpire a fondo. Dopodiché, puoi semplicemente inserire la videocamera e mettere del nastro adesivo sul retro per tenerla in posizione. Se lo desideri, puoi anche praticare dei fori per i fari ora o farlo in seguito quando misuri la lunghezza del cavo.

Dovrai anche collegare l'encoder della ruota a una delle ruote. Non importa quale, l'ho messo sulla ruota posteriore sinistra. È necessario posizionare il disco magnetico sull'albero effettivo della ruota e l'encoder dovrebbe essere collegato all'auto accanto ad esso. È piuttosto ricettivo, quindi non ha bisogno di essere proprio su di esso, ma il più vicino possibile. Ho fissato il mio codificatore con nastro adesivo e una fascetta. L'encoder è quello che useremo per misurare la velocità della nostra auto.

Passaggio 3: circuiti di saldatura

Circuiti di saldatura
Circuiti di saldatura
Circuiti di saldatura
Circuiti di saldatura

Questa parte è piuttosto noiosa, ma non complicata. Se segui l'immagine e misuri tutto prima di tagliare il filo, non è male.

Mentre lo fai, dovresti anche calibrare il tuo convertitore buck per emettere la tensione corretta. Il Raspberry Pi e il Jetson Nano accettano entrambi 5v, ma la nostra batteria è a 11,1v. Quindi, dobbiamo assicurarci di non friggere la nostra elettronica. Per fare ciò, collega la batteria al lato di ingresso del convertitore buck. Mentre la batteria è collegata, usa il multimetro per misurare il lato di uscita del convertitore buck. Usa un piccolo cacciavite a testa piatta per girare il potenziometro sul convertitore buck fino a quando la tensione di uscita è 5v. Una volta che l'output è corretto, non dovrai più girare il potenziometro.

Passaggio 4: installa le dipendenze sul sistema integrato

Installa le dipendenze sul sistema integrato
Installa le dipendenze sul sistema integrato

Non c'è molto da fare qui, ma è comunque incredibilmente importante.

Innanzitutto, assicurati di connetterti al router che utilizzerai in modo che possa connettersi automaticamente d'ora in poi.

Quindi, apri un terminale e digita quanto segue:

sudo apt update

sudo apt install openssh-server

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

Una volta installate queste cose, dobbiamo assicurarci che, indipendentemente dalla porta a cui è collegato l'arduino, venga sempre riconosciuto. Quindi, scriviamo le cosiddette regole UDEV. Queste sono regole per il tuo sistema operativo che governano cosa succede quando colleghi le cose. Vogliamo identificare l'arduino quando è collegato e dargli un nome per accedervi. Quel nome sarà "arduino_0". Per fare ciò, utilizzeremo il numero di serie interno di arduino per identificarlo.

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

Questo sputerà un valore per il numero di serie, vai avanti e copia quel valore.

Dobbiamo quindi modificare (o creare se non esiste) un file chiamato "99-usb-serial.rules". Questo file risiede nel seguente percorso file "/etc/udev/rules.d/99-usb-serial.rules". Come ho detto, se quel file non esiste, crealo e incollalo nella riga seguente con VALUE_FROM_ABOVE sostituito con il tuo valore di prima.

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

Questo dice al sistema operativo che ogni volta che vede questo specifico numero di serie di chiamarlo arduino_0.

L'ultima cosa da fare qui è scaricare pushArucoVideoPullCommands.py e metterlo in un posto facilmente accessibile. Consiglierei la home directory per il tuo utente, poiché è lì che andremo a finire quando in seguito faremo SSH nel sistema embedded.

Passaggio 5: configurazione dell'indirizzo IP statico

Imposta indirizzo IP statico
Imposta indirizzo IP statico

Ora è la parte che tutti amano, l'indirizzamento IP. Perché questo progetto funzioni, il codice deve sapere dove inviare immagini e comandi di controllo, e ciò significa che i nostri dispositivi hanno bisogno di un IP statico.

Esistono molti modi per assegnare al tuo dispositivo un IP statico, ma, poiché abbiamo un router che collega la nostra stazione di terra e il sistema integrato, possiamo usarlo per fornirci indirizzi IP specifici molto facilmente.

Passa alla sezione di amministrazione del tuo router, in genere (per la maggior parte dei router) questo viene fatto aprendo un browser web e andando a "192.168.1.1". Ti verrà chiesto di accedere e il nome utente e la password standard tipici per la maggior parte dei router è "admin".

Una volta lì, vai a qualcosa che menziona "Server DHCP". Questo è un processo che viene eseguito sul tuo router e tiene traccia di quali dispositivi sono collegati ad esso tramite il loro indirizzo MAC, che è sempre costante. Vogliamo selezionare i dispositivi che ci interessano circa, il computer della stazione di terra e il sistema embedded e aggiungerli alla sezione client riservata, in modo da fornire loro un IP statico ogni volta che sono connessi a questo router.

Assicurati di impostare l'IP del sistema integrato su 192.168.1.122 L'IP della stazione di terra può essere impostato su qualsiasi cosa.

Passaggio 6: carica il codice su Arduino

Carica il codice su Arduino
Carica il codice su Arduino

Per caricare il codice arduino, dobbiamo prima installare una libreria per lavorare con lo scudo del motore.

Sul tuo IDE Arduino, vai su Sketch->Include Library->Manage Libraries… Quindi, cerca Adafruit Motor Shield Library. Installa questa libreria, quindi carica il codice sul tuo arduino, non dovrebbe essere richiesto nient'altro.

Passaggio 7: collegare circuiti e computer all'auto

Collega circuiti e computer all'auto
Collega circuiti e computer all'auto

Ora che il circuito è stato costruito, è ora di mettere tutto sulla macchina. Non ho intenzione di mentire, molte di queste cose sono semplicemente trattenute con il nastro perché è quello che è stato più facile per me da schiaffeggiare insieme molto velocemente. Detto questo, ha i fori di montaggio montati come mostrato nell'immagine sopra.

La maggior parte delle cose è abbastanza facile da lasciare da qualche parte sopra l'auto, quindi non preoccuparti se non c'è molto spazio.

Passaggio 8: configurazione dell'ambiente VR

Imposta l'ambiente VR
Imposta l'ambiente VR

Questa sezione avrà un aspetto leggermente diverso a seconda del tipo di configurazione VR che hai in corso. In ogni caso, ho utilizzato SteamVR per sviluppare questo software, quindi potrebbe essere necessario installarlo.

Finché utilizzi SteamVR, i controlli dovrebbero adattarsi a controller diversi. Ho mappato i controlli su "Azioni" non necessariamente sui pulsanti, quindi, in teoria, si adatterà a tutti.

Devi solo scaricare e decomprimere il file con il build Unity world ed essere pronto per eseguire VR_Bot.exe.

Passaggio 9: esegui tutto insieme

Corri tutto insieme
Corri tutto insieme
Corri tutto insieme
Corri tutto insieme

Quindi, ora che abbiamo la configurazione dell'auto e la stazione di terra collegata e pronta per l'uso, come gestiamo questo ragazzaccio? Bene, dal punto di vista della Ground Station, tutto ciò che devi fare è eseguire il file VR_Bot.exe che abbiamo visto in precedenza.

Allo stesso tempo, sarà necessario collegare la batteria al sistema integrato e farlo avviare automaticamente e connettersi al router. Una volta avviato, SSH al suo interno. Per accedervi, avrai bisogno di una sorta di terminale sulla stazione di terra, consiglio GitBash.

SSH sta per Secure Shell ed è un protocollo per accedere ai sistemi remoti in modo sicuro. Nel nostro caso, ci darà accesso al sistema integrato dalla stazione di terra. Clicca qui per saperne di più.

Devi conoscere il nome utente con cui hai configurato il tuo sistema embedded. Per Raspberry Pi il nome utente predefinito è "pi" e la password "raspberry".

Una volta installato, apri un terminale e digita quanto segue:

ssh {nome utente del sistema incorporato}@192.168.1.122

Questo aprirà un terminale nel sistema integrato.

Una volta lì, devi solo eseguire lo script Python che abbiamo copiato in precedenza.

python /path/to/pushArucoVideoPullCommands.py

Dopo averlo fatto, il sistema integrato inizierà a pompare immagini e a ricevere comandi da e verso la stazione di terra.

Allora sei a posto per iniziare a guidare e divertirti!

Consigliato: