Dispositivo Baseado em Eletro-Oculograma para Auxílio de

Propaganda
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
Download