Este es el tutorial hecho por el compañero Saul para lograr dicho objetivo:
LINK: Como hacer un hack a un dispositivo EEG con Arduino
Preparación
Primero que nada hay que instalar la IDE de Arduino, aqui un minitutorial hecho por mi
LINK: Programando con Arduino
Después hay que instalar la librería Brain, los pasos son sencillos:
- 1. Descargar la libreria de aquí: Arduino Brain Library
- 2. Descomprimimos y la agregamos a la carpeta libraries en la carpeta de Arduino, en mi caso el path es:
Y ya dentro:
Así se ve el sketch, si se fijan en la función loop comente la línea Serial.println(brain.readErrors()); , esto es para que no nos regrese ninguna otra información que no sean los datos que nos interesan del MindReader.
Ahora simplemente lo compilamos y lo subimos a nuestro Arduino conectado al MindReader, con el botón UPLOAD
Yo usé Python para el juego, entonces, para escuchar los datos enviados por Arduino debemos instalar pySerial, los pasos son ultra sencillos:
- Descargar libreria: http://pypi.python.org/pypi/pyserial
- Descomprimir el archivo descargado
- Entrar a la carpeta y ejecutar el comando: python setup.py install
- TUTORIAL: http://www.arduino.cc/playground/Interfacing/Python
El juego
El juego lo llame Magic Warriors!.
El objetivo del juego es sencillo, se trata de algo parecido a hacer Genkidamas. Según tu nivel de concentración es la cantidad de energía que se agrega a la Genkidama, asi pues, de todos los datos que me da el MindReader solo me quedo con dos que son atención y meditación; dichos valores se suman y se saca un promedio, el promedio es la energía que se agrega cada segundo a la Genkidama. Básicamente son sumas, del valor anterior mas el nuevo valor durante un tiempo determinado que son 5 segundos.
Por el lado de la CPU, es una simple sumatoria que se realiza mediante números random, que, según la dificultad, son obtenidos dentro de determinado rango. Entre mayor es el nivel el rango es más ajustad y se mueve hacia valores más altos.
El ganador se selecciona comparando quién acumulo la mayor cantidad de energía, una comparación entre tu sumatoria final y la del CPU.
Código relevante
El juego fue desarrollado utilizando pygame, la temática es simple, y como ven el cálculo que realiza es super sencillo, entonces, veamos algunas partes relevantes del código desarrollado.
Escuchando al Arduino
Jugador y Enemigo
La Batalla!!
Lo demas ya son funciones propias de python para interconectar clases, enviar variables y bueno, los métodos obligados de PyGame para la asignación de teclas y demás. Por ultimo, les dejo las librerías que utilice por si a alguien le interesa.
Espero que les guste, lo que falta es obviamente lo gráfico en en 6 horas fue imposible de terminar, adicional quise agregar algo de interactividad con OpenCV, NADA DE TECLAS!!, quería hacer que el juego se controlara con movimientos en la webcam, hacer un movimiento con el brazo para avanzar entre pantallas y levantar los brazos como si realmente estuvieras haciendo la Genkidama para recargar energía, pero bueno, eso era mas complejo, y ademas quería imprimir los valores del EEG en todo momento pero igual, por falta de tiempo no pude instalar las dependencias y demás.
Sin embargo, me divertí mucho haciéndolo y deseo terminarlo un día de estos, comprar mi EEG y todo el rollo porque realmente estuvo genial.
Bueno, esa fue mi idea en la competencia, espero les haya gustado :)
15 para el lab de integrados
ResponderEliminar