Post on 09-Feb-2019
Universidade Federal de Uberlândia Faculdade de Engenharia Elétrica
Graduação em Engenharia Biomédica
Camille Marques Alves
DESENVOLVIMENTO DE UM APLICATIVO PARA CONTROLE DE CADEIRA DE RODAS ATRAVÉS DE SINAIS ELETROMIOGRÁFICOS
Uberlândia 2016
Camille Marques Alves
DESENVOLVIMENTO DE UM APLICATIVO PARA CONTROLE DE CADEIRA DE RODAS ATRAVÉS DE SINAIS ELETROMIOGRÁFICOS
Trabalho apresentado como requisito parcial de avaliação na disciplina Trabalho de Conclusão de Curso de Engenharia Biomédica da Universidade Federal de Uberlândia.
Orientador: Prof. Dr. Eduardo Lázaro Martins Naves
______________________________________________ Assinatura do Orientador
Uberlândia 2016
AGRADECIMENTOS
A elaboração desse trabalho não teria sido possível sem a colaboração, apoio
e estímulo de diversas pessoas. Gostaria de expressar minha gratidão a todos
aqueles que contribuíram de forma direta ou indireta para torná-lo realidade.
Agradeço primeiramente a Deus por ter me dado força para superar todas as
dificuldades encontradas. Aos meus pais Wellington e Francisca pela compreensão,
por sempre me incentivarem e me apoiarem nos momentos mais difíceis. A minha
irmã Caroline pelos conselhos, por todo o apoio e paciência durante esse tempo.
Ao meu orientador Professor Dr. Eduardo Lázaro pela dedicação e auxílio no
desenvolvimento desse trabalho e por torná-lo possível. Ao professor Dr. Marcio
Cunha por ter me ajudado e me guiado no decorrer deste trabalho.
Agradeço às minhas amigas Iohanna Wielewski, Brunna Nunes e Juliane
Maria pelo companheirismo e amizade, e por todos os momentos vividos na
faculdade. Aos meus primos Matheus Alves e Júlio Alves por todo o suporte e
incentivo em todos os momentos. Aos meus colegas de trabalho da Bioengenharia,
em especial a equipe de eletrônica: Victor Hugo, Douglas, Carol, André e Diego por
todo o conhecimento compartilhado e pela amizade.
RESUMO
Este trabalho apresenta o desenvolvimento de uma ferramenta de controle de
cadeira de rodas por meio de sinais eletromiográficos provenientes do músculo
facial masseter. A eletromiografia consiste na análise da atividade muscular, e
possui inúmeras aplicações, incluindo estudos na área de Tecnologia Assistiva (TA).
O avanço tecnológico nessa área tem permitido uma maior independência para
pessoas com deficiência, maior qualidade de vida e inclusão social. Desse modo, é
possível implementar com o auxilio de ferramentas de eletromiografia dispositivos
para facilitar o controle de cadeiras de rodas motorizadas, visando atender pessoas
com deficiências mais severas. O sistema é composto por um sensor de
eletromiografia, Myoware, um arduino para análise do sinal adquirido pelo sensor,
um tablet, para mostrar em um aplicativo a interface do usuário, e uma cadeira de
rodas adaptada. O aplicativo foi desenvolvido para sistemas Android, na linguagem
Java.
Palavras-chave: Tecnologias assistivas, eletromiografia, cadeira de rodas, aplicativo, Java, Android.
ABSTRACT
This paper introduces the development of an application to control a wheelchair
through electromyographic signals from the masseter muscle. Electromyography is
the analysis of muscle activity, and has numerous applications, including studies in
Assistive Technology (AT). A technological advance in this area has allowed greater
independence, higher quality of life and social inclusion for people with disabilities.
Thus, it is possible to implement electromyography devices to facilitate the control of
motorized wheelchairs, for people with more severe disabilities. The system consists
of an electromyography sensor Myoware, an Arduino for analysis of the signal
acquired by the sensor, a tablet, to display an interface to show the activities for the
user and an adapted wheelchair. The application was developed for Android
systems in Java.
Keywords: Assistive Technology, eletromyography, wheelchair, app, Java, Android.
LISTA DE ILUSTRAÇÕES
Figura 1 – Diferentes categorias de tecnologias assistivas...................................... 15
Figura 2 – Modelos de cadeiras de rodas................................................................ 16
Figura 3 – Unidades motoras de um músculo.......................................................... 18
Figura 4 – Músculos da face.................................................................................... 19
Figura 5 – Eletrodos. (a) Eletrodos de superfície passivos, (b) Eletrodos de
superfície ativos, (c) Eletrodos intramusculares....................................................... 21
Figura 6 – A amplitude dos sinais EMG. (a) Antes de ocorrer fadiga muscular. (b)
Após ocorrer fadiga muscular................................................................................... 22
Figura 7 – Diagrama de blocos do projeto............................................................... 23
Figura 8 – Sensor Myoware..................................................................................... 25
Figura 9 – Arduino Mega.......................................................................................... 25
Figura 10 – Módulo Bluetooth HC-06....................................................................... 26
Figura 11 – Cadeira de rodas adaptada................................................................... 27
Figura 12 – Interface do programa de implementação Arduino IDE com trecho do
algoritmo de processamento.................................................................................... 29
Figura 13 – Interface do programa de implementação no Android Studio com trecho
do algoritmo de processamento............................................................................... 29
Figura 14 – Interface de criação do layout do aplicativo.......................................... 30
Figura 15 – Interface do aplicativo no tablet............................................................. 32
Figura 16 – Layout de seleção dos comandos (a) Frente, (b) Atrás, (c) Esquerda, (d)
Direita....................................................................................................................... 33
Figura 17 - Layout de escolha do comando. (a) Frente, (b) Atrás, (c) Esquerda, (d)
Direita....................................................................................................................... 33
Figura 18 – Layout de seleção do movimento parar................................................ 34
Figura 19 – Layout de escolha do movimento parar................................................ 34
LISTA DE TABELAS
Tabela 1 – Especificações elétricas do sensor Myoware.......................................... 24
Tabela 2 – Especificações técnicas Samsung Galaxy Tab S2................................. 26
Tabela 3 – Tensões de ativação da cadeira.............................................................. 28
LISTA DE ABREVIATURAS E SIGLAS
TA – Tecnologia Assistiva
EMG – Eletromiografia
EOG – Eletrooculografia
EEG – Eletroencefalografia
UM – Unidade Motora
SNR – Razão Sinal Ruído
RRMC – Razão de Rejeição em Modo Comum
IDE – Ambiente de Desenvolvimento Integrado
SUMÁRIO
1 INTRODUÇÃO ................................................................................................................................... 11
2 OBJETIVOS...................................................................................................................................... 13
3 REVISÃO BIBLIOGRÁFICA .............................................................................................................. 14
3.1 TECNOLOGIA ASSISTIVA .................................................................................................................. 14
3.1.1 CADEIRA DE RODAS................................................................................................................. 15
3.2 SINAIS MIOELÉTRICOS ..................................................................................................................... 17
3.2.1 MECANISMO DE CONTRAÇÃO MUSCULAR.................................................................................. 17
3.2.2 MUSCULATURA FACIAL............................................................................................................. 19
3.2.3 ELETROMIOGRAFIA (EMG)........................................................................................................ 20
4 METODOLOGIA ................................................................................................................................ 23
4.1 HARDWARE.................................................................................................................................... 24
4.1.1 MYOWARE................................................................................................................................ 24
4.1.2 ARDUINO.................................................................................................................................. 25
4.1.3 SAMSUNG GALAXY TAB S2....................................................................................................... 26
4.1.4 CADEIRA DE RODAS................................................................................................................. 27
4.2 SOFTWARE..................................................................................................................................... 28
4.2.1 ARDUINO (IDE)….....……………………………………………………...……………………….... 28
4.2.2 ANDROID STUDIO..................................................................................................................... 29
5 RESULTADOS E DISCUSSÃO ......................................................................................................... 31
6 CONCLUSÕES .................................................................................................................................. 36
7 SUGESTÕES PARA TRABALHOS FUTUROS................................................................................ 37
8 REFERÊNCIAS .................................................................................................................................. 38
APÊNDICE A.........................................................................................................................................40
APÊNDICE B.........................................................................................................................................43
11
1 INTRODUÇÃO
O avanço tecnológico na área de reabilitação e tecnologias assistivas (TA)
tem permitido o desenvolvimento de inúmeros equipamentos voltados para pessoas
com deficiência física, visual, auditiva e/ou cognitiva. A tecnologia tem o intuito de
melhorar a condição das pessoas com deficiência, tal como propiciar uma melhor
interação com o meio. O desenvolvimento de novas tecnologias tem crescido
gradativamente e as diversas pesquisas realizadas têm favorecido a reintegração e
uma maior independência das pessoas com necessidades especiais, propiciando
melhorias significativas na qualidade de vida dessas pessoas [1].
Existem diversos tipos de necessidades especiais, e muitas das vezes o
indivíduo que possui alguma limitação se torna dependente de outra pessoa para
realizar ações corriqueiras, como se locomover. Atualmente, as cadeiras de rodas
motorizadas são muito utilizadas, o que facilita bastante na locomoção, no entanto a
maioria é controlada por botões ou joysticks, o que impossibilita que algumas
pessoas com deficiência motora consigam utilizá-las [2]. Outros meios de controle
têm sido desenvolvidos, afim de, atender um maior número de pessoas, como
controle por voz, músculos faciais e sinais neurológicos [3].
Uma das ferramentas mais utilizadas na implementação de tecnologias assistivas
são os sinais biológicos. Estes sinais são gerados no próprio organismo, como os
sinais mioelétricos e neurais, e são amplamente utilizados no controle e na
interação de pessoas com necessidades especiais com as mais diversas
ferramentas, como por exemplo, uma cadeira de rodas ou uma prótese.
Os sinais mioelétricos contêm informações da intenção do indivíduo em
contrair os músculos e realizar algum tipo de movimento. A utilização desses sinais
permite a criação de ferramentas para controlar objetos, como cadeiras de rodas,
sem a necessidade de locomover braços e pernas. Esses sinais podem ser
adquiridos a partir de eletromiografia, que constitui um importante objeto de
pesquisa, que envolve a detecção e o registro de potenciais elétricos das fibras
12
musculares. Podem ser detectados a partir de eletrodos não invasivos colocados
sobre a pele do usuário.
A utilização da resposta muscular é uma alternativa extremamente
importante, na área de Tecnologia Assistiva, para a viabilização de equipamentos e
meios que exercem funções específicas para pessoas que não possuem meios
mecânicos para executá-las, como a pressão das mãos ou o simples ato de andar.
Em grande parte dos casos onde o indivíduo possui uma limitação motora muito
grande, ainda é possível perceber atividade muscular nos músculos faciais, e a
partir da captação dessa atividade pode-se desenvolver meios de interação com o
meio onde ele está inserido. Os músculos faciais mais utilizados para esse tipo de
aplicação são o masseter e o músculo frontal, uma vez que são músculos com
grande potencial mioelétrico.
Atualmente existem diversas aplicações de controle de cadeiras de rodas por
meio de computadores e biopotenciais. Grande parte dos estudos concentra-se em
utilizar as técnicas de Eletrooculografia (EOG), enquanto diversos outros abordam a
Eletroencefalografia (EEG) como método de controle. Existem também diversas
pesquisas em torno das técnicas de Eletromiografia (EMG), utilizando vários tipos
de músculos do corpo para controlar a cadeira de rodas por meio de softwares de
computador.
Por serem dispositivos portáteis e de fácil acesso, os tablets tem sido
utilizados cada vez mais como alternativa aos computadores. São capazes de
realizar funções básicas dos computadores, como conectar a internet, ler e-mails,
fazer compras, graças ao mais diversos aplicativos. No Brasil, grande parte dos
tablets comercializados possui o sistema operacional Android, que se trata de um
sistema de fácil usabilidade. Os aplicativos desenvolvidos para esse sistema
geralmente usam a linguagem Java, que é uma das mais utilizadas em
computadores e nas mais diversas tecnologias.
13
2 OBJETIVOS
Pessoas com deficiência motora enfrentam inúmeros problemas de
mobilidade. Quando o estágio de sua deficiência não afeta sua capacidade de
manipulação, ele pode utilizar joystick para controlar sua cadeira de rodas
motorizada. No entanto, quando se encontra em estágios mais avançados, onde
sua mobilidade é muito reduzida ou nula, como no caso de tetraplégicos e algumas
classes de amputados podem ser que passem o resto de sua vida dependendo do
auxílio de outras pessoas.
Dada a grande importância de reintegração das pessoas com deficiências na
sociedade atual, aliada ao avanço das tecnologias assistivas. Este trabalho tem
como objetivo possibilitar a automação de recursos motores a indivíduos cuja
capacidade de locomoção foi reduzida, essa capacidade pode ser restrita apenas a
movimentos dos músculos da face. Será desenvolvido um software para tablets na
plataforma Android, que possa analisar e interpretar sinais eletromiográficos
adquiridos através de eletrodos não invasivos posicionados nos músculos da face.
Os sinais adquiridos serão utilizados para possibilitar o controle de uma
cadeira de rodas possível de ser manuseada por um indivíduo que não deseje ou
não possa mais usar suas mãos para acioná-la. Mas sim algum músculo funcional
como, por exemplo, os músculos faciais que são o foco desse trabalho.
14
3 REVISÃO BIBLIOGRÁFICA
3.1 Tecnologia Assistiva
Pode-se entender por Tecnologia Assistiva (TA) todos os equipamentos e
dispositivos responsáveis por aumentar a habilidade funcional das pessoas com
diversos tipos de deficiências, que possam derivar de ajudas técnicas, produtos ou
sistemas técnicos disponíveis no mercado, afim de, atenuar, as limitações dessas
pessoas [2].
O termo TA surgiu oficialmente por volta de 1988, nos Estados Unidos, a
partir da criação de legislações americanas que regulam os direitos de pessoas com
algum tipo de necessidade especial [4]. No Brasil, o termo é ainda mais recente, e
pode ser equiparado à Tecnologia de Apoio ou Ajudas técnicas [4]. De acordo com
a legislação brasileira existem alguns decretos que regulamentam o conceito de TA
e suas aplicações no mercado.
O conceito dos termos utilizados no Brasil possuem algumas semelhanças e
divergências entre si, principalmente em sua abrangência, pois podem se referir
especificamente a um artefato ou podem incluir práticas e metodologias [5]. Para
cada termo podem existir conceitos restritos ou abrangentes, de acordo com o autor
que o utiliza.
A Tecnologia Assistiva se difere da reabilitação, uma vez que essa última é
utilizada principalmente para auxiliar na recuperação de movimentos, visando o
tratamento, por outro lado, a TA, como foi citado anteriormente, engloba todos os
recursos e procedimentos que atendem as necessidades específicas de cada
pessoa, visando sempre auxiliar em sua autonomia [4].
Por ser um termo com grande abrangência, a TA pode ser classificada em
algumas categorias, dentre as quais podemos citar os auxílios para a vida diária e
prática, que engloba tecnologias para facilitar as práticas rotineiras; a comunicação
aumentativa, que auxilia na forma de comunicação diária do indivíduo;
15
acessibilidade ao computador, que facilitam o acesso de pessoas com mobilidade
restrita, seja motora ou sensorial, aos equipamentos; sistemas de controle
ambiente, visando pessoas com deficiências motoras; projetos arquitetônicos de
acessibilidade, que fornecem acesso e mobilidade através de adaptações
estruturais; órteses e próteses, que auxiliam ou substituem a funcionalidade de
membros ausentes no corpo; auxílios de mobilidade, tais como cadeiras de rodas e
bengalas; auxílio para deficientes visuais; auxílio para deficientes auditivos; e
adaptação em veículos, que permitem pessoas com algum tipo de deficiência dirigi-
los [5].
A Figura 1 ilustra diversas categorias de tecnologias assistivas encontradas
no mercado atualmente.
Figura 1 – Diferentes categorias de tecnologias assistivas.
Fonte: [5].
3.1.1 Cadeira de Rodas
A cadeira de rodas é um dos exemplos mais clássicos de tecnologia assistiva
que pode restaurar a mobilidade de pessoas com deficiências motoras, dentro de
um ambiente propício, os modelos mais modernos podem ter um efeito muito
satisfatório [6].
O primeiro relato de surgimento de cadeiras de rodas foi em torno do século
VI, em algumas gravuras chinesas, e teve sua primeira documentação no século
XVI [7]. A principal função das cadeiras de rodas era como meio de transporte e
ainda não visavam sua utilização como meio de mobilidade para pessoas com
16
deficiência. As primeiras cadeiras de rodas motorizadas são datadas do século XX,
e durante a Primeira Guerra Mundial começaram a ser utilizadas por veteranos de
guerra que tinham lesões na medula ou algum tipo de amputação de membros
inferiores.
Atualmente, existem diversas maneiras de acionamento das cadeiras de
rodas, o mais utilizado é o joystick, pelo qual é possível controlar a direção e a
velocidade da cadeira em seu trajeto. No entanto nem todas as pessoas com
deficiência conseguem controlar a cadeira de rodas por meio de joystick, e
pensando nisso foram desenvolvidos inúmeros meios de mobilidade, usando sinais
biológicos, por exemplo.
Para pessoas com deficiências motoras graves, as cadeiras de rodas podem
ser utilizadas com dispositivos de comunicação, computadores e outros
equipamentos. A integração das múltiplas necessidades do usuário deve ser
considerada ao se projetar uma cadeira de rodas ideal. É necessária uma análise
crítica para projetar uma interface que leve em consideração à necessidade e a
capacidade do usuário em operar a cadeira, para então avaliar a sua eficácia.
Podemos visualizar abaixo na Figura 2, diversos modelos de cadeiras de
rodas utilizados atualmente.
Figura 2: Modelos de cadeiras de rodas.
Fonte: [7].
17
3.2 Sinais Mioelétricos
A atividade muscular é uma das principais maneiras que o ser humano possui
de comunicar e interagir com seu meio. Os sinais mioelétricos são representados
pela passagem de corrente elétrica durante a contração de fibras musculares. O
conjunto de um neurônio que transmite o impulso elétrico com as fibras musculares
por ele inervadas é denominado Unidade Motora (UM).
O sinal de ativação muscular é considerado de caráter aleatório, de acordo
com o modo que é adquirido pode se considerar sua média como zero [9]. Quando
ocorre um estímulo neural, cada unidade motora se contrai e causa uma
propagação do sinal elétrico por todas as células que compõe o músculo. No
ambiente clínico, a decomposição do sinal mioelétrico pode ser utilizada tanto para
avaliar a severidade de uma doença neuromuscular quanto para realizar
diagnósticos [10].
3.2.1 Mecanismo de Contração Muscular
O processo de contração muscular é constituído pela condução do impulso
nervoso, a transmissão sináptica, os potenciais de ação do músculo, a contração
das fibras e o movimento muscular [11]. Praticamente todos os movimentos do
corpo são resultados de uma contração muscular.
Para acontecer uma contração as células musculares precisam receber um
estímulo nervoso. Um neurônio motor pode estimular uma ou centena de células
musculares, cada conjunto de neurônios e células musculares é denominada
Unidade Motora (UM). O neurônio motor é constituído de um corpo celular, os
dendritos e um axônio. O corpo celular é composto por um núcleo e um nucléolo, os
dendritos são responsáveis por receber os impulsos elétricos e conduzi-los até o
corpo celular, são caracterizados como extensões citoplasmáticas [12]. Os axônios
transmitem os sinais nervosos para as células subsequentes. Na Figura 3 a seguir é
possível observar as unidades motoras.
18
Figura 3: Unidades motoras de um músculo.
Fonte: [10].
As contrações musculares acontecem pela ação de proteínas contráteis
presente nas células musculares propagando uma espécie de encurtamento do
músculo. Cada fibra é composta por essas proteínas contráteis que são a actina e a
miosina, que compõe os filamentos finos e grossos, respectivamente, os quais
estão dispostos paralelamente nas miofribilas que compõem as fibras.
Quando um impulso nervoso atinge os terminais de um axônio, os canais de
cálcio da célula são abertos e os íons de Cálcio (Ca²+) entram pelo terminal. A
entrada de cálcio faz com que o terminal do axônio libere acetilcolina, que em
seguida se difunde pela fenda sináptica e se junta aos receptores na membrana. Se
acetilcolina suficiente é liberada, o sarcolema se torna temporariamente permeável
a íons de sódio (Na +), que se amontoam dentro na célula muscular, e para os íons
de potássio (K +), que se difundem para fora da célula [11]. A proporção de Na que
entra na célula é maior que a de K que sai, este desequilíbrio faz com que o interior
da célula possua excesso de íons positivos, o que inverte a polaridade da
membrana, causando uma despolarização. A corrente elétrica gerada pela
despolarização é denominada potencial de ação [11].
O potencial de ação viaja por toda a superfície celular, conduzindo o impulso
elétrico de uma extremidade à outra. O resultado é a contração muscular. Por esse
motivo, um único impulso nervoso é capaz de produzir apenas uma contração,
assim o músculo relaxa até que a acetilcolina seja liberada novamente [12]. Um
19
simples estímulo nervoso é capaz de provocar apenas uma rápida contração
muscular, enquanto estímulos sucessivos promovem contração contínua da fibra
muscular. Portanto, a contração muscular depende dessa taxa de estimulação, que
é o número de estímulos por unidade de tempo.
3.2.2 Musculatura Facial
A musculatura facial é composta por uma cadeia de músculos, que são
responsáveis principalmente por formar as expressões faciais, de acordo com sua
contração e relaxamento. Os músculos da face são inervados pelo nervo facial [13].
É composta por um grupo de cerca de 20 músculos esqueléticos, que se encontram
sob a pele facial. A maioria desses músculos se origina a partir do crânio ou de
estruturas fibrosas e irradiam para a pele através de um tendão elástico. Os
músculos faciais são posicionados em torno das aberturas faciais (boca, olhos, nariz
e ouvido) ou por toda a extensão do crânio e pescoço. Na Figura 4, é possível
observar os principais músculos da face.
Figura 4: Músculos da face.
Fonte: [14].
20
O grupo de músculos responsáveis pela mastigação executa a função de
mover o maxilar inferior. Estes músculos são o masseter, temporal e medial e
pterigóideo lateral. O músculo masseter está localizado na porção lateral da
mandíbula e é invervado pelo nervo trigêmeo. Suas fibras musculares são divididas
em três camadas, a camada superficial, a camada média e a camada profunda.
A porção superficial do masseter é a porção espessa e seu tendão se conecta
a maçã do rosto, enquanto a porção profunda é a porção menor que se conecta a
mandíbula. Ele é responsável por elevar a mandíbula de modo a fechar a boca,
ajudando na função de mastigação e apertamento dos dentes. Dentre os músculos
elevadores, o masseter tem grande importância nos ciclos de mastigação por se
tratar de um músculo com muita potência.
3.2.3 Eletromiografia (EMG)
A eletromiografia (EMG) consiste na captação, registro, análise e
interpretação dos potenciais de ação do músculo, a partir dos movimentos ou do
relaxamento muscular. Os sinais EMG são adquiridos a partir da somatória do
potencial elétrico gerado pelas fibras musculares, medido sobre a superfície do
corpo humano [15]. Esse potencial de ação é denominado Potencial de Ação da
Unidade Motora. É caracterizado por uma duração média de 2 a 10ms, amplitude
inferior a 50mV e um espectro de frequência variando de 5Hz a 10kHz, este sinal
depende de muitos parâmetros como as variações fisiológicas das fibras
musculares, a pele e o próprio eletrodo [16].
O eletromiógrafo capta o estímulo propagado nas unidades motoras. A
captação desses sinais é realizada a partir de eletrodos, os quais podem ser
invasivos (intramusculares) ou não invasivos (de superfície) conforme podem ser
visualizados na Figura 5, geralmente são confeccionados em prata e cobertos com
cloreto de prata (Ag-AgCl). Os eletrodos invasivos são compostos, na maioria das
vezes, por fios finos metálicos ou agulhas permitindo a captação mais precisa do
sinal, ou seja, maior amplitude e maior razão sinal ruído (SNR), eles conseguem
captar uma região bem definida sem interferência de músculos vizinhos, no entanto,
podem causar desconforto para o indivíduo. Os eletrodos superficiais são
compostos por pequenas placas que são colocadas sobre a pele, causando menos
desconforto ao usuário, as principais vantagens estão em sua aplicação e suas
21
limitações são a atenuação causada pela pele e a possível interferência do registro
do sinal elétrico vindo de outros músculos ou grupos musculares, denominada
crosstalk.
Os eletrodos de superfície podem ser classificados em ativos e passivos. Os
eletrodos ativos possuem um circuito de amplificação ou filtragem bem próximo ao
contato eletrodo-pele, sua principal vantagem está na maior razão sinal-ruído e
menor impedância com a pele. Por outro lado, os passivos possuem todos os
estágios de amplificação distantes do contato eletrodo-pele, dessa forma a
impedância da pele deve ser considerada. Para diminuir a impedância é necessário
preparar a pele, realizando limpeza adequada com álcool.
Figura 5: Eletrodos. (a) Eletrodos de superfície passivos, (b) Eletrodos de superfície ativos, (c)
Eletrodos intramusculares.
Fonte: [17].
A configuração dos eletrodos pode ser monopolar, quando são utilizados dois
eletrodos, quanto bipolar, com três eletrodos. Na configuração monopolar um dos
eletrodos é colocado sobre o músculo onde se deseja obter o sinal e outro na
referência, geralmente um lugar do corpo onde não há atividade muscular. Por outro
lado, na configuração bipolar, um dos eletrodos é a referência e os outros dois são
para obter o sinal, dessa forma, é obtida uma amplificação diferencial. Os sinais
detectados pelos eletrodos de detecção são comparados com os sinais do eletrodo
de referência, dessa forma, apenas o sinal do potencial de ação gerado pelas
células musculares é amplificado e registrado. O sinal de modo comum obtido pelos
22
dois eletrodos é descartado do processo, geralmente esses sinais são ruídos
externos, como a corrente de 60Hz captada de lâmpadas e equipamentos externos.
Até recentemente, o EMG era utilizado apenas para fins de diagnóstico, no
entanto, com o avanço da tecnologia têm se tornado uma ferramenta fundamental
na construção de inúmeros equipamentos na área de TA. Atualmente existem
inúmeras pesquisas que indicam o crescimento e o interesse em criar novas
tecnologias para facilitar a vida dos indivíduos utilizando sinais eletromiográficos.
No entanto, pode se observar na maioria dos casos que os sinais EMG
perdem sua fiabilidade quando utilizados em longo prazo, devido principalmente à
fadiga muscular. Esses efeitos podem causar alterações na resposta muscular, uma
vez que o sistema nervoso central deixa de conduzir os neurônios motores
adequadamente. Podemos observar na Figura 6, a diferença na amplitude dos
sinais EMG em um músculo antes de fadigar e após [18]. Atualmente, grande parte
das tecnologias desenvolvidas leva em consideração a fadiga muscular, permitindo
que o sistema detecte e funcione de maneira apropriada para o individuo.
Figura 6: A amplitude dos sinais EMG. (a) Antes de ocorrer fadiga muscular. (b) Após ocorrer
fadiga muscular.
Fonte: [18].
23
4 METODOLOGIA
A cadeira de rodas controlada por sinais EMG deve proporcionar um elevado
grau de controle e alto desempenho para seus usuários. Visando atender as
pessoas que possuem um grau mais elevado de dependência foi escolhido o
músculo masseter, presente na face, para controle da cadeira de rodas. Os
principais componentes do sistema incluem sinais EMG captados por eletrodos não
invasivos colocados sobre a pele na bochecha do usuário, mais especificamente
sobre o músculo masseter, os sinais coletados são interpretados por um sensor
denominado Myoware, suas informações são processadas por um software
desenvolvido no Arduino e enviados para a interface que realiza a seleção de
movimento da cadeira.
O aplicativo que contém a interface de seleção foi desenvolvido na plataforma
Android Studio, na linguagem Java, para o tablet Samsung Galaxy Tab S2. Na
Figura 7 é possível observar o diagrama de blocos do funcionamento do projeto.
Figura 7: Diagrama de blocos do projeto.
Fonte: Autora.
24
4.1 Hardware
4.1.1 Myoware
Os eletrodos utilizados nesse projeto foram eletrodos superficiais
descartáveis. O sensor utilizado para captura dos sinais provenientes dos eletrodos
foi o Myoware, que se trata de um sensor que mede a atividade elétrica filtrada e
retificada de um músculo. É projetado para ser utilizado diretamente com um
microcontrolador, portanto, a saída não contém o sinal bruto, mas sim o sinal
amplificado, retificado e filtrado que funcionará bem com o conversor analógico
digital do microcontrolador. Na figura 8 podemos ver o sensor Myoware. Na Tabela
1 podemos visualizar as especificações técnicas do sensor.
O sensor transmite os dados direto para o Arduino, que é responsável pela
análise e processamento dos sinais adquiridos.
Tabela 1: Especificações elétricas do sensor Myoware.
Parâmetros Mínimo Usual Máximo
Tensão de alimentação +2.9V +3.3V ou
+5V
+5.7V
Potenciômetro de ganho ajustável
0,01 Ω
50 kΩ
100kΩ
Tensão de saída:
EMG
EMG Bruto (centrado em +Vs/2)
0V
0V
--
--
+Vs
+Vs
Impedância de entrada -- 110GΩ --
Corrente fornecida -- 9mA 14mA
Razão Rejeição de Modo Comum
(RRMC)
--
110
--
Corrente de Bias -- 1pA --
Vs – Tensão de Alimentação (Voltage Supply)
Fonte: [19].
25
Figura 8: Sensor Myoware.
Fonte: [19].
4.1.2 Arduino
Para a aplicação neste projeto, o microcontrolador deverá ser capaz de
comunicar-se com o sensor Myoware, recebendo os dados digitalizados e enviá-los
via Bluetooth para o software. O microcontrolador que será usado no projeto é o
Arduino Mega (Figura 9). O Arduino Mega é uma placa de microcontrolador baseado
no ATmega1280. Ele tem cinquenta e quatro pinos digitais de entrada / saída (dos
quais quatorze podem ser usados como saídas PWM), dezesseis entradas
analógicas e quatro portas seriais de hardware.
Figura 9: Arduino Mega.
Fonte: [20].
O módulo Bluetooth é responsável por transferir os dados recebidos do
arduino para o software de seleção no tablet. O módulo utilizado foi o HC-06, ele só
26
pode ser utilizado no modo ‘‘escravo’’, ou seja, ele permite que outros dispositivos
se conectem à ele, mas não permite que ele próprio se conecte à outros dispositivos
Bluetooth. O seu alcance é de aproximadamente dez metros.
O módulo possui quatro pinos: VCC (alimentação), GND (aterramento), RX e
TX utilizados para comunicação com o Arduino. Na Figura 10 é possível visualizar o
módulo HC-06.
Figura 10: Módulo Bluetooth HC-06.
Fonte: [21].
4.1.3 Samsung Galaxy Tab S2
O tablet utilizado foi o modelo Galaxy Tab S2 da marca Samsung™. O
sistema operacional é Android. Na Tabela 2, podemos visualizar as especificações
técnicas do tablet escolhido.
Tabela 2: Especificações técnicas Samsung Galaxy Tab S2
Processador Processador Octa Core (Quad 1,9 GHz + Quad 1,3 GHz)
Tela 9,7” 2 048 x 1 536 (QXGA) Super AMOLED
Sistema Operacional Android 5.0 (Lollipop)
Memória
3 GB (RAM) + 32 GB de memória interna microSD até 128GB
Dimensão/Peso 169 x 237,3 x 5,6 mm, 389 g
27
4.1.4 Cadeira de Rodas
A cadeira de rodas motorizada utilizada no desenvolvimento do projeto foi da
marca Seat Mobile do Brasil modelo SM2. Contém duas baterias seladas de 12V e
45Ah cada, e admite velocidade de no máximo 8km/h. A Figura 11 mostra a cadeira
de rodas adaptada utilizada no projeto.
Figura 11: Cadeira de rodas adaptada.
Fonte: Autora.
Originalmente os controles da cadeira eram ativados a partir de joystick e
botões, no entanto ela foi adaptada para receber diversas formas de controle, como
os sinais EMG e EOG. O circuito eletrônico de controle da cadeira foi projetado de
acordo com as tensões obtidas nos pinos de controle da mesma, que podem ser
visualizados na Tabela 3 [22].
28
Tabela 3: Tensões de ativação da cadeira.
Pino Parada Frente Trás Direita Esquerda
1 0V
2 2,4V
3 2,4V 3,8V 1V 2,4V 2,4V
4 2,4V 2,4V 2,4V 3,8V 1V
5 Alimentação (5V)
6 Terra
7 2,4V 3,8V 1V 2,4V 2,4V
8 2,4V 2,4V 2,4V 3,8V 1V
Fonte: [22].
4.2 Software
4.2.1 Arduino (IDE)
O Ambiente de Desenvolvimento Integrado Arduino - ou Arduino Software
(IDE) é uma aplicação multiplataforma escrita em Java™. É composto por um editor
de texto para escrever o código, uma área de mensagem, uma barra de ferramentas
e uma série de menus. Ele se conecta ao hardware Arduino para compilar, carregar
programas e comunicar com eles. Programas escritos usando o Software do
Arduino (IDE) são chamados de esboços. Estes esboços são escritos no editor de
texto e são salvos com a extensão de arquivo .ino. A interface do software pode ser
vista na Figura 12.
A liguagem de programação é baseada em c/c++, permintindo criar com
facilidade operações de entrada e de saída. Duas funções devem ser definidas ao
criar um programa, que são: a função setup(), que é inserida no ínicio, e a função
loop(), utilizada para repetir um bloco de comandos.
No arduino será feita a análise dos dados recebidos pelo sensor Myoware e a
partir disso serão enviados para o tablet via bluetooth os comandos necessários
para a seleção de movimento da cadeira.
29
Figura 12: Interface do programa de implementação Arduino IDE com trecho do
algoritmo de processamento.
Fonte: Autora.
4.2.2 Android Studio
Android Studio é um ambiente de desenvolvimento integrado (IDE) elaborado
para desenvolver aplicações na plataforma Android. A linguagem de programação é
baseada em java e o layout do aplicativo em .xml. O que permite que sejam criados
aplicativos para diversos tipos de dispositivos Android, como tablets e smartphones.
O Android Studio permite a comunicação de dispositivos Android com o Arduino, por
meio de bluetooth ou cabo usb. A interface do software pode ser vista na Figura 13.
Figura 13: Interface do programa de implementação no Android Studio com trecho do
algoritmo de processamento.
Fonte: Autora.
30
Nesse ambiente foi desenvolvida a interface para o usuário se comunicar com
a cadeira, onde a seleção do movimento desejado é realizada. Ela é composta por
botões que mostram as direções de movimentos da cadeira. Os sinais serão
recebidos por meio de bluetooth do arduino, e após a seleção serão enviados para
a cadeira por comunicação usb. A interface de criação do layout pode ser
visualizada na Figura 14.
Figura 14: Interface de criação do layout do aplicativo.
Fonte: Autora.
O sistema Android é utilizado por cerca de 80% da população mundial, com
mais de um bilhão de usuários ativos e com mais de um milhão de aplicativos
disponíveis [23].
31
5 RESULTADOS E DISCUSSÃO
O software desenvolvido no Arduino é responsável por receber, analisar e
processar o sinal vindo dos eletrodos do sensor Myoware. Na primeira etapa do
projeto, o sensor foi colocado sobre a pele, e as contrações realizadas foram
enviadas para o arduino.
A análise dos dados coletados foi feita no próprio arduino, a pessoa deveria
ficar inicialmente em repouso para serem coletados os primeiros dois segundos, de
modo que, os dados coletados nesses primeiros segundos são subtraídos dos
sinais adquiridos a fim de obter resultados mais precisos de contração, podendo
assim excluir os sinais de repouso da pessoa. Em seguida, é calculado o valor
quadrático médio ou valor rms do vetor de dados. O valor rms é utilizado quando se
quer obter o valor eficaz de uma quantidade variável. Quando o software detecta
uma contração é enviado uma string “S” para o tablet via bluetooth, enquanto não
houver contração nenhum sinal é enviado pelo arduino. O código implementado
pode ser visualizado no Apêndice A.
Foram encontradas algumas dificuldades em relação a essa parte do projeto,
uma vez que o software não conseguiu detectar todos os momentos em que o
usuário contraia o músculo. Sendo necessário algumas vezes realizar um esforço
maior que o previsto. Uma solução para esse problema seria realizar o
condicionamento do sinal recebido pelo sensor por meio do próprio aplicativo que
seria um software mais confiável, ao invés de realizar no arduino. No entanto, os
dados foram repassados para o software da interface de maneira satisfatória por
meio do módulo bluetooth. A comunicação entre o sensor e o tablet ocorreu como o
planejado, de forma rápida e precisa.
A segunda parte do projeto consistiu na criação do aplicativo na plataforma
Android. Foi desenvolvido utilizando o Android Studio IDE, a linguagem utilizada
para programar foi Java. O aplicativo possui cinco opções de comando: frente,
atrás, esquerda, direita e parar. A interface é composta por cinco botões de
imagem, onde é possível ver setas direcionais indicando para qual direção o usuário
32
deseja se movimentar e outros dois botões para iniciar e parar a interface. Na figura
15 é possível visualizar a interface final no tablet.
Figura 15: Interface do aplicativo no tablet.
Fonte: Autora.
Ao iniciar a interface o aplicativo se conecta automaticamente com o módulo
bluetooth para receber os dados do sensor EMG, pois foi definido por meio do
código o endereço específico do mesmo, afim de simplificar a programação. A
conexão USB do tablet com a cadeira tem que ser acionada por meio do botão
“START” e quando o usuário quiser encerrar a aplicação e fechar a conexão USB
ele precisa pressionar o botão STOP, se o botão for pressionado enquanto a
cadeira estiver realizando qualquer tipo de movimento, ele envia o sinal para a
mesma parar, evitando possíveis erros.
A interface de seleção dos movimentos da cadeira consiste, primeiramente,
na varredura automática dos botões frente, trás, esquerda e direita (Figura 16),
onde cada botão aparece hábil para seleção durante um segundo e meio, e ficam
alternando até um deles ser selecionado. O botão habilitado para a seleção aparece
na cor preta, enquanto os outros permanecem na cor cinza.
Quando o usuário desejar acionar um movimento ele contrai o músculo
masseter no momento em que a seta está selecionada, ao confirmar o movimento
desejado a seta muda para a cor rosa, acionando o movimento da cadeira (Figura
17). É enviado para cadeira uma string de acordo com o movimento (“1” Frente, ”3”
Direita, ”4” Esquerda e ”5” Trás).
33
Figura 16: Layout de seleção dos comandos (a) Frente, (b) Trás, (c) Esquerda, (d) Direita.
Fonte: Autora.
Figura 17: Layout de escolha do comando. (a) Frente, (b) Trás, (c) Esquerda, (d) Direita.
Fonte: Autora.
Ao ser confirmada a seleção de qualquer tipo de movimento da cadeira,
automaticamente o único botão possível de ser selecionado é o parar (Figura 18).
O software foi programado dessa maneira a fim de evitar possíveis erros que
poderiam causar danos ao usuário.
34
Figura 18: Layout de seleção do movimento parar.
Fonte: Autora.
A pessoa deve realizar outra contração quando decidir parar a cadeira,
confirmando a seleção do botão, assim como é feita para os outros comandos.
Assim que a pessoa seleciona o botão parar, é enviado o comando “2” para a
cadeira por meio de cabo USB. O botão aparece selecionado (Figura 19) e
novamente se inicia o layout de seleção de um novo comando de locomoção da
cadeira.
Figura 19: Layout de escolha do movimento parar.
Fonte: Autora.
A comunicação USB do tablet com a cadeira exige a instalação de uma
biblioteca específica no software Android Studio, a biblioteca physicaloid, ela é
responsável por realizar a comunicação de dispositivos android com placas físicas
de controle, como o arduino. O código da interface Android Studio pode ser visto no
Apêndice B. As respostas obtidas foram satisfatórias, de modo que os sinais
35
enviados pelo tablet foram recebidos pela cadeira de maneira imediata, enquanto a
cadeira executava as ações de acordo com os dados recebidos.
Para testar o projeto parte a parte foram utilizados circuitos simples de
eletrônica, simulando os sinais recebidos pelo sensor e os sinais que seriam
enviados para a cadeira. Primeiramente foi testada a comunicação bluetooth, onde
o aplicativo recebia um sinal pelo arduino por meio de bluetooth. Os resultados
obtidos dessa simulação não mostraram nenhum problema. Em seguida, os testes
foram feitos para simular a comunicação USB, do tablet para outro arduino, foi
montado um circuito simulando o envio dos dados por meio do USB. Ambos os
testes funcionaram corretamente e foram muito importantes no desenvolvimento do
aplicativo final.
Os resultados finais obtidos do funcionamento do aplicativo na cadeira
necessitam de alguns ajustes para operar com maior eficácia, uma vez que,
apresentaram alguns problemas na análise dos sinais EMG no processamento
realizado na plataforma do arduino. Outra dificuldade encontrada está na escolha do
músculo, pois na realização dos testes alguns usuários se queixaram de cansaço
muscular devido ao esforço realizado pelo músculo. Este problema poderia ser
amenizado se houvesse mais de um grupo muscular para realizar a seleção dos
comandos. O protocolo utilizado para seleção também pode dificultar em algumas
situações, por exemplo, se o usuário quiser realizar dois movimentos diferentes de
forma rápida ele deverá esperar pelo menos um segundo e meio entre a primeira a
ação e a de parada para poder selecionar uma segunda opção de controle.
36
6 CONCLUSÕES
O desenvolvimento de novos meios que permitam o controle de cadeiras de
rodas de forma mais fácil para muitos usuários, que necessitam de alternativas
diferentes do usual, é uma área em expansão. A fim de atender o maior número
possível de usuários a interface deve ser composta por opções diversas de
acionamento para um comando, pois cada usuário possui necessidades diferentes.
A tecnologia assistiva é uma ferramenta extremamente importante no estudo e
desenvolvimento de dispositivos capazes de reintegrar funções para pessoas com
deficiências.
O objetivo deste trabalho foi desenvolver um aplicativo para sistemas Android
que fosse capaz de controlar uma cadeira de rodas adaptada por meio de sinais
eletromiográficos, obtidos através da contração do músculo facial masseter. O
software de aquisição e análise dos dados foi desenvolvido no Arduino e o software
com a interface foi desenvolvido no Android Studio na linguagem Java.
Pode-se perceber que os resultados obtidos durante o desenvolvimento do
aplicativo foram bastante satisfatórios, apesar das dificuldades encontradas, o
sistema operou conforme o esperado. Portanto os principais objetivos desse
trabalho foram atingidos, projetar e desenvolver um aplicativo para sistema Android
capaz de controlar a cadeira de rodas por sinais EMG. A partir dos resultados
obtidos, é possível concluir que um usuário com algum tipo de deficiência severa,
na qual o comprometimento é alto, pode se tornar menos dependente para realizar
atividades básicas como se locomover, resultando em uma maior qualidade de vida.
37
7 SUGESTÕES PARA TRABALHOS FUTUROS
Relativo ao software implementado no arduino, sugere-se que seja realizado
um software de processamento dos dados do sensor Myoware que atenda de forma
mais eficaz os usuários. Pode-se implementar um sistema que capture a contração
muscular de dois grupos musculares diferentes, afim de dar mais conforto para a
pessoas que irão utilizá-lo.
Como o Android é o sistema operacional mais utilizado por dispositivos
portáteis ele foi escolhido para esse projeto, no entanto, outro sistema que é
amplamente utilizado é o iOS, que pode ser encontrado em dispositivos da marca
Apple. Sugere-se que o aplicativo seja expandido de tal forma que atenda aos mais
diversos sistemas operacionais existentes atualmente, para que a maioria dos
usuários possa ter acesso a ele.
38
8 REFERÊNCIAS
[1] FAVIEIRO, W. G. Controle de uma prótese experimental do segmento mão-
braço por sinais mioelétricos e redes neurais artificiais. Trabalho de conclusão
de curso de graduação em Engenharia Elétrica. Universidade Federal do Rio
Grande do Sul: Porto Alegre, 2009.
[2] ALBRECHT, B. L. Controle de uma cadeira de rodas motorizada através de
eletromiografia em uma plataforma embarcada. Trabalho de conclusão de curso
de graduação em Engenharia Elétrica. Universidade Federal do Rio Grande do Sul:
Porto Alegre, 2010.
[3] B. Champaty, P. Dubey, S. Sahoo, S.S.Ray, K. Pal, A. Anis, Development of
wireless EMG control system for rehabilitation devices, in: Proceedings of the
Annual International Conference on Emerging Research Areas: Magnetics,
Machines and Drivers, 2014
[4] BERSH, Rita. Tecnologia Assistiva no processo educacional. In: BRASIL.
Ministério da Educação. Brasília: MEC/SEESP, 2005
[5] BERSCH, R., 2008. Introdução à Tecnologia Assistiva.
[6] BRONZINO J. D. Biomedical Engineering Handbook. CRC Press, IEE Press,
Boca Raton, 1995.
[7] DE SOUZA, Braga et al. Concepção da estrutura do sistema tecnológico de uma
cadeira de rodas inteligente adaptada ao utilizador. 2012.
[8] RANGAYYAN M. R. Biomedical Signal Analysis: A Case-study Approach
[9] Azorín, J. M., Ceres, R., Frizera, A., & Freire, T. A Interação de Pessoas com
Deficiência com o Computador: Experiências e Possibilidades em Ibero-América,
Espanha, 2014.
[10] Mambrito B and de Luca CJ. Acquisition and decomposition of the EMG signal.
In Desmedt JE, editor, Progress in Clinical Neurophysiology, Volume 10: Computer-
aided Electromyography. Switzerland, 1983.
[11] MARIEB, E. N.; HOEHN, K. Human Anatomy and Physiology. 11. ed. San
Francisco, Benjamin Cummins Publishing Company Inc., Estados Unidos da
América, 2014.
39
[12] GUYTON, ARTHUR C. e HALL, JOHN E. Tratado de Fisiologia Médica, Rio de
Janeiro: Elsevier, 2006.
[13] STERN JR, J. T. Essentials of gross anatomy. New York: Stone Brook
University, 2003.
[14] NETTER, Frank H.. Atlas de Anatomia Humana. 2ed. Porto Alegre: Artmed,
2000.
[15] SILVA, L. R.. Desenvolvimento de uma interface homem - máquina aplicada a
uma cadeira de rodas robótica por meio de pda. Espirito Santo, 2007.
[16] KAMPAS, P. The Optimal Use of Myoelectrodes. Med. Orth. Tech, n. 121, 2001.
[17] BARROS, Kety Rosa de. Metodologia para classificação de sinais EMG para
controle de próteses com baixo esforço computacional. 2005.
[18] XU, Xiaodong et al. Robust bio-signal based control of an intelligent wheelchair.
Robotics, v. 2, n. 4, p. 187-197, 2013.
[19] Myoware Muscle Sensor Datasheet. Disponível em:
<http://www.advancertechnologies.com/p/myoware.html> Acesso em: 10/06/2016.
[20] Datasheet Arduino Mega. Disponível em:
<https://www.arduino.cc/en/Main/ArduinoBoardMega> Acesso em: 10/06/2016.
[21] Arduino and HC-06 Example. Disponível em:
<http://arduinolearning.com/learning/arduino-and-hc-06-bluetooth-example.php>
Acesso em: 10/06/2016.
[22] BORGES, L. R. et al. Sinais Eletromiográficos e Eletrônica Analógica Aplicados
ao Controle de Cadeira de Rodas Motorizada.
[23] Dados do sistema operacional móvel Android, disponível em:
<http://www.tecmundo.com.br/sistema-operacional/60596-ios-android-windows-
phone-numeros-gigantes-comparados-infografico.htm>. Acesso em: 12/06/2016.
40
APÊNDICE A – Código desenvolvido no Arduino
#include <SoftwareSerial.h>
SoftwareSerial bt(6,7); //declarando portas bluetooth
const int buf = 200;
double vetor[buf];
double sinal;
boolean contraction = false; // declaração do booleano para detectar um pico de
contração
double variancia[80]; //Variável para o cálculo da variancia
double mediaVariancia=0;
double media = 0; //Variável para a média
double soma =0;
double rms = 0;
double mediaRMS =0;
double somatorioQuadrado = 0;
double somaVetor = 0;
double desvioPadrao = 0;
double limiar = 0;
unsigned long tempo_inicio;
unsigned long tempo_fim;
int cont =0;
double limiarFinal=0;
double somaLimiar =0;
int estado=1;
boolean control= 0;
int contador2=0;
void setup()
pinMode(A0, INPUT); // declaração do pino A0 para leitura do sensor
bt.begin(9600);
41
pinMode(13, OUTPUT);
void one()
for (int j=0; j<buf; j++) // for para rodar 1s para calcular o limiar inicial em repouso
vetor[j] = analogRead(A0);
soma += pow((vetor[j]- media), 2);
void loop()
digitalWrite(13, LOW);
soma= 0;
somaVetor = 0;
somatorioQuadrado=0;
for (int i=0; i<buf; i++) // laço para rodar sempre e sempre cacular o rms
vetor[i] = analogRead(A0);
somatorioQuadrado += pow(vetor[i],2);
somaVetor += vetor[i];
mediaRMS = somatorioQuadrado/buf; //calcula media rms
rms = sqrt(mediaRMS);
contador2++;
42
media = somaVetor/buf;
if(estado==1)
estado=0;
for(int contador=0;contador<80;contador++)
one();
variancia[contador] = soma/buf;
mediaVariancia+=variancia[contador];
soma=0;
tempo_fim = micros();
mediaVariancia=mediaVariancia/40;
desvioPadrao=sqrt(mediaVariancia);
limiar = (media+(2*desvioPadrao));
tempo_fim = micros();
contraction=false;
if (rms>limiar && ((tempo_fim-tempo_inicio)> 1000000) && contador2>30) //Há
contração
contador2=0;
tempo_inicio = micros();
contraction = true;
control =0;
if (contraction && control==0) //se tiver contração
control=1;
digitalWrite(13, HIGH);
bt.print("S"); // envia sinal para tablet
delay(700);
43
APÊNDICE B – Código desenvolvido no Android Studio
public class testelayout extends AppCompatActivity private static final String TAG = "bluetooth2"; ImageButton imFrente, imTras, imParar, imEsquerda, imDireita; Button btStart, btStop; public ImageButton[] buttons; public int currentItem = 4; public boolean IsStopActive = false; public Timer _t = new Timer(); Handler h; Physicaloid mPhysicaloid; final int mensagem_recebida = 1; // Status for Handler private BluetoothAdapter btAdaptador= null; private BluetoothSocket btSo= null; private StringBuilder sb = new StringBuilder(); private Conexao mConexao; private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); private static String address = "98:D3:31:30:4F:A4"; //endereço do dispositivo bluetooth protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_testelayout); //inicia layout btStart = (Button) findViewById(R.id.btStart); btStop = (Button) findViewById(R.id.btStop); imParar = (ImageButton) findViewById(R.id.imParar); imFrente = (ImageButton) findViewById(R.id.imFrente); imTras = (ImageButton) findViewById(R.id.imTras); imDireita = (ImageButton) findViewById(R.id.imDireita); imEsquerda = (ImageButton) findViewById(R.id.imEsquerda); buttons = new ImageButton[] //cria vetor com imagens imFrente, imTras, imParar, imEsquerda, imDireita ; setEnabledUi(false); mPhysicaloid = new Physicaloid(this); //realiza comunicação usb h = new Handler() public void handleMessage(android.os.Message msg) switch (msg.what) case mensagem_recebida: // se receber mensagem byte[] readBuf = (byte[]) msg.obj;
44
String strIncom = new String(readBuf, 0, msg.arg1); // cria string pelo vetor de bytes recebidos sb.append(strIncom); // incrementa string int endOfLineIndex = sb.indexOf("\r\n"); // determina o final da linha if (endOfLineIndex > 0) // se estiver no final String sbprint = sb.substring(0, endOfLineIndex); // extrai string if (sbprint.equals("S")) //se o vetor recebido for contração DoSelection(); //faz a seleção do comando sb.delete(0, sb.length()); // limpa vetor para receber novamente break; ; btAdaptador= BluetoothAdapter.getDefaultAdapter(); // obtém adaptador bluetooth checkBTState(); //checa status bluetooth _t.scheduleAtFixedRate( new TimerTask() //função para acessar comandos de tempo em tempo @Override public void run() runOnUiThread(new Runnable() public void run() if (IsStopActive) //se houver algum comando ativo ShowSelected(imParar); //proximo comando será parar else currentItem++; //incrementa o item para mostrar seleção if (currentItem > 4) currentItem = 1; switch (currentItem) case 1: ShowSelected(imFrente); //destaca botão para selecionar break;
45
case 2: ShowSelected(imTras); break; case 3: ShowSelected(imEsquerda); break; case 4: ShowSelected(imDireita); break; default: break; ); , 1500, 1500 ); //define o tempo de 1.5s em cada botão private void ShowSelected(ImageButton Selected) //função para definir cor de destaque dos botões para seleção for (int i = 0; i < buttons.length; i++) if (buttons[i] == Selected) buttons[i].setBackgroundColor(Color.BLACK); // muda cor dos botões else buttons[i].setBackgroundColor(Color.GRAY); private void DoSelection() //função para fazer seleção if (IsStopActive) //se houver algum botão ativo ConfirmSelection(imParar, "2"); //confirma seleção de parar IsStopActive = false; //volta para seleção de comando currentItem = 4; else switch (currentItem) case 1: ConfirmSelection(imFrente, "1"); //confirma a seleção break; case 2: ConfirmSelection(imTras, "5"); break; case 3: ConfirmSelection(imEsquerda, "4"); break; case 4: ConfirmSelection(imDireita, "3"); break;
46
IsStopActive = true; private void ConfirmSelection(ImageButton imageButton, String command) //função para confirmar a seleção imageButton.setBackgroundColor(Color.MAGENTA); //muda cor do botão selecionado mPhysicaloid.write(command.getBytes()); //envia o comando para a cadeira private BluetoothSocket createBluetoothSocket(BluetoothDevice device) throws IOException if(Build.VERSION.SDK_INT >= 10) try final Method m = device.getClass().getMethod("createInsecureRfcommSocketToServiceRecord", new Class[] UUID.class ); return (BluetoothSocket) m.invoke(device, MY_UUID); catch (Exception e) Log.e(TAG, "Não foi possível estabelecer conexão", e); return device.createRfcommSocketToServiceRecord(MY_UUID); @Override public void onResume() super.onResume(); Log.d(TAG, "...tentando conectar..."); // Configurar um ponteiro para o dispositivo remoto utilizando o respectivo endereço. BluetoothDevice device = btAdaptador.getRemoteDevice(address); try btSo = createBluetoothSocket(device); catch (IOException e) errorExit("ERRO FATAL", "Falha: " + e.getMessage() + "."); btAdaptador.cancelDiscovery(); // Estabiliza a conexão bluetooth Log.d(TAG, "...Conectando...");
47
try btSo.connect(); Log.d(TAG, "....Connection ok..."); catch (IOException e) try btSo.close(); catch (IOException e2) errorExit("ERRO FATAL", "Falha:" + e2.getMessage() + "."); // Cria uma stream para trocar dados com servidor Log.d(TAG, "...Criando..."); mConexao= new ConnectedThread(btSo); mConexao.start(); @Override public void onPause() super.onPause(); Log.d(TAG, "...Carregando()..."); try btSo.close(); catch (IOException e2) errorExit("ERRO FATAL", "Falha:" + e2.getMessage() + "."); private void checkBTState() // Checa se o bluetooth está ativo // Se o dispositivo não tiver bluetooth não abre o aplicativo if(btAdaptador==null) errorExit("ERRO FATAL", "Bluetooth não suportado"); else if (btAdaptador.isEnabled()) Log.d(TAG, "...Bluetooth ON..."); else //Prompt user to turn on Bluetooth Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, 1); private void errorExit(String title, String message) Toast.makeText(getBaseContext(), title + " - " + message,
48
Toast.LENGTH_LONG).show(); finish(); private class Conexao extends Thread private final InputStream dados; //receber dados por bluetooth public Conexao(BluetoothSocket socket) InputStream tmpIn = null; try tmpIn = socket.getInputStream(); //recebe dados catch (IOException e) dados = tmpIn; public void run() byte[] buffer = new byte[256]; // buffer store for the stream int bytes; // bytes returned from read() //Continua lendo dados recebidos até houver interrupção while (true) try // Faz leitura dos dados bluetooth bytes = dados.read(buffer); // recebe bytes h.obtainMessage(mensagem_recebida, bytes, -1, buffer).sendToTarget(); // envia mensagem recebida para função handler catch (IOException e) break; public void onClickStart(View v) mPhysicaloid.setBaudrate(9600); //define taxa de transferência USB if (mPhysicaloid.open()) setEnabledUi(true); else Toast.makeText(this, "Não foi possível abrir", Toast.LENGTH_LONG).show(); //se não realizar conexão USB
49
private void setEnabledUi(boolean on) if(on) btStart.setEnabled(false); btStop.setEnabled(true); else btStart.setEnabled(true); btStop.setEnabled(false); public void onClickStop(View v) //Ao clicar no botão STOP aplicação envia comando de parar e fecha if (mPhysicaloid.close()) setEnabledUi(false); mPhysicaloid.write("2".getBytes()); finish();