Tabla de contenido:

Coche RC controlado por realidad virtual: 9 pasos
Coche RC controlado por realidad virtual: 9 pasos

Video: Coche RC controlado por realidad virtual: 9 pasos

Video: Coche RC controlado por realidad virtual: 9 pasos
Video: No Compres Esto, ENSERIO (Coche Radiocontrol FPV) 2024, Noviembre
Anonim
Image
Image

¿Alguna vez has querido encogerte y pilotar una nave como Innerspace o Fantastic Voyage? Bueno, creo que esto es lo más cerca que vas a conseguir con poca antelación.

Aquí está el tono:

Un automóvil de control remoto de la vida real pilotado desde una consola de comando de realidad virtual. Esto significa que te pones un auricular VR, enciende un interruptor en un auto RC y luego puedes pilotar desde VR con transmisión de video en vivo directamente a tu cara.

Hay tres cosas que he implementado y que puedes controlar en el coche de realidad virtual.

  1. Ruedas
  2. bocina
  3. Luces

Todos estos tienen algún tipo de botón o palanca en la realidad virtual que puede girar o cambiar para conducir el automóvil.

Para obtener el repositorio completo y más información, consulte mi Github y mi sitio web.

Paso 1: Materiales y herramientas

Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas

Mecánico:

Kit de chasis de tracción en las 4 ruedas

Eléctrico:

  • Codificador de rueda
  • Batería 3S 1300mAh
  • Arduino Uno
  • Escudo del motor Arduino
  • Zumbador piezoeléctrico
  • LED pequeño
  • Conectores XT60
  • Convertidor Boost / Buck

Computadora:

  • Cualquier sistema informático integrado: Raspberry Pi, Jetson Nano, etc.
  • Cámara USB (preferiblemente, cámara de 180 grados)

Herramientas / Extra:

  • Soldador
  • Alguna configuración de realidad virtual: tengo Oculus Rift
  • Multimetro

Paso 2: construye el coche

Construir coche
Construir coche
Construir coche
Construir coche
Construir coche
Construir coche

El chasis del automóvil es muy fácil de construir. Solo necesita conectar los motores a la placa principal a través de las pestañas que le dan. Una vez que haya colocado las ruedas y los motores, también necesitará algo para colocar la cámara en la parte delantera del automóvil.

Usé la caja de cartón en la que vino la cámara para montarla. Corté una forma de L grande y corté un agujero para que la cámara lo hiciera bien. Después de eso, puede colocar la cámara a través y poner un poco de cinta en la parte posterior para mantenerla en su lugar. Si lo desea, también puede hacer agujeros para sus faros delanteros ahora, o hacerlo más tarde cuando mida la longitud del cable.

También deberá conectar el codificador de rueda a una de las ruedas. No importa cuál, lo puse en la rueda trasera izquierda. Debe colocar el disco magnético en el eje real de la rueda, y el codificador debe estar conectado al automóvil al lado. Es bastante receptivo, por lo que no necesita estar al tanto, sino lo más cerca posible. Aseguré mi codificador con cinta y una brida. El codificador es el que usaremos para medir la velocidad de nuestro coche.

Paso 3: circuitos de soldadura

Circuitos de soldadura
Circuitos de soldadura
Circuitos de soldadura
Circuitos de soldadura

Esta parte es bastante tediosa, pero no complicada. Si sigue la imagen y mide todo antes de cortar el cable, no está tan mal.

Mientras hace esto, también debe calibrar su convertidor reductor para generar el voltaje correcto. Tanto la Raspberry Pi como la Jetson Nano toman 5v, pero nuestra batería es de 11.1v. Por lo tanto, debemos asegurarnos de no freír nuestros dispositivos electrónicos. Para hacer esto, conecte su batería en el lado de entrada del convertidor reductor. Mientras la batería está enchufada, use su multímetro para medir el lado de salida del convertidor reductor. Use un destornillador pequeño de cabeza plana para girar el potenciómetro en el convertidor reductor hasta que el voltaje de salida sea de 5v. Una vez que la salida sea correcta, ya no tendrá que girar el potenciómetro.

Paso 4: instalar dependencias en el sistema integrado

Instalar dependencias en el sistema integrado
Instalar dependencias en el sistema integrado

No hay mucho que hacer aquí, pero sigue siendo increíblemente importante.

Primero, asegúrese de conectarse al enrutador que utilizará para que pueda conectarse automáticamente a partir de ahora.

Luego, abre una terminal y escribe lo siguiente:

actualización de sudo apt

sudo apt instalar openssh-server

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

Una vez que estas cosas se han instalado, debemos asegurarnos de que, sin importar en qué puerto esté conectado el arduino, siempre sea reconocido. Entonces, escribimos lo que se llama reglas UDEV. Estas son reglas para su sistema operativo que gobiernan lo que sucede cuando conecta cosas. Queremos identificar el arduino cuando está conectado y darle un nombre para acceder a él. Ese nombre será "arduino_0". Para hacer esto, usaremos el número de serie interno del arduino para identificarlo.

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

Esto escupirá un valor para el número de serie, continúe y copie ese valor.

Luego necesitamos editar (o crear si no existe) un archivo llamado "99-usb-serial.rules". Este archivo se encuentra en la siguiente ruta de archivo "/etc/udev/rules.d/99-usb-serial.rules". Como mencioné, si ese archivo no existe, simplemente créelo y péguelo en la siguiente línea con VALUE_FROM_ABOVE reemplazado con su valor de antes.

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

Esto le dice al sistema operativo que siempre que vea este número de serie específico lo llame arduino_0.

Lo último que debe hacer aquí es descargar pushArucoVideoPullCommands.py y colocarlo en un lugar de fácil acceso. Recomendaría el directorio de inicio para su usuario, ya que ahí es donde terminaremos cuando SSH en el sistema integrado más adelante.

Paso 5: Configurar la dirección IP estática

Configurar dirección IP estática
Configurar dirección IP estática

Ahora es la parte que a todo el mundo le encanta, el direccionamiento IP. Para que este proyecto funcione, el código necesita saber a dónde enviar imágenes y comandos de control, y eso significa que nuestros dispositivos necesitan una IP estática.

Hay muchas formas de asignar a su dispositivo una IP estática, pero, como tenemos un enrutador que conecta nuestra estación terrestre y el sistema integrado, podemos usarlo para proporcionarnos direcciones IP específicas muy fácilmente.

Navegue a la sección de administración de su enrutador, por lo general (para la mayoría de los enrutadores) esto se hace abriendo un navegador web y yendo a "192.168.1.1". Le pedirá que inicie sesión, y el nombre de usuario y la contraseña estándar típicos para la mayoría de los enrutadores es "admin".

Una vez allí, navegue hasta algo que mencione 'Servidor DHCP'. Este es un proceso que se ejecuta en su enrutador y realiza un seguimiento de qué dispositivos están conectados a él por su dirección MAC, que siempre es constante. Queremos seleccionar los dispositivos que nos interesan sobre, la computadora de la estación terrestre y el sistema integrado, y agregarlos a la sección reservada del cliente. Esto les dará una IP estática cada vez que se conecten a este enrutador.

Asegúrese de configurar la IP del sistema integrado en 192.168.1.122 La IP de la estación terrestre se puede configurar en cualquier cosa.

Paso 6: Cargue el código a Arduino

Subir código a Arduino
Subir código a Arduino

Para cargar el código arduino, primero debemos instalar una biblioteca para trabajar con el protector del motor.

En su Arduino IDE, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas … Luego, busque Adafruit Motor Shield Library. Instale esta biblioteca, luego cargue el código en su arduino, no se debe requerir nada más.

Paso 7: conecte los circuitos y la computadora al automóvil

Conecte los circuitos y la computadora al automóvil
Conecte los circuitos y la computadora al automóvil

Ahora que el circuito está construido, es hora de ponerlo todo en el coche. No voy a mentir, muchas de estas cosas se guardan con cinta adhesiva porque eso es lo que me resultó más fácil de juntar muy rápido. Dicho esto, tiene orificios de montaje instalados como se ve en la imagen de arriba.

La mayoría de las cosas son bastante fáciles de dejar reposar en algún lugar en la parte superior del automóvil, así que no se preocupe si no hay mucho espacio.

Paso 8: Configurar el entorno de realidad virtual

Configurar el entorno de realidad virtual
Configurar el entorno de realidad virtual

Esta sección se verá un poco diferente dependiendo del tipo de configuración de realidad virtual que tengas. Cualquiera que sea el caso, utilicé SteamVR para desarrollar este software, por lo que es posible que deba tenerlo instalado.

Mientras esté usando SteamVR, los controles deben adaptarse a diferentes controladores. He asignado los controles a "Acciones", no necesariamente a botones, por lo que, en teoría, se adaptará a todos.

Solo necesita descargar y descomprimir el archivo con la compilación del mundo Unity y estar listo para ejecutar VR_Bot.exe.

Paso 9: Ejecútelo todo junto

Ejecutarlo todo junto
Ejecutarlo todo junto
Ejecutarlo todo junto
Ejecutarlo todo junto

Entonces, ahora que tenemos la configuración del automóvil y la estación de tierra conectada y lista para funcionar, ¿cómo manejamos realmente a este chico malo? Bueno, desde el punto de vista de Ground Station, todo lo que tienes que hacer es ejecutar el archivo VR_Bot.exe que vimos anteriormente.

Al mismo tiempo, deberá conectar la batería al sistema integrado y hacer que se inicie automáticamente y se conecte a su enrutador. Una vez que se inicia, SSH en él. Para acceder a esto, necesitará algún tipo de terminal en la estación terrestre, recomiendo GitBash.

SSH significa Secure Shell y es un protocolo para acceder a sistemas remotos de forma segura. En nuestro caso, nos dará acceso al Sistema Embebido desde la Estación Terrestre. Clic aquí para saber más.

Necesita saber el nombre de usuario con el que configuró su sistema integrado. Para raspberry pi, el nombre de usuario predeterminado es 'pi' y la contraseña 'raspberry'.

Una vez instalado, abra una terminal y escriba lo siguiente:

ssh {Nombre de usuario del sistema integrado}@192.168.1.122

Esto abrirá una terminal en el sistema integrado.

Una vez allí, solo necesita ejecutar el script de Python que copiamos anteriormente.

python /path/to/pushArucoVideoPullCommands.py

Después de hacer eso, el sistema integrado comenzará a enviar imágenes y recibir comandos desde y hacia la estación terrestre.

¡Entonces estás listo para comenzar a conducir y divertirte!

Recomendado: