SmartChair: Cadeira de rodas controlada por...

18
Universidade Tecnológica Federal do Paraná – UTFPR Departamento Acadêmico de Eletrônica – DAELN Departamento Acadêmico de Informática – DAINF Engenharia de Computação Oficina de Integração 3 (IF66J) – S71 – 2015/1 Relatório Técnico SmartChair: Cadeira de rodas controlada por voz Aline K. Borges 1 [email protected] Jociane F. L. Buriola 2 [email protected] Juliano Eloi 3 [email protected] Renan F. Teles 4 [email protected] Julho de 2015 Resumo Este documento apresenta a SmartChair, um projeto que tem por objetivo viabilizar o uso de uma cadeira de rodas especial comandada por voz para pessoas com tetraplegia. A motivação para o desenvolvimento do pro- tótipo é devida à falta de opções que o mercado oferece para indivíduos com esta deficiência, juntamente com o alto custo que está associado a este tipo de tecnologia. A partir disso, a SmartChair tem como inspiração ser uma cadeira que atenda às funcionalidades básicas de uma cadeira de rodas, entretanto com um sistema que possa ser controlado pelo usuário pela voz e que seja seguro, tomando algumas ações independentes que possam ajudar na qualidade da sua utilização. Para colocar em prática, foram usados alguns tipos de sensores que fazem o monitoramento pe- riódico da cadeira, auxiliando no controle de movimentação automática. Neste documento são detalhados os métodos utilizados para implementar o protótipo da SmartChair, desde componentes até a lógica implementada no algoritmo que comanda a cadeira. São detalhados também as dificul- dades que foram encontradas, suas respectivas soluções implementadas e os resultados de testes executados. Por fim, o protótipo funcionou da maneira programada e está pronto para uma continuidade de pesquisa. 1 Introdução As cadeiras de rodas são instrumentos utilizados para que pessoas com al- guma deficiência de locomoção possam se mover. Elas são impulsionadas pelo cadeirante, que utiliza as mãos para girar as rodas. Porém, quando o cadeirante não pode realizar a ação para guiar a cadeira ele perde sua independência e ne- cessita que outras pessoas o conduzam. Foram então criadas cadeiras de rodas motorizadas, controladas por um joystick. Mas essa solução ainda não abrange 1

Transcript of SmartChair: Cadeira de rodas controlada por...

Universidade Tecnológica Federal do Paraná – UTFPR

Departamento Acadêmico de Eletrônica – DAELN

Departamento Acadêmico de Informática – DAINF

Engenharia de ComputaçãoOficina de Integração 3 (IF66J) – S71 – 2015/1

Relatório TécnicoSmartChair: Cadeira de rodas controlada por

voz

Aline K. Borges 1 – [email protected]

Jociane F. L. Buriola 2 – [email protected]

Juliano Eloi 3 – [email protected]

Renan F. Teles 4 – [email protected]

Julho de 2015

Resumo

Este documento apresenta a SmartChair, um projeto que tem por objetivoviabilizar o uso de uma cadeira de rodas especial comandada por voz parapessoas com tetraplegia. A motivação para o desenvolvimento do pro-tótipo é devida à falta de opções que o mercado oferece para indivíduoscom esta deficiência, juntamente com o alto custo que está associado aeste tipo de tecnologia. A partir disso, a SmartChair tem como inspiraçãoser uma cadeira que atenda às funcionalidades básicas de uma cadeira derodas, entretanto com um sistema que possa ser controlado pelo usuáriopela voz e que seja seguro, tomando algumas ações independentes quepossam ajudar na qualidade da sua utilização. Para colocar em prática,foram usados alguns tipos de sensores que fazem o monitoramento pe-riódico da cadeira, auxiliando no controle de movimentação automática.Neste documento são detalhados os métodos utilizados para implementaro protótipo da SmartChair, desde componentes até a lógica implementadano algoritmo que comanda a cadeira. São detalhados também as dificul-dades que foram encontradas, suas respectivas soluções implementadase os resultados de testes executados. Por fim, o protótipo funcionou damaneira programada e está pronto para uma continuidade de pesquisa.

1 Introdução

As cadeiras de rodas são instrumentos utilizados para que pessoas com al-guma deficiência de locomoção possam se mover. Elas são impulsionadas pelocadeirante, que utiliza as mãos para girar as rodas. Porém, quando o cadeirantenão pode realizar a ação para guiar a cadeira ele perde sua independência e ne-cessita que outras pessoas o conduzam. Foram então criadas cadeiras de rodasmotorizadas, controladas por um joystick. Mas essa solução ainda não abrange

1

Relatório Técnico: Smart Chair 2

pessoas com tetraplegia, que não têm o controle sobre seus membros superio-res.

Existem hoje alguns ramos de pesquisa em vários países que buscam soluci-onar esse problema. Nos Estados Unidos existe um projeto de pesquisa de umacadeira especial controlada pelo movimento da língua [3]. No exterior, a Índiapossui um projeto em que a cadeira é controlada através dos olhos [4]. No Bra-sil está em desenvolvimento, pela Universidade Estadual de Londrina, cadeirasmotorizadas que são controladas por sopro e sucção [5]. Todavia, esses projetosainda possuem um alto custo de desenvolvimento, pois são de os algoritmos ehardware utilizados são de alta complexidade. Percebendo a falta de pesquisae investimento nesta área, foi proposto este projeto, chamado SmartChair, quetêm como objetivo desenvolver o protótipo de uma cadeira de rodas controladapor comandos de voz.

Dessa forma foi implementado um protótipo capaz de realizar cinco tiposdiferentes de movimentos, andar para frente, andar para trás, virar à esquerda,virar à direita e parar, sendo esses comandos executados de forma com que acadeira não colida com obstáculos. Essa cadeira de rodas comandada por voztambém deve manter o cadeirante seguro e para isso a cadeira verifica a incli-nação em que a cadeira se encontra, de forma que enquanto desce uma rampaou outro tipo de inclinação a cadeira reduz a velocidade, facilitando a frenagemse necessário. Assim como mostra avisos audio-visuais para alertar o cadeirantede possíveis situações de risco.

Para isso o projeto busca atender os seguintes requisitos funcionais:

Requisitos FuncionaisSistema Embarcado Software e Aplicativo (Mobile)

Controle de velocidade nos aclives. Desenvolvimento em Android

Controle de velocidade nos declives.Registrar e interpretar comandosde voz.

Receber e executar comandos recebidosdo aplicativo.

Enviar o comando via bluetooth.

Parar e ignorar comandos em direção aparedes/obstáculos.

Exibir tutorial de uso na primeirautilização.

Realizar curvas suaves.Mostrar um menu de ajuda aocomando "Help".

Perceber paredes e realizar comandosde virar apenas quando possível.

Mostrar a velocidade do carrinhorecebida a cada 2 segundos.

Ler os encoders para velocidade.Mostrar aviso audiovisualde obstáculos percebidos pelos sensores.Registrar e mostrar estatísticas obtidas.Comandos de voz em Inglês.

Tabela 1: Requisitos Funcionais

Relatório Técnico: Smart Chair 3

Além dos seguintes requisitos não funcionais:

Requisitos Não FuncionaisSistema Embarcado Software e Aplicativo (Mobile)

Conexão via Bluetooth com oaplicativo.

Aplicativo para Android.

Sonar HC-SR04,para desvio deobstáculos.

Conexão bluetooth para enviode dados.

Acelerômetro/Giroscópio paraaclive/declive.

Biblioteca de terceiros paraexibição de gráfico de estatistica.

Motor DC com caixa de redução. Persistência de dados local.Protótipo de cadeira construídoem Lego.

Interface agradável ao usuário.

Arduino Mega comomicrocontrolador embarcado.

Tabela 2: Requisitos Não Funcionais

Figura 1: Visão geral do projeto SmartChair.

Relatório Técnico: Smart Chair 4

Sendo assim, O Android recebe o comando de vóz e o repassa para o Ar-duino, que então executa o comando desejado através da atuação de motores.O Arduino também se utiliza de sensores para executar a lógica de segurança(controlar a velocidade, detecção de obstáculos ou a redução da velocidade emdescidas), além de enviar as informações coletadas ao mobile. Esse então avisaao usuário das condições impróprias para a perfeita movimentação da Smart-Chair.

2 Estrutura mecânica

Para a realização do projeto foi inicialmente decidido a utilização de uma estru-tura pronta com chassi, motores e rodas, muito comum em kits de eletrônicana internet. O modelo exigiu a instalação e teste de cada um dos motores. Estabase era necessária para a materialização da cadeira, todavia, precisava-se darepresentação da cadeira. Foi decidido a utilização de Lego para a composiçãoda cadeira em si, que ficaria situada na parte de cima do chassi.

A cadeira feita de Lego fica posicionada na parte de cima do chassi, prote-gendo boa parte do circuito acoplado. Para a aplicação dos sensores, foi ne-cessário estudar a melhor disponibilidade que os sensores teriam acoplados nochassi. Foi decidido estruturar 8 sensores sonar na SmartChair. Os sonares es-tão dipostos de forma a circundar a base completamente, sendo que três delesestão postados na parte frontal, três estão postados na parte traseira e os outrosdois sonares estão posicionados nas laterais. Esta distribuição pode ser vista nomodelo representado na figura2.

Figura 2: Vista de cima da cadeira com a disposição dos sonares.

Na parte de dentro do chassi está os motores, os encoders acoplados, umabateria de 9V e a bateria de lipo usada para a alimentação do Arduino, o sensorbluetooth e o sensor de giroscópio.

Relatório Técnico: Smart Chair 5

Figura 3: Foto real da SmartChair montada.

Como pode ser visto na figura 3 os sonares estão dispostos ao redor da baseda SmartChair, como indicado pela figura 2. A modelagem da cadeira foi reali-zada em LEGO para simular a estrutura do assento de uma cadeira de rodas.

3 Sistema Embarcado

Para a SmartChair fornecer alguns recursos automáticos, foi necessário um sis-tema que gerenciasse todas as informações que são coletadas pelos sensores,juntamente com o sistema de comunicação bluetooth. Assim utilizou-se um Ar-duino Mega como plataforma de gerenciamento de dados e execução de algo-ritmos variados, como de controle, de comunicação etc. A escolha do ArduinoMega se deu pela facilidade em utilizá-lo. A equipe de desenvolvimento já pos-suia conhecimento prévio na plataforma o que facilitou a escolha da mesma.

De uma forma geral, é no sistema embarcado que são executados os algorit-mos de:

• Distância dos sonares;

• Captura do número de interrupções dos encoders;

• Determinação dos valores de pulso dos motores;

• Comunicação com o bluetooth;

• Controle de velocidade;

• Adaptação do giroscópio para descidas;

• Integração entre todos os dados recebidos;

Relatório Técnico: Smart Chair 6

Percebe-se assim, que o sistema embarcado é o coração da maioria das fun-cionalidades autônomas que a SmartChair possui. Esta seção irá comentar so-bre cada um dos algoritmos citados.

3.1 Sensores de Distância

A SmartChair é uma cadeira de rodas controlada por voz. Para evitar que aci-dentes ocorram com o cadeirante é necessário que a cadeira tenha um sistemade segurança capaz de evitar obstáculos, comportamento possível apenas casoos objetos possam ser detectados através de um sensor de distância. O medi-dor de distância utilizado foi o sensor ultrasônico de modelo HC-SR04 [1]. Umsensor ultrasônico tem duas entradas de comandos, trigger e echo, em que otrigger é o responsável por enviar um pulso ultrasônico através de um transdu-tor, esse pulso atinge um obstáculo e é refletido devolta para o sonar. Quandoo sinal retorna ao sonar, o echo retorna um sinal ao microcontrolador. Me-dindo a diferença entre o tempo em que o pulso é emitido pelo transdutor atéque ele retorne é possivel calcular a distância entre o sonar e o obstáculo (le-vando em consideração que a velocidade do som no ar é aproximadamente 340m/s). Sendo assim, a distância pode ser calculada através da seguinte formula:di st anci a(m) = 340.tempo(s).

O sensor de distância HC-SR04 tem um alcance de 4m com precisão de3mm. Porém, em casos que a superfície a ser detectada tem um ângulo como sonar maior do que 15º, a distância detectada não representa a distância real.Para tabelar essa diferença foram colocadas paredes móveis como nas figuras4, 5 e 6. A distância entre a superfície e os sonares foi variada até que cada ul-trassom a detectasse. Caso o muro não fosse percebido mesmo que a distânciamedida estivesse menor que 4 cm (distância mínima detectada, indicada em [?])foi considerado que o sonar não pode ser utilizado para tal angulação.

Figura 4: Posicionamento da parede em relação à cadeira para testes com ângulode 90º.

Relatório Técnico: Smart Chair 7

Figura 5: Posicionamento da parede em relação à cadeira para testes com ângulode 0º.

Figura 6: Posicionamento da parede em relação à cadeira para testes com ângulode 45º.

Com os testes foi possível chegar aos resultados da tabela 10.Esses valores significam que, se a parede estiver paralela à cadeira, os sona-

res frontal e diagonal não detectarão o obstáculo, para essa situação o sonar la-teral deve ser utilizado como o sonar responsável pelo controle de curvas. Assimcomo foi possível perceber que se a parede estiver localizada à frente da cadeira(perpendicularmente), o sonar lateral não irá detectar o obstáculo, o que signi-fica que os sonares frontal e diagonal seriam utilizados para o controle de curvasnesse caso.

Relatório Técnico: Smart Chair 8

Tabela 3: Valores dos Testes da detecção de distância em relação ao ângulo.

3.2 Motores e Encoders

A utilização dos motores no projeto propicia a movimentação da cadeira. Fo-ram utilizados quatro motores DC 3-6V com caixa de redução e eixo duplo. Paraauxiliar no controle dos motores, foi utilizado um CI L293D [6] que atua comoponte H, atuando no controle do pulso e sentido de rotação do motor, sem so-brecarregar a corrente de saída do Arduino. O encoder por sua vez, é um sensorque emite um sinal entre um emissor e um receptor. Caso este sinal seja inter-rompido, consegue-se contabilizar o número de voltas da roda da cadeira. Omodelo utilizado foi o PHCT204 [7].

Os motores e os encoders foram usados em conjunto para o algoritmo decontrole de velocidade. Pode-se explicar este algoritmo através de um exem-plo para facilitar o entendimento do leitor. Para o motor girar é necessário queseja instanciado um valor de pulso, gerado por um PWM. Este valor está entre0 e 255. Para valores de 0 até 50 o torque no motor não é suficiente para queele gire. Já valores acima de 200 podem danificar o motor. Imagine um pulsoinicial de Y. Este valor gera na cadeira uma velocidade X. Agora, por um discoperfurado acoplado no eixo do motor e disposto entre cada encoder, pode-secomputar a quantidade de interrupções que o sinal do encoder identifica emum tempo determinado, por exemplo, 250 ms. Então, para o valor de pulso deY estabelecido, é gerada uma velocidade X e obtem-se a quantidade de inter-rupções que é captada por cada encoder para esta configuração. Para entendera malha fechada do controle de velocidade, foi escolhido de maneira empiricaum valor fixo para a quantidade de interrupções Z em 250 ms, sendo que essaverificação é repetida a cada 250 ms. Sendo escolhido um número fixo de inter-rupções que irá gerar uma velocidade controlada (Ex. 15 interrupções em 250ms equivale a uma velocidade de 0,5 Km/h) é possível manter a velocidade derotação próxima da esperada através de um simples procedimento: Caso o va-lor de interrupção captado seja menor que o requerido é necessário aumentar

Relatório Técnico: Smart Chair 9

o valor do pulso no motor, o que gera aumento de velocidade, caso contrárionecessita-se diminuir o valor do pulso do motor, resultando na diminuição davelocidade. Abaixo encontra-se o fluxograma do algoritmo de controle de velo-cidade implementado.

Figura 7: Fluxograma de controle de velocidade

Relatório Técnico: Smart Chair 10

3.3 Giroscópio

A justificativa para utilizar o sensor no projeto foi para o auxílio em aclives edeclives. Imaginando um cenário hipotético, precisa-se saber quando o cadei-rante se encontra em uma subida ou descida, pois a SmartChair deve utilizaresta informação para controlar sua velocidade.

Neste projeto, foi utilizado o giroscópio do sensor para captar o valor an-gular, em graus, como um nível digital. Todavia, foi implementado apenas paraum eixo, visto que a necessidade era apenas identificar subidas ou descidas, nãoprecisando assim, dos outros dois eixos disponíveis.

Outro ponto importante é que o giroscópio é utilizado apenas na descida.O sistema de controle de velocidade age a todo momento sobre os motores dacadeira. Assim, quando a cadeira inicia a subida em uma rampa, por exemplo,teoricamente o número de interrupções que o encoder capta diminuirá, pois oaclive age com um força a mais sobre a cadeira, diminuindo a velocidade. Logo,o controle de velocidade automaticamente buscará ajustar e manter o númerode interrupções pré estabelecidas, e por consequência a velocidade da Smart-Chair retornará para o valor padrão. Isso caracteriza a não necessidade de usaro giroscópio para subidas.

Por outro lado, quando o cadeirante se encontrar em uma descida, o con-trole de velocidade continuará tentando manter o valor de interrupções setados.Entretanto, por uma medida de segurança, o grupo de pesquisa considerou quea velocidade da cadeira deve estar reduzida em situações de declive. Para isso,o giroscópio indentifica um ângulo negativo se comparado com o plano e mo-difica para menor o valor das interrupções que os encoders captam, diminuindoassim a velocidade da SmartChair.

Figura 8: Resultados obtidos com a captura de dados do giroscópio.

Relatório Técnico: Smart Chair 11

A figura 8 mostra valores coletados do giroscópio a partir da saída serial daIDE do Arduino. O número 1 indica uma amostra de valores no momento emque o giroscópio se encontrava em uma angulação negativa. O número 2, porsua vez, é destacado pois o giroscópio não possui a captação do ângulo zeroabsoluto. Os valores limites para o ângulo zero são 0,1 e -0,1. Assim, tem-se zeropositivo e negativo.

3.4 Integração

A cadeira permite ao usuário escolher entre as configurações de movimento an-dar para frente, virar à esquerda, virar à direita, andar para trás e parar. Ao es-colher andar para frente a cadeira irá utilizar os sonares posicionados na partefrontal da base para verificar se não há um obstáculo no caminho. Caso haja umobstáculo a cadeira irá parar e esperar outro comando do usuário ou que o ob-jeto seja removido do caminho para continuar em frente, caso contrário ela iráse mover a uma velocidade controlada até que receba outra ordem. Ao escolherandar para trás a cadeira irá andar com uma velocidade controlada para trás atéque os sonares posicionados na parte traseira da base detectem algum objeto,parando a cadeira, ou até que outro comando seja dado ao controlador.

Ao escolher virar a esquerda a cadeira irá verificar utilizando o sonar late-ral a esquerda se há uma parede que impeça esse movimento. Caso haja umaparede a esquerda a estrutura continuará a andar reto até que o fim da paredeseja detectado (o sonar lateral deixar de detectar um obstáculo) para então virara esquerda. Porém durante essa curva os sonares posicionados na parte frontalda estrutura continuam verificando se há algo com que a cadeira possa colidir àfrente, parando caso seja constatado que sim. A escolha para a direita tem lógicaanáloga a curva para a esquerda.

A lógica de movimento pode ser conferida no fluxograma da figura 9.Para não causar desconforto ao usuário é necessário que a curva seja suave.

Ou seja, no caso de a cadeira estar virando à esquerda as duas rodas posicio-nadas no lado direito da base terão sua velocidade incrementada enquanto asposicionadas no outro lado terão redução de velocidade. Assim o arco geradopelas rodas da direita será maior que os da esquerda, realizando a curva.

Quando a cadeira está executando um comando de movimento, para alertaro usuário de que a cadeira está impossibilitada de prosseguir caso seja detec-tado um obstáculo a frente, o dispositivo mobile irá receber o status de que háalgo à frente, então o aplicativo irá mostrar um aviso visual e sonoro indicandoque o movimento não pode ser realizado. Além disso o Android também po-derá mostrar os dados de velocidade e de angulação em relação à horizontal dacadeira. A angulação pode ser detectada utilizando o acelerômetro/giroscópio,enquanto a velocidade é calculada utilizando o número de interrupções detec-tadas nos encoders utilizando a seguinte fórmula:

V = N .π.D

n.t

Relatório Técnico: Smart Chair 12

Figura 9: Fluxograma de controle de Ações

Relatório Técnico: Smart Chair 13

Em que V é a velocidade da cadeira, N é a média do número de interrup-ções detectadas pelos quatro encoders, D é o diâmetro das rodas da base, n éo número de interrupções que representam uma volta (20 interrupções) e t é otempo para o qual há N interrupções.

No fluxograma mostrado na figura 9 a saída número um, leva à um casoespecial da lógica responsável por realizar as curvas. Caso a cadeira receba ocomando para virar e haja um obstáculo bloqueando a lateral, é realizado o co-mando "andar para frente"até que o sonar lateral deixe de detectar a barreira. Asaída número dois realiza o retorno ao início, ou seja, é a saída responsável peloloop na lógica de funcionamento da SmartChair.

4 Software Mobile

Para a etapa mobile da Smart Chair foi escolhida a plataforma Android, que éOpen Source e tem a possibilidade de comunicação bluetooth comum. O aplica-tivo foi desenvolvimento de forma nativa, em linguagem Java e utilizando a IDEAndroid Studio. Basicamente, o aplicativo irá reconhecer o comando de voz dousuário e enviá-lo através de uma comunicação sem fio para o software embar-cado.

4.1 Reconhecimento de voz

Para o reconhecimento dos comandos de voz foi utilizada uma biblioteca desen-volvida pela Carnegie Mellon University, a CMUSphinx Possui diferentes formasde utilização para diversas plataformas e linguagens e é baseada em reconheci-mento de fonemas identificados no som capturado. Especificamente para An-droid, é uma biblioteca nativa em C++, uma camada abaixo da Virtual Machinedo Java, o que permite um desempenho melhor para processamento em temporeal. Atualmente, as linguagens suportadas são Inglês e Espanhol. Para este pro-jeto, foi escolhido o inglês como linguagem principal, portanto todos os textos einstruções estão nesta linguagem.

No desenvolvimento do aplicativo, existem três formas principais de confi-guração dos componentes da biblioteca: reconhecimento de frases, reconheci-mento de fonemas ou reconhecimento de palavras, que é o mais indicado parao Smart Chair. Neste modo, de forma simplificada, o aplicativo captura o somdo microfone do celular e processa para buscar a palavra com o fonema cor-respondente. Em uma pasta interna ao projeto existe um dicionário com pala-vras da língua inglesa e seu fonema correspondente. Foram testados diversossinônimos para os comandos que a Smart Chair deve executar. Os comandosutilizados e seus respectivos fonemas são definidos em um arquivo .gram, queinclusive permite um valor de sensibilidade diferente para cada palavra.

Os comandos são:

• ahead AH HH EH D

Relatório Técnico: Smart Chair 14

• reverse R IH V ER S

• right R AY T

• left L EH F T

• break B R EY K

O reconhecimento de comandos pela CMUSphinx é muito bom e apresen-tou vantagens sobre outras bibliotecas de reconhecimento testadas, como o Spe-echToText do Google [2] Embora realizados vários testes e ajuste de parâmetros eo sistema funcione mesmo em ambientes com ruído no fundo, ele não é imune àfalhas. Existe uma chance de som ambiente ser reconhecido como um comandoe enviado para o software embarcado, ou do comando não ser reconhecido emambientes com muito ruído sonoro ou por diferenças de dicção e sotaque.

4.2 Conexão bluetooth

A conexão bluetooth foi utilizada para este projeto por apresentar as melho-res características para os requisitos necessários. Não é preciso uma distânciagrande, uma vez que o smartphone estará sempre junto com a cadeira no pró-prio deslocamento. Outra possibilidade seria a comunicação utilizando wi-fi,mas limitaria a conexão com a internet para o usuário, o que não é conveniente.

O módulo HC-06 já possui um chip que gerencia as conexões e pareamentoe envia diretamente via Serial UART para o Arduino, através do protocolo blue-tooth v2.0+EDR.

No Arduino Mega, a comunicação foi feita através dos pinos 50 e 51, quesão transformados em Serial com a biblioteca SoftwareSerial, que se transformano canal de envio e recebimento de dados entre Arduino e aplicativo. Quandouma string é recebida, ela é transformada em um comando que é interpretadoe aciona o comportamento de motores correspondentes. Um dos comandos é o’0’, que envia uma string como um handshake entre o aplicativo e Arduino.

No Android, é necessário o pareamento do aparelho com o módulo HC-06.A conexão é gerenciada com auxílio da biblioteca BluetoothSPP [8], que permiteinclusive que o bluetooth seja ativado na abertura da aplicação e a conexão dedados automática com o módulo, tudo isso sem a interação do usuário.

4.3 Interface

A interface do aplicativo foi pensada diretamente para o usuário final, com de-sign moderno seguindo os padrões do Material Design. Na primeira vez que oaplicativo é utilizado, é apresentado explicações das funcionalidades e dos co-mandos de voz para aprendizado.

As funcionalidades do aplicativo são divididas em telas através de um menulateral. A parte principal é o reconhecimento de comandos de voz, que tem

Relatório Técnico: Smart Chair 15

uma resposta visual ao comando quando reconhecido, além de mostrar possí-veis problemas de comunicação bluetooth, por exemplo.

As telas do aplicativo são:

• Tutorial: Mostrado na primeira vez que o usuário abre o aplicativo, apre-senta algumas informações iniciais úteis

• Tela Principal: Reconhecimento dos comandos de voz, que tem uma res-posta visual ao comando quando reconhecido, além de mostrar possíveisproblemas de comunicação bluetooth, por exemplo.

• Gráficos: Mostra gráficos em tempo real de informações colhidas dos sen-sores de velocidade (encoder) e inclinação (giroscópio) para acompanharos dados dos sensores

• Testes: De modo a facilitar o desenvolvimento e teste do sistema em ge-ral, nesta tela é possível enviar o comando para o Arduino diretamenteatravés de botões e observar as mensagens recebidas e enviadas em umavisualização semelhante à um chat.

• Ajuda: Apresenta instruções para o usuário, como o modo correto de conectar-se ao bluetooth, a senha do módulo, entre outros detalhes.

Figura 10: Captura de tela do aplicativo respectivamente: a) tutorial, b) tela prin-cipal e c) gráficos

Relatório Técnico: Smart Chair 16

5 Cenário de Teste

O cenário de testes é um campo controlado criado especificamente para testaros principais requisitos estipulados para a SmartChair. Esse foi montado utili-zando papelão e seu formato pode ser visto na figura 11.

Figura 11: Cenário de testes da SmartChair.

Para testar os casos de andar para frente, para trás e realizar as curvas emaproximadamente 90º, em uma situação sem obstáculos, necessita-se de umaárea livre grande o bastante para que a cadeira possa realizar esses movimen-tos. Esse cenário pode ser representado apenas por uma fita no chão, tendo porobjetivo a observação a fim de comparar o esperado com o resultado obtido.

Se a SmartChair coletar o comando de realizar a curva quando há um obstá-culo na direção desejada, a cadeira deveria andar para frente até que o obstáculonão seja mais detectado, para então virar. Ou se a cadeira receber os comandosandar para frente ou para traz e há algo nesse sentido, ela deveria parar e enviarum aviso audiovisual ao mobile. Para esses casos o teste pode ser realizado poruma parede simples que tenha um final livre de obstruções, ou seja, o chassipode chegar e ultrapassar o final da parede sem obstáculos a frente caso ele es-teja perpendicular ao muro.

Se a SmartChair receber o comando de realizar a curva quando há um obs-táculo na direção desejada e há uma barreira nessa direção, a cadeira deveriaandar para frente perperdicular à parede até chegar ao empecilho e então parar.Para isso é necessario duas superficies perpendiculares uma a outra e que saemdo mesmo ponto.

Para o caso em que a SmartChair entra em uma descida a sua velocidadedeve ser reduzida. Para isso é necessario uma rampa levemente inclinada.

Relatório Técnico: Smart Chair 17

6 Conclusão

A proposta de projeto estipulava à SmartChair algumas funcionalidades téc-nicas: possuir controle de velocidade, fazer curvas suaves, possuir controle porvoz, aplicativo Android, comunicação bluetooth entre sistema embarcado e apli-cativo, executar ações de movimento, detecção de objetos que interrompem omovimento da cadeira, gráfico com velocidade e ângulos do giroscópio e avisoaudio-visual para detecção de objetos que obstruem a passagem da cadeira. Taisfuncionalidades foram atingidas com êxito.

Algumas dificuldades apareceram ao longo do desenvolvimento, destacandoo entendimento do controle de velocidade em malha fechada e a integração to-tal com ajuste fino do sistema montado. A equipe precisou estudar o funcio-namento dos encoders, juntamente com o módulo bluetooth, nunca antes utili-zado.

Todavia, ao longo do tempo de projeto se percebeu algumas melhorias quenão foram propostas, mas que podem ser implementadas no futuro:

• Melhorar o sistema de captura de voz, pois em lugares com muito ruído,como uma rua por exemplo, o sistema ainda se torna inviável;

• Expandir o sistema para iOS e Windows Phone;

• Utilizar um Kinect para identificação de objetos à frente e, consequente-mente, contorná-los;

• Implementar o protótipo SmartChair em uma cadeira real;

Na questão social do projeto, é importante esclarecer que a equipe de de-senvolvimento acredita ter cumprido seu objetivo. Como apresentado inicial-mente, cadeiras de rodas para tetraplégicos são difíceis de se projetar devido àrestrição de uso que os usuários possuem. É importante incentivar a pesquisadeste tipo de tecnologia que ainda se encontra engatinhando, principalementeem nosso país. A equipe não encontrou algum tipo de projeto que estimulea pesquisa de controle de cadeiras para tetraplégicos comandadas por voz noBrasil. Entretanto, espera-se ajudar qualquer pesquisa no ramo com a disponi-bilização do trabalho SmartChair.

Referências

[1] Cytron Technologies, Product User’s Manual – HC-SR04 Ultrasonic Sensor,2013

[2] Google Speech Recognizer - http://developer.android.com/reference/an-droid/speech/SpeechRecognizer.html, acessado em junho de 2015.

Relatório Técnico: Smart Chair 18

[3] Georgia Tech - Tongue-Controlled Wheelchair Outperforms Sip-and-Puff Wheelchairs - http://www.news.gatech.edu/features/tongue-drive-wheelchair, acessado em junho de 2015.

[4] Gautam, Gunda; Sumanth, Gunda; K C, Karthikeyan; Sundar, Shyam; Ven-kataraman, D. - Eye Movement Based Electronic Wheel Chair For PhysicallyChallenged Persons.

[5] FONSECA SOBRINHO, A.S; FELIZARDO, K. R.; SILVA, M. A. da; OLIVEIRA,H. P.; LONE, L. P.;GERMANOVIX, W.; GAINO, R. Wheelchair controlled byblowing or by suction. Semina: Ci. Exatas/Tecnol. Londrina, v. 21, n. 4, p.3-7, dez. 2000.

[6] Texas Instruments, L293/L293D QUADRUPLE HALF-H DRIVERS DA-TASHEET, REVISED NOVEMBER 2004

[7] PHOTONIC, CHAVES OPTOELETRÔNICAS TRANS-MISSIVAS PHCT102/3/4 e PHCT202/3/4 -http://www.politronic.com.br/especs/cha/PHCTX0X.pdf, acessado emjunho de 2015.

http://developer.android.com/reference/android/speech/SpeechRecognizer.html, acessado em junho de 2015.

[8] BluetoothSPP Library https://github.com/akexorcist/Android-BluetoothSPPLibrary, acessado em junho de 2015.

[9] CMUSphinx Library http://cmusphinx.sourceforge.net, acessado em junhode 2015.