Paso 1: Algunos antecedentes
No dude en saltar este fondo, pero explica por qué algunas cosas se hacen como son. Por seguridad, auriculares de EEG deben ser aisladas de cualquier elemento conectado a la red. El Mindflex, Mindwave Mobile y un número de otros auriculares de EEG utilizan un chip ASIC de ThinkGear. Este chip se comunica través de TTL serial con una radio, y la radio a su vez se comunica con otros dispositivos, como la estación base del juguete Mindflex. Esto aísla eléctricamente el auricular.
Desafortunadamente, mientras que radio la Mindwave Mobile es Bluetooth, el juguete Mindflex utiliza otro tipo de radio. Para utilizar el EEG Mindflex con otros dispositivos, simplemente conectaremos el ThinkGear chip recibir y transmitir las líneas a una radio Bluetooth HC-06 (sobre $10 con cables).
Bueno, quizás no es tan simple. Mientras que es todo lo que necesita en cuanto a hardware, hay un desafío de software. El ASIC ThingGear tiene varios modos de funcionamiento. Como incrustado en el juguete Mindflex, un resistor SMD establece en 0 x 01 el modo por defecto. En modo 0 x 01, el chip transmite a 9600 baudios, y envía procesado datos cada segundo: meditación, concentración y valores de diversas partes del espectro de energía, probablemente derivado de una FFT. Pero queremos tener acceso a los datos sin procesar del EEG. Esto requiere cambiar los auriculares Mindflex a modo 0 x 02. En modo 0 x 02, el chip transmite a 57600 baudios, y además la misma actualización una vez por segundo que hace en el modo 0 x 01, envía datos en sensor EEG diferencialmente amplificados bruto 512 veces por segundo. Este es el modo en que los auriculares Mindwave Mobile funciona por defecto, así que si puede cambiar el auricular de este modo, no sólo obtengo datos en bruto, pero usted debe ser capaz de usar con todas las apps compatibles Mindwave Mobile.
Uno puede cambiar el Mindflex a modo 0 x 02 con algún trabajo de soldadura SMD, pero soy terrible en la soldadura (como verás en las imágenes más adelante), por lo que no es una opción para mí. Además, esta solución hace que el auricular ya no trabajo con el resto de los juguetes, y no me gusta romper cosas.
Afortunadamente, el protocolo de comunicaciones para el ThinkGear chip le permite cambiar al modo 0 x 02 simplemente enviando 0 x 02 a su línea de recepción serial. Mientras que esto no sobrevive powercycling, sin embargo, debería hacer cosas más simples: Asegúrese de conectar la línea de recepción de la viruta de la radio de Bluetooth transmisión de línea y enviar 0 x 02. Pero hay un enganche. El 0 x 02 debe ser enviada a 9600 baudios, mientras que los datos posteriores a 57600 baudios. Y lamentablemente no hay forma de controlar dinámicamente en uso velocidad de transmisión de la radio Bluetooth HC-06.
Pero hay una solución que sorprendentemente funciona. 9600 = 57600 / 6. Si pudieras solo un poco seis veces a 57600 baudios, sería lo mismo que enviar una vez a 9600 baudios. El único enganche que al enviar cosas via RS232 serial o su variante TTL, no llegar a controlar cada bit. Por el contrario, suponiendo que la configuración de comunicaciones 8N1 habitual, los bits se empaquetan en bytes, con cada byte a partir de una "marca" extra 0 pero y terminando con un extra de 1 bit "stop". La marca y la parada están fuera de nuestro control. Pero podemos trabajar alrededor de esto. Resulta que si enviamos la cadena hexadecimal 0 x 00, 0xF8, 0 x 00, 0 x 00, 0 x 00, 0xE0 a 57600 baudios y luego pausa para por lo menos la longitud de una 9600 baudios bits (un milisegundo será más que suficiente; al ralentí es lo mismo que enviar de 1 en el protocolo RS232), que es como enviar 0 x 02, con cuatro fallos (y algunos ceros adicionales en el frente) , cada error que ser 1/6 de una broca de longitud. Si tenemos suerte, el receptor de 9600 baudios ignorará los fallos corto. Y sorprendentemente funciona! El chip cambia al modo 0 x 02, inicia transmisión en baudios 57600, y todo está bien. De hecho, con la HC-06 como el transmisor funcione al 100% del tiempo (usando un Brainlink, a veces requiere un reintento).
Así que hay tres componentes del proyecto:
I. programar la radio Bluetooth HC-06 a 57600 baudios. Esta configuración sobrevive powercycling. Esto es complicado pero debe hacerse sólo una vez.
II. la soldadura de conexiones para los auriculares para conectar a la radio HC-06.
III. Asegúrese que el auricular pasa a modo 0 x 02 enviando la cadena mágica hexagonal (o alguna variante en él) a 57600 baudios. Esto podría hacerse mediante la construcción de la cadena mágica en software de EEG, o escribiendo un sencillo programa que envía la cadena hexagonal mágica al dispositivo, y luego el dispositivo se puede utilizar con cualquier software compatible con el móvil Mindwave. Hice ambos: escribí algunos software de EEG en Java que puede ejecutar en un PC (probablemente también Mac y Linux pero no hemos probado allí) y que envía la cadena mágica antes de mostrar los datos crudos y procesados, y he hecho una aplicación Android sencilla que simplemente envía la cadena mágica (o una variante de ella) a 57600 baudios y activa el modo compatible Mindwave Mobile. Ambos programas son de código abierto.