INTRODUCCIÓN
En este desarrollo se aborda el estudio del Emotiv Beta SDK (Kit Beta de Desarrollo Software de Emotiv) y de la API contenida en el mismo para dialogar con el casco Emotiv Epoc, y como aplicación de este estudio se propone el movimiento mediante control mental de un vehículo teledirigido.
Para ello se desarrollará una aplicación capaz de utilizar dicha API y mediante la interpretación de las señales obtenidas controlar el puerto paralelo del PC en el cual se encontrará conectada una placa de circuito impreso, desarrollada también dentro del ámbito de este proyecto, que actuará sobre el mando de control remoto por radio frecuencia del vehículo teledirigido.
![Esquema de funcionamiento del desarrollo realizado Esquema de funcionamiento del desarrollo realizado](/img/comvet/diagram.jpg)
Como se ha mencionado, primero se abordará la fase de estudio de la API para familiarizarse con las funciones disponibles, las posibilidades de desarrollo que ofrece y experimentar con los programas de ejemplo suministrados observando como interactúan con el casco Emotiv Epoc.
Posteriormente se abordará el desarrollo software, escogiendo el entorno de desarrollo y lenguaje de programación que mejor se ajusten al diseño realizado. Una vez que la aplicación se encuentre desarrollada, se procederá al diseño y montaje del circuito que se encargará de operar el mando del vehículo radio controlado a partir de las señales volcadas en el puerto paralelo.
Por último se realizará la integración del casco, API, software, hardware, mando y vehículo, comprobando el funcionamiento y realizando los ajustes y modificaciones necesarias para alcanzar el funcionamiento deseado, así como plantear posibles ampliaciones y mejoras.
El método de construcción consistirá en primer lugar en la toma de contacto con el software suministrado con el Kit de Desarrollo, realizando la instalación del mismo, poniendo en funcionamiento el casco y realizando las primeras pruebas de control mental.
Posteriormente se pasará al estudio de la API conocer las funciones suministradas, los tipos de datos y enumeraciones que se utilizan y las posibilidades de desarrollo que se proporcionan. Asimismo se realizarán modificaciones al código de los programas de ejemplo, para afianzar los conocimientos adquiridos.
En este punto se procederá a la elección del entorno de desarrollo así como el lenguaje de programación el cuál estará limitado a C, C++ ó C# por tratarse de las opciones que ofrecen las bibliotecas Emotiv, indispensables para el desarrollo de este proyecto.
La aplicación constará de un modo de operación manual de forma de poder comprobar el funcionamiento de la interfaz y el vehículo radiocontrolado de forma independiente a las detecciones provenientes del casco. Además se podrá conectar desde la aplicación tanto con el casco a través del Motor Emotiv (EmoEngine) como con el programa emulador EmoComposer, el cual será de especial utilidad para realizar las tareas de depuración permitiendo simular los distintos eventos que produce normalmente el casco sin la necesidad de estar utilizándolo en todo momento.
Para presentar la información de monitorización del estado de la batería, contactos de los electrodos, etc, se utilizarán imágenes y elementos gráficos dentro de la interfaz de usuario así como los indicadores de avance, retroceso, giro a la izquierda, giro a la derecha y neutral.
El movimiento de avance tendrá asociado una acción del modo de expresivo, mientras que la acción de retroceso utilizará una del modo cognitivo. De esta manera se minimiza la interacción entre detecciones evitando los falsos positivos.
En cuanto a los movimientos de giro hacia la izquierda y derecha se utilizará la información provista por el acelerómetro del giróscopo que indica el movimiento de la cabeza en ambos sentidos.
Para visualizar la información de las detecciones a lo largo del tiempo se empleará una gráfica de líneas paralelas que junto con cada evento registrará la intensidad de las señales para las cuatro acciones antes descritas más un canal para el estado neutral y otro para el caso en que no se realice ninguna detección.
Las acciones de avance y retroceso tendrán un control deslizable para ajustar el umbral a partir del cual se activará cada una atendiendo al valor de intensidad del evento. Un control similar estará destinado para el giro de la cabeza que determinará la activación de los giros, pero en este caso el parámetro a tener en cuenta será la brusquedad (aceleración) del movimiento realizado.
La carga de perfiles de usuario se realizará a través de un botón que presentará un diálogo para seleccionar el fichero a cargar y existirán dos controles deslizables para modificar las sensibilidades guardadas dentro del perfil en el momento de su entrenamiento. Estos entrenamientos se realizarán mediante las herramientas suministradas con el Kit de Desarrollo Emotiv.
Por último para presentar la información referente a la conexión, optimizaciones, recepción de eventos, etc, se dispondrá de un área de texto para el registro, el cual podrá volcarse a un fichero en disco para su posterior consulta.
Para controlar el puerto paralelo, será necesario utilizar una biblioteca DLL externa ya que los núcleos basados en Microsoft Windows NT, como Microsoft Windows XP y posteriores, no permiten el acceso al puerto paralelo a los programas en modo usuario.
Para el diseño del esquema y la placa de circuito impreso se utilizará el programa Kicad, el cual es open source, multiplataforma y compatible con las bibliotecas OrCAD, SPICE, etc. En primer lugar se dibujará el circuito definiendo una biblioteca propia en la que se añadirán los componentes que se emplearán para evitar que su desaparición en versiones posteriores afecte al proyecto.
De cada componente se apuntará en una tabla su referencia, fabricante, el código utilizado por el fabricante y el código del artículo en la conocida web de venta online Farnell. Además se tomará nota del precio orientativo del componente a la fecha de la redacción de este ejemplar.
Luego se asociará cada componente con su huella en el circuito impreso para comenzar con el diseño de la placa. Primero se modificará la rejilla para que la distancia entre componentes se ajuste al modelo de placa perforada a utilizar, luego se definirá el contorno del PCB1 para ajustarlo al espacio disponible dentro de la caja escogida y finalmente se ubicarán las huellas de los componentes uniéndolas con pistas según el diseño previo.
Por último se generarán los ficheros Gerber y el fichero de perforaciones (.drl), útiles en caso de que la construcción de las placas corra a cargo de un tercero.
Una vez montada la placa se la situará en su caja y se soldarán los conectores. Luego se construirán los cables para la interconexión con el puerto paralelo y con el mando según el diseño realizado, para proceder a continuación a realizar las pruebas de integración entre el casco, el software, el hardware y el mando del vehículo teledirigido, validando así el desarrollo.
La planificación inicial del proyecto comienza con los primeros ensayos llevados a cabo dentro del estudio de viabilidad, continuando con la fase de análisis y obteniéndose como resultado la escritura del anteproyecto.
A continuación, habiéndose aprobado el anteproyecto, se comienza la ejecución del proyecto mediante el desarrollo del programa de control, la construcción de la interfaz hardware y la integración de las partes, obteniéndose como resultado el producto a construir.
Simultáneamente con la fase anterior se irá escribiendo la documentación que formará la base sobre la cual se ha confeccionado este documento. Haciendo clic sobre la imagen siguiente se puede consultar la planificación con más detalle.