- Concepto:
- Materiales necesarios:
- Esquemas y hardware:
- Programa para Arduino:
- Programa para procesar:
- Trabajando:
Este es un proyecto muy interesante en el que vamos a aprender a implementar la realidad virtual usando Arduino y Processing. Para la mayoría de nosotros, la película Iron man de Jon Favreau siempre ha sido una inspiración para construir cosas nuevas que harán nuestra vida más fácil y divertida. Personalmente, he admirado a las tecnologías que se muestran en la película y siempre he querido construir algo similar a eso. Entonces, en este proyecto he intentado imitar las cosas de realidad virtual que ocurren en la película, como si simplemente pudiéramos mover nuestra mano frente a la computadora y mover el puntero a la ubicación deseada y realizar algunas tareas.
Aquí le mostraré cómo puede simplemente mover la mano frente a la cámara web y dibujar algo en su computadora. También le mostraré cómo puede alternar las luces moviendo virtualmente la mano y haciendo clics con los dedos en el aire.
Concepto:
Para que esto suceda, tenemos que aprovechar el poder de Arduino y Processing combinados. La mayoría estaría familiarizado con Arduino, pero Processing podría ser nuevo para ti. Processing es una aplicación como Arduino y también es de código abierto y de descarga gratuita. Con Processing puede crear aplicaciones de sistema simples, aplicaciones de Android y mucho más. También tiene la capacidad de realizar procesamiento de imágenes y reconocimiento de voz. Es como Arduino y es mucho más fácil de aprender, pero no se preocupe si es completamente nuevo en el procesamiento porque he escrito este tutorial bastante simple para que cualquier persona interesada pueda hacer que esto funcione en poco tiempo.
En este tutorial usamos Processing para crear una aplicación de sistema simple que nos proporciona una interfaz de usuario y rastrea la posición de nuestra mano usando el procesamiento de imágenes. Ahora, tenemos que hacer clic izquierdo y derecho con los dedos. Para que eso suceda, he usado dos sensores Hall (uno en mi dedo índice y el otro en el dedo medio) que serán leídos por Arduino Nano. El Arduino también transmite el estado del clic a la computadora de forma inalámbrica a través de Bluetooth.
Puede parecer complicado pero, créame; no es tan difícil como parece. Así que echemos un vistazo a los materiales necesarios para que este proyecto esté en funcionamiento.
Materiales necesarios:
- Arduino Nano
- Sensor Hall (A3144) - 2Nos
- Una pequeña pieza de imán
- Módulo Bluetooth (HC-05 / HC-06)
- Batería de 9V
- Tablero de puntos de cables de conexión.
- Un par de guantes
- IDE de Arduino (software)
- Procesamiento de IDE (software)
- Una computadora con cámara web y Bluetooth (también puede usar Bluetooth o cámara web externa para su computadora)
Esquemas y hardware:
La parte de hardware de este proyecto es muy simple y fácil de construir. El esquema completo se muestra a continuación.
El Arduino, las resistencias y los pines del palo de berg están soldados a una placa de puntos como se muestra a continuación.
El sensor de pasillo y el módulo Bluetooth están soldados a un cable conector como se muestra a continuación.
Una vez que estas dos secciones estén listas, se puede ensamblar en guantes para que sea fácil de usar. He usado guantes de plástico desechables que se pueden comprar en cualquier tienda médica cercana. Debe asegurarse de que el imán se coloque en su dedo pulgar y que el sensor de pasillo 1 y el sensor de pasillo 2 estén presentes antes que su dedo índice y medio, respectivamente. He usado cintas de pato para asegurar los componentes en su lugar. Una vez que los componentes estén ensamblados, debería verse así.
Ahora abramos el IDE de Arduino y comencemos a programar.
Programa para Arduino:
El propósito de este código Arduino es leer el estado del sensor Hall y transmitirlo usando el módulo Bluetooth. También debería recibir datos de Bluetooth y alternar el LED integrado en función del valor entrante. El programa completo se proporciona al final de este tutorial; También he explicado algunas líneas a continuación.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Compruebe si se presionan nuevas teclas {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == LOW && HallState_2 == HIGH) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Como se muestra en las líneas anteriores, según el estado del sensor de pasillo, el Bluetooth escribirá un valor particular. Por ejemplo, si el sensor de pasillo 1 es alto y el sensor de pasillo 2 es bajo, transmitiremos el valor "2" a través del módulo Bluetooth. Asegúrese de escribir los valores en el módulo BT y no imprimirlos. Porque será fácil de leer solo en el lado de Procesamiento solo si están escritos. Además, el valor solo se enviará si no es el mismo que el valor anterior.
if (BluetoothData == 'y') digitalWrite (ledpin, HIGH); if (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Estas líneas se utilizan para alternar el LED integrado que está conectado al Pin 13, según el valor recibido por el módulo BT. Por ejemplo, si el módulo recibe una 'y', entonces el LED se enciende y si recibe una 'n', entonces se apaga.
Programa para procesar:
El propósito del programa de procesamiento es crear una aplicación del sistema que puede actuar como una interfaz de usuario (interfaz de usuario) y también realizar el procesamiento de imágenes para rastrear un objeto en particular. En este caso rastreamos el objeto azul que pegamos a nuestros guantes arriba. El programa tiene básicamente cuatro pantallas.
- Pantalla de calibración
- Pantalla principal
- Pantalla de pintura
- Pantalla de alternancia LED
Podemos navegar de una pantalla a otra simplemente moviendo nuestras manos y arrastrando pantallas en el aire. También podemos hacer clics en los lugares deseados para alternar LED o incluso dibujar algo en la pantalla.
Puede copiar y pegar el programa de procesamiento completo (que se encuentra al final) y modificarlo según su creatividad o simplemente descargar los archivos EXE desde aquí, y seguir los siguientes pasos para iniciar la aplicación.
- Instale JAVA en su computadora si no lo ha instalado antes
- Instala You Cam perfect en tu computadora
- Encienda su Arduino y empareje su computadora con el módulo Bluetooth
- Inicie el archivo de la aplicación
Si todo va bien, debería poder notar que el LED de su módulo Bluetooth se estabiliza y la luz de su cámara web se enciende. Si tiene algún problema, comuníquese conmigo a través de la sección de comentarios y lo ayudaré.
Mira el video al final para saber cómo calibrar tu aplicación y usarla.
Si desea modificar el código y crear más funciones en él, puede utilizar las siguientes ideas del programa
El IDE de procesamiento se puede descargar desde aquí. Si desea obtener más información sobre el procesamiento y crear proyectos más interesantes, puede visitar los tutoriales aquí.
El procesamiento tiene la capacidad de leer datos en serie, en este programa los datos en serie provienen del puerto COM de Bluetooth. Debe seleccionar el puerto COM al que se conecta su Bluetooth usando esta línea a continuación
puerto = nuevo Serial (este, Serial.list (), 9600);
Aquí he seleccionado mi primer puerto COM que es COM5 en mi caso (ver imagen a continuación) y he mencionado que el módulo Bluetooth funciona con 9600 baudios.
Como se dijo anteriormente, el procesamiento también tiene la capacidad de realizar procesamiento de imágenes, en este tutorial las imágenes se envían dentro del boceto mediante una cámara web. En cada imagen rastreamos un objeto en particular. Para saber más sobre esto puedes visitar este tutorial.
He hecho todo lo posible para explicar el programa (que se da al final) a través de las líneas de comentarios. Puede descargar los archivos aquí.
Si quieres saber más sobre el boceto puedes contactarme a través de la sección de comentarios y te ayudaré.
Trabajando:
Una vez que el hardware y el software estén listos, póngase los guantes y prepárese para la acción. Ahora, simplemente encienda el Arduino y luego inicie la aplicación. El led del módulo Bluetooth debería permanecer estable. Ahora significa que la aplicación del sistema ha establecido un enlace Bluetooth con su Arduino.
Obtendrá la siguiente pantalla donde debe seleccionar el objeto a rastrear. Este rastreo se puede hacer simplemente haciendo clic en el objeto. En este caso, el objeto es el disco azul. Ahora puede mover su objeto y notar que el puntero sigue a su objeto. Utilice un objeto de color único y una habitación luminosa para obtener mejores resultados.
Ahora toque su dedo pulgar con el dedo índice y debería ver el mensaje “Tecla 1 presionada” y cuando presione su pulgar con el dedo medio debería ver “Tecla 2 presionada” esto indica que todo funciona bien y la calibración ha terminado. Ahora haga clic en el botón Listo.
Una vez que se presiona el botón Listo, se lo dirigirá a la pantalla principal donde puede pintar en el aire o alternar el LED en la placa Arduino como se muestra en el video a continuación.