Tabla de contenido:

Controlar las luces con los ojos: 9 pasos (con imágenes)
Controlar las luces con los ojos: 9 pasos (con imágenes)

Video: Controlar las luces con los ojos: 9 pasos (con imágenes)

Video: Controlar las luces con los ojos: 9 pasos (con imágenes)
Video: Así se siente una parálisis del sueño. 2024, Mes de julio
Anonim
Controlar las luces con los ojos
Controlar las luces con los ojos
Controlar las luces con los ojos
Controlar las luces con los ojos

Este semestre en la universidad, tomé una clase llamada Instrumentación en Biomedicina en la que aprendí los conceptos básicos del procesamiento de señales para aplicaciones médicas. Para el proyecto final de la clase, mi equipo trabajó en la tecnología EOG (electrooculografía). Esencialmente, los electrodos conectados a las sienes de alguien envían una diferencia de voltaje (basada en el dipolo corneo-retiniano) a un circuito diseñado para filtrar y amplificar la señal. La señal se alimenta a un ADC (convertidor de analógico a digital, en mi caso, el ADC de un Arduino Uno) y se usa para cambiar los colores de una joya de neopixel.

Este tutorial es una forma de registrar lo que he aprendido y también compartir con el lector habitual cómo las señales se aíslan del cuerpo humano (así que ten cuidado: ¡está lleno de detalles adicionales!). Este circuito en realidad se puede usar, con algunas alteraciones menores, para los impulsos eléctricos del corazón motor como una forma de onda de EKG, ¡y mucho más! Si bien ciertamente no es tan avanzada y perfeccionada como las máquinas que encontraría en un hospital, esta lámpara de control de la posición del ojo es ideal para una comprensión y una visión iniciales.

Nota: no soy un experto en procesamiento de señales, así que si hay algún error o si tiene sugerencias para mejorar, ¡hágamelo saber! Todavía tengo mucho que aprender, por lo que se agradecen los comentarios. Además, muchos de los artículos a los que hago referencia en los enlaces a lo largo de este tutorial requieren acceso académico que tengo por cortesía de mi universidad; disculpas de antemano para aquellos que no tendrán acceso.

Paso 1: Materiales

  • protoboard
  • resistencias (100, 1k, 10k, 33k, 1M + 0.5M)
  • condensador (0.1uF)
  • amplificador de instrumentación (INA111 en mi caso, pero hay un par que debería funcionar relativamente bien)
  • amplificador operacional (cualquiera, tuve un LM324N)
  • neopixel (cualquier trabajo, pero usé una joya)
  • Pilas de 9V x2
  • 2 cabezales de batería de 9 V
  • electrodos de gel sólido (la selección de electrodos se analiza en el paso 5)
  • potenciómetro
  • Cable aislado
  • pelacables
  • soldador + soldador
  • pinzas de cocodrilo (con cables conectados, suelde algunos si es necesario)
  • pegamento caliente (para estabilizar los cables que se doblarían hacia adelante y hacia atrás)
  • Arduino (casi cualquier trabajo, pero usé un Arduino Uno)

MUY RECOMENDABLE: osciloscopio, multímetro y generador de funciones. ¡Examine sus salidas en lugar de simplemente confiar en los valores de mi resistencia!

Paso 2: Antecedentes fisiológicos y necesidad de un circuito

Antecedentes fisiológicos y necesidad de un circuito
Antecedentes fisiológicos y necesidad de un circuito

Descargo de responsabilidad rápido: de ninguna manera soy un experto médico en este campo, pero compilé y simplifiqué lo que aprendí en clase / de Googling a continuación, con enlaces para leer más si lo desea. Además, este enlace es, con mucho, la mejor descripción general del tema que encontré: incluye técnicas alternativas.

EOG (electrooculografía) actúa sobre el dipolo corneo-retiniano. La córnea (parte frontal del ojo) está ligeramente cargada positivamente y la retina (parte posterior del ojo) está ligeramente cargada negativamente. Cuando aplica electrodos en las sienes y conecta a tierra su circuito en la frente (ayuda a estabilizar sus lecturas y eliminar algunas interferencias de 60Hz), puede medir alrededor de ~ 1-10mV de diferencias de voltaje para los movimientos horizontales de los ojos (vea la imagen de arriba). Para los movimientos verticales de los ojos, coloque los electrodos por encima y por debajo del ojo. Consulte este artículo para obtener una buena lectura sobre cómo el cuerpo interactúa con la electricidad: excelente información sobre la impedancia de la piel, etc. Los EOG se usan comúnmente para diagnosticar enfermedades oftalmológicas como cataratas, errores de refracción o degeneración macular. También hay aplicaciones en robótica controlada por los ojos en las que se pueden realizar tareas sencillas con un movimiento de … ojos.

Para leer estas señales, es decir, calcular la diferencia de voltaje entre los electrodos, incorporamos un chip importante llamado amplificador de instrumentación en nuestro circuito. Este amplificador de instrumentación consta de seguidores de voltaje, un amplificador no inversor y un amplificador diferencial. Si no sabe mucho sobre amplificadores operacionales, lea esto para un curso intensivo; esencialmente, toman un voltaje de entrada, lo escalan y emiten el voltaje resultante utilizando sus rieles de alimentación. La integración de todas las resistencias entre cada etapa ayuda con los errores de tolerancia: normalmente las resistencias tienen un 5-10% de tolerancia en los valores, y el circuito regular (no completamente integrado en un amplificador de instrumentación) dependería en gran medida de la precisión para un buen CMMR (consulte el siguiente paso).). Los seguidores de voltaje son para alta impedancia de entrada (discutidos en el párrafo anterior - mayor para prevenir daños al paciente), el amplificador no inversor es para asegurar una alta ganancia de la señal (más sobre amplificación en el siguiente paso) y el amplificador diferencial toma la diferencia entre las entradas (resta los valores de los electrodos). Estos están diseñados para aplastar la mayor cantidad posible de ruido / interferencia de modo común (para obtener más información sobre el procesamiento de señales, consulte el siguiente paso) para señales biomédicas, que están plagadas de artefactos extraños.

Los electrodos se enfrentan a cierta impedancia cutánea, ya que los tejidos y la grasa de la piel obstruyen la medición directa de los voltajes, lo que genera la necesidad de amplificar y filtrar la señal. Aquí, aquí y aquí hay algunos artículos en los que los investigadores han intentado cuantificar esta impedancia. Esta cantidad fisiológica se modela comúnmente como una resistencia de 51kOhm en paralelo con un capacitor de 47nF, aunque existen muchas variaciones y combinaciones. La piel en diferentes lugares puede tener diferentes impedancias, especialmente cuando se consideran los diferentes grosores y cantidades de músculo adyacente. La impedancia también cambia con la preparación de la piel para los electrodos: generalmente se sugiere una limpieza profunda con agua y jabón para asegurar una excelente adherencia y consistencia, e incluso hay geles especiales para electrodos si realmente desea la perfección. Una nota clave es que la impedancia cambia con la frecuencia (característica de los condensadores), por lo que necesita conocer el ancho de banda de su señal para predecir la impedancia. Y sí, estimar la impedancia ES importante para la coincidencia de ruido; consulte el paso posterior para obtener más información al respecto.

Paso 3: Procesamiento de señales: ¿Por qué y cómo?

Procesamiento de señales: ¿por qué y cómo?
Procesamiento de señales: ¿por qué y cómo?

Ahora, ¿por qué no puede usar la diferencia de voltaje de 1-10 mV como una salida inmediata para controlar los LED? Bueno, hay muchas razones para filtrar y amplificar señales:

  • Muchos ADC (convertidores de analógico a digital: toman su entrada analógica y la digitalizan para leer y almacenar datos en la computadora) simplemente no pueden detectar cambios tan pequeños. Por ejemplo, el ADC de Arduino Uno es específicamente un ADC de 10 bits con salida de 5V, lo que significa que asigna voltajes de entrada de 0-5V (los valores fuera de rango se "rielarán", lo que significa que los valores más bajos se leerán como 0V y los valores más altos se leerán como 5V) a valores enteros entre 0 y 1023. 10mV es tan pequeño en ese rango de 5V, por lo que si puede amplificar su señal al rango completo de 5V, los cambios pequeños serán más fácilmente detectables porque se reflejarán en cambios cuantitativos más grandes (5mV cambian a 10mV en lugar de 2V cambian a 4V). Piense en ello como una pequeña imagen en su computadora: los detalles pueden estar perfectamente definidos por sus píxeles, pero no podrá diferenciar las formas a menos que expanda la imagen.

    Tenga en cuenta que tener más bits para su ADC es mejor porque puede minimizar el ruido de cuantificación al convertir su señal continua en valores discretos y digitalizados. Para calcular cuántos bits necesita para una retención de ~ 96% de la SNR de entrada, utilice N = SNR (en dB) / 6 como regla general. Sin embargo, también debe tener en cuenta su billetera: si desea más bits, debe estar dispuesto a desembolsar más dinero

  • El ruido y la interferencia (ruido = artefactos aleatorios que hacen que sus señales sean irregulares en lugar de suaves frente a interferencia = no aleatorios, artefactos sinusoidales de señales adyacentes de ondas de radio, etc.) plagan todas las señales medidas de la vida cotidiana.

    • La más famosa es la interferencia de 60Hz (50Hz si estás en Europa y ninguna en Rusia porque usan CC en lugar de CA para la alimentación de salida …), que se denomina frecuencia de servicio debido a los campos electromagnéticos de CA de las tomas de corriente. Las líneas eléctricas transportan alto voltaje de CA desde los generadores eléctricos a las áreas residenciales, donde los transformadores reducen el voltaje al estándar ~ 120V en los tomacorrientes estadounidenses. El voltaje alterno conduce a este baño constante de interferencia de 60Hz en nuestro entorno, que interfiere con todo tipo de señales y necesita ser filtrado.
    • La interferencia de 60Hz se denomina comúnmente interferencia de modo común porque aparece en ambas entradas (+ y -) de los amplificadores operacionales. Ahora, los amplificadores operacionales tienen algo llamado relación de rechazo de modo común (CMRR) para reducir los artefactos de modo común, pero (¡corrígeme si me equivoco!) Esto es principalmente bueno para ruidos de modo común (aleatorio: ruido en lugar de no aleatorio: interferencia). Para deshacerse de 60Hz, se pueden usar filtros de parada de banda para eliminarlo selectivamente del espectro de frecuencia, pero luego también corre el riesgo de eliminar los datos reales. En el mejor de los casos, puede usar un filtro de paso bajo para mantener solo un rango de frecuencias por debajo de 60Hz, por lo que todo lo que tenga frecuencias más altas se filtrará. Eso es lo que hice para el EOG: el ancho de banda esperado de mi señal era 0-10Hz (descuidando los movimientos oculares rápidos, no quería lidiar con eso en nuestra versión simplificada), así que eliminé las frecuencias superiores a 10Hz con un filtro de paso bajo..

      • 60Hz pueden corromper nuestras señales a través del acoplamiento capacitivo y el acoplamiento inductivo. El acoplamiento capacitivo (lea aquí los condensadores) se produce cuando el aire actúa como dieléctrico para que las señales de CA se conduzcan entre circuitos adyacentes. El acoplamiento inductivo proviene de la ley de Faraday cuando se ejecuta la corriente en un campo magnético. Hay muchos trucos para superar el acoplamiento: por ejemplo, podría usar un escudo conectado a tierra como una especie de jaula de Faraday. Torcer / trenzar alambres cuando sea posible disminuye el área disponible para que el acoplamiento inductivo interfiera. Acortar los cables y disminuir el tamaño total de su circuito también tiene el mismo efecto por la misma razón. Depender de la energía de la batería para los rieles del amplificador operacional en lugar de enchufarlo a una toma de corriente también ayuda porque las baterías proporcionan una fuente de CC sin oscilación sinusoidal. ¡Lea mucho más aquí!
      • Los filtros de paso bajo también eliminan mucho ruido, ya que el ruido aleatorio está representado por altas frecuencias. Muchos ruidos son ruido blanco, lo que significa que el ruido está presente para todas las frecuencias, por lo que limitar el ancho de banda de la señal tanto como sea posible ayuda a limitar la cantidad de ese ruido presente en la señal.

        Algunos filtros de paso bajo se denominan filtros anti-aliasing porque evitan el aliasing: cuando las sinusoides están submuestreadas, pueden detectarse como una frecuencia diferente a la que realmente tienen. Siempre debe recordar seguir el teorema de muestreo de Nyquist (señales de muestreo a una frecuencia 2 veces mayor: se necesita una frecuencia de muestreo de> 2 Hz para una onda sinusoidal esperada de 1 Hz, etc.). En este caso de EOG, no tuve que preocuparme por Nyquist porque se esperaba que mi señal estuviera principalmente en el rango de 10Hz, y mi Arduino ADC muestrea a 10kHz, más que lo suficientemente rápido para capturar todo

    • También hay pequeños trucos para deshacerse del ruido. Una es usar una tierra en estrella para que todas las partes de sus circuitos tengan exactamente la misma referencia. De lo contrario, lo que una parte llama "tierra" puede diferir de otra parte debido a una ligera resistencia en los cables, lo que se suma a las inconsistencias. Soldar a protoboard en lugar de pegarse a las placas de prueba también reduce algo de ruido y crea conexiones seguras en las que puede confiar en lugar de la inserción a presión.

Hay muchas otras formas de suprimir el ruido y la interferencia (vea aquí y aquí), pero puede tomar una clase sobre eso o buscar en Google para obtener más información: ¡pasemos al circuito real!

Paso 4: cómo funciona el circuito

Cómo funciona el circuito
Cómo funciona el circuito

No se deje intimidar por el diagrama del circuito: aquí hay un desglose aproximado de cómo funciona todo: (consulte el paso anterior para obtener algunas explicaciones también)

  • En el extremo izquierdo tenemos los electrodos. Uno se coloca en la sien izquierda, otro en la sien derecha y el tercer electrodo se conecta a tierra en la frente. Esta conexión a tierra estabiliza la señal para que haya menos desviación y también elimina parte de la interferencia de 60Hz.
  • El siguiente es el amplificador de instrumentación. Retroceda dos pasos para obtener una explicación de lo que hace para generar la diferencia de voltaje. La ecuación para cambiar la ganancia del amplificador está en la página 7 de la hoja de datos [G = 1+ (50kOhm / Rg) donde Rg está conectado en los pines 1 y 8 del amplificador]. Para mi circuito, me ajusté a una ganancia de 500 usando Rg = 100Ohm.
  • Después de que el amplificador de instrumentación emite la diferencia de voltaje amplificada 500x, hay un filtro de paso bajo RC de primer orden, que consta de una resistencia R_filter y un condensador C_filter. El filtro de paso bajo evita el anti-aliasing (aunque no es una preocupación para mí porque, según Nyquist, necesito muestrear al menos 20Hz para un ancho de banda esperado de 10Hz, y el ADC de Arduino muestra a 10kHz, más que suficiente) y también corta el ruido. en todas las frecuencias que no necesito. El sistema RC funciona porque los capacitores permiten que las altas frecuencias pasen fácilmente pero obstruyen las frecuencias más bajas (impedancia Z = 1 / (2 * pi * f)), y la creación de un divisor de voltaje con el voltaje a través del capacitor da como resultado un filtro que solo permite frecuencias más bajas. hasta [el límite para la intensidad de 3dB se rige por la fórmula f_c = 1 / (2 * pi * RC)]. Ajusté los valores R y C de mi filtro para cortar las señales superiores a ~ 10Hz porque se espera que la señal biológica para los EOG se encuentre en ese rango. Originalmente corté después de 20Hz, pero después de la experimentación, 10Hz funcionó igual de bien, así que opté por el ancho de banda más pequeño (un ancho de banda más pequeño es mejor para eliminar cualquier cosa innecesaria, por si acaso).
  • Con esta señal filtrada, medí la salida con un osciloscopio para ver mi rango de valores mirando hacia la izquierda y hacia la derecha (los dos extremos de mi rango). Eso me llevó a aproximadamente 2-4V (porque la ganancia del amplificador de instrumentación fue 500x para un rango de ~ 4-8mV), cuando mi objetivo es 5V (rango completo del Arduino ADC). Este rango variaba mucho (basado en qué tan bien la persona lavó la piel de antemano, etc.) así que no quería tener tanta ganancia con mi segundo amplificador no inversor. Terminé ajustándolo para tener una ganancia de solo 1.3 (ajuste R1 y R2 en el circuito porque la ganancia del amplificador = 1 + R2 / R1). ¡Deberá medir su propia salida y ajustar desde allí para que no supere los 5V! No se limite a utilizar los valores de mi resistencia.
  • Esta señal ahora se puede alimentar al pin analógico de Arduino para leer, ¡PERO el ADC de Arduino no acepta entradas negativas! Deberá cambiar su señal hacia arriba para que el rango sea de 0-5 V en lugar de -2,5 V a 2,5 V. Una forma de solucionar esto es conectar la tierra de su placa de circuito al pin de 3.3V del Arduino: esto cambia su señal hacia arriba en 3.3V (más de 2.5V óptimo pero funciona). Mi rango era realmente inestable, así que diseñé un voltaje de compensación variable: de esa manera, podía girar el potenciómetro para centrar el rango en 0-5V. Es esencialmente un divisor de voltaje variable que usa los rieles de alimentación de +/- 9V para poder conectar la tierra del circuito a cualquier valor de -9 a 9V y así cambiar mi señal hacia arriba o hacia abajo 9V.

Paso 5: Selección de componentes y valores

Selección de componentes y valores
Selección de componentes y valores

Con el circuito explicado, ¿cómo elegimos cuál (electrodo, amplificador operacional) usar?

  • Como sensor, los electrodos de gel sólido tienen alta impedancia de entrada y baja impedancia de salida: lo que esto significa esencialmente es que la corriente puede pasar fácilmente corriente abajo al resto del circuito (baja impedancia de salida) pero tendría problemas para volver a sus sienes. (alta impedancia de entrada). Esto evita que el usuario resulte lesionado por corrientes o voltajes elevados en el resto de su circuito; de hecho, muchos sistemas tienen algo llamado resistencia de protección del paciente para protección adicional, por si acaso.

    • Existen muchos tipos diferentes de electrodos. La mayoría de la gente sugiere electrodos de gel sólido Ag / AgCl para su uso en aplicaciones de EKG / EOG / etc. Con esto en mente, debe buscar la resistencia de la fuente de estos electrodos (retroceda dos pasos para ver mis notas sobre la impedancia de la piel) y hacerla coincidir con la resistencia al ruido (voltaje de ruido en V / sqrt (Hz) dividido por la corriente de ruido en A / sqrt (Hz): consulte las hojas de datos de los amplificadores operacionales) de sus amplificadores operacionales: así es como elige el amplificador de instrumentación correcto para su dispositivo. Esto se llama coincidencia de ruido, y las explicaciones de por qué la coincidencia de la resistencia de la fuente Rs con la resistencia al ruido Rn funciona se pueden encontrar en línea como aquí. Para mi INA111 que elegí, el Rn se puede calcular usando el voltaje de ruido y la corriente de ruido de la hoja de datos (captura de pantalla arriba).

      • Hay MUCHOS artículos que evalúan el rendimiento de los electrodos, y ningún electrodo es el mejor para todos los propósitos: pruebe aquí, por ejemplo. La impedancia también cambia para diferentes anchos de banda, como se refleja en las hojas de datos del amplificador operacional (algunas hojas de datos tendrán curvas o tablas en diferentes frecuencias). Investigue, pero recuerde tener en cuenta su billetera. Es bueno saber qué electrodos / amplificadores operacionales son los mejores, pero no sirve de nada si no puede pagarlos. Necesitará ~ 50 electrodos al menos para la prueba, no solo 3 para un uso único.

        • Para una adaptación de ruido óptima, no solo Rn ~ = Rs: también desea que el voltaje de ruido * la corriente de ruido (Pn) sea lo más bajo posible. Esto se considera más importante que hacer Rn ~ = Rs porque puede ajustar Rs y Rn usando transformadores si es necesario.

          Advertencias con los transformadores (corríjame si está mal): pueden ser algo voluminosos y, por lo tanto, no son óptimos para dispositivos que deben ser pequeños. También acumulan calor, por lo que se necesitan disipadores de calor o una excelente ventilación

        • El ruido coincide solo con su primer amplificador inicial; el segundo amplificador no afecta tanto, por lo que cualquier amplificador operacional servirá.

Paso 6: construcción del circuito

Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito
Construyendo el circuito

Utilice el diagrama de fritzing anterior para construir el circuito (la segunda copia describe a qué se refiere cada parte en el diagrama de circuito del paso anterior). Si necesita ayuda para identificar los LED en el diagrama, use esta calculadora de código de color de resistencia, pero el Rg del amplificador de instrumentación es 100Ohm, el R_filter es 1.5MOhm, el C_filter es 0.1uF, el R1 del amplificador no inversor es el 10kOhm, R2 es 33kOhm y la resistencia del potenciómetro es 1kOhm (el potenciómetro varía de 0 a 20kOhm). ¡Recuerde cambiar los valores de su resistencia según sea necesario para ajustar las ganancias!

Editar: hay un error en la porción de tierra desplazada. Elimina el cable negro izquierdo. La resistencia debe conectarse con el cable rojo al riel de alimentación como se muestra, pero también al segundo pin, no al primero, del potenciómetro. El primer pin del potenciómetro debe estar conectado al pin de 5V del Arduino. El cable naranja que es la tierra de compensación debe conectarse al segundo pin, no al primero.

He hablado mucho del terreno compensado. En el diagrama, puede ver que la tierra de Arduino se muestra como conectada a la tierra de la placa de pruebas. Eso es en el escenario en el que no necesita cambiar de terreno. Si su señal está fuera de rango y necesita cambiar su tierra, primero intente conectar la tierra Arduino al pin 3.3V del Arduino y vea su señal. De lo contrario, intente conectar el cable naranja en la configuración del potenciómetro (tierra compensada) al pin GND del Arduino.

NOTA DE SEGURIDAD: NO mantenga las baterías puestas cuando suelde, y NO NO coloque ni suelde las baterías al revés. Su circuito comenzará a humear, los condensadores explotarán y la placa de pruebas también podría dañarse. Como regla general, use las baterías solo cuando quiera usar el circuito; de lo contrario, quítelos (también sería una buena idea agregar un interruptor para desconectar fácilmente las baterías).

Tenga en cuenta que debe construir el circuito pieza por pieza (¡revise cada etapa!) Y en una placa de prueba antes de soldar a una protoboard. La primera etapa a verificar es el amplificador de instrumentación: conecte todos los rieles (soldar en los soportes de la batería), Rg, etc. y use un osciloscopio en el pin de salida. Para empezar, use un generador de funciones con una onda sinusoidal de 1Hz con una amplitud de 5mV (o la más baja que alcanzará su generador). Esto es solo para verificar que el amplificador de instrumentación esté funcionando correctamente y que su Rg esté proporcionando su ganancia objetivo.

A continuación, verifique su filtro de paso bajo. Agregue esa parte del circuito y verifique su forma de onda: debería verse exactamente igual pero con menos ruido (irregular - vea las últimas dos imágenes arriba). Probemos su salida final con un osciloscopio con sus electrodos en lugar de un generador de funciones ahora …

Paso 7: Prueba del circuito con un humano

Prueba de circuito con un humano
Prueba de circuito con un humano
Prueba de circuito con un humano
Prueba de circuito con un humano
Prueba de circuito con un humano
Prueba de circuito con un humano

Nuevamente, coloque electrodos en las sienes izquierda y derecha y conecte un cable de tierra a un electrodo en la frente. Solo después de eso debe agregar las baterías; si se produce algún hormigueo, retírelo INMEDIATAMENTE y verifique las conexiones. Ahora verifique su rango de valores cuando mire hacia la izquierda o hacia la derecha y ajuste R1 / R2 del amplificador no inversor, como se explicó hace dos pasos: ¡recuerde que el objetivo es un rango de 5V! Vea las imágenes de arriba para obtener notas sobre qué buscar.

Cuando esté satisfecho con todos los valores de resistencia, suelde todo a un protoboard. La soldadura no es estrictamente necesaria, pero proporciona más estabilidad sobre las juntas de ajuste a presión simples y elimina la incertidumbre de que el circuito no funcione simplemente porque no las presionó en una placa de pruebas con la suficiente fuerza.

Paso 8: Código Arduino

¡Todo el código adjunto al final de este paso!

Ahora que tiene un rango de 5V, debe asegurarse de que esté dentro de 0-5V en lugar de -1V a 4V, etc. Conecte tierra al pin de 3.3V del Arduino o conecte el voltaje de tierra de compensación (cable naranja arriba) al riel de tierra y luego conecte un cable desde el riel de tierra al pin GND del Arduino (esto es para cambiar la señal hacia arriba o hacia abajo para que caiga dentro del rango de 0-5 V). Tendrá que jugar un poco: ¡no olvide medir su salida cuando no esté seguro!

Ahora para la calibración: desea que la luz cambie de color para diferentes posiciones de los ojos (mirando a la izquierda frente a no tan a la izquierda …). Para eso, necesita valores y rangos: ejecute EOG-Calibration-numbers.ino al Arduino con todo conectado correctamente (termine las conexiones al Arduino y neopixel de acuerdo con mi diagrama de fritzing). No es muy necesario, pero también ejecuta el código bioe.py que tengo; esto generará un archivo de texto en su escritorio para que pueda registrar todos los valores mientras mira hacia la izquierda o hacia la derecha (el código de Python se adaptó de este ejemplo). Cómo hice esto fue mirar hacia la izquierda durante 8 latidos, luego hacia la derecha, luego hacia arriba, luego hacia abajo y repetir para promediar más tarde (ver output_2.pdf para un registro que guardé). Presione ctrl + C para forzar el cierre cuando esté satisfecho. Usando esos valores, puede ajustar los rangos de las animaciones en mi código BioE101_EOG-neopixel.ino. Para mí, tuve una animación de arco iris cuando miré hacia adelante, azul para el extremo izquierdo, verde para un poco a la izquierda, morado para un poco a la derecha y rojo para el extremo derecho.

Paso 9: Pasos futuros

Voila; algo que puedes controlar solo con tus ojos. Hay mucho que optimizar antes de que pueda llegar a un hospital, pero eso es para otro día: los conceptos básicos son al menos más fáciles de entender ahora. Una cosa que me gustaría volver atrás y cambiar es ajustar mi ganancia a 500 para el amplificador de instrumentación: mirando hacia atrás, probablemente fue demasiado porque mi señal después ya era 2-4V y tuve dificultades para usar el no inversor. amplificador para ajustar mi rango perfectamente …

Es difícil conseguir consistencia porque la señal cambia MUCHO para diferentes condiciones:

  • persona diferente
  • condiciones de iluminación
  • preparación de la piel (geles, lavado, etc.)

pero aun así, estoy bastante satisfecho con mi video de prueba final de desempeño (tomado a las 3 a.m. porque ahí es cuando todo comienza a funcionar mágicamente).

Sé que gran parte de este tutorial puede parecer confuso (sí, la curva de aprendizaje también fue difícil para mí), así que no dude en hacer las preguntas a continuación y haré todo lo posible para responder. ¡Disfrutar!

Desafío intocable
Desafío intocable
Desafío intocable
Desafío intocable

Subcampeón del Desafío Intocable

Recomendado: