UNICENP – Centro Universitário Positivo Núcleo de Ciências Exatas e Tecnológicas Engenharia da Computação DISPOSITIVO BASEADO EM ELETRO-OCULOGRAMA PARA AUXÍLIO DE DEFICIENTES FÍSICOS NA UTILIZAÇÃO DO COMPUTADOR Autor: Rodolfo Enrique Ribeiro Baggio Orientador: Prof. Valfredo Pilla Jr. Curitiba 2003 SUMÁRIO LISTA DE FIGURAS .............................................................................................................iv LISTA DE TABELAS ............................................................................................................ v LISTA DE ABREVIATURAS ...............................................................................................vi 1 INTRODUÇÃO .............................................................................................................. 1 2 ESPECIFICAÇÃO ......................................................................................................... 2 2.1 DESCRIÇÃO .......................................................................................................... 2 2.2 FISIOLOGIA E ELETROFISIOLOGIA DO OLHO ............................................. 3 2.2.1 Movimentos oculares e seus controles ........................................................... 3 2.2.2 Movimento de fixação dos olhos .................................................................... 3 2.2.3 Mecanismo sacádico dos olhos....................................................................... 4 2.2.4 Formação do campo de potencial elétrico ...................................................... 4 2.2.5 O papel da retina ............................................................................................. 5 2.3 3 EOG – ELETRO-OCULOGRAMA ....................................................................... 7 2.3.1 Capturando EOG ............................................................................................ 8 2.3.2 Resposta sacádica ........................................................................................... 9 2.3.3 Considerações quanto à intensidade luminosa ............................................. 10 2.4 AQUISIÇÃO DE DADOS – AMPLIFICADORES / FILTRAGEM ................... 10 2.5 ALGORITMO DE RECONHECIMENTO .......................................................... 10 2.6 INTERFACE MOUSE.......................................................................................... 11 2.7 PROGRAMA DA APLICAÇÃO TESTE (CALCULADORA) .......................... 11 2.8 ESPECIFICAÇÃO DE HARDWARE ................................................................... 11 2.9 MÓDULOS DE EXTENSÃO .............................................................................. 12 PROJETO ..................................................................................................................... 13 3.1 DIAGRAMA EM BLOCOS DOS MÓDULOS................................................... 13 3.2 MÓDULO DE AQUISIÇÃO ............................................................................... 14 3.2.1 Eletrodos ....................................................................................................... 15 3.2.2 Amplificadores de Instrumentação ............................................................... 15 3.3 MÓDULO DE TRATAMENTO .......................................................................... 17 3.4 MÓDULO DE PROCESSAMENTO ................................................................... 17 3.4.1 O microprocessador PIC ............................................................................... 18 i 3.4.2 Conversor A/D .............................................................................................. 18 3.4.3 O Algoritmo de processamento .................................................................... 19 3.3.4 Fluxograma geral do algoritmo de processamento ....................................... 19 3.5 MÓDULO DE INTERFACEAMENTO .............................................................. 20 3.5.1 Informação do circuito do mouse ................................................................. 21 3.5.2 Protocolo de transmissão de dados do mouse ............................................... 21 3.6 PROJETO DE SOFTWARE .................................................................................. 23 3.6.1 Programa para Treinamento dos Movimentos Teste .................................... 23 3.6.2 Protótipo de Telas ......................................................................................... 23 3.6.3 Posicionamento do Usuário, Movimentos x Sinais ...................................... 25 3.7 4 PROTOCOLOS DE ANÁLISE, TESTES E VALIDAÇÃO ............................... 26 3.7.1 Módulo de aquisição/tratamento do sinal EOG............................................ 26 3.7.2 Módulo de processamento do sinal............................................................... 27 3.7.3 Módulo de interfaceamento com o PC ......................................................... 27 3.7.4 Módulo de software ...................................................................................... 28 3.7.5 Sistema completo .......................................................................................... 28 3.8 CRONOGRAMA DO PROJETO......................................................................... 28 3.9 ESTIMATIVA DE INVESTIMENTO ................................................................. 29 3.10 PLATAFORMA DE DESENVOLVIMENTO .................................................... 30 IMPLEMENTAÇÃO .................................................................................................... 31 4.1 5 MÓDULO DE AQUISIÇÃO ............................................................................... 31 4.1.1 Circuito de Aquisição ................................................................................... 32 4.1.2 Análise do sinal (Osciloscópio) .................................................................... 32 4.1.3 Análise do sinal (Kit National) ..................................................................... 33 4.2 MÓDULO DE TRATAMENTO .......................................................................... 34 4.3 MÓDULO DE PROCESSAMENTO ................................................................... 34 4.4 MÓDULO DE INTERFACEAMENTO .............................................................. 35 4.5 MÓDULO DE SOFTWARE................................................................................ 36 4.6 ALTERNATIVA DE PROCESSAMENTO/INTERFACEAMENTO ................ 39 RESULTADOS ............................................................................................................ 42 5.1 TIPOS DE ELETRODOS..................................................................................... 42 ii 5.2 AQUISIÇÃO/TRATAMENTO ............................................................................ 43 5.3 PROCESSAMENTO/INTERFACEAMENTO .................................................... 44 5.4 ALTERNATIVA DE PROCESSAMENTO/INTERFACEAMENTO ................ 44 6 CONCLUSÃO .............................................................................................................. 45 7 REFERÊNCIAS ........................................................................................................... 47 ANEXO I – ESQUEMÁTICO AQUISIÇÃO/TRATAMENTO .......................................... 48 ANEXO II – ESQUEMÁTICO PROCESSAMENTO......................................................... 49 ANEXO III – ESQUEMÁTICO CONVERSOR A/D.......................................................... 50 ANEXO IV – ESQUEMÁTICO INTERFACE PORTA PARALELA ............................... 51 ANEXO V – ARQUITETURA INTERNA PIC16F877A ................................................... 52 ANEXO VI – LAYOUT PLACA PROCESSAMENTO ..................................................... 53 ANEXO VII – LISTA DE MATERIAIS ............................................................................. 54 ANEXO VIII – FLUXOGRAMA DO ALGORITMO DE PROCESSAMENTO ............... 55 ANEXO IX – DATASHEET INA (128) ............................................................................... 59 ANEXO X – PROGRAMA ASSEMBLY DE CONTROLE................................................. 60 iii LISTA DE FIGURAS Figura 1 – Sessão horizontal de um olho ................................................................................ 5 Figura 2 – Estrutura celular da retina ..................................................................................... 6 Figura 3 – Sinais de EOG gerados pelos movimentos horizontais......................................... 8 Figura 4 – Conexão horizontal e vertical dos eletrodos ......................................................... 9 Figura 5 – Diagrama em blocos ............................................................................................ 14 Figura 6 – Estrutura interna do amplificador de instrumentação (INA 128)........................ 16 Figura 7 – Filtro passa-baixas 1a. Ordem. ............................................................................. 17 Figura 8 – Fluxograma geral do algoritmo. .......................................................................... 19 Figura 9 – Circuito mouse RS232 (Controlador HM535DA). ............................................. 22 Figura 10 – Tela do software de treinamento e análise ........................................................ 24 Figura 11 – Tela da calculadora............................................................................................ 24 Figura 12 – Posição dos eletrodos movimento vertical........................................................ 25 Figura 13 – Posição dos eletrodos movimento horizontal.................................................... 25 Figura 14 – Sinal de EOG do movimento horizontal realizado para direita. ....................... 33 Figura 15 – Sinal de EOG do movimento horizontal realizado para esquerda. ................... 33 Figura 16 – Movimento horizontal rápido para direita......................................................... 33 Figura 17 – Movimento horizontal lento para direita. .......................................................... 34 Figura 18 – Tela Inicial do aplicativo. .................................................................................. 36 Figura 19 – Tela de Treinamento.......................................................................................... 37 Figura 20 – Tela da Calculadora........................................................................................... 38 Figura 21 – Tela da Ajuda. ................................................................................................... 38 Figura 22 – Janela das Propriedades do Mouse. ................................................................... 40 Figura 23 – Valores correspondente ao estado de repouso................................................... 41 Figura 24 – Eletrodos testados (a) ouro (b) prata (c) prata/cloreto de prata. ........................ 43 Figura 25 – Sinal de EOG do movimento horizontal realizado para direita. ....................... 43 Figura 26 – Sinal de EOG do movimento horizontal realizado para esquerda. ................... 43 iv LISTA DE TABELAS Tabela 1 – Formato do protocolo Microsoft. ........................................................................ 21 Tabela 2 – Formato do protocolo Mouse Systems. ............................................................... 22 Tabela 3 – Cronograma do projeto (A)................................................................................. 28 Tabela 3 – Cronograma do projeto (B). ................................................................................ 29 Tabela 4 – Estimativa de custos............................................................................................ 29 Tabela 5 – Lógica de Controle do Mouse. ............................................................................ 35 v LISTA DE ABREVIATURAS EOG – Eletrooculograma PC – Personal Computer OPL – Outer plexiform layer (camada plexiforme externa) IPL – Inner plexiform layer (camada plexiforme interna) EPR – Epitélio Pigmentar da Retina REM – (Rapid Eye Movement) CPI – (Counts per Inch) A/D – Analógico Digital DDP – Diferença de Potencial MSB – Bit mais significante LSB – Bit menos significante RAM – Random Access Memory API – Application Programming Interface vi 1 INTRODUÇÃO O estudo de sinais biomédicos é muito profundo devido o fato de existir a necessidade de encontrar soluções para problemas médicos. A área que estuda e encontra essas soluções é conhecida como Engenharia Biomédica. Um transdutor muito utilizado para medir e capturar os sinais de potenciais elétricos do corpo humano ou biopotenciais é chamado de eletrodo. Ele é uma interface entre o corpo e o circuito que realiza a medição. Seu comportamento transdutor transforma a corrente do corpo que é de íons em corrente de elétrons, ou seja, transforma corrente iônica em corrente elétrica. O eletrodo mais utilizado é chamado de “body-surface electrode”, traduzido para eletrodo da superfície da pele. Neste projeto a utilização deste transdutor faz com que os sinais iônicos gerados pelo movimento dos olhos, conhecido como sinal eletro-oculográfico, (EOG) sejam capturados e transformados em sinais elétricos e transmitidos para o circuito responsável pela amplificação, filtragem e detecção. Para isso utilizam-se amplificadores operacionais configurados especificamente para tais responsabilidades. O sinal posteriormente é submetido a um algoritmo de processamento de sinais para transformar o dado em informação, informação aqui tratada como movimento do cursor do mouse. Com base nesta tecnologia o objetivo deste projeto é desenvolver um dispositivo capaz de substituir o mouse convencional, mantendo suas as ações de movimento e clique. O papel deste dispositivo e transformar os sinais dos movimentos do EOG em sinais de movimento do cursor do mouse de um computador. Seu desenvolvimento tem em vista facilitar o uso de computadores por deficientes físicos. A principal vantagem deste dispositivo é a portabilidade que ele oferece, pois pode ser usado independentemente da plataforma, desde que no computador exista uma interface mouse serial para a instalação. 1 2 ESPECIFICAÇÃO Aqui é apresentada a especificação do projeto, que envolve o estudo e pesquisa na área de engenharia de reabilitação de dispositivos baseados no sinal eletro-oculográfico para auxílio de deficientes físicos na utilização do computador. 2.1 DESCRIÇÃO A linha de pesquisa e desenvolvimento deste projeto está ligada à engenharia biomédica, na área de projeto de equipamentos de prótese. O projeto consiste em um dispositivo, ou aparelho capaz de auxiliar deficientes físicos, especialmente deficientes motores, na utilização de computadores. Este dispositivo substitui o mouse, exercendo a mesma função: movimento no eixo horizontal, no eixo vertical e a ação de seleção por meio do apontador na tela de computador. Deficientes físicos, especificamente pessoas com deficiências motoras, possuem a necessidade de estarem aptos a exercer atividades que possam auxiliar seu próprio desenvolvimento. Para isso surge a pergunta. Como fazer com que essas pessoas possam realizar tais tarefas? Uma resposta é um equipamento que substitui o mouse convencional por um controle baseado no sinal eletro-oculográfico, ou seja, capaz de produzir os movimentos e ações do mouse através do movimento dos olhos. Este dispositivo envolve hardware e software e uma aplicação de teste, que pode ser utilizada para que usuários do equipamento sejam treinados em sua utilização. A aplicação consiste em uma calculadora básica de quatro operações que ocupa toda a tela do computador operada pelo cursor do mouse. Por meio de um conjunto de eletrodos instalados na face, amplificadores e um algoritmo de detecção, os sinais do EOG podem ser identificados, são eles: associado ao movimento na direção horizontal, nos sentidos dos olhos para esquerda e para direita e na direção vertical nos sentidos dos olhos para cima e para baixo. O clique é realizado automaticamente via software, onde só é realizado quando um ponto está sendo observado por 3s, ou seja, se não ocorreu variação na posição do cursor então automaticamente é 2 realizado o clique. O aparelho é ligado na interface serial de um PC substituindo diretamente o mouse convencional. Um algoritmo de processamento de sinais é usado para selecionar a direção de apontamento e o módulo de software é responsável pelo clique. O projeto é dividido em módulos 2.2 1. Módulo de aquisição do sinal EOG 2. Módulo de tratamento do sinal 3. Módulo de processamento do sinal 4. Módulo de interfaceamento com o PC 5. Módulo de software de utilização FISIOLOGIA E ELETROFISIOLOGIA DO OLHO 2.2.1 Movimentos oculares e seus controles O sistema cerebral de controle dirige os olhos para o objeto a ser examinado. Os movimentos oculares utilizam seis músculos, divididos em três pares [GUYTON, 1997]: (1) Os retos medial e lateral: Contraem-se reciprocamente, movem os olhos de um lado para o outro. (2) Os retos, superior e inferior: Contraem-se reciprocamente, movem os olhos para cima e para baixo. (3) Os oblíquos, superior e inferior: Giram os globos oculares para manter os campos visuais na posição vertical. 2.2.2 Movimento de fixação dos olhos A fixação dos olhos é controlada por dois mecanismos neurais: 1) Mecanismo de fixação voluntária: permite o movimento voluntário dos olhos para fixar a visão em um objeto. 2) Mecanismo de fixação involuntário: Movimento involuntário que mantém os olhos firmemente sobre o objeto depois de encontrado. 3 2.2.3 Mecanismo sacádico dos olhos O mecanismo tem como função a fixação sucessiva de pontos. São movimentos dos olhos quando se fixam em um ponto após o outro no campo visual, saltando de um para outro em 2 a 3 segundos. Estes saltos são chamados de sacadas, e os movimentos são chamados de movimentos optocinéticos. São movimentos tão rápidos que gastam mais de 90% do tempo dedicado aos sítios de fixação e os 10% restantes realizam o movimento dos olhos. Nos movimentos sacádicos os olhos executam movimentos de um lado para outro e para cima e para baixo quando o objeto observado é fixo [GUYTON, 1997]. 2.2.4 Formação do campo de potencial elétrico Um dipolo é formado entre a córnea e a retina onde, a córnea é pólo positivo e a retina é o pólo negativo. A magnitude do sinal está entre 0.4 – 1.0 mV [MALMIVUO, 1995]. A diferença de potencial e a rotação dos olhos são a base do sinal medido pelos eletrodos. Este sinal é conhecido como Eletro-Oculograma (EOG). A luz entra na frente do olho e atravessa a córnea: atrás da córnea existe um fluído transparente chamado, humor aquoso. A principal função é prover nutrientes para a córnea e o cristalino, também gerar uma pressão de 20-25 mmHg, que infla o olho contra os limites inelásticos da esclera e coróide. Este assegura a configuração geométrica apropriada para a formação das imagens pelo caminho ótico. O cristalino está localizado atrás do humor aquoso. O índice de refração e a forma são controlados pelos músculos ciliares. O cristalino, completa a focalização da luz, começando na córnea e terminando na retina. Entre o cristalino e a retina existe um líquido (gel) chamado humor vítreo. 4 Figura 1 – Sessão horizontal de um olho O centro da visão é focado na retina para a fóvea, onde a precisão visual é melhor (mais alta). A retina contém células fotossensíveis e outras muitas camadas de células nervosas. Essa combinação gera os pulsos relativos a imagem visual que passa dos olhos para o cérebro por meio do nervo ótico. 2.2.5 O papel da retina A luz entra através da estrutura neural para os fotoreceptores, chamados de cones e bastonetes. Logo atrás dos fotoreceptores está o epitélio pigmentar da retina (EPR). Onde a principal função é suprir as necessidades metabólicas dos fotoreceptores, além de outras funções de suporte. Os bastonetes respondem a luz escura, os cones contribuem para a visão em luz brilhante e colorida. Este é o lugar da excitação visual. 5 O passo inicial na transformação da informação da luz em um sinal elétrico propagando até os fotoreceptores é chamado de transdução. A sinapse dos fotoreceptores com uma célula horizontal e uma célula bipolar é conhecida como TRIAD. O sinal é transmitido via célula horizontal resultando na inibição das células receptoras vizinhas (inibição lateral). A célula bipolar responde eletricamente com hiperpolarização ou despolarização. A sinapse ocorre das células bipolares para as células ganglionares. Esta conexão sináptica, no entanto, é modulada pelas células amácrinas. Tais células providenciam um feedback negativo e deste modo permite regular a sensitividade da transmissão da bipolar para células ganglionares para níveis suaves. Figura 2 – Estrutura celular da retina A magnitude deste baixo potencial é usada pela célula ganglionares para estabelecer o que é chamado de taxa de disparo, um processo que converte de modulação de amplitude 6 para modulação pulso-frequência. A região da EPR e a porção posterior dos fotoreceptores são chamadas de camada nuclear externa. A região de contato dos fotoreceptores com as células bipolares é conhecida como outer plexiform layer (OPL), camada plexiforme externa. A principal função da OPL é processar o sinal. As células bipolares e amácrinas formam a camada nuclear interior. A região de contato das células bipolares e amácrinas com as células ganglionares é chamada de inner plexiform layer (IPL), camada plexiforme interna. As comunicações entre essas células formam o sinal elétrico que pode ser capturado, chamado de eletro-oculograma. 2.3 EOG – ELETRO-OCULOGRAMA Em 1848 Emil du Bois-Reymond observou que a córnea do olho é eletricamente positiva em relação à parte de traz do olho. O dipolo está orientado da córnea para a retina, este potencial é a base para o eletro-oculograma (EOG). Tal potencial corneoretinal é bem estável e está no alcance de 0.4 – 1.0 mV. Movimentos dos olhos assim produzem um movimento do dipolo e, conseqüentemente, sinais que são a medida do movimento podem ser obtidos. A Figura 4 mostra como se mensura o movimento horizontal do olho colocando um par de eletrodos ao lado dos olhos. Com o olho em descanso os eletrodos estão efetivamente com o mesmo potencial e não existe tensão sendo capturada. A rotação do olho para a direita resulta em uma diferença de potencial, com o eletrodo na direção do movimento ficando positivo em relação ao segundo eletrodo (idealmente a diferença de potencial é proporcional ao seno do ângulo do movimento). O efeito oposto que resulta da movimentação para a direita, também é ilustrado. A calibração do sinal pode ser executada pelo olhar do usuário em dois pontos diferentes localizados em um ângulo conhecido e adquirindo concomitantemente EOGs. A precisão típica executada é de ±2o , e a rotação máxima de ±70o , no entanto, para ângulos entre 30o não é observada uma linearidade progressiva [Young, 1988]. As magnitudes dos sinais mais típicas atingem em torno de 520 µV/º. A Eletro-oculografia possui vantagens e desvantagens em relação a outros métodos de determinação do movimento dos olhos. A desvantagem mais importante advém do fato 7 que o potencial corneoretinal não é fixo, tem comportamento diversificado dia-a-dia, e é afetado pela luz, fadiga e outras propriedades. Conseqüentemente, há a necessidade de calibração e recalibração. A vantagem desta técnica inclui a captura do sinal com interferência mínima com atividades do sujeito e mínimo desconforto. Além disto, é um método onde os sinais podem ser adquiridos na total escuridão e/ou com os olhos fechados. Hoje a captura de EOG é normalmente aplicada na investigação do sistema oculomotor humano como método de diagnóstico. Figura 3 – Sinais de EOG gerados pelos movimentos horizontais 2.3.1 Capturando EOG A componente DC de um sinal de EOG representa a direção constante do olhar. Os movimentos verticais são detectados por eletrodos colocados sobre e abaixo dos olhos. E os movimentos horizontais são detectados por eletrodos colocados em qualquer lugar ao lado dos olhos (Figura 4). É comum capturar os movimentos horizontais de ambos os olhos, para isso é preciso colocar mais um par de eletrodos na direção vertical do nariz, capturando assim individualmente os movimentos horizontais de cada olho. 8 Durante o piscar, os olhos rolam para cima, deflexionando o sinal vertical. O reflexo do piscar é envolvido por um mecanismo de proteção que ao piscar as pálpebras baixam e o olho sobe, protegendo a córnea de qualquer tipo de dano [ADINSTRUMENTS, 2003]. Figura 4 – Conexão horizontal e vertical dos eletrodos 2.3.2 Resposta sacádica Como descrito anteriormente, os movimentos sacádicos descrevem rápidos saltos do olho para um ponto de fixação a outro. A velocidade está entre 20-70o /s. Os movimentos são suaves sem sacolejos e lentos, com amplas rotações do olho para manter a fixação em um objeto em movimento sem movimento da cabeça. O movimento angular atinge cerca de 1-30o /s. Perseguir um determinado objeto significa que somente os olhos estão em movimento e compensatório se o movimento do olho é produzido pelo movimento do corpo e/ou da cabeça. Os movimentos anteriormente citados são normalmente conjugados, envolvem movimentos paralelos do olho de um lado pra outro. De fato, isso é considerado na instrumentação, por isso é necessária a utilização de pares de eletrodos ao lado de cada olho. 9 2.3.3 Considerações quanto à intensidade luminosa A captura do sinal de EOG é melhor com a incidência de luz do que quando escuro. Quando existe luminosidade obtém-se uma razoável precisão na captura das direções em que os olhos estão olhando e o movimento dos olhos, porém, pode-se também mensurar quando os olhos estão fechados significando a ausência de luz, permitindo a identificação do REM (Rapid Eye Movement), esse movimento é normalmente analisado no estudo do sono. 2.4 AQUISIÇÃO DE DADOS – AMPLIFICADORES / FILTRAGEM Para a aquisição dos sinais é necessária a utilização de amplificadores que além de aumentar o ganho devem manter a componente DC, filtrando em outro passo a freqüência desejada. Utilizar um amplificador de instrumentação para a captura dos sinais pelos eletrodos, com ganho de 150 vezes. É necessário também usar um filtro passa-baixas, Butterworth com configuração MFB de freqüência de corte em 20Hz e ganho igual a 22 vezes. Totalizando um ganho de 3300 vezes o sinal de entrada. 2.5 ALGORITMO DE RECONHECIMENTO O algoritmo de reconhecimento é utilizado para o reconhecimento de padrões, neste caso especialmente, o sinal de EOG que será adquirido via eletrodos e transmitido via cabos isolados para evitar ruídos e interferências até o módulo de processamento do sinal. Um algoritmo capaz de reconhecer cada padrão de sinal gerado conforme o movimento dos olhos, e partindo disso movimentar o cursor com base na direção do movimento. 10 2.6 INTERFACE MOUSE A partir do sinal reconhecido devemos estabelecer uma interface entre o sinal transformado pelo algoritmo e o protocolo e a tecnologia utilizada por um mouse convencional. 2.7 PROGRAMA DA APLICAÇÃO TESTE (CALCULADORA) O programa é uma aplicação funcional que serve para a utilização do dispositivo, ou seja, a aplicação consiste em uma calculadora, que é capaz de fazer operações matemáticas definidas por: adição, subtração, multiplicação e divisão. A operações são realizadas entre números inteiros e positivos, ou seja, somente números que não sejam fracionários são utilizados. 2.8 ESPECIFICAÇÃO DE HARDWARE Os seguintes módulos de hardware e software compõem o sistema. Módulo de aquisição Eletrodos de superfície da pele dourados com orifício central de 10mm de diâmetro, amplificadores de instrumentação modelo INA128 da Texas Instruments. Módulo de tratamento Filtros ativos, filtro passa-baixas, usando amplificador operacional com configuração MFB, Butterworth. Módulo de reconhecimento Algoritmo de processamentos de sinais para o reconhecimento do sinal. Para isso utilizando um Microcontrolador PIC 16F877A. Módulo de interfaceamento Circuito padrão de um mouse convencional, baseado na interface serial RS232. 11 2.9 MÓDULOS DE EXTENSÃO O Módulo de extensão consiste na utilização de redes neurais para interpretação dos sinais, juntamente com o movimento fino, ou seja, a utilização direta do dispositivo no desktop. 12 3 PROJETO A descrição a seguir apresenta os módulos de hardware e software projetados conforme descrição mencionada na seção 2.1, identificando quais as tecnologias, técnicas e procedimentos utilizados a fim de atingir os objetivos descritos na proposta e na especificação deste projeto. O projeto é dividido em módulos 1. Módulo de aquisição do sinal EOG 2. Módulo de tratamento do sinal 3. Módulo de processamento do sinal 4. Módulo de interfaceamento com o PC 5. Módulo de software de utilização O Desenvolvimento do projeto é classificado da seguinte forma: • • Projeto Hardware § Aquisição; § Tratamento; § Processamento (Algoritmo de Processamento); § Interface Mouse. Projeto Software § Inicialização; § Calculadora (Aplicativo de utilização). A figura 5 apresenta o diagrama em blocos do projeto identificando os módulos como uma representação do projeto como um todo. 3.1 DIAGRAMA EM BLOCOS DOS MÓDULOS A Figura 5 apresenta o diagrama em blocos do sistema conforme os módulos que serão implementados. Divido em: 13 1. Projeto de hardware: aquisição, tratamento, processamento e interfaceamento do sinal. 2. Projeto de software: programa em linguagem C++ do software de inicialização e calculadora. Figura 5 – Diagrama em blocos 3.2 MÓDULO DE AQUISIÇÃO A fase de aquisição obtém o sinal de EOG por meio de dois dispositivos muito utilizados para capturar biopotenciais. O primeiro dispositivo é o eletrodo que tem como função principal registrar os biopotenciais do corpo. Ele é uma interface entre o corpo e o dispositivo eletrônico, desempenhando um papel de transdutor, o qual converte a corrente iônica que circula pelo corpo em corrente de elétrons que circula pelo circuito eletrônico. O segundo dispositivo é o amplificador de instrumentação que tem como função aumentar a amplitude do sinal que normalmente possui uma intensidade baixa como o sinal de EOG (0.1 mV – 4 mV) para posteriormente ser processado. 14 3.2.1 Eletrodos Os eletrodos utilizados neste projeto são os de disco de ouro com 10mm de diâmetro e furo central, a escolha deste eletrodo foi devido à condutividade a qual o metal ouro apresenta. Porém o papel de interface do eletrodo funciona em conjunto com um gel que é o eletrólito onde ocorrem as reações químicas para transformar as correntes iônicas em elétricas. A instalação como comentada anteriormente na seção 2.3.1 é realizada em pares. Cada par define os movimentos horizontais e verticais. Para a instalação dos eletrodos é necessária a limpeza do local antes da colocação. O rosto do usuário deve ser severamente limpo com álcool para remover a oleosidade da pele que dificulta o processo de transdução do sinal. Os cabos dos eletrodos devem ser trançados para reduzir interferências por campos magnéticos que envolvem o dispositivo e o usuário, reduzindo-se assim a área de superfície onde os sinais de interferências atuam. 3.2.2 Amplificadores de Instrumentação O módulo de aquisição é baseado em um amplificador de instrumentação diferencial com ganho de 150 vezes. Utilizando os pares de eletrodos captura-se o sinal, onde cada par de eletrodos indica um canal e cada canal indica quais são os movimentos, horizontais e verticais. Um resistor externo determina o ganho, que pode variar de 1 a 10000. Para ganhos G 100 o amplificador apresenta alta taxa de rejeição de modo comum (CMRR) igual a 120dB garantindo em um primeiro estágio a eliminação de ruídos de modo comum. Ele opera com uma fonte alimentação que vai de ±5V Uma alta impedância de entrada proporciona uma mínima carga para o sinal medido, e também é pouco suscetível a ruídos. Outros dados podem ser obtidos no Anexo IX o qual apresenta o datasheet das características do amplificador. 15 O primeiro estágio consiste apenas em registrar o sinal de cada canal amplificando o mesmo com um ganho 150 vezes (referente ao resistor de entrada), pode ser observado na Figura. 6, onde o resistor RG determina o primeiro ganho. O ganho é calculado da seguinte forma: Equação 1 – Cálculo do Ganho. Com base nesta equação é possível determinar o resistor RG que ajustará o ganho desejado. O sinal resultante então é submetido à próximo módulo (tratamento) onde o sinal será filtrado a fim de obter um sinal na banda de interesse. Figura 6 – Estrutura interna do amplificador de instrumentação (INA 128). Circuito completo do módulo de aquisição: Existem neste circuito dois amplificadores de instrumentação, cada um corresponde a um canal, horizontal e vertical. Posteriormente um amplificador com ganho de 22 vezes formando o filtro passa-baixa para cada saída dos amplificadores de instrumentação. Também um ajuste de escala para obter-se valores de tensão variando entre 0 e 5V. Juntamente com os pinos de conexão dos eletrodos, fonte de alimentação dos amplificadores. O Anexo I apresenta o esquemático deste módulo. 16 3.3 MÓDULO DE TRATAMENTO Para limitar os sinais captados à banda de interesse para esta aplicação, foi acrescentado um filtro à cadeira de aquisição. É um filtro passa-baixas com freqüência de corte de 20 Hz e ganho igual a vinte e dois (22). O circuito apresentado na Figura 7 mostra a configuração utilizada. Figura 7 – Filtro passa-baixas 1 a . Ordem. Valores dos componentes: Fc = 20Hz G = 22 R1 = 150K R2 = 3,3M R3 = 150K C1 = 1uF 3.4 MÓDULO DE PROCESSAMENTO Após a fase de tratamento o sinal resultante é submetido a um módulo de processamento onde a principal função é converter os sinais dos movimentos em sinais de controle para o circuito de interface do mouse. Para isso o algoritmo deve identificar cada sinal de movimento e converter em forma de pulsos de controle que são submetidos ao 17 circuito do mouse para o controle do cursor na tela. Um microprocessador programado com esse algoritmo controla toda a conversão. O microprocessador utilizado é um PIC modelo 16F877A da Microchip. O módulo de conversão AD do próprio microprocessador transforma o sinal analógico tratado em um sinal digital onde posteriormente o algoritmo identifica o sinal e toma a atitude correspondente ao sinal do movimento identificado. O conversor AD é de 10 bits atingindo valores até 1024. 3.4.1 O microprocessador PIC O modelo de PIC 16F877A é um microcontrolador de 40 pinos onde possui uma via de programação com 14 bits e 35 instruções. 14 Interrupções disponíveis. Memória de programação E2PROM FLASH, permitindo a gravação e regravação de programas. Memória de programa com 8Kwords com capacidade de escrita e leitura pelo próprio código interno. Possui uma memória E2PROM (não volátil) interna com 256 bytes e memória RAM com 368 bytes. Possui também três Timers (2x8 bits e 1x16 bits), comunicação serial SPI, I2C e USART. Possui um conversor Analógico/Digital de 10 bits, dois módulos CCP (Capture, Compare e PWM). Possui 33 portas de entrada e saída configuráveis divididas em 5 PORTs dividas em (A,B,C,D e E) [SOUZA, 2002]. O esquemático do módulo de processamento se encontra no Anexo II, a arquitetura interna do PIC16F877A no Anexo V e o fluxograma do programa no Anexo VIII. 3.4.2 Conversor A/D Devido ao microcontrolador trabalhar somente com valores digitais há necessidade de converter os valores analógicos. Esses valores correspondem a tensão de saída do módulo de que então é submetida à conversão A/D utilizando o próprio conversor do PIC16F877A. A técnica de conversão do A/D é denominada conversão de aproximação sucessiva. A conversão é realizada do bit mais significativo (MSB) para o menos significativo (LSB) onde o MSB representa metade da tensão de referência onde 0 ou 1 já significa saber se a tensão já é maior ou menor do que a metade da tensão de referência. 18 3.4.3 O Algoritmo de processamento O algoritmo deve: • Ler o sinal tratado; • Identificar o movimento com base no sinal lido; • Estabelecer a relação nível de sinal e grau de movimento, direção do movimento; • Processar o sinal gerando os pulsos de controle para a interface do mouse; • Eliminar sinais que não sejam de movimentos, ou seja, não realizar nenhuma ação. 3.3.4 Fluxograma geral do algoritmo de processamento O algoritmo de processamento está divido em várias sub-rotinas onde estão representadas no fluxograma do Anexo VIII. O fluxograma aqui apresentado na figura 8 mostra a visão geral do algoritmo implementado. Figura 8 – Fluxograma geral do algoritmo. 19 3.5 MÓDULO DE INTERFACEAMENTO O sistema de controle típico de um mouse possui as seguintes partes: • • • • • • Sensores; Controlador de mouse; Link de comunicação; Interface de dados; Driver; Software. Sensores são detectores (tipicamente optomecânicos) de movimentos que monitoram o movimento do mouse. O controlador de mouse lê o estado destes sensores e determina o deslocamento do cursor do mouse. Quando esta informação muda o controlador de mouse envia um pacote de dados para a interface de controle de dados do computador. O driver do mouse no computador recebe os dados enviados e decodifica a informação e age movimentando o cursor com base nesta informação. O driver do mouse tem a informação atual do estado do mouse (posição e estado dos botões) e interage com o sistema operacional utilizando as rotinas de movimentação e ações (clique do mouse). O movimento do mouse está dividido em duas seções: i) Movimento do cursor até uma área desejada; ii) Movimento do cursor até um ponto exato desejado. Estes movimentos possuem diferentes características em relação ao CPI (Counts per Inch, velocidade de movimento por polegada) que determinam a velocidade do movimento. Quando o mouse é movimentado rapidamente a velocidade do movimento é de cerca de 400 CPI e quando o movimento é lento a velocidade é de cerca de 100 CPI. O controlador do mouse é responsável pelo ajuste entre movimento versus velocidade. 20 3.5.1 Informação do circuito do mouse O mouse opera com padrão de alimentação (±12V) do RS-232C. A corrente é de 10mA. A comunicação entre o mouse e o PC é dada pela interface RS-232C onde o mouse envia os dados para o computador em níveis os quais são interpretados por um chip RS232C receptor. 3.5.2 Protocolo de transmissão de dados do mouse A transmissão serial dos dados consiste de um simples transistor para consumir menor potência possível. O dado é enviado usando a transmissão assíncrona do padrão RS232C. Existem dois protocolos: O protocolo da Microsoft e o da Mouse Systems. Ambos os protocolos operam em 1200 baud. O da Microsoft usa sete bits sem bit de paridade e o da Mouse Systems usa oito bits sem paridade também. Isto significa que a Microsoft envia mais caracteres por segundo que a Mouse Systems. Modo Microsoft Tabela 1 – Formato do protocolo Microsoft. D7 D6 D5 D4 D3 D2 D1 D0 Byte 1 X 1 LB RB Y7 Y6 X7 X6 Byte 2 X 0 X5 X4 X3 X2 X1 X0 Byte 3 X 0 Y5 Y4 Y3 Y2 Y1 Y0 LB = Left Button RB = Right Button Xn = bit n do delta X Yn = bit n do delta Y 21 Os deltas X e Y são bytes sinalizadores. Valores entre 0 e 127 indicam que o mouse caminha em uma direção positiva. Valores 128 a 255 indicam que o mouse moveu em uma direção negativa. O valor 255 significa –1 e o valor 128 significa –128. Modo Mouse Systems Tabela 2 – Formato do protocolo Mouse Systems. D7 D6 D5 D4 D3 D2 D1 D0 Byte 1 1 0 0 0 0 LB CB RB Byte 2 X7 X6 X5 X4 X3 X2 X1 X0 Byte 3 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Byte 4 X7’ X6’ X5’ X4’ X3’ X2’ X1’ X0’ Byte 5 Y7’ Y6’ Y5’ Y4’ Y3’ Y2’ Y1’ Y0’ LB = Left Button (0=pressionado, 1=não pressionado) CB = Center Button RB = Right Button A diferença entre os formatos dos protocolos está nos dois bytes a mais onde os valores delta X’ e Y’ indicam o valor antigo do movimento. Um exemplo prático de circuito de mouse é apresentado na Figura 9. Figura 9 – Circuito mouse RS232 (Controlador HM535DA). 22 3.6 PROJETO DE SOFTWARE O projeto de software consiste em dois programas que auxiliam na fase de análise do sinal na determinação dos movimentos dos olhos estabelecendo um padrão de movimento pelos sinais registrados, auxilia também na fase de treinamento, utilização e adaptação do dispositivo. 3.6.1 Programa para Treinamento dos Movimentos Teste Consiste em um programa que auxilia na fase de análise do sinal na determinação dos movimentos dos olhos estabelecendo um padrão de movimento pelos sinais registrados, para isso capturando amostras de cada sinal gerado por cada movimento. Ele também é utilizado para um treinamento do dispositivo. O programa basicamente funciona no auxílio ao movimento dos olhos realizado por um usuário voluntário conforme o movimento de um objeto que se desloca na tela do computador. Este objeto pode estar em qualquer posição definida em relação ao movimento protocolado. 3.6.2 Protótipo de Telas Os protótipos de telas do software a ser implementado são descritos como software de treinamento e software de calculadora. A Figura 10 é a tela do software de treinamento onde a caixa de seleção oferece os movimentos que devem ser escolhidos no treinamento do usuário. Depois de escolhido o movimento, o circulo que está na tela executará o movimento escolhido, e o usuário deve executar esse movimento utilizando seus olhos seguindo essa bola. A Figura 11 é a tela da calculadora onde o usuário poderá além de treinar os movimentos, aprender e acostumar-se com o dispositivo. 23 Figura 10 – Tela do software de treinamento e análise Figura 11 – Tela da calculadora 24 3.6.3 Posicionamento do Usuário, Movimentos x Sinais Para definição dos movimentos é utilizado um software de auxilio para que possa ser estabelecida a relação movimento por sinal. A seqüência de movimentos é definida abaixo. O estabelecimento dos os movimentos é realizado com o usuário sentado em uma cadeira, mantendo-se ereto e com a cabeça fazendo 90º com o monitor. Uma distância de ± 50 cm entre o rosto e o monitor é necessária. Na aquisição dos sinais os eletrodos são instalados no individuo conforme o padrão apresentado nas figuras 12 e 13. Figura 12 – Posição dos eletrodos movimento vertical Figura 13 – Posição dos eletrodos movimento horizontal Os eletrodos devem estar conectados ao sistema de aquisição de dados fornecido pela instituição de ensino. Este sistema utiliza uma placa de aquisição de dados da NATIONAL Instruments, é uma placa que converte os sinais analógicos aplicados a suas entradas e através do LABView é possível montar uma estrutura simulada de aquisição com amplificadores de instrumentação e outros componentes e a saída pode ser um arquivo que contém os valores que reproduzirão um sinal. O sistema é utilizado para capturar os sinais de EOG e gravar em um arquivo texto, onde os valores correspondem aos níveis de tensão e a quantidade registrada de valores representa o eixo do tempo. Este arquivo é nomeado da seguinte forma: 25 ID DO USUÁRIO + ID DO NOME DO MOVIMENTO + Nº MOVIMENTOS REALIZADOS Para realizar o movimento o usuário deve selecionar o movimento no software. Para ativar e desativar a aquisição o usuário deve pressionar um botão no momento que iniciar o movimento selecionado. Após todos os sinais padronizados o algoritmo deve identificar cada padrão gerado quando estes forem submetidos a ele na aquisição do sinal. A calibração deve ser realizada estabelecendo os limites horizontais e verticais juntamente com a centralização, o zero grau do movimento. Os movimentos que devem ser realizados são: 1) Movimento Horizontal para direita 2) Movimento Horizontal para esquerda 3) Movimento Vertical para cima 4) Movimento Vertical para baixo 5) Movimento Diagonal Superior para direita 6) Movimento Diagonal Superior para esquerda 7) Movimento Diagonal Inferior para direita 8) Movimento Diagonal Inferior para esquerda 3.7 PROTOCOLOS DE ANÁLISE, TESTES E VALIDAÇÃO Os protocolos de análise, teste e validação definem os procedimentos e regras a serem tomadas e seguidas a fim de garantir que os objetivos determinados estão sendo alcançados. Cada módulo será avaliado, e validado seguindo posteriormente a validação completa do sistema. 3.7.1 Módulo de aquisição/tratamento do sinal EOG Inicialmente, com álcool umedecer um algodão e limpar o rosto do usuário na região de instalação definida na Seção 3.6.3. Instalar, nesta região corretamente os pares de eletrodos para ambos os canais, horizontal e vertical bem como o eletrodo de terra. 26 Conectando os jacarés dos cabos aos eletrodos, fixar os conectores dos eletrodos nos bornes do dispositivo. Conectar a fonte de alimentação a rede elétrica. Na saída dos amplificadores de ganho deve ser colocada a ponta de prova do osciloscópio. Ajustar os parâmetros do osciloscópio, como Volts/Div em 1V/Div com período de amostragem ajustado em 250ms, verificar o comportamento do sinal através da seqüência de movimentos descrita na seção 3.6.3 visualizando as formas de ondas ajustadas em YT, após isso verificar os mesmo movimentos ajustando para XY. Validando assim o módulo de aquisição. 3.7.2 Módulo de processamento do sinal Este módulo é validado de duas formas: 1a. Utilizando um potenciômetro de 10 kO onde uma tensão de 5V é aplicada sobre o potenciômetro e sua saída é submetida a entrada do canal horizontal no pino A0 do microcontrolador. Ao girar o potenciômetro, alterando sua resistência o valor de tensão da saída também é alterado, verifica-se no computador a movimentação do cursor conforme o valor de tensão relativo a movimentação do potenciômetro, ou seja, ao girar para direita o potenciômetro o cursor do mouse deve movimentar-se para direita e girando para esquerda o cursor deve ir para esquerda. Assim também para o canal vertical no pino A1, verificando os movimentos verticais para cima e para baixo. 2a. Conectando a saída dos amplificadores de ganho nas entradas A0 e A1 do PIC, então após ter feito as instalações dos eletrodos testar conforme o movimento dos olhos a movimentação do cursor do mouse, baseado no software de teste de movimentos. Validando assim este módulo, depois de realizar as duas formas de teste. 3.7.3 Módulo de interfaceamento com o PC A validação deste módulo consiste em apenas testar o funcionamento do circuito do mouse o qual faz a ponte entre o módulo de processamento e o microcomputador. Para isso deve-se conectar as saídas RD0, RD1, RD2 e RD3 do microcontrolador nas entradas X1, X2, Y1 e Y2 do circuito controlador do mouse e conectar o plug serial do mouse convencional na entrada serial do microcomputador. 27 3.7.4 Módulo de software Para validar o programa da calculadora deve-se testar se é possível movimentar o cursor do mouse e se ele é capaz de ser utilizado através do dispositivo e também as funcionalidades básicas das operações que ele realiza. Para validar o programa de teste de movimentos este deve ser testado escolhendo o movimento que o circulo deve realizar na caixa de seleção dos movimentos e verificar o funcionamento. 3.7.5 Sistema completo O sistema completo então é automaticamente validado após a aprovação em todos as validações anteriores verificando o funcionamento completo do sistema. Embora a validação do módulo de software já seja a validação do sistema completo. 3.8 CRONOGRAMA DO PROJETO A Tabela 3 apresenta a relação dos módulos com os meses e semanas de desenvolvimento do projeto. Tabela 3 – Cronograma do projeto (A). Mês Semana Proposta Especificação Projeto Módulo de Aquisição Módulo de Tratamento Módulo de Processamento Módulo de Interfaceamento Módulo de Software Consolidação dos Módulos Documentação Final Testes e Correções Fev Mar S1 S2 S3 S4 S1 S2 S3 S4 Abr Mai Jun S1 S2 S3 S4 S1 S2 S3 S4 S1 S2 S3 S4 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 28 Tabela 3 – Cronograma do projeto (B). Mês Semana Jul Proposta Especificação Projeto Módulo de Aquisição Módulo de Tratamento Módulo de Processamento Módulo de Interfaceamento Módulo de Software Consolidação dos Módulos Documentação Final Testes e Correções 3.9 Ago Set Out S1 S2 S3 S4 S1 S2 S3 S4 S1 S2 S3 S4 S1 S2 S3 S4 Nov S1 S2 S3 S4 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ESTIMATIVA DE INVESTIMENTO A estimativa de custo/investimento do projeto toma com base de cálculo os valores dos produtos, dispositivos e horas de desenvolvimento associadas ao projeto. Esses valores refletem os gastos que serão necessários para o desenvolvimento do projeto como um todo. Existem ainda alguns valores que não são considerados, por tanto não agregam valor real ao projeto, esses valores estão relacionados a alguns softwares e equipamentos que são cedidos pela universidade. A Tabela 4 descreve os custos tanto de software como de hardware desconsiderando os dispositivos, equipamentos entre outros, necessários para o desenvolvimento do projeto. Tabela 4 – Estimativa de custos. Recurso Sistema Operacional Microsoft Windows 9X Borland C++ Builder 5 Microprocessador PIC Amplificadores de Instrumentação (INA128) Mouse Serial Convencional Horas de Desenvolvimento Total Quantidade Custo (R$) 1 1 1 1 1 350 500,00 350,00 40,00 15,00 5,00 8.750,00 9.660,00 29 3.10 PLATAFORMA DE DESENVOLVIMENTO A plataforma de desenvolvimento está relacionada às ferramentas e equipamentos utilizados durante o período de graduação juntamente com as necessidades do projeto bem como a familiaridade da linguagem de desenvolvimento e dos tipos de equipamentos e dispositivos que se encontra no mercado. Incorporando todo o hardware e software necessário para o desenvolvimento e implementação do projeto. O ambiente de desenvolvimento é constituído basicamente por: • Computador Pentium III 1Ghz, 128 MB Ram; • Sistema Operacional Microsoft Windows 2000 BR; • Borland C++ Builder 5; • OrCAD Release 9.1; • MultiSim 2001; • Microsoft Office 2000; • MPLab 6.22; • Visual Paradigm; • Osciloscópio; • Multímetro; • Fonte simétrica de alimentação; • Mesa Digital; • Gerador de Funções. 30 4 IMPLEMENTAÇÃO Conforme estabelecido no capítulo 3 deste documento, a implementação do projeto está baseada na divisão dos módulos conforme descrição mencionada na Seção 2.1. Partimos inicialmente do desenvolvimento da fase de aquisição do sinal de EOG, considerando para isso ambos os movimentos horizontal e vertical referente ao movimento do cursor. Posteriormente após a coleta e a análise dos sinais então são submetidos à próxima fase que consiste em um pré-tratamento do sinal, verificando a necessidade de tratar o sinal por meio de filtros, onde foram implementados dois filtros. Um filtro passivo passa-altas e outro filtro ativo passa-baixas. Assim então os sinais são submetidos à fase de processamento onde o sinal e convertido por meio de um conversor A/D que está inserido dentro do microcontrolador PIC. Após a conversão A/D o processamento do sinal é por meio do algoritmo desenvolvido para converter o sinal de EOG em sinais de controle, que serão submetidos ao controlador do circuito do mouse que é responsável por enviar os sinais via serial ao computador para controlar o cursor do mouse na tela. Um aplicativo composto por um programa de treinamento e uma calculadora de quatro operações é usado para auxiliar o processo de treinamento e adaptação ao dispositivo. 4.1 MÓDULO DE AQUISIÇÃO A implementação desta fase consiste no desenvolvimento do circuito que faz a aquisição dos sinais por meio dos eletrodos fixados na face do indivíduo conforme padrão de colocação em 3.6.3. Nesta fase além da implementação do circuito deve-se ter uma preocupação com a colocação dos eletrodos, pois uma má instalação afeta o correto funcionamento do circuito. Foram utilizados três tipos de eletrodos, o primeiro é que consta no capítulo de projeto na Seção 3.2.1 (Eletrodos) que são os de disco de ouro com 10mm de diâmetro e furo central. O segundo é o de prata, autocolante. E o terceiro é o de prata/cloreto de prata autocolante. A saída do circuito onde se realiza aquisição dos sinais é submetida ao kit da National para o registro digital do sinal a fim de analisar o comportamento do sinal através 31 de uma série de repetitivos movimentos utilizando o software de treinamento de movimentos. 4.1.1 Circuito de Aquisição O circuito de aquisição consiste de um par de amplificadores de instrumentação onde cada um corresponde a um canal dos movimentos, também em um estágio de amplificação do sinal. O Anexo I mostra o esquemático do circuito de aquisição/tratamento. Os amplificadores instrumentação e de ganho são alimentados com ± 5V, o amplificador de instrumentação possui um ganho de 150 que é obtido através da Equação 1 descrita na seção 3.2.2, já os amplificadores do filtro utilizam a configuração não inversora e operam com um ganho de 22 vezes conforme seção 3.3. Depois de testado o circuito montado em protoboard e verificado o seu funcionamento, uma placa de circuito impresso foi desenvolvida a fim de facilitar o desenvolvimento dos próximos módulos bem como eliminar qualquer outro ruído inerente à montagem do circuito em protoboard. O Anexo VI mostra o layout da placa. Na fase de análise comprovamos que o sinal capturado é algo em torno dos 0,4 - 1 mV e verificamos o comportamento do sinal conforme a realização dos movimentos. Existe uma dificuldade que está focada na colocação dos eletrodos, influenciando no sinal capturado. Os eletrodos devem estar bem fixados na face do indivíduo para num primeiro estágio eliminar um offset inicial, que é um deslocamento positivo ou negativo no valor da tensão medida. A qualidade do eletrólito (gel) também influencia consideravelmente na captura do sinal. 4.1.2 Análise do sinal (Osciloscópio) Após a montagem do circuito e a instalação dos eletrodos em um voluntário, um osciloscópio é utilizado para visualizar o comportamento do sinal durante a realização dos movimentos. O comportamento do sinal para os movimentos horizontal e vertical pode ser visualizado na Figura 14 e na Figura 15. Estes movimentos foram realizados lentamente com os olhos partindo do repouso (centralizados). 32 4.1.3 Figura 14 – Sinal de EOG do movimento Figura 15 – Sinal de EOG do movimento horizontal realizado para direita. horizontal realizado para esquerda. Análise do sinal (Kit National) Os valores de tensão foram obtidos através da conversão A/D do kit da National, e com esses valores então foi plotado o gráfico do movimento horizontal partindo do centro (repouso). Esse é o típico movimento rápido do olho para direita. A Figura 16 do gráfico mostra o movimento rápido do olho para direita. A Figura 17 do gráfico mostra o movimento lento do olho para direita. A plotagem é a média das somas de todas as aquisições realizadas com o kit, onde foram realizadas 25 aquisições. Conclui-se que não existe uma linearidade no movimento notou-se também uma instabilidade do sinal quando visualizado no osciloscópio. Figura 16 – Movimento horizontal rápido para direita. 33 Figura 17 – Movimento horizontal lento para direita. 4.2 MÓDULO DE TRATAMENTO Conforme projetado e demonstrado na Seção 3.3 o filtro implementado utiliza os seguintes parâmetros R1 e R2 igual a 150KΩ, R3 igual a 3,3MΩ, C1 igual a 1µF, freqüência de corte 20Hz e ganho igual a 22 vezes. 4.3 MÓDULO DE PROCESSAMENTO Os sinais amplificados e filtrados que saem do módulo de tratamento são submetidos ao microcontrolador (modelo PIC16F877) que possuí internamente um conversor A/D de 10 bits o qual realiza a conversão do sinal analógico do EOG para valores entre 0 e 255. O conversor A/D realiza a conversão dos sinais dois canais (movimento horizontal e movimento vertical) estes sinais então sofrem uma filtragem digital por meio de um algoritmo que lê via portas (canais) do A/D o valor de tensão correspondente ao movimento executado fazendo a soma de quatro aquisições e divide por quatro, para ter uma média do valor. Para a realização do movimento o cálculo do número de bits de controle é dado pelo valor armazenado (a média) que é comparado ao ultimo valor armazenado. Se houve variação positiva, ou seja, o novo valor é maior que o antigo significa que o movimento horizontal é para direita e no canal do movimento vertical para cima. Se a variação foi 34 negativa o movimento é para esquerda ou para baixo. O algoritmo executa a leitura dos canais de forma única, ou seja, um canal por vez é lido, calculado e executado. Com as variações são calculados quantos ciclos de movimentos serão executados, baseados na lógica de ativação dos bits conforme Tabela 5 e que serão submetidos às entradas do circuito controlador de mouse, ou seja, existem duas entradas analógicas e quatro saídas digitais.. Por exemplo, se a variação foi de 30, positiva ou negativa os bits serão gerados 30 vezes. A lógica de controle do controlador do mouse é: Tabela 5 – Lógica de Controle do Mouse. Movimento para direita, para Movimento para esquerda, cima para baixo RD0/RD2 RD1/RD3 RD0/RD2 RD1/RD3 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 Os pinos do PIC para as entradas são: A0, A1. A0: Canal Horizontal A1: Canal Vertical Os pinos do PIC para as saídas são: RD0, RD1, RD2, RD3, RD4. RD0: Saída X1 Horizontal RD1: Saída X2 Horizontal RD2: Saída Y1 Vertical RD3: Saída Y2 Vertical 4.4 MÓDULO DE INTERFACEAMENTO A implementação deste módulo é adaptar um circuito retirando o par de encoders os quais geram os bits de controle pelas saída dos pinos do microcontrolador, mencionadas na Seção 4.3. Estas saídas do microcontrolador exercem a mesma função dos encoders gerando de forma similar os bits de controle para as entradas do chip controlador do mouse. 35 4.5 MÓDULO DE SOFTWARE Desenvolvido em linguagem C++ utilizando o ambiente de desenvolvimento Borland C++ Builder, o aplicativo é composto por um programa de treinamento dos movimentos que auxilia a adaptação do indivíduo à utilização do dispositivo e na realização dos movimentos. O programa de treinamento ocupa toda a área do monitor não importando a resolução usada. E também por uma calculadora de quatro operações onde os grandes botões dos números da calculadora auxiliam na sua utilização. A Figura 18 corresponde à tela inicial do aplicativo, onde o usuário pode selecionar as opções: • Iniciar treinamento: Abre o programa de treinamento, Figura 17; • Calculadora: Abre a calculadora, Figura 18; • Ajuda: Abre a tela da ajuda, Figura 19; • Sair: Sai do aplicativo. Figura 18 – Tela Inicial do aplicativo. A Figura 19 corresponde à tela do programa de treinamento a qual o usuário deve treinar os movimentos adaptando-se ao dispositivo e de como deve ser utilizado, com ele pode-se selecionar através da caixa de seleção dos movimentos: 36 • Centralizado; • Movimento Horizontal total para direita; • Movimento Horizontal total para esquerda; • Movimento Vertical total para cima; • Movimento Vertical total para baixo; • Movimento Diagonal Total Superior para direita; • Movimento Diagonal Total Superior para esquerda; • Movimento Diagonal Total Inferior para direita; • Movimento Diagonal Total Inferior para esquerda. Depois de selecionado o movimento o usuário deve esperar por 3 segundos para realizar o movimento selecionado, onde ele deve manter o cursor do mouse sobre o circulo durante a execução do movimento. Figura 19 – Tela de Treinamento. A Figura 20 apresenta a tela da calculadora onde o usuário depois de passada a fase de adaptação utilizando o programa de treinamento ele deve estar adaptado ao dispositivo e 37 ser capaz de utilizá-lo realizando assim os movimentos a fim de testar as suas habilidades, para isso usando uma calculadora de quatro operações. Figura 20 – Tela da Calculadora. A Figura 21 corresponde à tela de ajuda do aplicativo onde o usuário obtém as instruções necessárias para escolher as opções, bem como informações sobre cada aplicativo e também acessar de forma rápida o site do projeto. Figura 21 – Tela da Ajuda. 38 4.6 ALTERNATIVA DE PROCESSAMENTO/INTERFACEAMENTO Uma alternativa para o módulo de processamento foi implementada e testada, consiste em converter os sinais dos dois canais utilizando um A/D e submeter via porta paralela ao PC. A saídas H, V e GND do módulo de tratamento devem ser conectadas aos pinos I0, I1 e GND do circuito do A/D conforme o esquemático que está no Anexo III, O esquemático da interface porta paralela encontra-se no Anexo IV. A resolução da conversão A/D é mais baixa do que o necessário para o cálculo do posicionamento XY. A resolução do A/D é dada por 5V/255 totalizando uma variação de 0,019608V para um valor possível. O sinal de entrada é de 1V é divido pela quantidade de pontos na horizontal e na vertical, onde se tem na horizontal 1/1024 igual 0,000976V tem-se um ponto de X de 01024 e na vertical 1/768 igual 0,001302V tem-se um ponto em Y de 0-768. Para o canal horizontal a variação é de 20 em 20 pixels, pois para chegar a aproximação da conversão do A/D de 0,019608V tem-se que multiplicar o valor de 0,000976V por 20 obtendo aproximadamente 0,01952 da conversão do A/D. E para o canal vertical a variação é de 15 em 15 pixels, pois para chegar a aproximação da conversão do A/D de 0,019608V tem-se que multiplicar o valor vertical de 0,001302V por 15 obtendo aproximadamente 0,01953. Totalizando 51,2 posições possíveis na horizontal e 51,2 possíveis na vertical para o posicionamento XY cursor do mouse. Via software utilizando uma API do Windows mover o cursor do mouse onde a API (SetCursorPos) recebe dois parâmetros que correspondem à posição XY calculada. A posição é calculada utilizando uma equação algébrica: iPosX = (int)((iDeskTopWidth) * (fltX_Value*20)-(iDeskTopWidth/0.5)); Equação 2 – Cálculo da posição X. iPosY = (int)(( iDeskTopHeight) * (fltY_Value*15)-(iDeskTopHeight/0.5)); Equação 3 – Cálculo da posição Y. 39 Onde: • IPosX e iPosY: inteiro que armazena o resultado do cálculo da posição; • IDeskTopWidth e IDeskTopHeight: inteiro que armazena o tamanho horizontal do desktop (640; 800; 1024…) e vertical (480;600;768...); • fltX_Value e fltY_Value= float que armazenam o valor da conversão dos canais horizontal e vertical, captado via porta paralela. A mesma equação calcula a posição Y. Depois de obtidas as posições equivalentes ao valor de conversão a API é chamada, passando os parâmetros calculados. É necessário também configurar a velocidade do mouse via painel de controle do Windows acessando o menu Iniciar->Configurações->Painel de Controle: Mouse. Na tab Propriedades de Mouse selecionar a opção movimento e ajustar os parâmetros de velocidade para lenta e aceleração para nenhuma e pressionar OK. A Figura 22 demonstra a configuração que deve ser feita. Figura 22 – Janela das Propriedades do Mouse. 40 O software implementado mostra o valor da conversão bem como as posições XY calculadas. A Figura 23 é a janela do software que realiza a aquisição da porta paralela e calcula as posições. Figura 23 – Valores correspondente ao estado de repouso. 41 5 RESULTADOS Os resultados foram obtidos analisando cada módulo conforme o protocolo de validação, bem como a qualidade do sinal na parte analógica do circuito, qualidade do movimento do cursor na parte digital e também de software. Considerando desde os tipos de eletrodos testados, o cálculo para a implementação dos filtros, algoritmo implementado no PIC e software desenvolvido. 5.1 TIPOS DE ELETRODOS Foram testados três tipos de eletrodos, o primeiro testado é que consta no capítulo de projeto na seção (Eletrodos) que são os de disco de ouro com 10mm de diâmetro e furo central. O segundo testado foi o de prata, autocolante, e o terceiro foi o de prata/cloreto de prata autocolante. Os dois últimos já possuem o gel para a transdução. O eletrodo de ouro possui a vantagem de não ser um eletrodo descartável, ele pode ser utilizado por muitas vezes só necessitando a troca do eletrólito. E possui desvantagens na colocação na face do usuário, pois necessita da fixação com alguma fita colante (esparadrapo) pra que não se desprenda da pele, bem como a troca do gel sempre que se instala o eletrodo. A resposta do eletrodo é boa por um determinado período, porém o desempenho o sinal capturado por esse tipo de eletrodo é insatisfatório ao nível de aquisição, pois o contato com pele por muito tempo faz com que o sinal flutue, desestabilizando o sinal resultante. O eletrodo de prata possui a vantagem de não precisar trocar o gel, pois já possui na própria cola o eletrólito. Como desvantagem é um eletrodo que é descartável. Pode ser reaproveitado, porém influencia no sinal resultante e também a cola não é suficiente para que não se desprenda da pele também é necessária a utilização de esparadrapos para a fixação. A resposta deste eletrodo também é boa, porém o desempenho também é afetado pelo contato com pele por muito tempo, fazendo também com que o sinal flutue, desestabilizando o sinal resultante. O eletrodo de prata/cloreto de prata possui a mesmas vantagens e desvantagens do eletrodo de prata, porém a qualidade da cola é suficiente para se fixar na pele sem a 42 necessidade de usar esparadrapos. Foi com o qual se obteve o melhor resultado ao nível de estabilização do sinal, não gerando nenhuma flutuação. É importante lembrar que não foi a composição do eletrodo que influenciou na aquisição e sim a qualidade dos mesmos em relação ao nível de fixação com a pele. Figura 24 – Eletrodos testados (a) ouro (b) prata (c) prata/cloreto de prata. 5.2 AQUISIÇÃO/TRATAMENTO Analisando cada módulo com o que fora proposto os módulos de aquisição e tratamento como esperado tem-se um sinal que excursiona entre +1,5V até +3,5V com zero centrado em +2,5V. O sinal filtrado livre de ruídos se estabiliza após a instalação do dispositivo, isso ocorre por cerca de 1 minuto depois de ligado o circuito e instalados os, só então pode se visualizar o comportamento do sinal, constatando também que um dos fatores citados por [Young, 1988] como a fadiga interfere no comportamento do sinal. Figura 25 – Sinal de EOG do movimento Figura 26 – Sinal de EOG do movimento horizontal realizado para direita. horizontal realizado para esquerda. 43 Tendo assim um sinal que pode ser submetido ao módulo de processamento, onde a conversão configurada no microcontrolador interpreta os movimentos e gera os pulsos de controle para o módulo de interfaceamento. As Figuras 23 e 24 representam os sinais do EOG resultantes do movimento horizontal. O osciloscópio configurado em YT com 1V/Div e amostragem em 500ms. 5.3 PROCESSAMENTO/INTERFACEAMENTO Os resultados dos testes realizados com módulos de processamento e interfaceamento não foram satisfatórios considerando a precisão do movimento bem como o próprio movimento. Com a implementação do algoritmo projetado e a utilização da interface do circuito do mouse foi possível observar apenas a direção do movimento, onde ao mover os olhos para cada direção o cursor respondia para mesma direção, porém o movimento que deveria ser quase que relativo ao movimento dos olhos não foi obtido ocasionando uma oscilação do cursor de cerca de 1cm para cada direção, onde mesmo fixado em um ponto movimenta-se em todas as direções interferindo nos resultados esperados. O clique que é implementado via software utilizando APIs do Windows, onde após 3 segundos efetua o clique, caso não ocorra nenhuma variação do ponto onde se está olhando considerando os limites de oscilação, que variam em cerca de um cm, aproximadamente 40 pixels. A quantidade dos pulsos gerados quando existe uma variação é dada pela subtração do valor atual pelo valor anterior tem-se quase que nenhum pulso por variação. 5.4 ALTERNATIVA DE PROCESSAMENTO/INTERFACEAMENTO Utilizando o conversor A/D e a interface porta paralela, os resultados considerando o movimento do cursor foram mais satisfatórios que a solução proposta. Além de ser possível detectar qual a direção do movimento o movimento em si também pode ser realizado. 44 6 CONCLUSÃO O trabalho com sinais de biopotenciais é muito suscetível a ruídos e interferências, como a faixa de freqüência do sinal EOG está entre 0-10Hz. Geralmente os ruídos e interferências são de uma faixa de freqüência muitas vezes maior o que necessita a utilização de filtros. Neste projeto os filtros são de uma baixa ordem e o nível de tensão capturado é muito pequeno existe a necessidade de utilizar amplificadores resultando em um circuito analógico pequeno e relativamente fácil de ser implementado. A escolha de um bom eletrodo influencia consideravelmente no sinal resultante afetando no desempenho do circuito. A utilização de microcontroladores compactos como o PIC16F877A que possui internamente um conversor A/D, portas serial e paralela, memória de programa e dados fazem, somando a todos os módulos, um dispositivo relativamente pequeno, sem contar o custo baixo de materiais necessário para a montagem dos circuitos. O uso destes componentes atuais faz do dispositivo um diferencial, pois ele usa tecnologias sedimentadas no mercado, como o chip controlador de mouse e os drivers que conversam com os protocolos existentes. O módulo de interfaceamento consiste no próprio circuito controlador de mouse, facilitando o desenvolvimento e o envio das informações necessárias para a realização do movimento do cursor do mouse. Assim, formando um dispositivo que mescla a eletrônica analógica da análise e tratamento do sinal com a eletrônica digital que conversa com o microcomputador interpretando o sinal gerando as informações necessárias para controle do cursor. A fase que demandou maior esforço de desenvolvimento foi a de tratamento do sinal, pois o EOG é um sinal instável conforme [YOUNG, 1988], a fadiga, luz e outras propriedades afetam o comportamento do sinal. A utilização de eletrodos de melhor qualidade deve ser considerada, analisando a condutividade e fixação, bem como sua perfeita instalação evitando outros tipos de interferências e instabilidade do sinal. A instalação perfeita evita que o sinal flutue conforme descrito em (potencial de meia-célula). E outros fatores, como a questão dos movimentos sacádicos descritos na Seção 2.2.3, não foram observados na análise do sinal assim não afetando o funcionamento do circuito. 45 Para o melhor desenvolvimento deste projeto uma equipe de trabalho deveria ser formada, dividindo as tarefas, onde, principalmente na fase de análise do sinal há necessidade de que uma pessoa se dedique exclusivamente ao desenvolvimento do projeto, testes e outros procedimentos que são realizados quando se está construindo o circuito e outras pessoas, no mínimo duas, para realizar os movimentos de forma alternada, para que quando uma estiver cansada de realizar os movimentos outra assumisse o lugar. Isso porque quando ambas as tarefas são realizadas por uma só pessoa, causa uma fadiga física afetando no comportamento do sinal e no desenvolvimento do projeto. Mesmo assim foi possível confrontar os resultados obtidos com os objetivos traçados, embora não muito satisfatórios considerando a precisão do movimento. Por ser específico a deficientes motores é necessário o acompanhamento de um responsável para instalação do equipamento, considerando desde a limpeza da face, colocação dos eletrodos até a inicialização do computador e do software de treinamento. Sendo assim a utilização do equipamento por deficientes físicos realmente não foi testada. Então estes testes devem ser realizados com deficientes para que possam ser medidos resultados do tipo de nível de satisfação do usuário, facilidades ou dificuldades na adaptação ao dispositivo, para que o retorno possa realimentar o desenvolvimento do projeto. Esse feedback da utilização do equipamento por deficientes deveria ser observado na fase de desenvolvimento, portanto a equipe deveria ser formada por deficientes e desenvolvedores fazendo por alguns dias para obter um padrão do sinal, analisando seu comportamento padrão variado dia-a-dia/pessoa-a-pessoa. O equipamento é um dispositivo que visa facilitar o uso do computador por um deficiente físico, porém a resposta se o equipamento facilitou ou não a utilização deve ser baseada no que os próprios deficientes tem a dizer a respeito. A implementação das outras ações do mouse, duplo-clique, seleção, clique com botão esquerdo, arrastar e soltar, são trabalhos futuros que podem ser desenvolvidos visando à completa utilização do computador. 46 7 REFERÊNCIAS [WEBSTER, 1998] WEBSTER, John G. (Ed.). Medical Instrumentation: Application and Design, 3rd edition. New York: John Wiley & Sons, 1998. [MALMIVUO, 1995] MALMIVUO, Jaakko, PLONSEY, Robert. Bioelecromagnetism: Principles and Applications of Bioelectric and Biomagnetic Fields. New York: Oxford University Press, 1995. [ADINSTRUMENTS, 2003] ADINSTRUMENTS,.“Human Electro-Oculography”. ADInstruments. 13/01/2003. (http://www.adinstruments.com/teaching/tmats/tnotes/INB11b_Human_EOG.pdf), p [GUYTON, 1997] GUYTON, Arthur C., HALL, John E. Tratado de Fisiologia Médica. 9a. Edição. Rio de Janeiro – RJ, 1997. [BRONZINO, 1995] BRONZINO, J.D. (editor-in-chief) The Biomedical Engineering Handbook. CRC Press/IEEE Press, Boca Raton, 1995. [SOUZA, 2002] SOUZA, David José de. Conectando o PIC – Explorando Recursos Avançados 1ª. Edição Revisão 3. J.J. Carol Editora Perdizes – SP, 2002. [YOUNG, 1975] YOUNG, L.R. Young and D. Sheena, "Survey of eyemovement recording methods", Behavioral Research Methods and Instrumentation, Vol. 7, No. 5, 1975. pp. 397-429. 47 ANEXO I – ESQUEMÁTICO AQUISIÇÃO/TRATAMENTO 48 ANEXO II – ESQUEMÁTICO PROCESSAMENTO 49 ANEXO III – ESQUEMÁTICO CONVERSOR A/D 50 ANEXO IV – ESQUEMÁTICO INTERFACE PORTA PARALELA 51 ANEXO V – ARQUITETURA INTERNA PIC16F877A 52 ANEXO VI – LAYOUT PLACA PROCESSAMENTO 53 ANEXO VII – LISTA DE MATERIAIS 5 Eletrodos de Prata/Cloreto de Prata (Padrão de ECG); 5 Cabos para os eletrodos; 5 Jacarés para a conexão dos eletrodos ao dispositivo; 2 Amplificadores de Instrumentação – INA128 (Texas Instruments); 1 Amplificador Operacional Quádruplo – TL084 (Texas Instruments); 2 Capacitores de 4,7µF; 2 Capacitores de 1µF; 1 Capacitor de 10ηF; 4 Resistores de 3,3MΩ; 4 Resistores de 150KΩ; 2 Resistores de 220Ω; 1 Resistor de 10KΩ; 2 Sockets de 8 Pinos; 1 Socket de 14 Pinos; 1 Barra de conectores torneados (50 pinos); 1 Microcontrolador PIC16F877A; 1 Cristal Oscilador de 4 MHz; 1 Pushbutton. 54 ANEXO VIII – FLUXOGRAMA DO ALGORITMO DE PROCESSAMENTO 55 56 57 58 ANEXO IX – DATASHEET INA (128) 59 ANEXO X – PROGRAMA ASSEMBLY DE CONTROLE ; ============================================================================= ; Rodolfo Baggio ; Rotina de Conversao ADCP (Analogic/Digital/CtrlPulse) ; ============================================================================= ; ----------------------------------------------------------------------------; configuracao para gravacao ; ----------------------------------------------------------------------------__CONFIG _CP_OFF & _CPD_OFF & _DEBUG_OFF & _LVP_OFF & _WRT_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_ON & _XT_OSC ; ----------------------------------------------------------------------------; definicao das variaveis ; ----------------------------------------------------------------------------CBLOCK 0x20 ; posicao inicial da ram TEMPO1 TEMPO0 AUXH AUXL TENSAOMEDIAH TENSAOMEDIAL ADVALUEHigh ADVALUELow ENDC ; ----------------------------------------------------------------------------; definicao das var. internas ; ----------------------------------------------------------------------------#INCLUDE <P16F877A.INC> ; ----------------------------------------------------------------------------; definicao dos bancos de ram ; ----------------------------------------------------------------------------#DEFINE BANK1 BSF STATUS, RP0 ; banco1 #DEFINE BANK0 BCF STATUS, RP0 ; banco0 ; ----------------------------------------------------------------------------; constantes ; ----------------------------------------------------------------------------; ----------------------------------------------------------------------------; flags ; ----------------------------------------------------------------------------- 60 ; ----------------------------------------------------------------------------; entradas ; ----------------------------------------------------------------------------- #DEFINE CAD_HORIZONTAL PORTA, 1 ; Entr. A/D do Canal Horizontal ; ----------------------------------------------------------------------------; saidas PORTD 0-7 ; ----------------------------------------------------------------------------#DEFINE OUTMOUSECTRL PORTE ; bar. de dados da saida #DEFINE OUTXORIGINAL PORTD, 0 ; estado da saida X original #DEFINE OUTXDEFASADO PORTD, 1 ; estado da saida X defasada #DEFINE OUTYORIGINAL PORTD, 2 ; estado da saida Y original #DEFINE OUTYDEFASADO PORTD, 3 ; estado da saida Y defasada #DEFINE OUTCLICK PORTD, 4 ; estado da saida Click ; ----------------------------------------------------------------------------; vetor de reset ; ----------------------------------------------------------------------------ORG 0x0000 GOTO CONFIG CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD CLRF PORTE CONFIG BANK1 ; GARANTE TODAS AS SAÍDAS EM ZERO ; SELECIONA BANCO 1 DA RAM MOVLW B'11111111' MOVWF TRISA ; CONFIGURA I/O DO PORTA MOVLW B'11111111' MOVWF TRISB ; CONFIGURA I/O DO PORTB MOVLW B'11111111' MOVWF TRISC ; CONFIGURA I/O DO PORTC MOVLW B'00000000' MOVWF TRISD ; CONFIGURA I/O DO PORTD 61 MOVWF TRISE ; CONFIGURA I/O DO PORTE MOVLW B'00000100' MOVLW B'11011011' MOVWF OPTION_REG ; CONFIGURA OPTIONS ; PULL-UPs DESABILITADOS ; INTER. NA BORDA DE SUBIDA DO RB0 ; TIMER0 INCREM. PELO CICLO DE MÁQUINA ; WDT - 1:8 ; TIMER - 1:1 MOVLW B'00000000' MOVWF INTCON ; CONFIGURA INTERRUPÇÕES ; DESABILITA TODAS AS INTERRUPÇÕES MOVLW B'00000100' MOVWF ADCON1 ; CONFIGURA CONVERSOR A/D ; RA0, RA1 E RA3 COMO ANALÓGICO ; RA2, RA4 E RA5 COMO I/O DIGITAL ; PORTE COMO I/O DIGITAL ; JUSTIFICADO À ESQUERDA ; 8 BITS EM ADRESH E 2 BITS EM ADRESL ; Vref+ = VDD (+5V) ; Vref- = GND ( 0V) BANK0 ; SELECIONA BANCO 0 DA RAM MOVLW B'01000001' MOVWF ADCON0 ; CONFIGURA CONVERSOR A/D ; VELOCIDADE -> Fosc/8 ; CANAL 0 comeca no horizontal (000) ; MÓDULO LIGADO ; MOVLW 0x7F ; MOVWF ADVALUEHigh ; MOVLW 0x7F ; MOVWF ADVALUELow ; para vertical ; para horizontal ;`clear todos os pinos BCF OUTXORIGINAL BCF OUTXDEFASADO BCF OUTYORIGINAL BCF OUTYDEFASADO BCF OUTCLICK ; ----------------------------------------------------------------------------- 62 ; ----------------------------------------------------------------------------; {inicio} evitando problemas de start-up do pic utilizando Watch-Dog (WDT) BTFSC STATUS, NOT_TO GOTO $ ; {fim} ; ----------------------------------------------------------------------------; inicializacao da ram ; ----------------------------------------------------------------------------- MOVLW 0x20 ; primeira posicao da ram MOVWF FSR LIMPA_RAM CLRF INDF ; limpa posicao INCF FSR, F ; incrementa posicao MOVF FSR, W XORLW 0X80 ; comp. o ponteiro com a ultima BTFSS STATUS, Z ; perguta se jah limpou todas GOTO LIMPA_RAM ; nao-proxima, sim-pula GOTO LOOP ;-----------------------------------------------------------------------------; FIM DO BLOCO INICIAIL DE CONFIGURACOES ; ----------------------------------------------------------------------------DELAY_MS MOVF TEMPO1 MOVLW .250 MOVWF TEMPO0 CLRWDT DECFSZ TEMPO0, F GOTO $-2 DECFSZ TEMPO1, F GOTO $-6 RETURN ;{fim} ; ----------------------------------------------------------------------------; Movimento Horizontal para direita 63 ; realizando um defasamento no sinal em RD1 do PORTD ; VER QUESTAO DEFASAMENTO Consiste em DO gerar o sinal no pino RD0 do PORTD ; RD0 DEVE ESTAR SEMPRE EM ALTA (BAIXA?) QUANDO OCORRER A INTERRUPCAO ; NO CASO UM ACRESCIMO NO VALOR DE TENSAO DEVE-SE ENTAO MUDAR O VALOR DE RD ; O RD1 DEFASADO EH EM FUNCAO DE RD0 ; RD2-5 PERMANECEM SEM ALTERACAO ; ----------------------------------------------------------------------------MOVECURSORTORIGHT ;-------------------------; OUTXORIGINAL OUTXDEFASADO ; 0 1 ; 1 1 ; 1 0 ; 0 0 ; 01111000 - 1 ciclo completo ;-------------------------- BCF OUTXORIGINAL ; 0 BSF OUTXDEFASADO ; 1 BSF OUTXORIGINAL ; 1 BSF OUTXDEFASADO ; 1 BSF OUTXORIGINAL ; 1 BCF OUTXDEFASADO ; 0 BCF OUTXORIGINAL ; 0 BCF OUTXDEFASADO ; 0 RETURN MOVECURSORTOLEFT ;-------------------------; OUTXORIGINAL OUTXDEFASADO ; 0 0 ; 1 0 ; 1 1 ; 0 1 ; 00101101 ;-------------------------BCF OUTXORIGINAL ; 0 BCF OUTXDEFASADO ; 0 BSF OUTXORIGINAL ; 1 BCF OUTXDEFASADO ; 0 64 BSF OUTXDEFASADO ; 1 BCF BSF OUTXORIGINAL ; 0 1 BSF OUTXDEFASADO ; 1 RETURN MOVECURSORTOUP ;-------------------------; OUTYORIGINAL OUTYDEFASADO ; 0 1 ; 1 1 ; 1 0 ; 0 0 ; 01111000 - 1 ciclo completo ;-------------------------- BCF OUTYORIGINAL ; 0 BSF OUTYDEFASADO ; 1 BSF OUTYORIGINAL ; 1 BSF OUTYDEFASADO ; 1 BSF OUTYORIGINAL ; 1 BCF OUTYDEFASADO ; 0 BCF OUTYORIGINAL ; 0 BCF OUTYDEFASADO ; 0 RETURN MOVECURSORTODOWN ;-------------------------; OUTYORIGINAL OUTYDEFASADO ; 0 0 ; 1 0 ; 1 1 ; 0 1 ; 00101101 ;-------------------------BCF OUTYORIGINAL ; 0 BCF OUTYDEFASADO ; 0 BSF OUTYORIGINAL ; 1 BCF OUTYDEFASADO ; 0 BSF OUTYORIGINAL ; 1 BSF OUTYDEFASADO ; 1 BCF OUTYORIGINAL ; 0 65 RETURN BSF OUTYDEFASADO ; 1 ; ----------------------------------------------------------------------------; Converte TENSAO EM PULSOS DE CONTROLE ; ----------------------------------------------------------------------------; A conversao consiste em estabelecer uma relacao entre o nivel de tensao ; e a quantizacao, isto é, 255 - 1v - 1a. variacao movimento ; consiste em quatro saidas em 2 pares onde cada par e referente a X e Y ; apresentando uma saida defasada de 90 e quando necessario ocorre a inversao ; do defasamento para a direcao negativa ; Xa, Xb, Ya, Yb juntamente com uma saida para click do mouse (piscar dos olhos) ; ocorreu variacao ocorre uma interrupcao ou uninterrupcao ; estabelecer situacao inicial ; testar qual eh o movimento e chamar a funcao correspondente ; ADVALUE VARIA ENTRA [0-126 (-), 127-255 (+)] ; Se ADVALUE == ADOLDVALUE nao faz nada ; Se ADVALUE > ADOLDVALUE move para direita ; Se ADVALUE < ADOLDVALUE move para esquerda ; ----------------------------------------------------------------------------LOOPMOVECURSORTORIGHT MOVWF AUXL MOVFW ADRESH SUBWF ADVALUELow, W XORLW 0x00 ;0x7F zero (127) BTFSC STATUS, Z GOTO LERCANALV ; goto para ler vertical MOVFW AUXL MOVWF TEMPO0 CLRWDT CALL MOVECURSORTORIGHT DECFSZ TEMPO0, F GOTO $-2 MOVFW ADRESH MOVWF ADVALUELow GOTO LERCANALV ; IR PARA O 'FIM' ? LOOPMOVECURSORTOLEFT 66 SUBWF ADRESH, W MOVF ADVALUELow, W ; refaz para ter o resultado positivo MOVWF TEMPO0 CLRWDT CALL MOVECURSORTOLEFT DECFSZ TEMPO0, F GOTO $-2 MOVFW ADRESH MOVWF ADVALUELow RETURN ; IR PARA O 'FIM' ? TENSAOMEDIAHORIZONTAL MOVLW 0x0000 MOVWF TENSAOMEDIAL MOVLW 0x0004 MOVWF TEMPO0 CLRWDT BSF ; limpa watchdog timer ADCON0, GO ; inicia conversao BTFSC ADCON0, GO ; fim da conversao ? GOTO ; nao - volta uma instrucao $-1 ; sim MOVF ADRESH, W ADDWF TENSAOMEDIAL DECFSZ TEMPO0, F GOTO ; $-6 RRF TENSAOMEDIAL RRF TENSAOMEDIAL MOVF TENSAOMEDIAL, W ; a logica esta ao contrario devido ao fato de existir >= 0 ; MOVFW ADRESH MOVFW ADVALUELow CLRC ; limpa o Carry C SUBWF TENSAOMEDIAL, W ; subtrai MDADO_OLD_V de W resultado fica em w SKPNC ; pula (+1) se houver Carry C = 1 CALL LOOPMOVECURSORTORIGHT ; C = 1 significa (>=0) SOBE CALL LOOPMOVECURSORTOLEFT ; C = 0 significa (<0) DESCE 67 LOOPMOVECURSORTOUP RETURN MOVWF AUXL MOVFW ADRESH SUBWF ADVALUEHigh, W XORLW 0x00 ;0x7F zero (127) BTFSC STATUS, Z GOTO LERCANALH MOVFW AUXL MOVWF TEMPO0 CLRWDT CALL MOVECURSORTOUP DECFSZ TEMPO0, F GOTO $-2 MOVFW ADRESH MOVWF ADVALUEHigh GOTO LERCANALH ; IR PARA O 'FIM' ? LOOPMOVECURSORTODOWN MOVF ADVALUEHigh, W SUBWF ADRESH, W MOVWF TEMPO0 CLRWDT CALL MOVECURSORTODOWN DECFSZ TEMPO0, F GOTO $-2 MOVFW ADRESH MOVWF ADVALUEHigh RETURN ; IR PARA O 'FIM' ? TENSAOMEDIAVERTICAL ;{inicio} MOVLW 0x0000 ; zera W MOVWF TENSAOMEDIAL ; zera tensaomediaL MOVLW 0x0004 ; 4 aquisicoes 68 CLRWDT ; limpa watchdog timer BSF MOVWF ADCON0, TEMPO0 GO ; inicia conversao BTFSC ADCON0, GO ; fim da conversao ? GOTO ; nao - volta uma instrucao $-1 ; sim MOVF ADRESH, W ; (ADRESH) em work (W) ADDWF TENSAOMEDIAL DECFSZ TEMPO0, F GOTO ; $-6 RRF TENSAOMEDIAL ; divide por 2 RRF TENSAOMEDIAL ; divide por 2 MOVF TENSAOMEDIAL, W ; move o valor para W MOVFW ADVALUEHigh CLRC ; limpa o Carry C SUBWF TENSAOMEDIAL, W ; subtrai MDADO_OLD_V ; (+1) de W resultado fica em w SKPNC pula se houver Carry C = 1 CALL LOOPMOVECURSORTOUP ; C = 1 significa (>=0) CALL LOOPMOVECURSORTODOWN ; C = 0 significa (<0) BSF OUTCLICK BSF OUTCLICK BSF OUTCLICK BSF OUTCLICK BCF OUTCLICK BCF OUTCLICK BCF OUTCLICK BCF OUTCLICK RETURN ;{fim} ; ----------------------------------------------------------------------------; rotina principal ; ----------------------------------------------------------------------------; FAZER 4 AQUISICOES PARA CADA CANAL E TIRAR A MEDIA ; E VER COMO EH ESCOLHIDO O KNAL ; FAZER INVERSAO AUTOMATICA DOS CANAIS LERCANALH MOVLW B'01000001' 69 MOVWF AUXH CALL MOVWF TENSAOMEDIAHORIZONTAL ADCON0 ; CONFIGURA CONVERSOR A/D CANAL 0 ; nao ter retorno pois o call jah retorna para loop internamente LERCANALV MOVLW B'01001001' MOVWF ADCON0 ; CONFIGURA CONVERSOR A/D CANAL 1 - RA1 MOVWF AUXH CALL TENSAOMEDIAVERTICAL CALL LERCANALH CALL LERCANALV GOTO LOOP LOOP END 70