PR-ELEC-36

Embed Size (px)

Citation preview

Concurso de Proyectos - INTERCON - 2010

CONTROL DE ROBOT MOVIL MEDIANTE EL HABLA SILENCIOSAAUTOR: Gustavo Arturo QUISPE SUTTY, [email protected].

Javier Mendoza Montoya,

ASESOR: [email protected].

Universidad Andina Nstor Cceres Velsquez Juliaca PerResumenEl presente proyecto se presenta a partir de la adquisicin de las seales electromiogrficas (EMG) del sistema fisiolgico humano cuello- garganta por la cual se desarrollara el diseo y la construccin de un sistema de instrumentacin para la captacin tratamiento de dichas seales . Este proyecto se basa en el Habla Silenciosa, particularmente se le est denominando as al hecho de controlar el sonido auditivo, el cual se genera cuando una persona habla silenciosamente. Dicho sistema se basara para controlar un robot mvil sin la necesidad de hablar por la persona en prueba, para tal desarrollo se aplicara las tcnicas de adquisicin, procesamiento de seales electromiogrficas, aplicacin de mtodos para el procesamiento de voz y la aplicacin de un robot mvil controlado por un microcontrolador. Un uso lgico de este sistema seria para ser usado por las personas con desventajas fsicas tales por ejemplos los mudos y para seguir extendiendo el anlisis de las seales EMG en la fisiologa del ser humano. Palabras claveSeales electromiogrficas EMG, Instrumentacin, Robtica. test, for such a development there were applied the technologies of acquisition, processing sign

electromiograficas, application of methods for the processing of voice and the application of a mobile robot controlled by a microcontroller.. A logical use of this system serious the mute ones to be used by the persons by such physical disadvantages by examples and to continue extending the analysis of the signs EGM in the physiology of the human being.

1.

Introduccin

Abstract-- The present project there appears from the adquicision of the signs electromiograficas (EMG) of the physiological human system - neck - throat for which there was developing the design and the construction of a system of instrumentation for the capture treatment of these signs. This project bases in Silent Speech ", particularly this he being named this way to the fact of it controls the auditory sound, which is generated when a person speaks silently. The above mentioned system was based to control a mobile robot without the need to speak for the person in

La adquisicin de la seales biolgicas en un ser humano ,en la actualidad el estudio de dichas seales tiene un amplio inters en el rea de la bio-electrnica .Actualmente es posible adquirir seales biolgicas producidas por el ser humano con una calidad aceptable en proyecto s de investigacin y estudio de dichas seales es por tal motivo que el presente proyecto de investigacin tiene como objetivo principal el de desarrollar un sistema de adquisicin de seales biolgicas de un ser humano donde se enfocara principalmente en el estudio de las seales biolgicas producidas al hablar en silencio por el ser humano . Los seres humanos al leer o hablar es donde desarrollamos el Habla Silenciosa por lo cual, este proyecto se basa con el principio de las seales electromiograficas el cual consiste en la adquisicin y registro de los potenciales elctricos generados por la actividad muscular cuando desarrollamos el habla silenciosa ya que cuyas seales producidas por el cerebro son dirigidas hasta las cuerdas vocales y es ah donde dichas seales son estudias y posteriormente tratadas. En principio el proyecto est siendo desarrollado para ayudar a las personas que por algn motivo perdieron laPgina 1 de 7

ID:PR-ELEC-36

Concurso de Proyectos - INTERCON - 2010

capacidad de hablar parcialmente y por ende no tienen la facilidad de comunicarse con los dems. Con el debido financiamiento se podra desarrollar una tecnologa donde los seres humanos tengamos la capacidad de comunicarnos sin la necesidad producir sonido audible. 2. Materiales y mtodos

(2) Dado que el valor de ganancia requerido es mayor que la ganancia mxima del amplificador es necesario conectar en cascada 2 INA128 para que realicen esa tarea.

El presente proyecto se desarroll teniendo en cuenta las etapas de adquisicin de la seal electromiografica, la visualizacin y respectivo tratamiento por medio de software y el respectivo control de un robot mvil mediante dichas seales. Para disear la tarjeta de adquisicin de las seales EMG se tomaron las siguientes caractersticas:Fig. 2. Arreglo de amplificadores operaciones del INA 128

2.2. Fuentes aisladas Se implement Fuentes Aisladas con el fin lograr polarizar los amplificadores cumpliendo con las normas de seguridad. Para ellos se utilizara los DCR021205P, el cual es un convertidor DC/DC y suministra un potencia de 2W.

Fig. 1. Diagrama de etapas

2.1.

Amplificadores de Instrumentacin

Fig. 3.

Diagrama de fuentes aisladas DCR02

Debido a que las seales EEG son de orden V por lo tanto se debe tener un nivel de amplificacin muy grande en donde se tenga una buena relacin seal a ruido (RSR). Eso significa que el ruido que pueda ver inherente a la seal debido a la alimentacin o alguna interferencia externa debe ser muy pequeo en comparacin de las seales que vamos a tratar. Se expresa mediante esta ecuacin (1). (1) Dnde: A es la amplitud RMS Para esto se utiliz los amplificadores de instrumentacin que tengan una alta impedancia de entrada y un alta razn de rechazo en modo comn (RRMC) y una ganancia muy grande. Por ende los amplificadores de instrumentacin que se seleccion son los INA128. El INA128 amplificador diferencial de instrumentacin (CI) que tiene como aplicaciones en audio e instrumentacin bio - electrnica. Donde su ganancia est dada por la siguiente ecuacin (2) :

Ya que en las configuraciones de los amplificadores de instrumentacin se necesita voltajes positivos y negativos, se puede obtener conectando en serie 2 DCRs para obtener esa polarizacin de - ,+. 2.3 Amplificadores de Aislamiento

En esta etapa se utiliz el ISO124 el cual es un integrado (CI) que tiene las entradas y salidas aisladas. En donde a la Entrada la seal es modulada y transmitida digitalmente a travs de la barrera en donde en la Salida recibe la seal modulada y la convierte de nuevo en una voltaje analgico eliminando el rizo inherente a la modulacin.

ID:PR-ELEC-36

Pgina 2 de 7

Concurso de Proyectos - INTERCON - 2010

Fig. 4.

Amplificador de aislamiento ISO124

2.4

Filtro

Para esta etapa se opt hacer le filtro con amplificadores operacionales. El diseo se desarrolla la funcin de transparencia de acuerdo al tipo. Orden y Ancho de Banda que se solicita e igualar con una funcin de transferencia de la anterior configuracin lo cual nos ahorra trabajo en resolver ms ecuaciones y despejar los valores de los componentes. De acuerdo con el tipo de registro para este proyecto el filtro debe ser un filtro pasa banda de 30 a 500Hz que es ah donde se encuentran las seales electromiografas. 2.5 Conversor A/D Para esta etapa se utiliz un microcontrolador de la marca Microchip el modelo utilizado es el PIC 18F2550.

Fig. 6.

Sistema de adquisicin de las seales.

2.6

Software

El software que se utiliz para la visualizacin de las seales electromiografcas (EMG), en primera opcin se tuvo desarrollarlo en Labview 8.6 ,pero con las pruebas obtenidas se opt por el software Matlab 7.8 Para su tratamiento y mejo r visualizacin de las seales obtenidas.

Fig. 7.

Seal obtenida

Fig. 5.

Microcontrolador PIC 18f2550

Se desarroll un programa para el tratamiento de la seal obtenida y desarrollar la debida comparacin para controlar el robot mvil en los cuatro puntos cardinales.

Se escogi este modelo por que dispone la conexin de datos por el protocolo USB 2. En donde se program en C, el compilador utilizado es de la compaa CCS COMPILER.inc donde se elabor la programacin utilizando el convertidor anlogo digital (ADC) que dispone este modelo. -Diagrama de adquisicin de las seales electromiograficas y su respectivo envi hacia el ordenador para su tratamiento

Fig. 8.

Interfaz usuario de control y reconocimiento

ID:PR-ELEC-36

Pgina 3 de 7

Concurso de Proyectos - INTERCON - 2010

Para el control y reconocimiento de las seales se bas en las Transformadas Rpida de Fourier (FFT) el cual tiene una gran importancia en una gran variedad de aplicaciones en el procesamiento digital de seales. De acuerdo a que direccin se desea mandar al mvil se tiene ya grabadas archivos WAV con las palabras Adelante, Izquierda, Derecha y Atrs. Y hacer la respectiva comparacin de las seales ingresadas para su correcto reconocimiento. 2.7 Robot mvil Se realiz una plataforma bsica de un robot mvil en cuyo principal componente se tendr a un microcontrolador de la marca MICROCHIP el modelo utilizado es 18f4550, el cual controlara al mvil de acuerdo a los pulsos enviados por el programa realizado ,dicha comunicacin se desarroll por el puerto serial de la computadora para su mejor y fcil desarrollo.

4.

Conclusiones

En la elaboracin del presente proyecto de investigacin involucra en principio un problema de medicina, con lo que aprendi e amplio los conocimiento que se tena sobre la actividad elctrica del cerebro y los potenciales evocados. El problema planteado se resuelve utilizando la electrnica con lo cual se aprende mucho sobre el diseo, tratamiento y una de las muchas aplicaciones que se puede realizar con las seales electromiograficas y as se pueda continuar desarrollando las investigaciones sobre seales electromiograficas con relacin al habla silenciosa y as realizar futuras mejoras.

5.

Referencias

3.

Resultados y discusin

Los resultados del proyecto son ptimos teniendo en cuenta la elaboracin y el costo del proyecto. - Cabe indicar que se presenta algunos errores de adquisicin por el uso de los electrodos ante una superficie mojada por tal se tiene que tener cuidado al momento de colocar los electrodos hacia la persona que comandara el mvil mediante el habla silenciosa. - En los amplificadores de instrumentacin ya que se trabaja con seales muy sensibles al ruido se recomienda la utilizacin de fuentes distintas para el correcto funcionamiento de los amplificadores de instrumentacin. - Se observ que la elaboracin del algoritmo para el reconocimiento de la seal electromiografica (voz) presenta alguna alteraciones a la hora de reconocer dichas seales ,la causa es porque no se utiliz un algoritmo ms complejo en el tratamiento digital de seales ya que es un rea muy amplia y compleja. Teniendo ya los resultados favorables y no pudiendo comparar con otras investigaciones sobre las seales electromiograficas EEG basadas en el habla silenciosa se seguir estudiando e investigando sobre de las muchas seales electromiograficas generadas por el ser humano y seguir contribuyendo en la elaboracin de nuevas tecnologas en el campo de la bioelectronica y poder ayudar a resolver las necesidad de la humanidad.

Webster J.; Medical Instrumentation; third edition; 1998 Compilador C Ccs Y Simulador Proteus Para Microcontroladores Pic Libros sobre la programacin en Matlab disponible para su descarga en http://www.librosparadescargar.com/ebook-6/1125169754aprenda-matlab-61-como-si-estuviera-en-primero [4] Tutoriales sobre el compilador ccs pic para microntroladores http://pic-linux.foroactivo.net/ccs-f7/tutorial-del-compilador-ccst95.htm [5] Libro de Acondicionamiento de seal de Pallas Ramos [6] Hoja de datos de INA128 http://www.datasheetcatalog.com/datasheets_pdf/I/N/A/1/INA128.sht ml [7] Hoja de datos de DCR021205P http://search.datasheetcatalog.net/key/DCR021205P [8] Hoja de datos de ISO124 http://search.datasheetcatalog.net/key/ISO124 [9] Hoja de datos de los Microntroladores 18f x5xx http://search.datasheetcatalog.net/key/18F2550 [10] Informacin adicional de usb 2 http://www.everythingusb.com/usb2/faq.htm [1] [2] [3]

6.

Anexos 6.1. Programa del microcontrolador 18f2550

Programa para la adquisicin de la seal electromiografca mediante el microcontrolador y envio de la seal mediante USB al ordenador. Intro_Seal.c #include #DEVICE ADC=8 #fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,US BDIV,PLL5,CPUDIV1,VREGEN #use delay(clock=48000000) #define USB_HID_DEVICE FALSE //deshabilitamos el uso de las directivas HID #define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt transfers #define USB_EP1_RX_ENABLE USB_ENABLE_BULKPgina 4 de 7

ID:PR-ELEC-36

Concurso de Proyectos - INTERCON - 2010

//turn on EP1(EndPoint1) for OUT bulk/interrupt transfers #define USB_EP1_TX_SIZE 1 //size to allocate for the tx endpoint 1 buffer #define USB_EP1_RX_SIZE 2 //size to allocate for the rx endpoint 1 buffer #include //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver #include //Configuracin del USB y los descriptores para este dispositivo #include //handles usb setup tokens and get descriptor reports //Asignacion de variables #define LEDV PIN_C1 #define LEDR PIN_C0 #define LED_ON output_high #define LED_OFF output_low #define modo recibe[0] #define param recibe[1] #define Senal envia[0] //declaramos variables globales void temp (void); int8 recibe[2]; int8 envia[1]; int8 dato; void main(void) { set_tris_d(0x00); //Configuracion para el puerto D como salida output_d(0x00); //Limpiamos el puerto D setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); disable_interrupts(GLOBAL); //deshabilitamos todas las interrupciones LED_OFF(LEDV); //Apagamos led Verde LED_ON(LEDR); //Encendemos led Rojo usb_init(); //inicializamos el USB usb_task(); //habilita periferico usb e interrupciones usb_wait_for_enumeration(); //esperamos hasta que el PicUSB sea configurado por el host setup_port_a( ALL_ANALOG ); //habilitamos el puerto a para entrada analogica setup_adc(ADC_CLOCK_INTERNAL); //Utilizamos el reloj interno LED_OFF(LEDR); //Apagamos el led Rojo LED_ON(LEDV); //encendemos led verde while (TRUE) { if(usb_enumerated()) //Si el PicUSB est configurado { if (usb_kbhit(1)) //Si el endpoint de salida contiene datos del host { usb_get_packet(1, recibe, 2); //Cachamos el paquete de tamao 2bytes del EP1 y almacenamos en recibe if (modo==1) //modo salida digital d1,d2,d3,d4,d5,d6,d7,d8 { output_d(param); //El dato param recibido lo mandamos al puerto o registro d } else if(modo==2)//modo analogico temperatura

{ temp(); //Adquirimos la seal analogica usb_put_packet(1,envia,2,USB_DTS_TOGGLE); //enviamos el paquete de tamao 1byte del EP1 al PC } else if(modo==4)//Todo al mismo tiempo { temp(); usb_put_packet(1,envia,2,USB_DTS_TOGGLE); output_d(param); } else output_d(0x00);// Limpiamos el puerto D } } } } void temp (void) { set_adc_channel(2); // Tomamos datos del canal 5 (Pin4 RA2/AN2) delay_us(4); // Hacemos un retardo de 4 ms dato=read_adc(); // Leemos el dato delay_us(10); // Hacemos un retardo de 10 ms Senal=dato; // El dato leido lo almacenamos en Senal }

6.2.-Programas en el software matlab 2009 Los programas se realizaron en diferentes archivos son en primera consiste en grabar las seales para despus ser comparadas con un archivo de ingreso Archivo Grabar_Seales.mclear all clc t_in=2; temp=t_in*20000; a1= analoginput ('winsound'); ch1 = addchannel(a1,1); a1.SampleRate = 44100; a1.SamplesPerTrigger = temp; a1.TriggerType = ('Immediate'); start(a1); %grabando [d,t]= getdata(a1); stop(a1); wavwrite(d,44100,'voz_usuario'); sound(d,44100);

El Segundo programa consiste en normalizar la seal adquirida en lo limites de 1 y -1 en le eje Y ya que el eje X esta dado por tiempo (tiempo real) para eso se desarrollo : function sonidoN=normalizar(sonido) maximo=max(abs(sonido)); n=length(sonido); sonidoN=zeros(1,n); for i=1:1:nPgina 5 de 7

ID:PR-ELEC-36

Concurso de Proyectos - INTERCON - 2010

sonidoN(i)=sonido(i)/maximo; end end

El tercer paso se desarrollo la etapa de reconocimiento de las seales ya almacenadas con el archivo Grabar_Seal.m y la seal entrantre para ello tambin se desarrollo el programa de reconocer_seal.m%Cargando de la base de datos derecha = wavread('derecha'); izquierda = wavread('izquierda'); adelante = wavread('adelante'); atras = wavread('atras'); pare = wavread('pare'); digito0 digito1 digito2 digito3 digito4 = = = = = normalizar(derecha); normalizar(izquierda); normalizar(adelante); normalizar(atras); normalizar(pare); = = = = = abs((fft(digito0))); abs((fft(digito1))); abs((fft(digito2))); abs((fft(digito3))); abs((fft(digito4)));

% unrecognized property name or invalid value makes property application % stop. All inputs are passed to Principal_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Principal % Last Modified by GUIDE v2.5 04-May-2010 15:15:07 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Principal_OpeningFcn, ... 'gui_OutputFcn', @Principal_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

fftdigito0 fftdigito1 fftdigito2 fftdigito3 fftdigito4

6.3.-Programa Principal donde se desarroll la interfaz grfica. function varargout = Principal(varargin) % PRINCIPAL M-file for Principal.fig % PRINCIPAL, by itself, creates a new PRINCIPAL or raises the existing % singleton*. % % H = PRINCIPAL returns the handle to a new PRINCIPAL or the handle to % the existing singleton*. % % PRINCIPAL('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in PRINCIPAL.M with the given input arguments. % % PRINCIPAL('Property','Value',...) creates a new PRINCIPAL or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Principal_OpeningFcn gets called. An

% --- Executes just before Principal is made visible. function Principal_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Principal (see VARARGIN) % Choose default command line output for Principal handles.output = hObject; % Update handles structure guidata(hObject, handles);Pgina 6 de 7

ID:PR-ELEC-36

Concurso de Proyectos - INTERCON - 2010

digitousuario = normalizar(voz); % UIWAIT makes Principal wait for user response (see UIRESUME) % uiwait(handles.figure1); fftdigitousuario = abs(fft(digitousuario)); patrondigitousuario = abs(log(fftdigitousuario)*(-20)); % --- Outputs from this function are returned to the command line. function varargout = Principal_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;

error2(adelante) = mean(abs(fftdigito0 - fftdigitousuario)); error2(atras) = mean(abs(fftdigito1 - fftdigitousuario)); error2derecha3) = mean(abs(fftdigito2 - fftdigitousuario)); error2(izquierda) = mean(abs(fftdigito3 - fftdigitousuario)); errordigito2 = min(error2);

display(errordigito2);

if(errordigito2 == error2(adelante)) set(handles.text5, 'String','adelante') end if(errordigito2 == error2(atras)) set(handles.text5, 'String','atras') end if(errordigito2 == error2(derecha)) set(handles.text5, 'String','derecha') end if(errordigito2 == error2(izquierda)) set(handles.text5, 'String','izquierda') end % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) clear all; Grabar_Senal; % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) clear all; d = wavread('voz_usuario'); sound(d,44100); % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) reconocer_Seal; voz = wavread('voz_usuario'); %Normalizando en Y

ID:PR-ELEC-36

Pgina 7 de 7