Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Patineta de realidad virtual DIY

Componentes y suministros

Arduino UNO
× 1
dispositivo Android
× 1
VR Headset Google Cardboard
× 1
Cables de puente (genéricos)
× 1
GY-521 MPU-6050 Módulo de acelerómetro + giroscopio de 3 ejes Para Arduino
× 1

Aplicaciones y servicios en línea

SDK de Google Cardboard VR

Acerca de este proyecto

Este es un proyecto realmente divertido y fácil que se puede hacer en aproximadamente una hora. En la parte inferior de la patineta hay un acelerómetro / giroscopio con una placa Arduino que transmite el movimiento angular de la placa a través de Bluetooth a un pequeño juego de realidad virtual que hice en Unity para teléfonos Android. Entonces, cuando enciende su Arduino y el bluetooth se conecta con su teléfono, comienza a avanzar. Inclínate a la izquierda y vas a la izquierda, inclínate a la derecha y vas a la derecha. Levanta las ruedas delanteras y tu personaje saltará. Esto solo funciona para teléfonos Android y su teléfono debe ser compatible con Google Cardboard. Entonces, si tienes una patineta vieja por ahí, conviértela en una tabla de snowboard de realidad virtual. He aquí cómo:

Necesitarás:

Unas gafas de realidad virtual estilo Google Cardboard.

Una patineta.

4 pelotas de tenis (para evitar que rueden)

Un Arduino Leonardo (o Uno)

Algunos cables de puente

Una mini placa de pruebas

Un módulo Bluetooth HC-06

Un acelerómetro / giroscopio MPU-6050

Una batería de 9V con caja de batería que tiene un interruptor de encendido / apagado y un enchufe cilíndrico (para alimentar la placa Arduino)

Un soldador y tal vez una pistola de pegamento caliente

La aplicación de Android, el código Arduino y la lista de piezas con enlaces se pueden encontrar aquí:

http://wirebeings.com/virtual-reality-skateboard.html

Paso 1:Crea tu dispositivo / transmisor / entrada / cosa Arduino

Ensamble su dispositivo como se muestra en la imagen de arriba.

Deberá soldar los pines del cabezal en el MPU-6050, si su soldador es nuevo y la punta está limpia, esto se puede hacer en aproximadamente 11 segundos. Si la punta de su soldador está sucia y vieja, esto se convertirá rápidamente en lo más difícil que haya hecho (hablando por experiencia).

Asegúrese de que la orientación de todo sea exactamente como se muestra en las imágenes de arriba para que no tenga que ingresar al código y editar nada.

Adjunta todo a tu patineta EXACTAMENTE como se muestra (en realidad, solo asegúrate de que el MPU6050 esté orientado en la misma dirección que la imagen)

Aquí pegué la caja de la batería a la placa con pegamento caliente y atornillé la placa Arduino. Usé un tablero de la vieja escuela porque un tablero más amplio es mejor para los propósitos de esta experiencia. Es bastante difícil mantener el equilibrio en una tabla en realidad virtual.

NOTA:El Leonardo funciona mucho mejor para esto ... sin embargo ...

Si está utilizando un Arduino Uno, todas las conexiones son iguales excepto:

SDA pasa a A4 y SCL pasa a A5

Paso 2:cargue el código Arduino en su dispositivo / transmisor / elemento de entrada

  IMPORTANTE:Desenchufe los pines RX y TX antes de cargar el código en su tablero.  

Paso 3:¡Casi terminado! ¡Descarga la aplicación en tu teléfono!

Siga este enlace y descargue la aplicación en su teléfono.

Aplicación de monopatín / snowboard de realidad virtual de Google Cardboard

Deberá ingresar a su configuración de seguridad y permitir que se instalen aplicaciones de desarrolladores desconocidos.

Asegúrese de emparejar el módulo Bluetooth con su teléfono, no cambie el nombre predeterminado (HC-06). La contraseña debe ser 1234.

Notas:

Este es mi primer juego de Unity ... así que es bastante básico.

Si suficientes personas hacen esto, puedo intentar hacer un mejor juego de snowboard, o hacer un juego de patineta real dependiendo de lo que me soliciten.

Cuando encienda su dispositivo Arduino, asegúrese de que la patineta esté plana en el suelo y luego abra la aplicación. Tan pronto como el Bluetooth se conecte, entrará.

Si el Bluetooth se desconecta, reinicie la aplicación (está configurada para conectarse al inicio de la aplicación solamente, por ahora).

Código

  • Código Arduino
Código Arduino Arduino
 #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #if I2CDEV_IMPLEMENTATION ==I2CDEV_ARDUINO_WIRE #include "Wire.h" # endifMPU6050 mpu; bool dmpReady =false; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize; uint16_t FIFoCount; uint8_t FIFoBuffer [64]; Quaternion q; VectorInt16 aa; VectorInt16 aaReal; VectorInt16 aaWorld; VectorFloat gravity; flotador euler [3]; flotar ypr [3]; volátil bool mpuInterrupt =false; configuración vacía () {#if I2CDEV_IMPLEMENTATION ==I2CDEV_ARDUINO_WIRE Wire.begin (); TWBR =24; #elif I2CDEV_IMPLEMENTATION ==I2CDEV_BUILTIN_FASTWIRE Fastwire ::setup (400, verdadero); #endif Serial.begin (9600); // Para usar con Arduino Uno Serial1.begin (9600); // Para usar con Leonardo Serial.println (F ("Inicializando dispositivos I2C ...")); mpu.initialize (); Serial.println (F ("Probando conexiones de dispositivos ...")); Serial.println (mpu.testConnection ()? F ("Conexión de MPU6050 exitosa"):F ("Error de conexión de MPU6050")); Serial.println (F ("Inicializando DMP ...")); devStatus =mpu.dmpInitialize (); mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788); if (devStatus ==0) {Serial.println (F ("Habilitando DMP ...")); mpu.setDMPEnabled (verdadero); Serial.println (F ("Habilitando la detección de interrupciones (interrupción externa Arduino 0) ...")); attachInterrupt (0, dmpDataReady, RISING); mpuIntStatus =mpu.getIntStatus (); Serial.println (F ("¡DMP listo! Esperando la primera interrupción ...")); dmpReady =verdadero; packetSize =mpu.dmpGetFIFOPacketSize (); } else {Serial.print (F ("Error al inicializar DMP (código")); Serial.print (devStatus); Serial.println (F (")")); }} void sendData (int x, int y, int z) {if (z <-10) {// adelante Serial1.write ("f"); // Escribir a Leonardo Serial1.write (10); // Detener bit Serial.write ("f"); // Escribir en Uno Serial.write (10); // Detener bit} else if (z> 0) {// hacia atrás Serial1.write ("b"); Serial1.write (10); Serial.write ("b"); Serial.write (10); } else if (y> 5) {// Para hacer más sensible, cambie el valor a 4 o menos // derecha Serial1.write ("r"); Serial1.write (10); Serial.write ("r"); Serial.write (10); } else if (y <-5) {// Para hacer un cambio más sensible a -4 o mayor // left Serial1.write ("l"); Serial1.write (10); Serial.write ("l"); Serial.write (10); } else // detener Serial1.write ("s"); Serial1.write (10); Serial.write ("s"); Serial.write (10); } bucle vacío () {if (! dmpReady) return; mpuInterrupt =falso; mpuIntStatus =mpu.getIntStatus (); FifoCount =mpu.getFIFOCount (); if ((mpuIntStatus &0x10) || FifoCount ==1024) {mpu.resetFIFO (); Serial.println (F ("Desbordamiento FIFO")); } else if (mpuIntStatus &0x02) {while (FifoCount   

Esquemas


Proceso de manufactura

  1. Visualizador de música DIY LUMAZOID Arduino
  2. Capturando las gotas de agua con Arduino
  3. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  4. Generador de ondas JX
  5. J.A.R.V.I.S con reactor de arco DIY
  6. Máquina de tratamiento DIY Arduino RADIONICS
  7. Simulador de carreras de movimiento 2D DIY
  8. Módulo Arduino + GPS - Notificador de destino
  9. Reloj de alarma ArduRadio
  10. Tenis Arduino virtual
  11. Idea de bricolaje con RFID