Accionar mecanismos con el pensamiento


Las personas con discapacidades graves no pueden interactuar con su entorno como la gente normal. Ellos siempre necesitan ayuda para hacer pequeñas tareas como encender un ventilador o un televisor. Para cerrar esta brecha entre un paciente y un interruptor es necesario que haya alguna manera que no requiera movimientos musculares. La mejor manera que podía imaginar era la tecnología EEG. Esto significa que uno puede controlar un dispositivo por el uso de sus / sus ondas cerebrales sin realizar ningún movimiento físico.

 

Para ello   ha usado un juguete disponible comercialmente denominado Mindflex ,el cual utiliza el mismo chip Neurosky EEG. El autor integró un módulo Bluetooth HC-05   con  el auricular NeuroSky MyndWave para  por medio de ingeniería inversa  asi  como con  la ayuda de un Arduino y Processing    fue capaz de controlar un ventilador.

 

Los componente usados son:

  • Un auricular EEG
    Solía ​​Mindflex el auricular del juguete, ya que puede funcionar de la misma en comparación con otros auriculares a un precio razonable muy bajo. Usted puede conseguir uno en Ebay por un precio tan bajo como $ 15.
  • Un HC-05 o HC-06 del módulo del bluetooth
    Se utiliza para ajustar el auricular Mindflex – $ 6.
  • Arduino Uno – $ 12
  • Un pequeño ventilador
    Usé un pequeño ventilador del equipo de 12V para la demostración, ya que estaba mintiendo alrededor y satisfacer la necesidad.
  • Tres pequeños cables de puente.

Hay dos partes en el auricular. Un lado contiene las baterías y el otro que contiene del interruptor   contiene tambien la electrónica necesaria

  • Abra el lado que tiene un interruptor en él.
  • Retire los 4 tornillos para acceder a la placa de circuito.
  • Una vez dentro, quite los 2 tornillos que sujetan la placa de circuito a la carcasa.

Ahora tiene que soldar tres pequeños cables al circuito dentro de la caja.

  1. “T” (de transmisión) pines en el chip
  2. Uno con el GND (tierra).
  3. En tercer lugar, con el VCC (Power).

Espero que su módulo bluetooth venga on cables de puente hembra-hembra. Ahora,

  • conectar el cable soldado al pin T del circuito con el RXD
  • GND a GND
  • y el VCC a la VCC del módulo Bluetooth.

Ahora aislar todo y fijar el módulo Bluetooth con el auricular. Coloque las baterías en el otro lado del auricular y encenderlo. Una luz roja en el auricular y una luz en el módulo Bluetooth muestra que esta funcionando

El siguiente paso será el de establecer comunicación entre el auricular y el ordenador para leer los datos de EEG de ella,para lo cual primero debeemparejar el módulo Bluetooth a la computadora (puede seguir los pasos que se indican en este enlace ).

Imagen de Lea sus ondas cerebrales usando BrainWaveOSC.

Ahora, Descargue BrainWaveOSC para su plataforma y descomprimirlo en una carpeta.

Antes de ejecutar la aplicación, tendrá que identificar cómo el sistema ve su dispositivo bluetooth.
Usuarios de Windows:
Usted necesita encontrar el puerto COM que el dispositivo Bluetooth está conectado. Este enlace le ayudará a encontrar el puerto COM al que está conectado el dispositivo Bluetooth.

Una vez que encuentre el dispositivo, abra el archivo settings.xml ubicado en la carpeta de datos de BrainWaveOSC.
La cuarta línea debe decir algo así como COM6 entre las etiquetas. Cambiar eso a su cadena de dispositivo que ha encontrado antes.

Después de abrir la aplicación, se debe comenzar con un panel rojo a la izquierda y se pone verde una vez que se inicia la recepción de datos. Eso es todo, usted está leyendo sus ondas cerebrales de la corteza prefrontal del cerebro, que por lo general se ocupa de la lógica.

 

Ahora nuestro siguiente paso será utilizar estos datos para controlar un ventilador utilizando Procesamiento y Arduino

Processing es un lenguaje de programación de código abierto que está diseñado para ser fácil de usar y es ideal para principiantes. Se basa en Java, por lo que si usted está familiarizado con eso, verás algunas de las similitudes. Descárgalo aquí e instalarlo antes de empezar.

Ahora tenemos que analizar los datos (mensajes OSC) recibida a través BrainWaveOSC.

Comience abriendo procesamiento y la creación de un nuevo boceto.

Importe la Biblioteca OSC

A partir de un boceto en blanco, tendrá que importar la biblioteca de la OSC.Puede hacerlo escribiendo:

 

import oscP5.*;

or

Go to Sketch->Import Library->oscP5.

Si usted no puede encontrar oscP5, puede que tenga que añadir primero yendo a bosquejos> Importar Library-> Añadir Biblioteca … y la búsqueda de oscP5.Una vez hecho esto, tendrá que crear un objeto vacío para que en la siguiente línea escribiendo:

Oscp5 OscP5;

Crear su configuración y dibujar funciones

Esta es fácil. Sólo tienes que escribir lo siguiente:

void setup () {

}

void draw () {

}

Acaba de crear el esqueleto.

Ahora que usted tiene su esqueleto, vamos a rellenarlo y comenzar a leer los mensajes OSC difundidos por BrainWaveOSC. Asegúrese BrainWaveOSC se está ejecutando y el auricular está conectado. Usted puede decir por el color del panel de la izquierda. Si es verde, entonces estás bien.

Encontrar a su puerto de OSC
En BrainWaveOSC, busque el puerto OSC. En la esquina superior izquierda, debería ver algo como:

OSC – 127.0.0.1:7771

El 127.0.0.1 es la dirección ip localhost y 7771 es el número de puerto. Tendrá que guardar este número de puerto para después.

Configuración de procesamiento para recibir mensajes OSC

Ahora usted querrá añadir esta línea dentro de su función de configuración () entre las llaves. Consulte las imágenes como una referencia.

Su función setup () debería tener este aspecto:

void setup () {

oscp5 = new OscP5 (esto, 7771);

}

¡Genial! Sólo ha contado la aplicación para empezar a escuchar en el puerto 7771 para mensajes OSC entrantes. Ya que está en la función de configuración, sólo va a correr una vez al principio.

Recibir los mensajes OSC

A continuación vamos a crear una función para recibir los mensajes OSC.Mientras setup () sólo se ejecuta una vez, y dibujar () funciona todo el tiempo, la función crearemos sólo se ejecuta cuando se recibe un mensaje OSC.

Crear una función que tiene este aspecto:

anular oscEvent (OscMessage theMessage) {

// Imprimir la dirección y typetag del mensaje a la consola

println (“Mensaje recibido OSC El patrón de dirección es!” + theMessage.addrPattern (+) “La typetag es:”. + theMessage.typetag ());

}

 

Analizamos  el código  hacia abajo:

void oscEvent (OscMessage theMessage) dice que esta función se llamaoscEvent, y se necesita un objeto OscMessage como un parámetro llamado theMessage. Ignorar el vacío de momento, significa que no se espera que la función para devolver un valor.

La segunda línea es println, que es la abreviatura de impresión Line. Esto escribe mensajes en el área de color negro debajo de su editor de texto cuando se ejecuta la aplicación (llamada la consola). El contenido de println dicen que imprimir “OSC Mensaje recibido!” y utiliza dos métodos de OscMessage:

  • Patrón Dirección – Esto es como el tema de un correo electrónico. Es el nombre del mensaje
  • Typetag – Esto le indica lo que los contenidos del mensaje son
    • Por ejemplo, un typetag de iii significa que hay 3 números enteros dentro del mensaje

Ejecutar la aplicación

Lo que tenemos que hacer ahora es extraer los números de los mensajes que hemos estado recibiendo y hacer algo útil con él.Para esto, yo sólo voy a centrar en el valor Atención procedentes de BrainWaveOSC. Así que todo lo que tenemos que hacer es comprobar los mensajes entrantes para él y sáquelo.Dentro de su función oscEvent, tendrá que añadir:

if ( theMessage.checkAddrPattern(“/attention”) == true ) {

println (“Su atención está en:” + theMessage.get (0) .floatValue ());

}

Impresionante. Así que ahora estamos recibiendo sólo los valores de atención e imprimirlas a la pantalla. Necesitamos una manera de pasar esta información a otra función para que podamos hacer algo con él. La forma más fácil de hacerlo es con una variable global. Añadir esta línea debajo

Oscp5 OscP5;

float currentAttention;

Cambie su función oscEvent a tener este aspecto:

if (theMessage.checkAddrPattern (“/ atención”) == true) {currentAttention = theMessage.get (0) .floatValue (); println (“Su atención está en:” + currentAttention); }

Ahora, usted ha creado una variable que se puede acceder desde cualquier función y es actualizado cuando oscEvent ve un mensaje de OSC con el patrón de dirección “/ atención”.POR TANTO AHORA  USTED ES CAPAZ DE EXTRAER LOS VALORES DE ATENCIÓN A PARTIR DE LSO DATOS EEG, el siguiente paso seria enviar este valor a su Arduino Uno:

  • Conecte el Arduino al ordenador.
  • Compruebe el número de puerto al que esté conectada al.
  • Enviar valores de la transformación de este puerto.
  • Escribir un boceto que lee los valores enviados desde el procesamiento.
  • Conecte el ventilador a cualquiera de los pines de Arduino.
  • Establezca un valor de umbral de la atención y hacer un disparador para el ventilador para encender y apagar.

 

 

Fuente  aqui

LLegan los display inteligentes para el lavaparabrisas de su coche


En este  blog hemos   hemos  hablado de   la funcion HUD(head-up display,) del popular  navegador  Sygic que permite  proyectar en el parabrisas de un coche  información al usuario de tal forma que éste no debe cambiar su punto de vista para ver dicha información. Aunque su desarrollo inicial fue para las aeronaves militares, actualmente se utilizan estos sistemas en la aviación civil, automóviles, etc dado que ver todas las instrucciones de navegación proyectadas directamente en su línea de visión  como es el parabrisas puede ser un gran avance sobre todo porque va  a permitir  mantener la atención en la carretera y disfrutar de una conducción segura y cómoda en la noche.

Aún no hay muchos ejemplos de uso de HUD,   Sygic según  sus creadores,  es la primera aplicación de navegación sin conexión con Head Up Display. No viene como producto aparte pues va integrado  con Sygic Navegación Mundo o Sygic Europa Navigation para Android

En otra  linea completamente diferente  independiente  del smartphone  y  alejado de la navegación GPS   se  han desarrollado  para los coches   dispositivos  HUD para presentar información de crucero.

Cuando se conduce a alta velocidad, especialmente en la noche, puede servir estos dispositivos ,para evitar accidentes cuando el conductor mira hacia abajo para ver el medidor de panel del coche o la pantalla del medidor de audio y no puede tomar medidas efectivas en caso de emergencia.

Este nueva generación de proyectores pues están desarrollado para este caso proyectando sólo  información importante (como la velocidad) de los coches sobre el cristal del parabrisas.No sólo ayuda a novatos que no tienen experiencia en  mostrar la velocidad del coche para evitar exceder el límite de velocidad, sino también ayudar a los conductores a dar información importante (como la velocidad) en la actual gama visual,tiempo conduciendo y muchas  funciones más  etc,  y siempre mantener una observación óptima con una cabeza permitiendo  experimentar la velocidad pero  manteniendo la seguridad de la conducción .

La base de estos dispositivos no podría ser otra  la interfaz OBD II (que hemos hablado  varias veces en  este blog) ofreciendo  gracias al uso de este interfaz buena relación costo-rendimiento( ronda los 50€)  ,una fácil instalación y depuración antes de 3 minutos   asi como  Plug and play

Por tanto estos HUD pueden auto adaptarse a cualquier  tipo de vehículo  moderno que cuente  con interfaz  OBD II OBD o de la UE (On-Board Diagnostic System)

Este tipo integral pantalla HUD puede mostrar muchos parámetros al mismo tiempo,por ejemplo algunos como éstos:

  • Temperatura del motor
  • Velocidad del vehículo
  • Nivel liquido
  • Tensión,
  • Posición de la válvula del acelerador,
  • Angulo de avance del encendido
  • Tiempo de aceleración 100 kilometros
  • Consumo de combustible
  • Kilometraje,
  • Consejos de combustible bajo
  • Fallo en el motor
  • etc

Ademas   este tipo de pantallas, cuya proyección  sería el equivalente a una pantalla de  5.5 “(medida  muy clara  para que el conductor lee  los  datos) conectadas por bluetooth al interfaz OBD , permiten deferentes tipo de modos de visualización:

  • Puede ser uniforme:
  •  Visualización normal,
  • Modo de visualización de alta velocidad
  • Modo de visualización automática
  • etc

También los HUD  suelen contar  con Interruptor de  Km y millas  para satisfacer las necesidades de conversión de metro o pulgadas automático;  encendido  y apagado automático( comenzando con el arranque del vehículo y  parando con la parada del vehículo para proteger la batería del vehículo  ) preservando lógicamente la función de interruptor manual para controlar el HUD

Para terminar este tipo de dispositivos suelen permitir personalizar alarmas : HUD pueden ofrecer información de una sola etapa o hasta  de cuatro etapas sobre modos de alarma, por ejemplo   de velocidad (para elegir la conducción más segura); alarma de velocidad del motor( contribuye a cambiar de marcha a tiempo para ahorrar combustible),de tiempo de conducción ,etc;

 

 

Comentar para terminar  que este tipo de aparatos son muy fáciles de instalar : Sólo tiene que conectar la unidad de HUD para el conector OBD2 y arrancar el coche y la verdad es que pueden ser muy útiles , pero asegúrese que la pantalla reflectante sea del tamaño adecuada y que pueda verse incluso con plena luz del sol

 

Mas información aquí:Andoer Ifound Actualizado segunda generación de coches HUD montados en vehículos Head Up Display Sistema OBD Ⅱ universal de exceso de velocidad Advertencia