12
En este tutorial vamos a describir cómo se configura el NIA (Neural Impulse Actuator) para que tenga la capacidad de presionar una tecla (o varias) mediante un programa creado en Visual Basic. Calibración previa... Una vez instalado el programa controlador de NIA (nosotros trabajaremos con la versión 2000) se ejecutará el programa y nos mostrará una pantalla similar a la siguiente. Esta pantalla nos muestra la configuración para la calibración básica de nuestro NIA. Para empezar a calibrarlo nos dispondríamos a ponernos la diadema receptora en la frente, sin apretarla demasiado, pero tampoco ha de quedar suelto. Tras colocarlo correctamente, habrá que clicar en "Run Calibration" y seguidamente nos aparecerá un osciloscopio, en el cuál tendremos que fijar la vista durante el proceso de calibración.

niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

En este tutorial vamos a describir cómo se configura el NIA (Neural Impulse Actuator) para que tenga la capacidad de presionar una tecla (o varias) mediante un programa creado en Visual Basic.

Calibración previa...Una vez instalado el programa controlador de NIA (nosotros trabajaremos con la versión 2000) se ejecutará el programa y nos mostrará una pantalla similar a la siguiente.

Esta pantalla nos muestra la configuración para la calibración básica de nuestro NIA.

Para empezar a calibrarlo nos dispondríamos a ponernos la diadema receptora en la frente, sin apretarla demasiado, pero tampoco ha de quedar suelto.

Tras colocarlo correctamente, habrá que clicar en "Run Calibration" y seguidamente nos aparecerá un osciloscopio, en el cuál tendremos que fijar la vista durante el proceso de calibración.

Page 2: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

Durante el proceso de calibración, tendremos que intentar relajar nuestros músculos faciales para lograr que la línea amarilla vaya lo más cerca posible a la verde discontinua, junto a la roja también, como podemos observar en la fotografía anterior.

En el caso que la línea amarilla vaya demasiado arriba, y no se logre bajarla, habría que bajarle la sensibilidad a la Diadema receptora.

Para ello seguiríamos los siguientes pasos:

Dentro de la calibración, antes de presionar Run calibration, daremos un Clic derecho en cualquier zona de la pantalla de calibración, entonces se nos abrirán dos pequeños recuadros en la zona derecha inferior de la pantalla de calibración.

Si damos un Clic normal en el de arriba, automáticamente se desplegara otro cuadro llamado "Adjust EOG Input", en el cuál reduciríamos el valor marcado.

En el cuadro inferior, saldría otro desplegable llamado "Adjust EMG Input", en el cuál seguiríamos los pasos anteriores, hasta que lográsemos que la línea amarilla fuera lo más pegada a la verde posible.

El proceso de calibración es algo costoso y delicado, así que hay que tener paciencia y concentración para realizarlo correctamente.

Una vez hecho esto, podríamos proseguir con la configuración de NIA.

Page 3: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

Creando el perfil de NIA...En esta sección crearemos un perfil propio para utilizar NIA a nuestro antojo con cualquier tecla que nosotros le digamos, en este caso configuraremos las flechas de dirección del teclado.

Primero nos dirigiremos al botón de la derecha: "Game Play", y clicaremos en Profile Wizard para crear nuestro propio perfil.

Seguidamente clicaremos en "Create New NIA Profile", como se muestra a continuación.

Page 4: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

En la primera pantalla que nos aparecerá, lo dejaremos todo tal cual viene, y clicaremos en "Next".

En la configuración de los Joysticks que usaremos, en este caso serán el primero y el cuarto, y los pondremos con Muscle, y Glance.

Page 5: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

Tras esa pantalla, nos aparecerá la primera para empezar a configurar la función de las teclas. En esta nueva, activaremos las casillas Z2 y Z4, y les marcaremos los valores "Up Arrow" y "Down Arrow" respectivamente. En ambas pondremos en la columna de Mode: "Hold", de este modo cada vez que se presione una tecla de esas, se mantendrá durante un segundo al menos pulsada. Esta barra vertical se refiere a la sensibilidad producida por el músculo frontal.

En esta misma pantalla, podremos ajustar la señal del receptor neuronal para que se acoja mejor a nosotros. Como se muestra en la imagen siguiente, presionando en el botón "Adjust Signal" se nos abre un panel para reducir o aumentar la sensibilidad del receptor.

También podremos aumentar la velocidad a la que el receptor detectara nuestras señales neuronales.

Page 6: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

Tras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance".

En esta parte haremos algo muy similar a la anterior, activando las casillas de R1, y L1, para que aparezcan los marcadores de señal. En la R1 escogeremos en Event 1 la flecha derecha, y en L1, la flecha izquierda. En el Mode de ambos, seleccionaremos Hold Duration o simplemente Hold, lo que hará que la "tecla" se mantenga pulsada durante un tiempo determinado por nosotros, o por el programa, respectivamente.

Como en el apartado anterior, podremos ajustar la señal de sensibilidad y movimiento del movimiento ocular abriendo el botón de "Adjust Signal".

La siguiente pantalla que nos aparecerá, no es más que un enlace a algún acceso directo a un juego o programa, para que este perfil se ejecute automáticamente cuando este se abra.

Page 7: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

En la pantalla que aparecerá a continuación guardaremos el nuevo perfil con el nombre deseado y finalizaremos la creación de un nuevo perfil.

Page 8: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

Aplicación del perfil anterior a un programa en Visual Basic...En este apartado configuraremos un programa que nosotros mismos crearemos usando Visual Basic 6.0.Nuestro programa necesitara los siguientes objetos:

Un timer.Cuatro Command buttons.Un TextBox.

El aspecto final del programa seria como el de la siguiente imágen:

A continuación se pondrá el código entero del programa, y su explicación.

Código:

Private Declare Function GetKeyState Lib "user32" (ByVal d As Long) As IntegerDim Dout As Integer

Private Sub Timer1_Timer() Dout = "0" If GetKeyState(vbKeyUp) < 0 Then Dout = "1" Or 1 End If If GetKeyState(vbKeyLeft) < 0 Then Dout = "2" Or 2 End If If GetKeyState(vbKeyDown) < 0 Then Dout = "4" Or 4 End If If GetKeyState(vbKeyRight) < 0 Then Dout = "8" Or 8 End If Tx.Text = Dout

End Sub

Page 9: niarobot.files.wordpress.com€¦  · Web viewTras la configuración del músculo frontal, nos dispondremos a configurar el movimiento ocular, denominado por el programa: "Glance"

Explicación del códigoPrimero tendremos que cargar la librería "GetKeyState" para poder realizar acciones programadas mediante teclas. para ello usaremos el siguiente código:

" Private Declare Function GetKeyState Lib "user32" (ByVal d As Long) As Integer "

A continuación declararemos la variable "Dout", la cual usaremos para mostrar un valor diferente según la tecla que pulsemos.

" Dim Dout As Integer "

Ahora insertaremos un Timer, en el cual configuraremos nuestro programa.

En el Timer asignaremos a la variable "Dout" el valor "0" para que tenga siempre ese valor si no se está realizando ninguna acción.

Dout = "0"

A continuación con el código siguiente configuraremos una de las cuatro flechas para que si el valor es inferior a "0" (es decir, esté la tecla pulsada) ejecute una acción.

If GetKeyState(vbKeyUp) < 0 Then Dout = "1" Or 1 End If

En este caso, si la tecla permanece pulsada, mediante la función "If" de Visual basic, crearemos una acción en la que el programa asigne el número "1" a la variable "Dout" .

Si observamos el código, la constante " GetKeyState(vbKeyUp)" coge el estado de la flecha de arriba, para las demás teclas habría que usar las siguientes combinaciones:

Fecha arriba: " GetKeyState(vbKeyUp) " Flecha abajo: " GetKeyState(vbKeyDown)" Flecha izquierda: " GetKeyState(vbKeyLeft) " Flecha derecha: " GetKeyState(vbKeyRight) "

Para que podamos diferenciar cada tecla presionada, asignaremos números diferentes a "Dout" (mirar el código entero).

Al final del Timer pondremos el siguiente código para que la variable "Dout" Inserte el valor obtenido mediante los "If's" en la TextBox que creamos anteriormente.

Tx.Text = "Dout"

Con esto, cada vez que presionemos una de las flechas de dirección, el programa nos mostrará un número diferente en la TextBox.