UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO JOÃO PAULO BRITO DA SILVA LUIZ FERNANDO MARTINS DO AMARAL TRADUTOR LIBRAS JF ORIENTADOR: Prof. José Carlos da Cunha Curitiba, 12 de Setembro de 2011 UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO TRADUTOR LIBRAS JF __________________________________ JOÃO PAULO BRITO DA SILVA __________________________________ LUIZ FERNANDO MARTINS DO AMARAL BANCA EXAMINADORA PROFESSOR ORIENTADOR MS. JOSÉ CARLOS DA CUNHA PROFESSOR MS. MAURICIO PERRETTO PROFESSOR MS. VALFREDO PILLA JUNIOR CURITIBA, 12 de Setembro de 2011 AGRADECIMENTOS Agradecemos aos amigos, professores, familiares e afins, que ajudaram a concretizar o projeto proposto. RESUMO Segundo dados do Censo 2000 do Instituto Brasileiro de Geografia e Estatística 14,5% da população brasileira possui algum tipo de deficiência (IBGE, 2000). O surdo-mudo possui grande dificuldade para se comunicar, ficando numa situação de desvantagem, uma vez que vivemos num mundo dominado pela língua oral, composta por vocábulos e gramática desconhecidos pela comunidade portadora de deficiência auditiva. Partindo das dificuldades encontradas por essa população na comunicação do dia-a-dia, o protótipo desenvolvido busca sua maior integração social e cultural. A funcionalidade é capaz de traduzir de forma eficiente e em tempo real a LIBRAS – Língua Brasileira de Sinais, utilizando para tanto, um par de luvas sensoriais acopladas a um acelerômetro tri-axial cada uma, cujas respectivas funções são coletar e fornecer ao software de controle informações dos movimentos dos dedos e das mãos no espaço físico. A comunicação entre hardware de aquisição de dados (luva sensorial e acelerômetro) e interface computacional acontece através do uso de microcontroladores e protocolo de comunicação USB. O protótipo possui a capacidade de armazenar gestos conforme necessidade do usuário e/ou interpretar os gestos. Estes gestos interpretados são amostrados ao usuário em forma de texto na língua portuguesa. A interpretação dos gestos ocorre de duas formas distintas: Dinamicamente e estaticamente. No modo dinâmico é possível interpretar o alfabeto da LIBRAS. No modo estático pode-se interpretar gestos mais usados no dia-a-dia e, no caso de formação de frases, fazer a conjugação de verbos para reformulação da frase dentro do tempo verbal correto. O sistema computacional possui ainda a habilidade de interagir com usuário (interação homem-máquina), caracterizada pelo controle total de abertura de janelas e execução de funções feito pela luva sensorial e/ou acelerômetro, distribuindo-se em janelas de vídeo-aula, formulários contando a história da LIBRAS e funcionalidades de inserção e interpretação dos gestos. Palavras-chave: Luvas Sensoriais, LIBRAS, acelerômetro, interação homem-máquina. ARTICLE According to data of Censo 2000 of Statistics and Geography Brazilian Institute (IBGE, 2000), 14,5% of Brazilian people has some kind of deficiency. The heard impaired has a great difficult in communication, becoming unavailable to perform a series of activities, once we live who is generally owned by oral language, composed by specific words and grammar which are usually unknown by heard impaired community. Starting from this population known issues, the developed prototype aims to their biggest social and cultural interaction. It is capable of efficient and fast LIBRAS – Brazilian Signal Language – translating, by using a pair of sensor gloves mixed up with a tri-axis accelerometer each, which has as main functions to collect and to provide to software interface information from fingers moves and also from hand shaking. The communication between hardware and software was possible by using a microcontroller and an USB communication protocol. The prototype is also able to store and interpret gestures as the user needs. These interpretations of gestures occur on two different ways: dynamically and statically. In the dynamic mode it’s possible to interpret the LIBRAS vocabulary from A to Z. In the static mode it´s possible to interpret common gestures and, in case of phrases forms, to perform the verbal correction in order to have phrase pronounced correctly. In the same time, the computational system is also able to interact with user by allowing the full control of its interface only made by the sensor gloves, distributed in several learning windows, history data and etc. Key-words: Sensorial Gloves, Accelerometers, Gestures Translator, Man-machine interaction. SUMÁRIO INTRODUÇÃO ....................................................................................................................................... 10 2 – DESCRIÇÃO DO PROJETO............................................................................................................ 11 3 – DESCRIÇÃO TEÓRICA E ESPECIFICAÇÃO. ................................................................................ 12 3.1 - O QUE É A LIBRAS? ......................................................................................................................... 12 3.1.1 - Como surgiu?.......................................................................................................................... 12 3.1.2 - Características e Exemplos .................................................................................................... 13 3.2 - RECONHECIMENTO DE PADRÕES........................................................................................................ 13 3.3 – ESPECIFICAÇÃO DE HARDWARE ........................................................................................................ 15 3.3.1 - Luvas sensoriais ..................................................................................................................... 15 3.3.2 – Acelerômetro – Teoria e operação ........................................................................................ 16 3.3.3 – Microcontrolador .................................................................................................................... 18 3.4 – REQUISITOS..................................................................................................................................... 19 3.5 – ESPECIFICAÇÃO DE SOFTWARE ......................................................................................................... 20 3.5.1 - Aquisição dos dados ............................................................................................................... 20 3.5.2 - Tratamento dos dados pelo software ..................................................................................... 21 3.5.3 - Banco de Dados ..................................................................................................................... 23 4 – IMPLEMENTAÇÃO .......................................................................................................................... 25 4.1 – IMPLEMENTAÇÃO: HARDWARE .......................................................................................................... 25 4.1.1 - Firmware do microcontrolador: ............................................................................................... 25 3.1.2 – Montagem do circuito: ............................................................................................................ 26 4.2 – SOFTWARE ...................................................................................................................................... 27 4.2.1 - Login no sistema ..................................................................................................................... 28 4.2.2 - Realidade Virtual do sistema .................................................................................................. 29 4.2.3 - Inserção e Interpretação da LIBRAS ...................................................................................... 32 4.2.4 - Classes do software e suas funcionalidades .......................................................................... 36 5 – RESULTADOS E DISCUSSÃO. ...................................................................................................... 38 6 - REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................................. 42 LISTA DE FIGURAS Figura 1 - Alfabeto da Língua Brasileira de Sinais (LIBRAS) .................. Erro! Indicador não definido. Figura 2 - Ilustração da 5DT Dataglove5 Ultra ......................................... Erro! Indicador não definido. Figura 3 - acelerômetro MMA7260Q utilizado no projeto ........................ Erro! Indicador não definido. Figura 4 - Pinagem e imagem ilustrativa do PIC18F2550 ....................... Erro! Indicador não definido. Figura 5 - Fluxo dos eventos durante aquisição/processamento dos dados. .......... Erro! Indicador não definido. Figura 6 - Amostragem do sinal de entrada e saída do microcontroladorErro! Indicador não definido. Figura 7 - Lançamento das Threads ..................................................................................................... 23 Figura 8 - algoritmo do firmware gravado no microcontrolador ............................................................ 26 Figura 9 - Firmware para o microcontrolador PIC18F2550 ..................... Erro! Indicador não definido. Figura 10 - Esquemático da comunicação entre Hardware e computador pela porta USB. ................ 26 Figura 11–Ilustração das dimensões placa de circuito Impresso e representação do Acelerômetro .. 27 Figura 12 - configuração recomendada do acelerômetro ao micrcontrolador. ..................................... 27 Figura 13 - Fórmula de cálculo da distância entre vetores ...................... Erro! Indicador não definido. Figura 14 - Tela inicial do software .......................................................... Erro! Indicador não definido. Figura 15 - Tela de inserção de dados .................................................... Erro! Indicador não definido. Figura 16 - Tela de interpretação de dados ............................................. Erro! Indicador não definido. LISTA DE QUADROS E TABELAS Tabela 1- Especificações da Luva 5DT DataGlove 5 Ultra ................................................................................. 15 Tabela 2 - Configurações e aplicações do acelerômetro, conforme faixa de medida. .......................................... 16 Tabela 3 - Relação entre os pinos GS1, GS2 e a sensibilidade do acelerômetro/modo de funcionamento. .......... 18 Tabela 4 - Dados do microcontrolador 18F2550 da Microchip ............................................................................. 19 Tabela 5 - Resultados do alfabeto ......................................................................................................................... 40 Tabela 6 - Resultados dos gestos ........................................................................................................................... 40 SÍMBOLOS, ABREVIATURAS, SIGLAS E CONVENÇÕES mV/g Milivolts por unidade de aceleração da gravidade; g Aceleração da gravidade; V Volts; GND Aterramento; GHz GigaHertz; MHz MegaHertz. 1 - INTRODUÇÃO Nas escolas e centros especializados na educação de portadores de necessidades especiais, são usados métodos pedagógicos específicos para pessoas surdas com o objetivo de fazer com que desenvolvam ao máximo sua capacidade de comunicação. Um dos grandes diferenciais no processo educacional dos surdos é o aprendizado da LIBRAS (Língua Brasileira de Sinais), um idioma que faz a representação das letras, palavras e expressões complexas através de sinais corpóreos, que por sua vez englobam expressões faciais e gestos com braços e mãos (GABARDO, 2005) . É por meio da linguagem que um povo se constitui, integra e identifica as pessoas e lhe dá o carimbo de pertencimento, de identidade. Neste caso, a existência de uma cultura surda ajuda a construir as identidades das pessoas surdas dentro da sociedade. De acordo com a pesquisadora surda PERLIN (1998), as identidades são múltiplas e multifacetadas, podendo ser definidas em várias categorias, sempre dependendo de suas vivências sociais; assim como vemos aqueles que nasceram ouvintes e ensurdeceram, aqueles que tiveram contato tardio com a comunidade surda, aqueles que continuam com uma identidade dividida entre os dois mundos e aqueles que se guiaram sempre pela experiência visual. Muitas tentativas educacionais foram feitas com o objetivo de educar crianças surdas e, por muito tempo, a surdez foi apontada como a causa do fracasso escolar. A surdez dificulta a comunicação colocando o surdo em desvantagem, pois vivemos num mundo dominado pela língua oral composta por vocábulos e gramática que são desconhecidos pelo surdo. Portanto, os surdos são portadores de necessidades especiais (PEREIRA, 2002). Segundo SASSAKI (2003), educadores e pesquisadores em todo o mundo têm um objetivo em comum, o de propor aos surdos uma melhor condição de vida social e, por isso, surgiram várias filosofias educacionais. Partindo das dificuldades encontradas pelos deficientes auditivos na comunicação do dia-adia, o presente trabalho a ser desenvolvido busca a maior integração social e cultural dessa população. Usando-se de tecnologia apropriada e componentes necessários desenvolver-se-á um protótipo capaz de traduzir de forma eficiente e em tempo real a libras. Como ponto inicial, pensou-se numa forma de obter os movimentos dos dedos das mãos em conjunto com os movimentos das mãos no espaço em três dimensões. Chegou-se então, na conclusão de utilizar um par de luvas especiais em conjunto com um acelerômetro. Com esses dados obtidos, foi desenvolvido um software capaz de fazer interpretação para Linguagem de Sinais. 11 2 – DESCRIÇÃO DO PROJETO. O protótipo possui a capacidade de armazenar gestos conforme necessidade do usuário e/ou interpretar os gestos. Estes gestos, quando interpretados, são amostrados ao usuário em forma de texto na língua portuguesa, podendo este processo ocorrer de duas formas distintas: dinamicamente e estaticamente. No modo dinâmico é possível interpretar o vocabulário (A-Z) da LIBRAS. No modo estático é possível interpretar gestos completos e, no caso de formação de frases, fazer a conjugação de verbos para reformulação da frase dentro do tempo verbal correto. O sistema computacional possui ainda a habilidade de interagir com usuário (interação homem-máquina), caracterizada pelo controle total de abertura de janelas e execução de funções feito pela luva sensorial e/ou acelerômetro, distribuindo-se em janelas de vídeo-aula, formulários contando a história da LIBRAS e funcionalidades de inserção e interpretação dos gestos. Para melhor entendimento de como foi constituído o fluxo de eventos entre as diferentes partes do protótipo, ilustramos o processo na figura 1. A aquisição de dados feita pelo computador da luva sensorial e do acelerômetro se dará simultaneamente, passando essas informações ao software que possui a responsabilidade de tratar essas informações. Figura 1 - Fluxo dos eventos durante aquisição/processamento dos dados. 12 3 – DESCRIÇÃO TEÓRICA E ESPECIFICAÇÃO 3.1 - O que é a LIBRAS? A Língua Brasileira de Sinais (LIBRAS) é utilizada por deficientes auditivos para a comunicação entre eles. Para uma melhor compreensão dessa realidade é interessante que essa linguagem se faça conhecer, e que haja uma procura por ela com o interesse de aprendê-la (QUADROS, 1997). A LIBRAS é uma das linguagens de sinais existentes no mundo para a comunicação entre surdos. Ela tem origem na LSF - Linguagem de Sinais Francesa. As linguagens de sinais não são universais, elas possuem sua própria estrutura de país pra país e diferem até mesmo de região pra região de um mesmo país, dependendo da cultura daquele determinado local para construir suas expressões ou regionalismos (ARAÚJO, 2010). Como qualquer outra língua, ela também possui expressões que diferem de região para região (os regionalismos), o que a legitima ainda mais como língua. Segundo ARAÚJO (2010), as LS - Línguas de Sinais - não são simplesmente mímicas e gestos soltos utilizados pelos surdos para facilitar a comunicação. Muito pelo contrário, são línguas com estruturas gramaticais próprias. O que diferencia as Línguas de Sinais das demais línguas é a sua modalidade visual-espacial. Dessa maneira, os surdos podem se interagir com outras pessoas, ou ainda, entre si para conversar ou se expressar sobre qualquer assunto. 3.1.1 - Como surgiu? No período de 1500 a 1855, já existiam muitos surdos no país. Nessa época, a educação era precária. Em 1855, ocorreu a vinda ao Brasil de um professor francês surdo, chamado Adolph Hurt, e, em 1887, foi fundado o primeiro Instituto Nacional de Surdos Mudos no Rio de Janeiro (SASSAKI, 2003). No período de 1970 a 1992, os surdos se fortaleceram e reivindicaram os seus direitos. Desde aquela época, as escolas tradicionais existentes no método oral mudaram de filosofia e, até hoje, boa parte delas vêm adotando a comunicação total (PEREIRA, 2002). Em 2002, foi promulgada uma lei que reconhecia a Língua Brasileira de Sinais como meio de comunicação objetiva e de utilização das comunidades surdas no Brasil. Em 2005, foi promulgado um decreto que tornou obrigatória a inserção da disciplina nos cursos de formação de professores para o exercício do magistério em nível médio (curso normal) e superior (Pedagogia, Educação Especial, Fonoaudiologia e Letras). Desde então, as instituições de ensino vêem procurando se adequar a essa lei (ARAÚJO, 2010). 13 3.1.2 - Características e Exemplos Segundo PEREIRA (2002), para determinar o seu significado, os sinais possuem alguns parâmetros para a sua formação, como por exemplo, a localização das mãos em relação ao corpo, a expressão facial, a movimentação que se faz ou não na hora de produzir o sinal, etc. Há algumas particularidades simples, que facilitam o entendimento da língua, como o fato de os verbos aparecerem todos no infinitivo e os pronomes pessoais não serem representados, sendo necessário apontar a pessoa de quem se fala para ser entendido. Há ainda algumas palavras que não tem sinal correspondente, como é o caso dos nomes próprios. Nessa situação, as letras são sinalizadas uma a uma para expressar tal palavra. Uma representação do alfabeto LIBRAS pode ser encontrado na figura 2. Figura 2 - Alfabeto da Língua Brasileira de Sinais (LIBRAS) 3.2 - Reconhecimento de Padrões: Voltando-se para a parte técnica do projeto, caracteriza-se a seguir o método de interpretação dos gestos feitos pelos usuários durante a utilização do protótipo. Os seres humanos são capazes de reconhecer padrões com grande rapidez. Faz parte da natureza humana, ao observar um objeto, fazer uma coleta de informações, as quais são comparadas com as propriedades e comportamentos conhecidos e armazenados em sua mente. Através dessa comparação os seres humanos são capazes de reconhecer o alvo de sua observação. Este conceito de reconhecimento é simples e familiar para todos em um ambiente real, mas no contexto da inteligência artificial, o reconhecimento não é uma tarefa trivial. Não existe nenhuma máquina ou 14 software de inteligência artificial que seja capaz de igualar-se a capacidade de reconhecimento do cérebro humano (MARQUES, 2005). As iniciativas para o reconhecimento de padrões artificialmente dividem-se em duas categorias: de reconhecimento de itens concretos e abstratos. Ainda citando MARQUES (2005), temo que o reconhecimento de itens concretos envolve o reconhecimento de impressões digitais, assinaturas, objetos físicos, formas de ondas, voz, faces, enfim, o reconhecimento de itens que existem concretamente. Os elementos abstratos seriam itens sem forma física como, por exemplo, a solução para um determinado problema. O reconhecimento de padrões envolve três níveis de processamento: filtragem da entrada, extração de características e classificação. A filtragem da entrada de dados tem o objetivo de eliminar dados desnecessários ou distorcidos fazendo com que a entrada apresente apenas dados relevantes para o reconhecimento do objeto em análise. A extração de características consiste da análise dos dados de entrada a fim de extrair e derivar informações úteis para o processo de reconhecimento (GABARDO, 2005). O estágio final do reconhecimento de padrões é a classificação, onde através da análise das características da entrada de dados o objeto em análise é declarado como pertencente a uma determinada categoria. Quando se busca realizar o reconhecimento de padrões em modelos estáticos, em especial a fase de classificação que é bastante onerosa, esses modelos são eficientes apenas quando suposições de limite são satisfeitas. A eficiência de modelos estáticos depende de um grande conjunto de suposições ou condições sobre as quais o modelo é construído. Para que o modelo seja empregado com sucesso, é necessário que os usuários possuam um bom conhecimento sobre as propriedades dos dados analisados e das capacidades do modelo. As redes neurais são uma alternativa promissora para vários métodos de classificação convencionais. Elas possuem vantagens como ser adaptativas em função dos seus dados (data driven), ou seja, são capazes de se ajustar a si próprias sem a necessidade de qualquer especificação explícita. As redes neurais também são modelos não lineares capazes de modelar com flexibilidade as complexas relações do modelo do mundo real (MARQUES, 2005). Reunindo estes dois temas principais citados acima, tornou-se possível a implementação do projeto do tradutor de LIBRAS JF, que visa interpretar os sinais e gestos feitos pelo usuário em uma linguagem comum a toda comunidade não-surda, proporcionando uma melhor forma de interação entre as diferentes culturas. 15 3.3 – Especificação de Hardware 3.3.1 - Luvas sensoriais Para obter as taxas de variações dos movimentos dos dedos, foi utilizado um par de Luvas especiais do Fabricante 5DT, chamada DT Data Glove5 Ultra. A 5DT DataGlove 5 Ultra, apresentada na Figura 3, segundo 5DT (2011), possui alta qualidade de dados e precisão na simulação dos movimentos. As luvas vêm com a interface padrão USB, eliminando a necessidade de fonte de alimentação externa. Figura 3 - Ilustração da 5DT Dataglove5 Ultra Este dispositivo possui sensores de fibra óptica, que permitem a captação de informações como a flexão dos dedos da mão do usuário. Essas informações são transferidas à aplicação (software) para tradução do movimento, ou seja, tradução das libras para língua portuguesa. A tabela 1 possui algumas características da Luva 5DT DataGlove 5 Ultra (5DT, 2011). Tabela 1- Especificações da Luva 5DT DataGlove 5 Ultra Material Lycra Stretch preto Resolução do sensor 12 bits A/D (alcance típico de 10 bits) Sensores de Flexão Baseado em fibra óptica 5 sensores no total 1 sensor por dedo, medidas, média de articulação e primeira junta Interface USB 1.1 de alta velocidade RS-232 (opcional) Alimentação Via Interface USB Taxa de Amostragem Mínimo de 75Hz (5DT, 2011) 16 Apesar da tecnologia da Luva 5DT DataGlove ser bem avançada, ela não é suficiente para o sucesso do projeto, pois é capaz de captar somente os movimentos dos dedos. Para captar os movimentos no espaço em três dimensões, será usado um acelerômetro tri-axial. 3.3.2 – Acelerômetro – Teoria e operação Segundo MORIMOTO (2009), os acelerômetros são sensores capazes de converter a aceleração da gravidade ou o movimento em sinais elétricos. Qualquer atividade onde haja movimento pode ter o valor de sua aceleração medida por um acelerômetro. Para saber qual aplicação é possível para um acelerômetro é preciso conhecer a ordem de grandeza da aceleração que se deseja medir, visto que estes sensores são fabricados dentro de faixas de valores específicas. A indústria automobilística proporcionou um grande barateamento de custos do instrumento devido ao seu uso em larga escala. Nos carros, o acelerômetro exerce uma importante função ao controle de estabilidade ao calcular as forças em que o veículo está sendo submetido, além de auxiliar na orientação do GPS. Além de mais barato, o instrumento ocupa dimensões muito menores, sendo encontrado com freqüência em celulares e computadores portáteis (PRADA, 2009). Na tabela 2 são mostradas as faixas típicas de trabalho, com as suas respectivas aplicações. Tabela 2 - Configurações e aplicações do acelerômetro, conforme faixa de medida. Faixa de Medida 0,002 – 2g 1 – 2g 2 – 8g 8 – 10g 10 – 20g 20 – 40g 40 – 100 g Aplicação Típica Onde pode ser usado Sismografia Sismógrafos, Aparelhos para detecção de terremotos. Detecção de movimento Detecção de queda livre Detecção de inclinação Detecção de capotagem Alarme antirroubo, detector de quedas de humanos. HD´s, notebooks, Celulares, MP3 players... Reconhecimento de movimentos, jogos… Acionamento de Air Bags laterais em veículos, controle de estabilidade e tração. Estabilização de motores Vibrações de motoresindustriais Detecção de batidas, pancadas, choques macânicos, colisões... Pedômetros Gravadores de movimento Detecção de batidas de automóvel Trsnsporte de cargas, área de logística, manuseio de encomendas e produtos.. Caminhas, corridas, exercícios, aparelhos de ginásticas e academia... Data Recorders, gravadores de evento... Disparo de Air Bags (PRADA, 2009) Continuando com as afirmações de PRADA (2009), além da faixa de aceleração que se pode medir, informações como a tolerância, formato de saída (digital, analógica, PWM, etc.), encapsulamento e outros, também são levados em consideração na hora de especificar qual componente se aplica a cada projeto. 17 Algumas das diversas características que devem ser observadas para especificar um acelerômetro são: • Quantidade de eixos: o modo de construção do dispositivo permite que ele forneça informações em até três eixos simultaneamente, geralmente chamados pelos fabricantes de X, Y e Z. Alguns modelos medem apenas um ou dois eixos (MORIMOTO, 2009). • Faixa de medição: informa qual é a capacidade de medição do sensor, com valores negativos (desaceleração) e positivos (aceleração). Esta faixa será importante para determinar em qual aplicação o sensor pode ser utilizado, como já mostrado na tabela 2 (MORIMOTO, 2009). Optou-se pelo uso do acelerômetro da Empresa Microchip MMA7260Q BreakoutBoard, conforme mostrado na figura 4: Figura 4 - Acelerômetro MMA7260Q utilizado no projeto (SPARKFUN, 2001) Características do acelerômetro MMA7260Q, segundo SPARKFUN (2001): • O Output dos valores dos 3-eixos é analógico; • Alimentação 0 GND / 3.3V; • Tem 4 modos de operação, 1.5G / 2G / 4G / 6G (Valores G máximos); • 2 Seletores para selecionar o modo de funcionamento, GS1 e GS2; • Pino Sleep, 3,3v – acelerômetro ligado, 0v – acelerômetro desligado; • Estes três pinos podem ser controlados por um microcontrolador (arduino, por exemplo, com os pinos digitais). 18 Mais informações podem ser vistas na tabela 3, que referencia a relação entre diversos pinos do acelerômetro no que diz respeito à sensibilidade de medição. Tabela 3 - Relação entre os pinos GS1, GS2 e a sensibilidade do acelerômetro/modo de funcionamento. GS1 GND GND 3.3V 3.3V GS2 GND 3.3V GND 3.3V G-range 1.5g 2g 4g 6g Sensibilidade 800mV/g 600mV/g 300mV/g 200mV/g Seguindo a tabela 3, os pinos GND, GS1, GS2 ligam a 0V e os pinos VCC e Sleep ligam a 3,3V. A sensibilidade deste acelerômetro pode ser alterada “onthefly”, isto é, ao ligar os pinos GS1 e GS2 a um microcontrolador podem alterar sua a sensibilidade mudando o valor lógico dos pinos. O mesmo aplica-se ao pino Sleep (SPARKFUN, 2001). 3.3.3 – Microcontrolador Os microcontroladores são chips inteligentes, que tem um processador, pinos de entradas/saídas e memória. Através da programação dos microcontroladores podemos controlar suas saídas, tendo como referência as entradas ou um programa interno (SILVA, 2007). Segundo SILVA (2007), o que diferencia os diversos tipos de microcontroladores são as quantidades de memória interna (programa e dados), velocidade de processamento, quantidade de pinos de entrada/saída (I/O), alimentação, periféricos, arquitetura e set de instruções. O microcontrolador que foi utilizado no trabalho está representado pela figura 5: Figura 5 - Pinagem e imagem ilustrativa do PIC18F2550 (SILVA, 2007) 19 As características do microcontrolador 18F2550 do fabricante Microchip pode ser encontrado na tabela 4, logo abaixo: Tabela 4 - Dados do microcontrolador 18F2550 da Microchip MemorySize 1000 Bytes Numberof Pins 18 Access Time 20.0 µs ClockSpeed 20.0 MHz (max) OperatingTemperature 85.0 °C (max) OperatingVoltage 2.00 V to 5.50 V SupplyVoltage (DC) 5.50 V (max) Case / Package PDIP-18 (SPARKFUN, 2001) 3.4 – Requisitos Para construção e funcionamento do projeto foi necessário: - Um microcontrolador capaz de suportar a interface USB de comunicação. Utilizado: PIC18F2550; - Um computador para testes e desenvolvimento do software. - Ferramentas para desenvolvimento do software: - Plataforma de desenvolvimento: Visual Studio 2008 Express. - Banco de Dados: SQL Server 2008 Express; - Fonte de alimentação externa 5V; - Bibliotecas de desenvolvimento disponibilizadas pelo Fabricante 5DT; - Protoboard e componentes eletrônicos para desenvolvimento e teste; Para o funcionamento do protótipo: Foi preciso um par de luvas sensoriais, juntamente com o módulo de acelerômetro integrado ao microcontrolador. O protótipo foi conectado a um computador que possuía no mínimo: - Sistema Operacional Windows XP; - 2 Gigabytes de memória; 20 - 300 Megabytes de espaço livre em disco; - Processador de 2GHz; A alimentação da luva sensorial se dá através da interface USB, que por sua vez, também é responsável pela comunicação entre computador e hardware. Na interpretação dos dados providos do hardware é necessário ainda o Software Identificador de Libras JF. No mais, necessitou-se que o usuário do protótipo entendesse um mínimo da LIBRAS ou possuísse um manual dos gestos conhecidos pelo protótipo, afim de que pudesse efetuar com sucesso a interação homem-máquina. 3.5 – Especificação de software No contexto deste projeto, foi identificado a necessidade criar uma série de interações entre os equipamentos de hardware e o software. O projeto divide-se então duas partes que se interagem: Aquisição de dados do hardware e tratamento dos dados pelo software para identificação dos gestos. 3.5.1 - Aquisição dos dados Como já é de conhecimento, o protótipo utiliza um acelerômetro com as características mencionadas no tópico 2.4, ou seja, o sinal obtido é puramente analógico. O computador, por sua vez, não é capaz de reconhecer tais sinais, o que torna indispensável o desenvolvimento de um circuito para tratamento desse sinal analógico. Para isso foi utilizado um microcontrolador conforme especificado. O microcontrolador, por sua vez, processa esses sinais analógicos e disponibiliza via conexão USB binariamente os sinais digitalizados. Vejo o exemplo na figura 6 abaixo: Figura 6 - Amostragem do sinal de entrada e saída do microcontrolador Os sinais providos da luvas sensoriais já são digitais, ou seja, possuem configuração serial configurada pelo fabricante. Desta forma os dados que chegam ao software já estão configurados digitalmente. Tendo esses dados, coube ao software processá-los para compreender os gestos feitos. 21 3.5.2 - Tratamento dos dados pelo software Após o computador receber os dados via conexão USB, o software já preparado para receber essas informações inicia o ciclo de processamentos dessas informações. Um algoritmo foi desenvolvido, seguindo a linha de raciocínio do digrama em blocos 1, descrito logo abaixo. Para facilitar o desenvolvimento, a luvas sensorial possui algumas bibliotecas prontas para recebimento dos sinais providos do hardware. Essas bibliotecas possuem identificador fd, indicando o fabricante (Fifth Dimension Technologies). Para obter os valores é usado um verbo para definir uma determinada ação (Scan, Get,Open, Close), e a informação que identifica o propósito da função (SensorRawAll, SensorScaledAll, NumberSensors, Calibration). Em seguida, entre parênteses são disponibilizados os parâmetros da referida função, geralmente compostos pelo ponteiro do tipo fdGlove (que representa a luva de dados na aplicação e é definido na biblioteca disponibilizada pelo fabricante) e uma variável para armazenar informações a serem recebidas (como os valores dos sensores), ou a serem enviadas (como por exemplo, valores para calibração). Por exemplo, na função fdGetSensorRawAll (pGlove,vetor) , que pode ser implementada para obter os valores de todos os sensores da luva de dados simultaneamente, fd indica o fabricante, Get identifica a ação de receber informação, SensorRawAll mostra que é uma função para obtenção de todos os sensores do dispositivo, pGloveé um ponteiro do tipo fdGlove , e vetor indica um array fictício para armazenar os valores obtidos. A figura 7 representando o diagrama em blocos descrito na próxima página demonstra o funcionamento do software, no que se refere a tratamento de dados obtidos do hardware. 22 Figura 7 - Fluxograma de tratamento de dados Aprofundando um pouco mais o tratamento dos dados, no que diz respeito à utilização de threads, desenvolveu-se um sistema de busca baseado no tempo de resposta do hardware (100ms por amostra) juntamente com a busca em paralelo proporcionada pelo uso das linhas de execução. As threads são acionadas a cada ciclo de 400ms e cada uma tem a capacidade de retornar um valor válido como resposta. Se esse valor válido for o mesmo em mais de uma thread, então o software considera que aquele valor é o correto para o gesto que se quer identificar. Abaixo, na figura 8, temos uma representação do que foi descrito acima: 23 Figura 8 - Lançamento das Threads Como determinado, as threads se iniciam umas após as outras trazendo respostas respectivas a cada ciclo de leitura determinado pelo tempo de início de cada thread. 3.5.3 - Banco de Dados O MS SQL Server é um SGBD - sistema gerenciador de Banco de dados relacional criado pela Microsoft em parceria com a Sybase em 1988 e inserido como produto complementar do Windows NT. Ao final da parceria, em 1994, a Microsoft continuou aperfeiçoando o produto. Com a nova versão a Microsoft SQL Server 2008 é fornecida uma plataforma de dados confiável, produtiva e inteligente que permite que você execute suas aplicações de missão crítica mais exigentes, reduza o tempo e o custo com o desenvolvimento e o gerenciamento de aplicações e entregue percepção que se traduz em ações estratégicas em toda sua organização. O SQL é um banco de dados robusto e usado por sistemas corporativos dos mais diversos portes. Como já dito anteriormente, a inserção do valor fornecido pelo hardware ocorre via software. Porém, um cálculo é feito antes da inserção efetiva, a fim de se obter valores inteiros e únicos que caracterizem e diferenciem o movimento feito pelo usuário da luva. Este cálculo baseia-se no conceito de distância de vetores, que por sua vez, descreve-se pela obtenção de um valor único retirado de dois vetores, que denota a distância cartesiana entre eles. O conceito é muito simples, sendo a distância representada pela diferença modular entre dois vetores. Para um melhor entendimento, temos abaixo a descrição detalhada da equação 1: Equação 1 – Distância entre dois pontos no espaço A equação 1 representa a forma de cálculo entre dois vetores de três posições. No software proposto, o cálculo deve ser feito com um vetor de oito posições, ou seja, a fórmula aumentaria apenas em termos de fatores dentro da radiciação. 24 Tendo em conta esta distância numérica e única, a busca no banco de dados se dá simplesmente pela execução de um comando “SELECT” feito via código no programa principal de controle. Cabe a observação de que, como estamos lidando com um sistema analógico, uma variância nesses valores para um mesmo movimento é possível e, por isso, o comando enviado ao banco de dados para seleção da resposta correta é feito com uma margem de erro de dez unidades de valor para mais ou para menos. 25 4 – IMPLEMENTAÇÃO O projeto foi dividido em duas etapas, sendo estas compostas pelo desenvolvimento do hardware e desenvolvimento do software, respectivamente. 4.1 – Implementação: Hardware Para desenvolvimento do hardware, duas etapas foram traçadas e cumpridas baseadas na descrição do capítulo três, sendo necessária a constituição do firmware do microcontrolador, bem como a construção da placa de controle que envia os dados de forma digital para a interface computacional. Para a montagem da placa de circuito impresso foram necessários os seguintes componentes, representados pela tabela 5: Tabela 5 - Componentes do protótipo Componente Descrição Fabricante Qtde Microcontrolador PIC 18F2550 Microchip 2 Acelerômetro 3 Eixos Mma7260 Freescale 2 Capacitor 15nF - 2 Capacitor 0.4uF - 1 Capacitor 470nF - 1 Capacitor 0.1uF - 4 Resistores 10KOhm - 1 Resistores 1KOhm - 3 Regulador de Tensão L78L33 STMICROELECTRONICS 2 Cabo USB - - 2 Conector USB B - - 2 4.1.1 - Firmware do microcontrolador: O firmware desenvolvido precisou transformar o sinal analógico, proveniente do acelerômetro, em um sinal digital. O algoritmo responsável por essa função específica baseou-se em duas rotinas distintas: a captura de sinais feita pelo acelerômetro e o envio destes para o computador. Para controlar o envio de sinais de forma a evitar a perda de dados ou mesmo a repetição deles, introduzimos no firmware um critério de parada simples de um bit cuja função é determinar se o dado lido foi recebido com sucesso ou se ainda está sendo recebido. 26 Todo o funcionamento básico do firmware foi descrito no fluxograma representado pela figura 9, que é mostrada logo abaixo: Figura 9 - Algoritmo do firmware gravado no microcontrolador A linguagem de programação C foi utilizada para o desenvolvimento do firmware, além de duas bibliotecas padrão para conexão com porta USB. O firmware faz a leitura do sinal analógico a cada 100ms através das portas de entrada do conversor AD do microcontrolador. Esses dados, por fim, tornam-se digitais e são enviados ao software via porta USB. 3.1.2 – Montagem do circuito: Como já dito, a segunda parte do desenvolvimento do hardware consituiu-se da montagem da placa de circuito impresso capaz de fazer a comunicação com a interface computacional. A figura 10, abaixo, representa detalhadamente a ligação dos componentes, bem como a resposta da comunicação USB. Figura 10 - Esquemático da comunicação entre Hardware e computador pela porta USB. Outra representação do circuito descrito acima pode ser vista abaixo, através da figura 11: 27 Figura 11–Ilustração das dimensões placa de circuito Impresso e representação do Acelerômetro Conforme mostrado na figura 11, as tensões fornecida pelo acelerômetro ( das dimensões X, Y, Z) são recebidas pelo microcontrolador através dos canais de ADC (conversores analógicos para digitais). Esses canais, por sua vez, são responsáveis por transformar essas tensões em informações digitais. Para se fazer essa conexão entre o microcontrolador e o acelerômetro utilizamos alguns capacitores de 0,1uF e resistores de 1KOhm. A figura 12 mostra as conexões feitas, além da configuração do acelerômetro para trabalhar dentro da faixa de captura. Essa configuração é feita através da tensão fornecida por um dos pinos do microcotrolador (P0 ou P1 ou P2). Figura 12 - configuração recomendada do acelerômetro ao micrcontrolador. 4.2 – Software Para que a leitura dos dados de hardware seja feita de forma a possibilitar que usuários comuns consigam interagir com o protótipo e utilizá-lo de forma produtiva, foi construído um sistema de controle(software) capaz de interagir com usuário, afim de que o mesmo possa se comunicar, aprender os gestos da libras, conhecer a história e incluir os gestos conforme necessidade e aprendizado. O software foi implementado utilizando a interface de desenvolvimento Visual Studio 2010 C# e foi condicionado a desempenhar as funções previstas com sucesso. 28 4.2.1 - Login no sistema Como dito, cada usuário poderá possuir seus próprios gestos no sistema. Para isso, o login no sistema deverá ser único para cada usuário. A figura 13 mostra a tela que valida a abertura do sistema. Figura 13 - Tela de login Caso o usuário seja novo no sistema, o mesmo poderá fazer seu cadastro, informando dados pessoais, senha e nome do login a ser usado no sistema. A figura 14 mostra esse formulário. Figura 14 - Tela de cadastro 29 4.2.2 - Realidade Virtual do sistema Com o objetivo de fornecer interatividade durante a navegação dento do sistema, foi implementado, utilizando a luva sensorial e o acelerômetro, um modelo de interface de comandos em que o usuário poderá abrir os formulários usando os movimentos da própria luva sensorial e o acelerômetro. Assim que o sistema é aberto, uma série de opções de navegação são mostrados ao usuário. São as opções contidas no sistema, lembrando que para fazer uso destas funções é necessário dobrar os dedos em direção à palma da mão: Polegar Direito – Abre e fecha formulário de interpretação de gestos. Polegar Esquerdo – Abre e fecha formulário de inserção de novos gestos. Indicador Esquerdo – Abre e fecha formulário de história da Libras. Indicador Direito – abre e fecha formulário de vídeos de aprendizado da Libras. Anular Direito – Abre e fecha formulário “Sobre” do sistema. Médio Esquerdo – Habilita controle do mouse via dados do acelerômetro. Movimento brusco do acelerômetro – fecha o sistema em definitivo. Na imagem 15 temos a tela de abertura do sistema e as opções conforme descritas acima. Figura 15 - Tela inicial 30 Como dito, o protótipo tem a intenção de abordar um pouco sobre o mundo da língua brasileira de sinais. Neste intuito, o sistema computacional possui algumas telas abordando um pouco a história e gestos conhecidos da Libras. A tela da história da Libras, conforme mostrado na figura 16, aborda o início do uso desta linguagem no Brasil e o seu avanço e uso na atualidade. Figura 16 - Tela de história da LIBRAS Foi desenvolvido ainda uma tela para aprendizado da Libras. Nesta existem 10 vídeo-aulas, abordando os principais gestos da libras, como o alfabeto, cumprimentos, elogios, família, agradecimentos e assim por diante. Nesta tela é possível escolher as vídeos-aula a partir da luva sensorial, reproduzir, pausar ou reiniciar a vídeo-aula a partir dos movimentos específicos das mãos. Seguem detalhados abaixo, os comandos existentes: Polegar Esquerdo – Volta para vídeo anterior. Indicador Esquerdo – Executa vídeo-aula escolhido. 31 Polegar Direito – Avança para próxima vídeoaula. Indicador Direito – Pausa a vídeo-aula. Médio Direito – Reinicia a vídeo-aula. Movimento brusco do acelerômetro – fecha o formulário de vídeos-aula de aprendizado. Na figura 17 observar-se esta tela com seus comandos específicos, conforme mencionado. Figura 17 - Tela de vídeo-aulas A fim de obter informações de contato sobre as pessoas que construíram o sistema, foi desenvolvido uma tela específica para isso, conforme mostrada na figura 18, com o nome “SOBRE”. 32 Figura 18 - Tela "SOBRE" 4.2.3 - Inserção e Interpretação da LIBRAS O objetivo principal do sistema é a interpretação dos gestos feitos pelo usuário. Para tanto, é necessário que haja a população do banco de dados com os gestos conhecidos. Seguindo esta linha de raciocínio, foi desenvolvida uma tela capaz de capturar os gestos feitos pelo usuário e armazenar num banco de dados. Este armazenamento pode ser feito por usuários diferentes, ou seja, diferentes usuários podem inserir o mesmo gesto no banco de dados, possibilitando que o sistema saiba o padrão de cada usuário durante o processamento de identificação dos gestos. A figura 19 mostra o fluxograma que representa a forma com que o sistema armazena essas informações. 33 Figura 19 - Fluxograma de inserção de dados Tanto na inserção de dados quanto na interpretação de dados, ocorre a calibração do hardware. É feita uma somatória dos valores de cada eixo do acelerômetro e de cada dedo da luva. Após 50 leituras/somatória, é tirado um conjunto de médias, as quais simbolizam o ponto zero do hardware. A partir deste momento, todos os valores coletados serão subtraídos deste conjunto de dados. Após a calibração, o campo para inserção do gesto é liberado. Neste campo o usuário poderá digitar o nome do gesto a ser armazenado no banco de dados. Se o usuário tentar iniciar a gravação sem digitar, uma mensagem de erro será levantada, informando ao usuário a necessidade de preenchimento deste campo. Como foi mostrado no fluxograma 1, o usuário deverá gravar cinco vezes o mesmo gesto, para que seja gerado um centróide, ou seja, uma média final das gravações. É baseado neste centróide que ocorre os filtros no banco de dados para interpretação dos gestos. O inicio da gravação é determinada pelo usuário a partir do uso da luva esquerda, que neste momento é chamada de “Luva de Controle”. Segue os comandos existentes para gravação: Polegar Esquerdo – Inicia a gravação. Indicador Esquerdo – Finaliza a gravação. 34 Médio Esquerdo – Fecha o formulário de inserção. A Figura 20 mostra o formulário de inserção de gestos, com seus respectivos campos e informações. Figura 20 - Tela de inserção de dados A gravação dos dados será feita em tabelas pré-definidas. Nessas tabelas constam os nomes dos diferentes tipos de testes, os nomes dos gestos gravados e os valores calculados pelo software para cada leitura feita. Após a inserção dos gestos, é possível fazer a interpretação dos gestos e amostragem computacional. A interpretação de gestos se dá de duas formas: dinamicamente ou estaticamente. Na interpretação dinâmica o sistema filtra o banco de dados em busca de algum gesto do alfabeto. Os dados são coletados num intervalo de 18 leituras do hardware. São utilizadas para interpretação um total de três threads. Conforme os dados vão sendo lidos e tratados, um método específico alimenta o gerenciador de threads. À medida que os dados chegam ao gerenciador de threads, um contador é responsável por inicializar as threads ou finalizar o uso das mesmas. Quando uma thread completa um conjunto de dez leituras, a mesma inicia o filtro no banco de dados para identificação dos gestos. No método de filtragem dinâmica é feito um loop comparando o conjunto de leituras com os valores gravados no banco, buscando as possíveis combinações. Quando é retornado algum valor, um contador é incrementado. Quando o loop é terminado, um método de estatística é chamado, onde o mesmo verifica se houve uma precisão de acertos acima de 70%. Se sim, o(s) gesto(s) encontrado(s) é(são) retornado(s). Assim ocorre sucessivamente até as três threads finalizarem a filtragem e devolver ao 35 formulário a resposta através de uma combinação de gestos (neste caso devem-se haver no mínimo duas respostas iguais para ser amostrado o nome do gesto). Na filtragem estática, a forma com que os dados são coletados é comandada pelo usuário, ou seja, existe um começo e fim de coleta de dados. Utilizando a luva da mão esquerda (luva de controle) o usuário dispõe dos seguintes comandos: Polegar Esquerdo: Inicializa a coleta de dados. O mesmo comando feito pela segunda vez finaliza a coleta de dados. Indicador Esquerdo: Muda o tipo de interpretação de Filtro estático para dinâmico. Médio Esquerdo – Fecha o formulário de interpretação de gestos. A filtragem estática não usa threads. Os dados coletados são passados para um método de filtragem do banco de dados. Neste método, acontece um loop, ao fim do loop, uma função de estatística é chamada para ver precisão de acertos (assim como acontece na filtragem dinâmica). Após isso, os gestos encontrados são amostrados na tela para usuário. Uma vantagem desta filtragem é a conjugação de verbos. Assim que o resultado é amostrado, o usuário pode incluir isso num conjunto de outros gestos, podendo formar frases. Cada vez o usuário faz isso, um método de conjugação de verbos é chamado. Este método percorre a frase montada a procura do agente verbal, se o agente é encontrado, é verificado no banco de dados os verbos correspondentes da frase e conjugados corretamente. Uma representação do formulário de interpretação de dados acima descrito pode ser encontrado na figura 21, inserida abaixo: Figura 21 - Tela de interpretação de dados 36 4.2.4 - Classes do software e suas funcionalidades O software desenvolvido dividiu-se em três tipos de classes distintos, de forma que todas em conjunto contribuíssem para que a inserção de dados e usuários e a interpretação de gestos ocorressem sem maiores problemas. As classes abaixo descritas representam estes três tipos: Classes referentes a usuário: clsLogin – Classe responsável pelo login do usuário. Nesta classe faz-se as validações de senha e login. clsControlCadastro – É a classe de controle de cadastro de novos usuários. Esta classe não é responsável pelas ações no banco, ou seja, tem única finalidade de controlar as informações do formulário e transmiti-las para classe de gravação ou obtenção dos dados do banco de dados. clsDadosCadastro – Esta classe recebe os parâmetros da classe de controle (clsControlCadastro) e faz operação de cadastro no banco ou consulta no mesmo. É desta classe que se grava ou obtém os dados a serem amostrados na tela de cadastro de novos usuários do sistema. Classes relativas à inserção de dados: clsInsercao – Classe responsável pela inserção dos gestos no banco de dados e o tempo em segundos do gesto coletado. clsCentroide – Nesta classe existe vários métodos, os quais tem o objetivo de calcular a média de valores de cada gesto a serem inseridos no banco de dados. Classes relativas à interpretação dos gestos: clsFiiltragemDinamica – Uma das classes principais do sistema. Possui métodos capazes de fazerem buscas no banco de dados, gerar estatísticas e retornar ao formulário os gestos encontrados. clsFrasesConjugadas – À medida que os gestos são identificados, os mesmos são armazenados num array dinâmico e são enviados a esta classe que tem o objetivo de verificar a existência de verbos e assim conjugar a frase para o tempo verbal correto. clsThreds – Nesta faz-se o gerenciamento das 3 threads abertas durante processamento de identificação de gestos dinamicamente. Classes genéricas: clsCalibracao – Classe responsável pela calibração do acelerômetro e do par de luvas. 37 clsUnificacao – classe responsável pela unificação dos dados chegados da luva e acelerômetro, já que este dados chegam duplicados e com tipo diferente da usual. 38 5 – RESULTADOS E DISCUSSÃO Como já foi dito, além de utilizar a luva sensorial, foi preciso implementar algo que conseguisse capturar as posições no espaço (X,Y,Z), neste caso fez-se uso do acelerômetro e microcontrolador para comunicar-se com computador. A figura 22 nos mostra como ficou a placa. Figura 22 - Placa de circuito desenvolvida O protótipo final, em questão de hardware, ficou constituído de três módulos interligados ao software: A luva sensorial, acima da luva ficou o acelerômetro preso a um elástico e no braço o microcontrolador que faz a comunicação entre acelerômetro e computador. A figura 23 mostra como ficou o protótipo final. Figura 23 - Luva integrada ao circuito Após todo o desenvolvimento do projeto, obtivemos como resultado a construção do software computacional capaz de realizar todo o objetivo proposto. 39 Todas as funcionalidades são descritas detalhadamente no software de forma que qualquer usuário leigo tenha totais condições de utilizar o software sem maiores problemas. As telas principais do software são as de inserção e interpretação de dados, já comentadas no capítulo anterior, e tem como característica semelhante, a necessidade de se calibrar a luva e o acelerômetro antes de se iniciarem os trabalhos. Essa calibração leva não mais que 5 segundos e é feita afim de que os dados sejam colhidos e tratados da melhor forma possível, eliminando ao máximo a possibilidade de distorção destes dados. Nota-se ainda, que a identificação dos dados pode ser feita da forma estática, ou seja, iniciando e parando a identificação manualmente; ou de forma dinâmica, que por sua vez, denota a identificação do movimento sem a necessidade da interferência manual. A primeira forma tem maior nível de acerto devido à exatidão do tempo de movimento alcançada somente pela determinação manual do usuário. Os níveis de acerto chegam a 70% em média, para movimentos tri-dimensionais, e 85% em média, para movimentos estáticos (alfabeto). Fazendo uma linha de comparação com o trabalho desenvolvido por GABARDO (2005), é possível concluir que, atentando-se aos novos desafios citados no mesmo, atingiu-se, de forma plenamente satisfatória, o resultado desejado, uma vez que conseguiu-se aumentar a margem de acerto consideravelmente, subindo de 50% para 85%, em se tratando de identificação do alfabeto LIBRAS. Além disso, tornou-se possível a identificação de gestos completos e com isso, a formação de frases completas caracterizando o diálogo entre usuários de forma plena, trabalhando com uma margem de acerto de 70% para esse tipo de interpretação de dados. Para ilustrar esse desempenho, podem-se observar as tabela 5 e 6, com os movimentos gravados e suas respectivas margens de acerto durante sua interpretação: 40 Tabela 5 - Resultados do alfabeto Letra do Alfabeto A B C D E F G H I J K L M N O Q Z W Y Índice de acertos 95% 90% 80% 80% 60% 70% 60% 50% 95% 50% 50% 80% 70% 80% 70% 50% 50% 50% 60% Índice de acertos 75% 80% 60% Verbos Nome do Gesto EU NÓS VOCÊ QUERER NÃO QUERER NÃO TER GOSTAR CHORAR 70% 70% 60% 60% 50% Outros Agente Verbal Tabela 6 - Resultados dos gestos BOM NOME IDADE AVIÃO TIO IRMÃO 50% 70% 50% 70% 60% 80% Os novos desafios para este projeto são, sem dúvida a melhoria da captação de dados dinâmicos em três dimensões, de forma a aumentar a acurácia da interpretação de gestos completos. Outra dificuldade encontrada foi o tempo de processamento do sinal pela interface computacional, que leva em torno de 100ms para processar cada entrada, e, como o software precisa de no mínimo 10 leituras para interpretar um dado, nota-se que o software leva no mínimo 1 segundo para que um movimento seja lido, fato que inviabiliza a leitura em tempo real de uma 41 conversa em LIBRAS. A solução para este problema, é a implementação de um buffer, configurado para armazenar os dados lidos em paralelo com a interpretação feita pelo software. 42 6 - REFERÊNCIAS BIBLIOGRÁFICAS IBGE. Instituto Brasileiro de Geografia e Estatística. Disponível em: http://www.ibge.gov.br/home/, acessado em 15 de Outubro de 2011. PEREIRA, A. V. Barbosa. LIBRAS: Uma explicação para todos. Porto Alegre: [s.n.], 2002. GABARDO, Thiago. Reconhecimento computacional da língua brasileira de sinais. Curitiba Universidade Positivo, 2005. ARAÚJO, Ana Paula de. Estudo de caso: Comunicação entre surdos usando a LIBRAS. Aracaju: [s.n.], 2010. MARQUES, J. Salvador. Reconhecimento de Padrões. São Paulo: Editora Wook, 2005. 5DT. Manual Luva 5DT Ultraseries. Disponível em: http://www.5dt.com/downloads/dataglove/ultra/ 5DT%20Data%20Glove%20Ultra%20-%20Manual.pdf, acessado em 17 de Outubro de 2011. PRADA, Rodrigo. Acelerômetro: O instrumento de interação do controle do Nintendo Wii. Campinas: [s.n.], 2009. SPARKFUN. Datasheet do acelerômetro MMA7260Q Breakout Board. USA: MICROCHIP, 2001. SILVA, Renato A. Programando Microcontroladores PIC: Programação em Linguagem C. São Paulo:Editora Ensino Profissional, 2007