49
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 - Engenharia Biomédica -UFU · A Tecnologia Assistiva se difere da reabilitação, uma vez que essa última é utilizada principalmente para auxiliar na recuperação

Embed Size (px)

Citation preview

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

Dedico este trabalho aos meus pais e

amigos que me acompanharam nessa

trajetória.

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();