- Visión general:
- Componentes requeridos:
- Explicación del circuito:
- Funcionamiento del acelerómetro:
- Programación de Arduino:
- Procesamiento de programación:
- Pruebas:
La realidad aumentada y los juegos virtuales se han convertido en una tendencia reciente en la industria del juego. Los tiempos de usar un teclado / Joystick y un mouse para jugar un juego de computadora han quedado atrás. Ahora, cada consola de juegos viene con un controlador virtual que nos ayuda a jugar usando nuestros movimientos y gestos corporales, de esta manera la experiencia de juego ha aumentado mucho y el usuario se siente más involucrado en el juego.
En este proyecto, intentemos divertirnos mientras aprendemos a través del proyecto. Permítanos crear un juego (sí, me escuchaste correcto, vamos a crear un juego) y jugarlo usando el movimiento de tu mano. Estamos creando el clásico juego de pelota de ping pong usando Arduino y acelerómetro.
Visión general:
Hay toneladas de software de código abierto disponibles en estos días que ha traído mucha felicidad a aficionados como nosotros, y Processing es uno de ellos. Con esta aplicación basada en JAVA podemos construir nuestro propio software (formato.exe) y también una aplicación para Android (archivo.apk). Así que vamos a utilizar este software para crear nuestro juego, ya hemos utilizado Processing para crear Arduino Chat Room.
La parte del hardware consistirá en un Arduino que buscará la entrada de un acelerómetro para alimentarlo en serie a nuestra computadora / portátil.
¡¡¡Así que vamos de compras !!!!
Componentes requeridos:
- Arduino (cualquier versión o modelo)
- Acelerómetro
- Cables de conexión
- Interés (lolz)
Acelerómetro y Arduino Nano
Explicación del circuito:
Circuit of Arduino Ping Pong Ball Game Project no implica conexiones complejas. He usado un Arduino Nano con un acelerómetro. Pero hay algunas cosas que se deben tener en cuenta como se menciona a continuación:
1. Su acelerómetro no puede manejar 5V, así que siempre conecte el Vcc del acelerómetro a su pin de 3.3V de Arduino.
2. Todo acelerómetro sufre el efecto de la gravedad que debe manejarse durante la programación (simplemente usando un filtro).
Con esto en mente, veamos el funcionamiento de un acelerómetro y cómo lo usamos.
Funcionamiento del acelerómetro:
Un acelerómetro es un dispositivo que puede convertir la aceleración en cualquier dirección a su respectivo voltaje variable. Esto se logra usando capacitores (ver imagen), a medida que el Accel se mueve, el capacitor presente en su interior también sufrirá cambios (ver imagen) en función del movimiento, ya que la capacitancia varía, también se puede obtener un voltaje variable.
Entonces, como se mencionó anteriormente, cada acelerómetro sufre el problema del efecto de la gravedad. No importa qué tan preciso sea calibrado su sensor (incluso su teléfono Apple Accel.), Se verá afectado por la gravedad. A continuación se ofrece una explicación más técnica de este problema.
Ahora, en Arduino podemos reducir el efecto de la gravedad usando un filtro simple. Este filtro constará de dos matrices, una se usa para almacenar los valores de muestra del sensor y la otra se usa para clasificar los valores de muestra y encontrar el valor más repetido. Implementemos este algoritmo en nuestro Arduino y preparemos nuestro hardware.
Programación de Arduino:
El programa Arduino se muestra a continuación en la sección Código. No hay datos críticos que deban modificarse. Pero es posible que desee considerar lo siguiente:
Aumente el tamaño de la muestra si su Accel aún muestra valores aleatorios.
#define Samplesize 13 // filter Número de muestra
Juega con la velocidad de 9600 baudios para aumentar la velocidad de comunicación entre Arduino y Processing. Pero asegúrese de cambiarlos tanto en el software (Programas).
configuración vacía () {Serial.begin (9600); }
Mi acelerómetro en el eje X da 193 en el extremo izquierdo y 280 en el extremo derecho, mídelos para tu Accel y actualiza el valor.
toSend = map (smoothData1, 193, 280, 0, 255);
Los valores se asignan en un solo byte de datos para la comunicación en serie.
Consulte los Comentarios en el Código que se proporciona a continuación para comprenderlo claramente.
Procesamiento de programación:
Processing es un software de código abierto que utilizan los artistas para el diseño de gráficos. Este software se utiliza para desarrollar software y aplicaciones de Android. Es bastante fácil de desarrollar y muy similar al IDE de desarrollo de Android. Por tanto, he acortado la explicación.
El código de procesamiento para el juego de ping-pong se proporciona aquí:
- Código de procesamiento para Arduino Ping Ball Game
Haga clic derecho sobre él y haga clic en 'Guardar enlace como…' para descargar el archivo de código. Luego abra el archivo en el software 'Procesamiento' y haga clic en el botón 'Ejecutar' para jugar el Juego. Necesita instalar el software 'Processing' para abrir archivos *.pde. La sección de comentarios está abierta para consultas y también verifique los comentarios en el Programa para comprenderlo mejor.
Debajo de la línea, en la función void setup () del código de procesamiento es importante, ya que decide desde qué puerto se van a enviar los datos.
puerto = nuevo Serial (este, Serial.list (), 9600); // Lee el cuarto PUERTO a 9600 baudios
Aquí he leído datos del cuarto puerto de mi Arduino.
Entonces, por ejemplo, si tiene COM COM COM COM COM
Luego, el código anterior leerá datos de COM.
Pruebas:
Ahora que nuestro bosquejo de Processing y Arduino está listo, simplemente cargue el programa dado a continuación en Arduino y conecte su Arduino a la PC del usuario con el cable de programación completo e inicie el juego ejecutando el archivo de código de procesamiento (.pde). ¡Eso es! Mueva su acelerómetro y juegue su juego de ping-pong. El video lo guiará a través del proyecto completo.
Una vez que haya entendido el programa, puede crear muchos juegos similares y jugarlos usando su Arduino. Además, el eje Y y el eje Z también pueden incluirse para juegos.