Este es un proyecto trabajado en mi clase de electrónica en el Pomona College. Gracias al profesor Dwight Whitaker y Tony Grigsby por su ayuda y orientación a lo largo de este proyecto y el crédito a Jonathan Wong por la idea de este proyecto!
Además, aquí está una lista de Instructables busqué en ideas/inspiración mientras trabajaba en este proyecto:
Cómo funciona
La idea básica de este discurso controlado Game Boy Advance es que puede decir el nombre de un botón (a la izquierda, A, start, etc.) y la respuesta GBA como si había sido presionado ese botón. Aquí está un resumen rápido de cómo he configurado para trabajar:
1. usted dice una palabra en un pequeño micrófono (supongamos que dices "start") y esta señal se envía desde el micrófono a la computadora a través de Arduino.
2. el software de reconocimiento de voz BitVoicer considera que «start» es una palabra ha supuesto para responder a y envía Arduino la cadena "start".
3. el Arduino recibe la cadena y establece la tensión de un perno de la salida digital en alto y el resto a la baja. El conjunto de perno de alta está conectado a un relé que a su vez está conectado a los dos topes de metal en el GBA circuito que corresponde al botón Inicio.
4. puesto que el perno está establecido en alto, el relé conecta Estados, haciendo que las dos almohadillas de metal conectadas eléctricamente. Esta conexión eléctrica es lo que ocurre cuando generalmente pulsar botones GBA, por lo que el GBA responde como si hubieras presionado el botón de inicio.
Tengo actualmente configurado para todos los botones excepto L, R y seleccione. He decidido no hacerlo para estos botones ya que no son utilizados tan a menudo como los otros botones y quería centrarse primero en conseguir los botones esenciales de trabajo. Los botones de dirección se encuentran para permanecer en alto hasta decir un nuevo comando (equivalente a mantener pulsado el botón) mientras que el A, B, y botones de inicio se establecen para quedarse en lo alto de 200 ms antes de cambiar a la baja (equivalente a presionar el botón una vez). Yo también he programado un comando "stop" que establece todas las clavijas para bajo para detener todos los comandos de marcha.
Temas
Aunque el control de voz funciona bastante bien, hay algunas cuestiones a tener en cuenta. Para uno, hay un retraso de aproximadamente uno o dos segundos entre cuando dices un comando y cuándo responde el GBA. Así que no esperes jugar cualquier juego donde el tiempo de importante, a menos que le sucede a ser realmente bueno en pensar en el futuro y decir comandos temprano! Otra cuestión es que BitVoicer a veces no reconoce un comando, pero esto no ocurre demasiado a menudo y cuando le hace por lo general sólo necesita usted repita una o dos veces. Particularmente he tenido problemas con él pensando que dije "b" cuando decía "a". También, navegación por el menú a veces puede ser problemático con la configuración actual: a veces a desplazarse por menús muy rápidos ya que los botones de dirección se llevan a cabo, mientras que en otras ocasiones tendrás que alternar entre un botón de dirección y el comando de stop (es decir, "hacia abajo, parada, abajo, parada,...") Si quiere continuar en una dirección en un menú. Si se ejecuta en estos problemas o no depende de cómo trata el juego que estás jugando con la navegación del menú. Para solucionar este último problema estoy pensando en agregar eventualmente algún código que te permiten dos comandos para cada botón de dirección, que te mantenga presionado y que lo presione una vez.
A pesar de estos problemas que pensé que este proyecto resultada bastante bien y he disfrutado trabajando en él. Espero que también lo hacen!