Este documento descreve o desenvolvimento de um software chamado Auxilis que permite que pessoas com deficiência controlem o cursor do mouse usando movimentos corporais detectados por um acelerômetro. O software define um "movimento de assinatura" único para cada usuário e compara movimentos subsequentes a esse padrão para ativar comandos do mouse. Testes demonstraram que a abordagem pode identificar movimentos válidos com um índice de confiabilidade configurável.
Desenvolvimento de software dedicado a pessoa com deficiência
1. VI Seminário PCI_CTI – 2014
Desenvolvimento de software dedicado a pessoa com deficiência
Suzana Viana Mota, Jose Antonio Resende Beiral (CTI)
suzana.mota@cti.gov.br, jose.beiral@cti.gov.br
Resumo
Este trabalho tem por objetivo apresentar o desenvolvimento e aprimoramento do
acelerômetro no âmbito do projeto Auxilis. A proposta do Auxilis é interpretar as ações
motoras de usuários com deficiência através de vários tipos de sensores e convertê-las em
sinais elétricos, potencializando as capacidades motoras desses indivíduos.
Palavras-chave: Inclusão Digital; Acessibilidade; Software.
1. Introdução
Este trabalho está inserido no projeto Auxilis que “visa explorar as capacidades
funcionais preservadas de pessoas com limitações motoras graves e dificuldades no processo
de expressões verbais, cuja condição cognitiva seja mínima para aprender a utilizar o recurso.
O uso de tais dispositivos pode viabilizar a inclusão social e digital dessas pessoas e melhorar
a sua qualidade de vida, favorecendo as interações sociais e familiares, assim como,
facilitando o acesso à educação e ao mercado de trabalho.” [1]
O Auxilis é formado por duas partes distintas: hardware e software sendo “composto
por: microcontrolador, componentes eletrônicos, sensores e um software residente de controle
e comunicação, software este que emula a presença de um mouse comum do mercado para o
PC, fazendo assim a acessibilidade de nosso paciente com os programas que por ventura
estejam rodando em um computador.” [2]
O hardware consiste em um microcontrolador que recebe todos os sinais digitais ou
analógicos vindos de diferentes sensores acoplados a ele. Primeiramente, o usuário emite um
sinal de ENTRADA utilizando um dos sensores disponíveis, o microcontrolador realiza o
processamento e verifica se o sinal emitido é fidedigno ou não fidedigno; (sinal fidedigno é
aquele que foi produzido intencionalmente pelo usuário, sinal não fidedigno é um ruído que
pode ser causado por condições ambientais ou acidentalmente pelo próprio usuário), após a
validação desta informação é gerado um sinal de SAÍDA que será enviado para o software
MouseGui.
O MouseGui é responsável por toda a comunicação entre o hardware, o usuário e o
sistema operacional a ser utilizado. É possível visualizar na figura 1 o esquema do
funcionamento do projeto Auxilis. Observa-se que o MouseGui recebe como entrada, o sinal
de validação do hardware, após este momento, são dados ao usuário opções de movimentação
do cursor do mouse: direta, esquerda, superior, inferior, diagonal superior esquerda, diagonal
superior direita, diagonal inferior esquerda, diagonal inferior direita, caso o usuário queira
realizar o movimento do cursor deverá utilizar o sensor fornecendo um sinal fidedigno no
momento que está sendo exibida a direção desejada, permitindo assim a movimentação do
cursor do mouse e a utilização de todos os recursos de um sistema operacional.
2. VI Seminário PCI_CTI – 2014
Figura 1 – Funcionamento do Auxilis
O usuário utiliza o Auxilis através de um dos sensores acoplados ao hardware
fornecendo dessa forma dados de entrada para o sistema. O usuário pode interagir com o
sistema através do sopro, de sons, utilizando preensão da mão e através dos movimentos dos
membros superiores ou inferiores, para cada estímulo listado um sensor é utilizado. Neste
trabalho propomos soluções em software para receber o estímulo dos movimentos dos
membros superiores ou inferiores sendo este estímulo recebido por meio do acelerômetro. O
acelerômetro é um sensor que possui três eixos onde se é possível obter a aceleração,
inclinação, rotação e vibração em cada eixo simultaneamente.
O acelerômetro é fixado ao corpo do usuário, geralmente membros superiores ou
inferiores, o software solicita ao usuário que faça um movimento que será aquele que ativará
os comandos do Auxilis, este movimento é a assinatura do usuário, caso o usuário faça um
movimento diferente da assinatura, o Auxilis não será acionado. Após este momento, o
MouseGui exibe ao usuário as setas direcionais que realizam a movimentação do mouse, de
acordo com a figura 2, no instante em que o usuário deseja ativar a utilização do mouse, ele
deve realizar o movimento da assinatura, o software compara os valores dos eixos já
guardados da assinatura e os valores do movimento realizado, caso a comparação traga
resultado positivo, o mouse é ativado e começa a se movimentar, em caso negativo o mouse
não é ativado para o movimento.
Figura 2 - MouseGui
2. Métodos
O presente trabalho foi realizado em duas etapas: houve uma primeira etapa de
familiarização com o software e hardware já existentes e a segunda etapa, correspondendo ao
desenvolvimento e testes do módulo referente ao acelerômetro, o desenvolvimento foi
realizado utilizando a linguagem de programação C.
3. VI Seminário PCI_CTI – 2014
O acelerômetro indica os valores de três eixos distintos: X, Y e Z em cada movimento
realizado pelo usuário. A ideia é que o usuário defina qual movimento será utilizado para
ativar a utilização do mouse, chamamos este movimento de assinatura. O sistema deve ser
inteligente o suficiente para responder apenas aos comandos dados pelo movimento de
assinatura, dessa forma, o usuário tem total controle de utilização do sistema para a plenitude
de suas atividades computacionais.
Primeiramente com o sensor estático, o sistema percorre os três eixos verificando quais
são os valores iniciais, a estes valores chamamos de BASAL. É realizado o cálculo estatístico
da média destes valores, dessa forma obtemos a MÉDIA BASAL de cada eixo, ou seja,
obtemos os dados de cada eixo em um instante que não existe nenhum movimento. Nesta
etapa comparamos os valores de cada eixo entre si e verificamos que dentre os três, um deles
sempre apresenta valores que não são significativos, portanto o eixo com valor não
significativo será desconsiderado nas próximas etapas.
Em um segundo momento, é solicitado ao usuário que utilize o acelerômetro. Nesta
etapa o usuário deve realizar o movimento da assinatura, enquanto o movimento está sendo
realizado, os dados de cada eixo selecionado estão sendo lidos pelo software. Caso o dado
recebido seja igual à MÉDIA BASAL de seu eixo correspondente, a assinatura será
desconsiderada, pois podemos concluir que o movimento de assinatura não foi realizado.
Caso seja diferente da MÉDIA BASAL, este dado será guardado, pois concluímos que o
movimento de assinatura foi realizado.
Após ter armazenado todos os valores dos eixos correspondentes a assinatura,
realizamos o cálculo da resultante das duas retas, obtendo assim uma única reta
RESULTANTE entre as duas outras, para obter esta reta utilizamos a fórmula abaixo:
Após obter a assinatura do usuário, o MouseGui entra em ação exibindo as setas
direcionais que devem ser escolhidas pelo usuário para direcionar o sentido desejado para o
cursor do mouse, dessa forma, ele vê as direções das setas e no momento em que desejar
ativar a movimentação do cursor, deve realizar o movimento armazenado na assinatura.
O software recebe os dados dos eixos desse movimento e calcula a resultante assim
como na assinatura, as duas resultantes são comparadas. Se obtivermos um índice positivo
igual ou maior ao índice de confiabilidade configurado, o movimento é considerado válido e o
mouse obedece ao comando, em caso negativo, o cursor do mouse não é ativado par ao
movimento. O índice de confiabilidade é aquele que determina qual é a porcentagem de dados
válidos considerados aceitáveis, neste trabalho trabalhamos com um índice de 60% de
confiabilidade.
3. Resultados
Foram realizados testes em laboratório para atestar a eficácia do software desenvolvido.
Para cada módulo do software, foram realizados testes funcionais a fim de verificar o grau de
confiabilidade do módulo.
O primeiro módulo a ser testado foi o de verificação do valor basal, o objetivo deste
módulo é realizar a leitura dos eixos do acelerômetro no instante inicial e assim obter a média
basal, que nada mais é que a média estatística de cada eixo, que será utilizada como referência
4. VI Seminário PCI_CTI – 2014
pelos outros módulos de software, na tabela 1 é possível verificar os valores obtidos em uma
bateria de testes.
BASAL
Valor Eixo X Eixo Y
0 82 18
1 82 18
2 82 17
3 82 17
4 82 18
5 82 18
6 82 18
7 82 17
8 82 16
9 82 17
MÉDIA 82,00 17,40
Tabela 1 – Valores Basal e Média Basal
Em seguida, foram realizados testes no módulo responsável pela assinatura do
movimento. Este módulo verifica primeiramente se os valores obtidos são diferentes da média
basal, caso os valores sejam iguais ou muito próximos, podemos chegar à conclusão que o
movimento da assinatura não está sendo realizado e o acelerômetro se encontra estático, caso
os valores sejam diferentes da média basal, começamos a armazenar os dados da assinatura,
conforme podemos observar nas figuras 3 e 4.
Figura 3 – Valores da assinatura do movimento do eixo X
5. VI Seminário PCI_CTI – 2014
Figura 4 – Valores da assinatura do movimento do eixo Y
Com estes dados armazenados, calculamos a resultante dos eixos, utilizando a fórmula
matemática já apresentada nos métodos. A resultante será o referencial de assinatura do
movimento do usuário e pode ser visualizada através da figura 5.
Figura 5 – Resultante da assinatura do movimento
A partir deste instante, coletamos os dados do movimento do usuário durante a
utilização do MouseGui, caso o dado seja diferente da média basal ele será armazenado. Após
armazenar todos os dados necessários, transformamos estes dados em uma resultante de
movimento, conforme podemos observar na figura 6, servindo-se do mesmo processo
utilizado na assinatura.
Figura 6 – Resultante do movimento do usuário
6. VI Seminário PCI_CTI – 2014
As duas resultantes são então comparadas, conforme vemos na figura 7, caso a
resultante do movimento tenha similaridade igual ou maior que o índice de confiabilidade
com a resultante da assinatura, consideramos o movimento como fidedigno, ou seja, o usuário
teve a intenção de realizar aquele movimento. No comparativo da figura 7, observamos que o
sinal foi considerado fidedigno.
É importante ressaltar que o índice de confiabilidade é extremamente importante para
definir o quanto o sinal de movimento deve se parecer com a assinatura,
Figura 7 – Comparativo de resultantes da Assinatura e Movimento
4. Conclusões
Este trabalho demonstrou uma técnica de rastreamento capaz de identificar
movimentos válidos utilizando o sensor acelerômetro, em que o objetivo é realizar o
acionamento do cursor do mouse através de um movimento pré-determinando, esta técnica
traz vantagens, pois seu uso é amplo, podendo se adequar em diferentes pacientes, além da
possibilidade de ajustes na precisão do sensor facilitando a adaptação do sistema para as
necessidades de cada usuário.
Referências
[1] CHERAID, D.C. Vivências e expectativas de familiares cuidadores quanto ao uso de Tecnologia Assistiva
(Sistema Auxilis): um estudo psicológico. Dissertação (Mestrado). Unicamp. 2012.
[2] BEIRAL, J.A.R. & ZULIAN, M.A.R. Adequação de sensores contribuindo com a
acessibilidade. Anais IX Congresso Brasileiro de Terapia Ocupacional. Recife. 2005.