MINISTÉRIO DA DEFESA - ime.eb.mil.br · trabalho, sem modificação de seu texto, em qualquer meio...
-
Upload
duongkhanh -
Category
Documents
-
view
214 -
download
0
Transcript of MINISTÉRIO DA DEFESA - ime.eb.mil.br · trabalho, sem modificação de seu texto, em qualquer meio...
0
MINISTÉRIO DA DEFESA
EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
CURSO DE MESTRADO EM ENGENHARIA MECÂNICA
HELTON NAZARENO CASTANHEIRA SOUSA
INSTRUMENTAÇÃO E CONTROLE DE UM EXOESQUELETO PARTE INFERIOR
DO CORPO
Rio de Janeiro
2014
1
INSTITUTO MILITAR DE ENGENHARIA
HELTON NAZARENO CASTANHEIRA SOUSA
INSTRUMENTAÇÃO E CONTROLE DE UM EXOESQUELETO
PARTE INFERIOR DO CORPO
Dissertação de Mestrado apresentada ao Curso de
Mestrado em engenharia Mecânica do Instituto
Militar de Engenharia, como requisito parcial para a
obtenção do título de Mestre em Ciências em
Engenharia Mecânica.
Orientador: Maj. Jorge Audrin Morgado de Gois- Dr.Ing.
Rio de Janeiro
2014
2
c2014
INSTITUTO MILITAR DE ENGENHARIA
Praça General Tibúrcio, 80 – Praia Vermelha
Rio de Janeiro – RJ CEP: 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo em
base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de
arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste
trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado,
para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que
seja feita a referência bibliográfica completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e do(s)
orientador(es).
620.82
Sousa, Helton Nazareno Castanheira
S725i
Instrumentação e controle de um exoesqueleto parte inferior do
corpo / Helton Nazareno Castanheira Sousa, orientado por Jorge
Audrin Morgado de Góis – Rio de Janeiro: Instituto Militar de
Engenharia, 2014.
233p. : il.
Dissertação (Mestrado) – Instituto Militar de Engenharia, Rio de
Janeiro, 2014.
1. Curso de Engenharia Mecânica – teses e dissertações. 2.
Robótica. 2. Sistemas homem-máquina. I. Góis, Jorge Audrin Morgado
de. II. Título. III. Instituto Militar de Engenharia.
3
INSTITUTO MILITAR DE ENGENHARIA
HELTON NAZARENO CASTANHEIRA SOUSA
INSTRUMENTAÇÃO E CONTROLE DE UM EXOESQUELETO
PARTE INFERIOR DO CORPO
Dissertação de Mestrado apresentada ao Curso de Mestrado em Engenharia Mecânica do
Instituto Militar de Engenharia, como requisito parcial para a obtenção do título de Mestre em
Ciências em Engenharia Mecânica.
Orientador: Jorge Audrin Morgado de Gois – Dr.Ing.
Aprovada em 15 de maio de 2014 pela seguinte Banca Examinadora:
________________________________________________________________
Prof. Jorge Audrin Morgado de Gois - Dr.Ing. do IME – Presidente
________________________________________________________________
Prof. Aldélio Bueno Caldeira - D.Sc. do IME
________________________________________________________________
Profa. Sandra Regina Freitas da Silva Morgado de Gois - D.Sc. da UNESA
Rio de Janeiro
2014
4
Dedico este trabalho a Deus, minha esposa e todos
famíliares.
5
AGRADECIMENTOS
Agradeço primeiramente a Jesus meu Senhor e Salvador, que me sustentou na
caminhada concedendo sebedoria e força, para superar todas as dificuldades neste Mestrado.
A minha esposa Marina, que compreendeu e incentivou meus estudos, a cada dia de aulas e
avaliações no IME.
Agradeço a minha mãe e todos familiares , em especial ao meu irmão Helio, pois o
que conquistei até o momento foi fruto do seu exemplo de vitória e sucesso no que faz.
Agradeço também o orientador Major Jorge Audrin Morgado de Gois, que direcionou
a minha formação como Mestre, contribuindo ao meu crescimento na vida acadêmica.
Também aos Amigos Pedro, Wallace e Paulo pelo companheirismo e
aconselhamentos.
6
SUMÁRIO
LISTA DE ILUSTRAÇÕES ............................................................................................................... 12
LISTA DE TABELAS ......................................................................................................................... 18
LISTA DE ABREVIATURAS ........................................................................................................... 19
1 INTRODUÇÃO ................................................................................................................ 22
1.1 Objetivo ................................................................................................................. 23
1.2 Divisão de capítulos .............................................................................................. 23
2 EXOESQUELETOS ........................................................................................................ 25
2.1 Exoesqueletos para fins de tratameto na recuperação de movimentos ................. 25
2.3 Principais exoesqueletos desenvolvidos no mercado ............................................ 26
2.3.1 Walk Assist ............................................................................................................ 26
2.3.2 Roboknee ............................................................................................................... 26
2.3.3 Hal ......................................................................................................................... 27
2.3.4 Rewalk ................................................................................................................... 28
2.3.5 Rex ........................................................................................................................ 28
2.3.6 Eleg ........................................................................................................................ 29
2.3.7 Bleex 1 e 2 ............................................................................................................. 30
2.3.8 Raytheon ................................................................................................................ 30
2.3.9 X1 robotic exoeskeleton ........................................................................................ 31
2.4 Principais projetos acadêmicos de exoesqueletos ................................................. 32
2.4.1 Projeto mecânico de exoesqueleto robótico para membros inferiores. ................. 32
2.4.2 Atuadores elásticos em série aplicados no desenvolvimento de um exoesqueleto
para membros inferiores. ....................................................................................... 33
2.4.3 Caracterização de um exoesqueletoparte inferior do corpo, para a simulação de
um espaço espacial para adaptação locomotora. ................................................... 34
2.4.4 Aprender a andar com um exoesqueleto robótico tornozelo ................................. 35
2.4.5 Desenvolvimento de um robô móvel exoesqueleto de 3 graus de liberdade para o
movimento de membro superior humano. ............................................................. 36
7
2.4.6 Estudos experimentais sobre o papel da reação do tornozelo na transição entre a
caminhada e a corrida, por meio de um tornozelo – pé-exoesqueleto. ................. 37
2.4.7 Concepção e desenvolvimento de um exoesqueleto mão para reabilitação após
cidente vascular cerebral ....................................................................................... 37
2.4.9 Modelagem e controle de um atuador pneumático muscular curvo para
exoesqueleto cotovelo. .......................................................................................... 39
3 INSTRUMENTAÇÃO ....................................................................................... 40
3.1 Atuadores pam’s .................................................................................................. 40
3.2 Eletromiografia .................................................................................................... 43
3.2.1 Sistema nervoso motor ........................................................................................ 43
3.2.2 Eletromiográfia .................................................................................................... 45
3.2.3 Exemplo de um eletromiografo ........................................................................... 47
3.2.3.1 Amplificador operacional .................................................................................... 47
3.2.3.2 Aplicações básicas com amplificadores operacional .......................................... 49
3.2.3.2.1 Amplificador inversor ......................................................................................... 49
3.2.3.2.2 Amplificador não-inversor .................................................................................. 51
3.2.3.2.3 Somador de tensão .............................................................................................. 52
3.2.3.2.4 Subtrator de tensão .............................................................................................. 52
3.2.3.2.5 Comparadores de tensão ...................................................................................... 53
3.2.3.2.5.1 Tipos de comparadores de tensão ........................................................................ 54
3.2.3.2.5.1.1 Comparadores de zero ......................................................................................... 54
3.2.3.2.5.1.2 Comparadores de nivel ........................................................................................ 55
3.2.3.2.5.1.3 Comparador schmitt trigger ................................................................................ 56
3.2.3.2.6 Diferenciador e integrador ativos ........................................................................ 57
3.2.3.2.6.1 Diferenciador ativo .............................................................................................. 57
3.2.3.2.6.2 Integrador ativo ................................................................................................... 58
3.2.3.3 Amplificador de instrumentação ......................................................................... 59
3.2.4 Ativação de pam’s por emg ................................................................................. 62
3.3 Medição de aceleração ........................................................................................ 63
3.3.1 Acelerômetros ..................................................................................................... 63
3.3.1.1 Modelagem .......................................................................................................... 64
3.3.1.2 Sensibilidade ....................................................................................................... 65
8
3.3.1.3 Massa ..................................................................................................................... 65
3.3.1.4 Processo de fabricação do micro-acelerômetro ..................................................... 66
3.3.1.5 Dinâmica da estrutura de medição do acelerômetro (tecnologia capacitiva) ........ 67
3.3.2 Giroscópio ............................................................................................................. 69
3.3.2.1 Modelagem ............................................................................................................ 72
3.3.2.2 Processo de fabricação de microgiroscópio .......................................................... 73
3.3.2.3 Dinâmica da estrutura de medição do gisroscópio (tecnologia capacitiva) .......... 74
3.4 Medição de pressão ............................................................................................... 75
3.4.1 Definição ............................................................................................................... 75
3.4.2 Medições de pressão .............................................................................................. 76
3.4.3 Sensor de pressão piezoresistivo ........................................................................... 77
3.4.3.1 Processo de fabricação .......................................................................................... 78
3.4.3.2 Ponte de wheatstone .............................................................................................. 79
4 LÓGICA NEBULOSA E FILTROS DIGITAIS ........................................................... 80
4.1 Lógica nebulosa ..................................................................................................... 80
4.1.1 Fundamentos ......................................................................................................... 83
4.1.1.1 Conjuntos nebulosos ............................................................................................. 83
4.1.1.2 Plano de uma função de pertinência ...................................................................... 83
4.1.1.3 Propriedades de conjuntos nebulosos .................................................................... 84
4.1.1.4 Funções de pertinência básicas ............................................................................. 85
4.1.1.4.1 Trapezoidal (fig. 4.1.1.4.1.1) ................................................................................. 85
4.1.1.4.2 Triangular (fig.4.1.1.4.1.2). ................................................................................... 85
4.1.1.4.3 Função de pertinência gausiana (fig.4.1.1.4.1.3). ................................................. 86
4.1.1.5 Princípio da extensão fuzzy ................................................................................... 87
4.1.1.6 Relação fuzzy ........................................................................................................ 87
4.1.1.7 Operadores t-norm ................................................................................................. 88
4.1.1.8 Operadores t-conorm(s-norm) ............................................................................... 88
4.1.1.9 Composição max-min ........................................................................................... 88
4.1.1.10 Composição max-product ..................................................................................... 89
4.1.1.11 Variável lingüistica ............................................................................................... 89
4.1.1.12 Concentração e dilatação dos valores lingüisticos ................................................ 90
9
4.1.1.13 Intesificação – contraste ........................................................................................ 90
4.1.1.14 Orthogonalidade .................................................................................................... 90
4.1.1.15 Regras se-então ..................................................................................................... 91
4.1.1.16 Raciocínio fuzzy .................................................................................................... 91
4.1.1.16.1 Simples regra com antecedente simples ................................................................ 92
4.1.1.16.2 Regra simples com multiplos antecedentes ........................................................... 92
4.1.1.16.3 Multiplas regras com multiplos antecedentes ....................................................... 94
4.1.2 Sistema de inferência fuzzy ................................................................................... 95
4.1.2.1 Modelo fuzzy mamdani ......................................................................................... 95
4.1.2.1.1 Centróide da área ................................................................................................... 96
4.1.2.1.2 Bissetriz da área .................................................................................................... 96
4.1.2.1.3 Média máximo ....................................................................................................... 97
4.1.2.1.4 Menor do máximo ................................................................................................. 97
4.1.2.1.5 Maior do máximo .................................................................................................. 97
4.2 Filtros digitais ........................................................................................................ 97
4.2.1 Filtros de abordagem digital direta ........................................................................ 98
4.2.2 Filtros de abordagem de analógico para digital .................................................. 101
4.2.2.1 Filtro passa-baixa butterworth ............................................................................. 103
4.2.2.2 Filtro passa-baixa chebyshev .............................................................................. 104
4.2.2.3 Filtro passa-baixa bessel ...................................................................................... 105
4.2.2.4 Comparação entre os filtros iir butterworth, chebyshev tipo i e ii e bessel ......... 107
5 CONCEPÇÃO GLOBAL RESULTADOS DA INSTRUMENTAÇÃO E
CONTROLE...................................................................................................................108
5.1 Organização global da instrumentação ............................................................... 108
5.1.1 Processamento central ......................................................................................... 109
5.1.2 Processamento local 1 ......................................................................................... 111
5.1.4 Processamento local 3 e 4 ................................................................................... 113
5.2 Aproveitamento de tecnologias ........................................................................... 113
5.2.1 Possibilidades de contribuição ............................................................................ 114
5.3 Posicionamento de sensores inerciais ................................................................. 117
5.3.1 Previsão dos pontos de articulação ...................................................................... 118
10
5.3.1.1 Modelo para o “pé” ............................................................................................. 119
5.3.1.2 Modelo para a “panturrilha” ................................................................................ 120
5.3.1.3 Modelo para o “quadril” ...................................................................................... 122
5.3.1.4 Previsão dos centros de gravidade ...................................................................... 123
5.3.1.5 Orientações dos centros de gravidade ................................................................. 124
5.3.1.6 Angulos de euler .................................................................................................. 125
5.4 Protótipo de processamento local ........................................................................ 125
5.4.1 Fonte .................................................................................................................... 126
5.4.2 Hardware para comunicação sem fio .................................................................. 126
5.4.3 Hardware para processamento local .................................................................... 128
5.4.4 Hardware para medição de aceleração ................................................................ 128
5.4.5 Hardware para medição de velocidade angular ................................................... 130
5.4.6 Hardware de eletromiografia ............................................................................... 133
5.4.7 Motagem do hardware de processamento local (unidade básica de análise -
protótipo) ............................................................................................................. 135
5.4.8 Interface para avaliação de sinais ........................................................................ 136
5.4.8.1 Labview ............................................................................................................... 137
5.5 Biblioteca para linguagem c ................................................................................ 139
5.6 Lógica nebulosa no matlab para implementação de uma válvula proporcional . 142
5.7 Lógica nebulosa embarcada em hardware arduino ............................................. 146
5.8 Aplicação física da lógica nebulosa embarcada para controle de uma válvula
proporcional. ........................................................................................................ 152
5.9 Implementação final da instrumentação e controle do exoesqueleto .................. 159
5.9.1 Hardware final de processamento local .............................................................. 159
5.9.1.1 Arduíno fio .......................................................................................................... 159
5.9.1.2 Instalação das unidades de processamentos locais .............................................. 160
5.9.1.3 Unidade de sensoriamento das fases da marcha .................................................. 162
5.9.1.4 Unidade de processamento global ....................................................................... 164
5.9.2 Supervisório ........................................................................................................ 168
5.9.3 Softwares embarcados ......................................................................................... 169
5.9.3.1 Processamentos locais ( 1, 2, 3 e 4) ..................................................................... 170
5.9.3.2 Processamento global .......................................................................................... 171
5.9.4 Filtros digitais embarcados .................................................................................. 173
11
6 CONCLUSÃO ................................................................................................................ 177
6.1 Problemas no projeto e sugestões para trabalhos futuros .................................... 178
6.1.1 Problemas no projeto ........................................................................................... 178
6.1.1.1 Acloplamento de servos motores ........................................................................ 178
6.1.1.2 Posicionamento dos medidores de sinais inerciais .............................................. 178
6.1.1.3 Montagem do sistema eletromiográfico .............................................................. 179
6.1.1.4 Caixas de proteção dos sistemas de processamento locais ................................. 179
6.1.2 Sugestão para trabalhos futuros ........................................................................... 180
6.1.2.1 Desenvolvimento do sistema mecânico .............................................................. 180
6.1.2.2 Estudo de posicionamento e resposta da medição dos sinais eletromiográficos . 180
6.2.2.3 Otimização do sistema pneumático ..................................................................... 181
7 REFERÊNCIAS BIBLIOGRÁFICAS ......................................................................... 182
8 APÊNDICES ................................................................................................................... 187
8.1 Apêndice 1 – lógica nebulosa válvula proporcional ........................................................ 188
8.2 Apêndice 2 – processamento local (protótipo) ................................................................ 195
8.3 Apêndice 3 – processamento local (coxa direita) ............................................................ 197
8.4 Apêndice 4 – processamento local (perna direita)........................................................... 200
8.5 Apêndice 5 – processamento local (coxa esquerda) ........................................................ 203
8.6 Apêndice 6 – processamento local (perna esquerda)....................................................... 204
8.7 Apêndice 7 – lógica nebulosa para exoesqueleto parte inferior ...................................... 206
9 ANEXO............................................................................................................................ 226
9.1 Anexo 1 – Instalação e importação da biblioteca fuzzy ................................................... 233
12
LISTA DE ILUSTRAÇÕES
FIG.2.3.1.1 Walk Assist. ............................................................................................ 26
FIG.2.3.2.1 RoboKnee ............................................................................................... 27
FIG.2.3.3.1 Hal ........................................................................................................... 27
FIG.2.3.4.1 ReWalk ................................................................................................... 28
FIG.2.3.5.1 Rex. ......................................................................................................... 29
FIG.2.3.6.1 ELeg ........................................................................................................ 29
FIG.2.3.7.1 Bleex 1 e 2 .............................................................................................. 30
FIG.2.3.8.1 Raytheon. ................................................................................................ 31
FIG.2.3.9.1 X1 Robotic Exoeskeleton. ...................................................................... 32
FIG.2.4.1.1 Projeto Mecânico. ................................................................................... 33
FIG.2.4.2.1 Atuador elástico em série / Planilha flexível com sensores -SIC. .......... 34
FIG.2.4.2.2 Fases da caminhada. ............................................................................... 34
FIG.2.4.3.1 Exoesqueleto armazenador de energia elástica. ...................................... 35
FIG.2.4.4.1 Exoesqueleto para tornozelos. ................................................................ 35
FIG.2.4.5.1 Exoesqueleto parte superior. ................................................................... 36
FIG.2.4.6.1 Exoesqueleto pé – tornozelo. .................................................................. 37
FIG.2.4.7.1 Exoesqueleto (a) Mão esquerda para reabilitar (b) Mão direita produz
movimentos. .......................................................................................... 38
FIG.2.4.7.2 Exoesqueleto (a) Mão esquerda há reabilitar (b) Mão direita produz
movimentos. .......................................................................................... 38
FIG.2.4.8.1 Concepção do exoesqueleto para o controle do robô tele controlado ..... 39
FIG.2.4.9.1 Sistema pneumático de atuação exoesqueleto. ....................................... 39
FIG.2.4.9.2 Implementação do exoesqueleto. ............................................................ 40
FIG.3.1.1 Semelhança do PAM com sistema mola ................................................. 40
FIG.3.1.2 Expansão/Contração em função da força exercida. ................................ 41
FIG.3.1.3 Gráfico de comparação do PAM FESTO com Cilindro Ideal
(Modelagem Geométrica). .................................................................... 42
FIG.3.1.4 Gráfico de comparação do Simulado com Experimental (Modelagem
Física). ................................................................................................... 42
FIG. 3.2.1.1 Sistema Neuro – Motor ........................................................................... 43
FIG.3.2.1.2 Músculos agonista e antagonista ............................................................. 44
13
FIG.3.2.1.3 Arco Reflexo ........................................................................................... 44
FIG.3.2.2.1 Geração do Sinal Mioelétrico de um músculo, a partir da somatória dos
trens de MUAPs .................................................................................... 45
FIG.3.2.2.2 Gráfico representativo do sinal EMG bruto, retificado e suavizado ....... 46
FIG. 3.2.3.1.1 Amplificador Operacional ...................................................................... 47
FIG.3.2.3.2.1.1 Amplificador Inversor ............................................................................. 50
FIG.3.2.3.2.2.1 Amplificador Não-Inversor ..................................................................... 51
FIG.3.2.3.2.3.1 Somador de Tensão ................................................................................. 52
FIG.3.2.3.2.4.1 Subtrator de Tensão ................................................................................ 53
FIG.3.2.3.2.5.1 Circuito básico de comparador de tensão ............................................... 54
FIG.3.2.3.2.5.1.1.1 Comparador de zero não-inversor. .......................................................... 54
FIG.3.2.3.2.5.1.1.2 Comparador de zero inversor. ................................................................. 55
FIG.3.2.3.2.5.1.2.1 Comparador de nível não-inversor ......................................................... 55
FIG.3.2.3.2.5.1.2.2 Comparador de nível inversor ................................................................. 56
FIG.3.2.3.2.5.1.3.1 Schmitt Trigger ....................................................................................... 56
FIG.3.2.3.2.6.1.1 Diferenciador Ativo ................................................................................ 57
FIG.3.2.3.2.6.2.1 Integrador Ativo ...................................................................................... 58
FIG.3.2.3.3.1 Esquema simplificado do amplificador de instrumentação. ................... 59
FIG.3.2.3.3.2 Configuração de pinagem AD8221. ....................................................... 60
FIG.3.2.3.1 Eletromiografo genérico ......................................................................... 61
FIG.3.2.4.1 Sinal EMG bruto. .................................................................................... 62
FIG.3.2.4.2 Sinal EMG filtrado. ................................................................................. 62
FIG.3.2.4.3 Sinal EMG retificado. ............................................................................. 63
FIG.3.2.4.4 Sinal EMG suavização através da média móvel. .................................... 63
FIG.3.3.1.1 Sistema massa-mola-amortecedor .......................................................... 64
FIG.3.3.1.4.1 Micromotores e micro-engranagens ....................................................... 66
FIG.3.3.1.4.2 Dimensão de estrutura micro usinadas ................................................... 67
FIG.3.3.1.4.3 Estrutura comb-drive para o uso em acelerômetros. ............................. 67
FIG.3.3.1.5.1 Desenho de uma célula básica iMEMS. ................................................. 68
FIG.3.3.1.5.2 Imagem estrutura acelerômetro .............................................................. 68
FIG.3.3.2.1 Giroscópio mecânico .............................................................................. 70
FIG.3.3.2.2 Pendulo de Foucault. ............................................................................... 71
FIG.3.3.2.3 Giroscópio molecular. ............................................................................. 71
14
FIG.3.3.2.1.1 Modelo simplificado da estrutura de um giroscópio .............................. 72
FIG.3.3.2.2.1 Esquemático de um giroscópio de princípio capacitivo. ........................ 73
FIG.3.3.2.2.2 Estrutura de um giroscópio. .................................................................... 74
FIG.3.3.2.3.1 Ciclo de oscilação de um giroscópio ...................................................... 74
FIG.3.3.2.3.2 Estrutura de vibração de silício. .............................................................. 75
FIG.3.4.2.1 Sensor de pressão MPX5700. ................................................................. 77
FIG.3.4.2.2 Saída x pressão sensor MPX5700. .......................................................... 77
FIG.3.4.3.1 Sensor de pressão piezoresistivo ............................................................. 78
FIG.3.4.3.2 Sensor de pressão .................................................................................... 79
FIG.3.4.3.2.1 Ponte de Wheatstone ............................................................................... 80
FIG. 4.1.1 Funções de Pertinência ........................................................................... 82
FIG.4.1.1.2 Plano da Função de Pertinência. ............................................................. 84
FIG.4.1.1.4.1.1 Função de Pertinência Trapezoidal ......................................................... 85
FIG.4.1.1.4.1.2 Função de Pertinência Triangular. .......................................................... 86
FIG.4.1.1.4.1.3 Função de Pertinência Gaussiana. .......................................................... 87
FIG.4.1.1.16.1.1 Interpretação gráfica regra simples com antecedente simples ................ 92
FIG.4.1.1.16.2.1 Interpretação gráfica regra simples para múltiplos antecedentes ........... 94
FIG.4.1.1.16.3.1 Interpretação gráfica das multiplas regras com multiplos antecedentes. 95
FIG.4.1.2.1.1 Ilustração de Sistema de Inferência Mamdani. ....................................... 96
FIG.4.2.1.1 Estruturas do Filtro FIR .......................................................................... 99
FIG.4.2.1.2 Estruturas do Filtro IIR ......................................................................... 100
FIG.4.2.2.1 Característica de um filtro com variação de parâmetros. ...................... 102
FIG.4.2.2.2 Parâmetros para especificação de um filtro passa-baixa. ..................... 102
FIG.4.2.2.1.1 Aproximação Butterwoeth .................................................................... 103
FIG.4.2.2.1.2 Resposta ao degrau Butterworth ........................................................... 103
FIG.4.2.2.2.1 Aproximação Chebyshev tipo I ............................................................ 104
FIG.4.2.2.2.2 Aproximação Chebyshev tipo II ........................................................... 105
FIG.4.2.2.2.3 Resposta ao degrau Chebyshev ............................................................. 105
FIG.4.2.2.3.1 Aproximação Bessel ............................................................................. 106
FIG.4.2.2.3.2 Resposta ao degrau Bessel .................................................................... 106
FIG.4.2.2.4.1 Comparação entre filtros ....................................................................... 108
FIG.5.1.1 Concepção global .................................................................................. 109
FIG.5.1.1.1 Processamento central........................................................................... 111
15
FIG.5.1.2.1 Processamento local 1 ........................................................................... 112
FIG.5.1.3.1 Processamento local 2 ........................................................................... 112
FIG.5.1.4.1 Processamento Local 3 ......................................................................... 113
FIG.5.2.1.1 Arduino Mega ....................................................................................... 115
FIG.5.2.1.2 MBED -ARM ....................................................................................... 115
FIG.5.2.1.3 LilyPad .................................................................................................. 116
FIG.5.2.1.4 Arduino Nano ....................................................................................... 116
FIG.5.2.1.5 Seleção de Tecnologias de processamento de sinais ............................ 117
FIG.5.3.1.1 Medidas antropométricas. ..................................................................... 118
FIG.5.3.1.1.1 Marcadores para definição do pé em 3D. ............................................. 120
FIG.5.3.1.2.1 Marcadores para definição da panturrilha em 3D. ................................ 121
FIG.5.3.1.3.1 Marcadores para definição do quadril em 3D. ...................................... 122
FIG.5.3.1.4.1 Locação do centro de gravidade da coxa direita. ................................. 123
FIG.5.3.1.5.1 Orientações dos centros de gravidade. ................................................. 124
FIG.5.3.1.6.1 Os três ângulos de Euler (𝜃𝑅, 𝜓𝑅, 𝜙𝑅 ). ............................................. 125
FIG.5.4.2.1 Modulo de comunicação Xbee serie 1. ................................................ 126
FIG.5.4.3.1 Pinagem Lilypad Arduino. ................................................................... 128
FIG.5.4.4.1 Acelerômetro ADXL3358 com sinal de saída condicionado. ............. 129
FIG.5.4.4.2 Eixos de sensibilidade do acelerômetro. .............................................. 130
FIG.5.4.5.1 Hardware Giroscópio. .......................................................................... 131
FIG.5.4.5.2 Diagrama de bloco recomendado pelo fabricante para condicionamento
de sinal. ............................................................................................... 132
FIG.5.4.5.3 Circuito típico recomendado pelo fabricante Murata .......................... 132
FIG.5.4.5.4 Eixo angular. ........................................................................................ 133
FIG.5.4.6.1 Muscle Sensor V3 ................................................................................ 133
FIG.5.4.6.2 Muscle Sensor V3 com cabo ............................................................... 134
FIG.5.4.6.3 Diagrama eletrônico Muscle Sensor V3. ............................................. 134
FIG.5.4.6.4 Amplificador diferencial. ..................................................................... 135
FIG.5.4.7.1 Localização de módulos. ..................................................................... 136
FIG.5.4.7.2 Visão geral do dispositivo de processamento local. ........................... 136
FIG.5.4.8.1.1 Interface Xbee/ Serial. ....................................................................... 137
FIG.5.4.8.1.2 Interface Lógica (LabVIEW). ............................................................ 138
FIG.5.4.8.1.3 Interface gráfica LabVIEW. .............................................................. 138
16
FIG.5.5.1 Função de Pertinência Triangular ...................................................... 140
FIG.5.5.2 Função de Pertinência Triangular ...................................................... 140
FIG.5.5.3 Função de Pertinência Triangular ...................................................... 140
FIG.5.5.4 Função de Pertinência Trapezoidal .................................................... 140
FIG.5.5.5 Função de Pertinência Trapezoidal .................................................... 141
FIG.5.5.6 Função de Pertinência Trapezoidal .................................................... 141
FIG.5.5.7 Função de Pertinência Singleton ........................................................ 141
FIG.5.6.1 Implementação do movimento muscular ........................................... 142
FIG.5.6.2 Implementação da variação de pressão .............................................. 143
FIG.5.6.3 Implementação da Alimentação do PAM .......................................... 143
FIG.5.6.4 Implementação Descarregamento do PAM ....................................... 144
FIG.5.6.5 Sistema Fuzzy para controle de uma válvula proporcional ............... 145
FIG.5.7.1 Placa Arduino na porta serial (USB) ................................................. 146
FIG.5.7.2 Interface serial (compilador) .............................................................. 147
FIG.5.7.3 Instalação de potenciômetros ............................................................. 148
FIG.5.7.5 Análise da interface serial .................................................................. 151
FIG.5.8.1 Estrutura de controle da válvula proporcional ................................... 152
FIG.5.8.2 Estrutura da válvula proporcional ...................................................... 153
FIG.5.8.3 Fluxo de atuação da válvula proporcional ......................................... 153
FIG.5.8.4 Estrutura controle montada ................................................................ 154
FIG.5.8.5 Superfície comportamental não treinada ........................................... 155
FIG.5.8.6 Concentração e dilatação de uma função de pertinência triangular. .. 155
FIG.5.8.7 Superfície comportamental treinada .................................................. 156
FIG.5.8.8 Movimento Muscular ......................................................................... 157
FIG.5.8.9 Variação de pressão ........................................................................... 157
FIG.5.8.10 Alimentação do PAM ........................................................................ 158
FIG.5.8.11 Descarregamento do PAM ................................................................. 158
FIG.5.9.1.1.1 Arduino Fio (ARDUINO FIO) .......................................................... 160
FIG.5.9.1.1.2 Nova unidade de processamento local ............................................... 160
FIG.5.9.1.2.1 Processamentos Locais ...................................................................... 161
FIG.5.9.1.2.2 Instalação de Sensores. ...................................................................... 161
FIG.5.9.1.3.1 Resistência x Força do FSR. .............................................................. 162
FIG.5.9.1.3.2 Circuito Recomendado pelo fabricante.............................................. 162
17
FIG.5.9.1.3.3 Hardware condicionador de sinal. ..................................................... 163
FIG.5.9.1.3.4 Circuito básico de sensoriamento da marcha. .................................... 163
FIG.5.9.1.3.5 Unidade de sensoriamento das fases da marcha. ............................... 164
FIG.5.9.1.4.1 Unidade de processamento global – Estrutura ................................... 165
FIG.5.9.1.4.2 Unidade de processamento global – válvulas .................................... 165
FIG.5.9.1.4.3 Unidade de processamento global – Eletrônica ................................. 166
FIG.5.9.1.4.4 Estrutura “Instrumentada” ................................................................. 166
FIG5.9.1.4.5 Implementação Global ....................................................................... 167
FIG.5.9.1.4.6 Integração do Sistema ........................................................................ 167
FIG.5.9.2.1 Interface Supervisório – Eletromiografia .......................................... 168
FIG.5.9.2.2 Lógica Supervisório – Eletromiografia .............................................. 168
FIG.5.9.2.3 Interface Supervisório– Baterias ........................................................ 169
FIG.5.9.3.1 Fluxo Lógico ...................................................................................... 170
FIG.5.9.3.1.1 Fluxo Lógico da Programação do Processamento Local. .................. 171
FIG.5.9.3.2.1 Fluxo Lógico da Programação do Processamento Global. ................ 172
FIG.5.9.4.1 Saída de sinal do sensor MPX5006 ................................................... 173
FIG.5.9.4.2 Circuitos de condicionamento de sinais -Filtro RC Passa-Baixa ...... 174
FIG.5.9.4.3 Floxo de sinal do hardware ................................................................ 175
FIG.5.9.4.4 Interface basica para análise de filtros ............................................... 175
FIG.5.9.4.5 Lógica de programação - Coleta de sinais ......................................... 176
FIG.5.9.4.6 Aplicação do Filtro FIR(Pressão(PSI) x Tempo (s)) .......................... 176
FIG.5.9.4.7 Aplicação do Filtro Chebyshev(Pressão(PSI) x Tempo (s)) ............... 177
FIG.5.9.4.8 Aplicação do Filtro Bessel(Pressão(PSI) x Tempo (s)) ...................... 177
FIG.6.1.2.2.1 Sinais EMG’s ...................................................................................... 181
18
LISTA DE TABELAS
TAB.3.2.3.3.1 Tabela de ganhos em função de um resistor ........................................... 600
TAB.4.1.1.16.2.1 Tabela de relações se – então regra simples com múltiplos antecedentes.
............................................................................................................ 933
TAB.4.1.1.16.3.1 Tabela de relações se – então regra simples com múltiplos antecedentes.
............................................................................................................ 944
TAB.4.2.1.1 Comparativo entre filtros IIR e FIR ...................................................... 1011
TAB.4.2.2.4.1 Comparação de Filtros .......................................................................... 1077
TAB.5.3.1.1 Tabela de medições antropométricas ...................................................... 119
TAB.5.4.2.1 Tabela de pinagem do módulo Xbee. .................................................... 1277
TAB.5.4.5.1 Tabela dos terminais .............................................................................. 1322
TAB.5.5.1 Função de Pertinência Triangular ......................................................... 1400
TAB.5.5.2 Função de Pertinência Triangular com dilatação .................................. 1400
TAB.5.5.3 Função de Pertinência Triangular dilatada ............................................ 1400
TAB.5.5.4 Função de Pertinência Trapezoidal ....................................................... 1400
TAB.5.5.5 Função de Pertinência Trapezoidal ....................................................... 1411
TAB.5.5.6 Função de Pertinência Trapezoidal ....................................................... 1411
TAB.5.5.7 Função de Pertinência Singleton ........................................................... 1411
TAB.5.6.1 Base de Regras ...................................................................................... 1455
TAB.5.7.1 Construção da regra 1 .......................................................................... 14949
19
LISTA DE ABREVIATURAS
ABREVIATURAS
EMG - Eletromiografia
SIC - Sensor de instante de toque
PAM - Atuador musculo pneumático
SEA - Atuadores elásticos em série
AVC - Acidente cardio vascular
CI - Circuito integrado
MUAP’S - Potêncial de ação da unidade motora
LPM - Laboratório de Projetos Mecânicos
20
RESUMO
A instrumentação e controle de um exoesqueleto parte inferior do corpo, foi desenvolvido
com base na teória de conjuntos nebulosos e filtros digitais para o sistema embarcado
utilizado neste trabalho. Serão abordados os sequintes temas: revisão bibliográfica de
exoesqueletos, tecnologias para instrumentação embarcada, base teórica de lógica nebulosa e
filtros digitais, concepção global do projeto de instrumentação e resultados.
Este exoesqueleto é destinado para fins de melhoramento da força humana e, será
utilizado para o aumento da autonomia energética de combatentes em guerra ou missão de
ordem e paz.
21
ABSTRACT
The control and instrumentation of an exoskeleton lower body, was developed based on
the theory of fuzzy sets and digital filters for the embedded system being used in this work.
Sequintes the topics will be covered: literature review of exoskeletons, technologies for
embedded instrumentation, theoretical basis of fuzzy logic and digital filters, the overall
design of the project instrumentation and results.
This exoskeleton is designed for the purpose of improving human strength, and will be
used to increase the energy autonomy of combatants in war or mission order and peace.
22
1 - INTRODUÇÃO
Os estudos desenvolvidos em pesquisas de exoesqueletos são divididos em duas principais
vertentes: Exoesqueleto para tratamento médico, sendo este aplicado em pacientes com a
ausência movimentos ou com compromento da coordenação motora, ocasionado por diversas
patologias, principalmente, AVC(Acidente Vascular Cerebral); e Exoesqueleto para aumento
de forças .
A questão é : qual é o recurso disponível, e que sistema de aquisição de sinais digitais é
adequado para aplicação ? São variados ! tais como: Microcontroladores Atmel (PROJETO
ARDUINO) , interface supervisório, Instrumentação Virtual com Software da National
Instruments, dentre outros.
Por meio de revisão bibliográfica serão demonstrados os exoesqueletos desenvolvidos no
mercado e no meio acadêmico, ou seja, construidos por empresas e pesquisadores com
implementações finais, desta forma, buscando verificar quais as lacunas, possibillidades e
contribuições existentes de pesquisas acadêmicas desenvolvidas na referida área.
Estão disponíveis para a implementação as seguintes ferramentas: microcontroladores
PIC’s , Arduínos, Processaores ARM(Mbed), sensores microcontrolados e redes
XBEE(Protocolo ZigBEE).
Com o desenvolvimento de sistemas digitais, em particular, sistemas microcontrolados e
microprocessados, nos possibilitou implementações virtuais que substituiram os antigos
circuitos analógico por linhas de programação. Esses chip’s possuem tamanho reduzido e são
amigáveis devido possuirem coopiladores em linguagem “C”, a qual é bastante utilizada na
área de pesquisas de robótica.
No decorrer desta pesquisa lançaremos mão de sistemas nebulosos embarcados em
microcontroladores, que possibilitará um controle inteligente do sistema com comportamento
aproximado de um ser humano. Tais microcontroladores são tão robustos, cuja arquitetura
pode ser comparada a de um microcomputador, porém, com limitações de memória.
Esta pesquisa seguirá a vertente exosesqueleto para aumento de forças de um indivíduo,
utilizaremos sinais eletromiográficos para o controle do usuário sobre o exoesqueleto, deste
modo o exoesqueleto servirá como uma amplificação de forças do usuário.
23
É observado que esta pesquisa não levará em consideração o gasto energético do
exoesqueleto, para tanto será considerado que sempre terá alimentação pneumática suficiente
para o controle dos PAM’s.
1.1 – OBJETIVO
Este trabalho tem por finalidade desenvolver a solução de engenharia ciêntifica de todo
sistema de aquisição de sinais e controle nebuloso para acionamento de músculos artificiais.
Primeiramente com base na concepção global da instrumentação, será apresentado o
desenvolvimento do sistema embarcado de acionamento dos PAM’s, unidade básica do
processamento central chamado de válvulas proporcionais, as quais são baseadas em servos
mecanismos aclopados em válvulas de fechamento esférico.
Posteriormente, a criação do hardware piloto de processamento local de medição de sinais
eletromiográficos e sinais de acelerações.
Após o desenvolvimento das unidades básicas do projeto de instrumentação, citados nos
paragrafos anteriores, será expressa a técnica de controle nebuloso embarcado com filtros
digitais embarcados para integração e controle do exoesqueleto.
Por fim , montagem e testes de integração dos dispositivos.
1.2 – DIVISÃO DA DISSERTAÇÃO
Esta Dissertação está dividida na seguinte maneira:
O tópico Introdução apresenta a introdução.
24
O tópico Exoesqueletos apresenta os Exoesqueletos de acordo com as suas finalidades, os
principais exoesqueletos desenvolvidos no mercado, tais como: Walk Assist (Honda 2010),
Robo Knee (Pratt et al, 2002), Hal (Kawmoto e Sankai, 2002), ReWalk (Argo, 2010), REX
(Rex Bionics, 2010), ELeg( Berkley Bionics, 2010),Bleex 1 e 2 (Zoss et al,
2005),Raytheon(Sarcos Research Corp) e X1 Robotic Exoeskeleton(NASA- 2012) e os
principais trabalhos acadêmicos desenvolvidos.
O tópico Instrumentação apresenta a instrumentação a ser utilizada no desenvolvimento
do exoesqueleto com as técnicas de medição de aceleração, eletromiografia e pressão.
O tópico Lógica nebulosa e filtros digitais apresenta a base teórica para implementação
do controlador nebuloso e filtros digitais .
O tópico Concepção global e resultados da instrumentação e controle apresenta a
concepção global e resultados obtidos no desenvolvimento do sistema embarcado com a
inteligência artificial.
O tópico Conclusão apresenta a conclusão e sugestões para trabalhos futuros.
25
2 - EXOESQUELETOS
2.1 - EXOESQUELETOS PARA FINS DE TRATAMETO NA RECUPERAÇÃO DE
MOVIMENTOS
Acidentes cardio-vasculares causam paralisias em indivíduos, tais como paralisia de
partes do corpo e coordenação motora afetada. Os exoesqueletos podem ser utilizados para
reverter atrofias em membros do corpo humano. A Nasa há algum tempo desenvolveu um
exoesqueleto para exercícios “extraterrenos”, ou seja, por conta da falta da gravidade os
astronautas necessitam exercitar – para que não surjam patologias como atrofias e problemas
renais. “Existem Máquinas desenvolvidas destinadas somente no auxílio aos pacientes para
que os mesmos possam recuperar os movimentos dos membros inferiores” (SANTOS, Diego
Pedroso dos, 2011).
2.2 – EXOESQUELETOS PARA AUMENTAR FORÇAS
Com o aumento da população idosa no planeta, surge a necessidade de um exoesqueleto
para auxiliar esses idosos na realização de tarefas as quais necessitem esforços além de suas
capacidades. Esta realidade de exoesqueletos para aumento de forças, já está sendo
desenvolvido no Japão, para que se possa utilizar tal recurso na indústria. Outra aplicação,
está na indútria de armamentos em conformidade com a política de defesa de países como os
Estados Unidos, que investem neste tipo de equipamento, o que aumenta a autonomia dos
soldados. Podemos idealizar um horizonte para nossas forças armadas, tal como: apoio na
reconstrução do Haiti, auxílio em missões de pacificação em favelas do Rio de Janeiro, por
26
exemplo: poder adentrar em locais onde veículos blindados não podem ir, aliado à
necessidade de aumentar a força de soldados para apreender e carregar peças utilizadas no
beneficiamento de entorpecentes.
2.3 – PRINCIPAIS EXOESQUELETOS DESENVOLVIDOS NO MERCADO
2.3.1 – WALK ASSIST
De acordo com Diego Pedroso dos Santos(2011) “A Honda desenvolveu o Walk Assist,
que apresenta duas versões: a primeira tem a característica de aliviar as forças exercidas no
quadril com a utilização de dois motores; a segunda também utiliza dois servos motores no
quadril, mas tem como objetivo aliviar o peso corporal”. Podemos ver nas FIG 2.3.1.1.a e
2.3.1.1.b respectivamente.
(a)
(b)
FIG.2.3.1.1 – Walk Assist (SANTOS, Diego Pedroso dos, 2011).
2.3.2 – ROBOKNEE
27
Segundo Diego Pedroso dos Santos(2011) e Bruno Jardim(2009), respectivamente, “ O
RoboKnee tem um motor que aumenta a força na articulação do joelho, assim, alcançando
seu objetivo” e “Ele atua na junta do joelho, determinando a intenção do usuário através das
forças de reação do solo, e da posição da junta do joelho na aplicação da força quando
necessário”. Podemos visualizar nas FIG 2.3.2.1.a e FIG.2.3.2.1.b.
(a)
(b)
FIG.2.3.2.1 – RoboKnee (SANTOS, Diego Pedroso dos, 2011).
2.3.3 - HAL
Para Santos (2011), “ É um exoesqueleto que compreende o corpo todo e não somente a
parte inferior. O Hal desenvolvido por Kawmoto e Sankai tem como finalidade aumentar a
força do usuário. Para isso o Hal utiliza motores elétricos de corrente contínua acoplados a
redutores de velocidade. Isso pode ser visualizado na FIG. 2.3.3.1.
FIG.2.3.3.1 – Hal (SANTOS, Diego Pedroso dos, 2011).
28
2.3.4 –REWALK
Construído por uma empresa israelense chamada “Argo Medical Technologies” e
desenvolvido pelo Dr. Amit Goffer, da Argo Medical Technologies, em Israel , este
equipamento é usado na Medicina para auxiliar paraplégicos a caminhar, subir e descer
terrenos, sentar e levantar (SANTOS, Diego Pedroso dos, 2011). Trabalha com motores de
corrente contínua, com um sistema de controle que se comunica com um computador. Pode-
se visualizar na FIG. 2.3.4.1.
FIG.2.3.4.1 – ReWalk (SANTOS, Diego Pedroso dos, 2011).
2.3.5 – REX
De acordo com Diego Pedroso dos Santos(2011), “Em 2003 a empresa RexBionics,
desenvolveu um exoesqueleto chamado REX, que pesa cerca de 40kg. O usuário não
necessita de auxílio de muletas ou andador, já que o equipamento é robusto o bastante para
controlar o centro de gravidade independentemente do usuário”.Este equipamento possui um
suporte apoio para as mão com um joystick para o usuário controlar. Trata-se de um
exoesqueleto para paraplégicos. Visualizado na FIG. 2.3.5.1.
29
FIG.2.3.5.1 – Rex (SANTOS, Diego Pedroso dos, 2011).
2.3.6 – ELEG
Consoantes às teorias do autor Santos(2011) “Em 2005 a empresa Berkley Bionics nos
Estados Unidos, desenvolveu o ELeg, que possui 4 graus de liberdade, sendo um em cada
coxa e um em cada joelho, ambas com atuadores elétricos”. Podemos visualizar na FIG.
2.3.6.1.
FIG.2.3.6.1 –ELeg (SANTOS, Diego Pedroso dos, 2011).
30
2.3.7–BLEEX 1 E 2
Santos expõe “Chu et al desenvolveram o Bleex , um exoesqueleto com atuadores
hidráulicos lineares nas articulações dos tornozelos, joelhos e coxas. Esse equipamento tem
como objetivo aumentar a capacidade dos soldados para andar em terrenos diversos por mais
tempo e com menor esforço físico”. De acordo com Bruno Jardim(2009). o Bleex 2 possui
uma estrutura mais enxuta, ou seja , mais leve e não possui exposição de cabos, circuitos e
atuadores. Este exoesqueleto possui mais de 40 sensores e atuadores, e possui ainda uma rede
local para os mesmos. Podemos visualizar nas FIG. 2.3.7.1.a e FIG. 2.3.7.1.b . Estes
exoesqueletos foram financiados pela Agência de Defesa dos EUA (Defense Advanced
Research Projects Agency, DARPA).
(a)
(b)
FIG.2.3.7.1 – Bleex 1 e 2 (SANTOS, Diego Pedroso dos, 2011).
2.3.8 – RAYTHEON
De acordo com Bruno Jardim(2009) “ O grupo de pesquisa da Sarcos Research Corp. ,
liderado pelo Roboticista Stephen Jacobsen, tem trabalhado no que se pode ser o mais
31
poderoso exoesqueleto jamais construído”. Este equipamento pode auxiliar um usuário a
carregar um peso de 85 kg sem sentir a carga. Este exoesqueleto também é financiado pela
Agência de Defesa dos EUA (Defense Advanced Research Projects Agency, DARPA).
Podemos observar nas FIG. 2.3.8.1.a e FIG. 2.3.8.1.b.
(a)
(b)
FIG.2.3.8.1 –Raytheon (JARDIM, Bruno, 2009).
2.3.9 – X1 ROBOTIC EXOESKELETON
Concomitante ao documento eletrônico disponível na internet
(http://www.tecnodrop.com/2012/10/nasa-cria-exoesqueleto-que-sera-acessivel-a-
populacao.html), “Este equipamento será capaz de atribuir movimento aos astronautas e as
pernas de pessoas com dificuldade de locomoção”. Com esse equipamento a Nasa pretende
otimizar a musculatura de astronautas para evitar atrofia de músculos. “O exoesqueleto tem
10 juntas, quatro delas são motorizadas nos quadris e joelhos e as outras seis juntas são para
flexão completa das pernas e pés”.Podemos visualizar na FIG. 2.3.9.1.
32
FIG.2.3.9.1 – X1 Robotic Exoeskeleton (TECNODROP, 2012).
2.4 – PRINCIPAIS PROJETOS ACADÊMICOS DE EXOESQUELETOS
2.4.1 – PROJETO MECÂNICO DE EXOESQUELETO ROBÓTICO PARA MEMBROS
INFERIORES.
O autor Diego Pedroso dos Santos apresentou, em 2011, na Ecola Politécnica da
Universidade de São Paulo um projeto mecânico de um exosesqueleto para membros
inferiores, este utilizou motores elétricos com atuadores e sensores encoders, capacitivos e de
proximidade. Na FIG. 2.4.1.1.a podemos visualizar por completo o projeto mecânico, e na
figura 2.4.1.1.b a disposição dos sensores capacitivos de proximidade. Esses sensores
capacitivos auxiliam no controle da pisada do esxoesqueleto, e estão rachurados na cor azul.
33
(a)
(b)
FIG.2.4.1.1 – Projeto Mecânico (SANTOS, Diego Pedroso dos, 2011).
2.4.2 – ATUADORES ELÁSTICOS EM SÉRIE APLICADOS NO DESENVOLVIMENTO
DE UM EXOESQUELETO PARA MEMBROS INFERIORES.
Bruno Jardim desenvolveu sua tese na construção de atuadores elásticos em série para o
desenvolvimento de um exoesqueleto. Podemos visualizar os atuadores elásticos em série
(SEA) na FIG. 2.4.2.1.a. “É composto por 6 peças de suporte , 1 efetuador, 1 motor DC de
150W, acoplamento elástico fusos de esferas recirculares com castanha, mancais e rolamentos
para suporte do fuso” (JARDIM, Bruno, 2009). Na FIG. 2.4.2.1.b é demonstrado pelo autor a
utilização de sensores de instante de contato (SIC). Trata-se de um sensor que apresenta uma
queda de resistência elétrica com o aumento da força aplicada na sua superfície, sendo
utilizado pelo autor como chaves para maior precisão e identificação do estágio da marcha
humana (Fase de Suporte e Fase de Balanço – FIG. 2.4.2.2.a) no contato com o solo. A
concepção final do exoesqueleto podemos visualizar na FIG. 2.4.2.2.b.
34
(a)
(b)
FIG.2.4.2.1 – Atuador elástico em série / Planilha flexível com sensores -SIC (JARDIM,
Bruno, 2009).
(a)
(b)
FIG.2.4.2.2 – Fases da caminhada (JARDIM, Bruno, 2009).
2.4.3 –CARACTERIZAÇÃO DE UM EXOESQUELETOPARTE INFERIOR DO CORPO,
PARA A SIMULAÇÃO DE UM ESPAÇO ESPACIAL PARA ADAPTAÇÃO
LOCOMOTORA.
Carr E. Chistopher(2007), em parceria com alguns estudiosos, desenvolveu um
exoesqueleto para estudar a dinâmica espacial para a compreensão da influência da dinâmica
sobre os trajes de astronautas. Este exoesqueleto foi projetado para armazenamento de energia
elástica, e esta peculiaridade deve-se a observação de vídeos que exemplificam a utilização da
energia elástica que os astronautas utilizam quando aplicam com seus joelhos um torque para
saltos, ou seja, utilizam seus joelhos como molas. Visualizaremos esse projeto nas FIG.
2.4.3.1.a e FIG. 2.4.3.1.b.
35
(a)
(b)
FIG.2.4.3.1 – Exoesqueleto armazenador de energia elástica (CHRISTOPHER E. Carr et. al ,
2007).
2.4.4 –APRENDER A ANDAR COM UM EXOESQUELETO ROBÓTICO TORNOZELO
Keth Gordon (2006) também em parceria com demais estudiosos desenvolveram um
exoesqueleto para aprendizagem e adaptação motora de indivíduos diferentes. O estudo foca o
aprendizado de como os sinais eletromiográficos, e nestes casos dependendo de cada
indivíduo, teremos sinais diferentes para cada adaptação e aprendizagem. A FIG. 2.4.4.1
ilustra um sistema de aquisição de sinais.
FIG.2.4.4.1 – Exoesqueleto para tornozelos (GORDON, Keith E. et. al, 2006).
36
2.4.5 –DESENVOLVIMENTO DE UM ROBÔ MÓVEL EXOESQUELETO DE 3 GRAUS
DE LIBERDADE PARA O MOVIMENTO DE MEMBRO SUPERIOR HUMANO.
Kazuo Kiguchi (2006) e colaboradores desenvolveram um exoesqueleto superior
montado sobre uma cadeira de rodas, os objetivos principais são tratamento fisioterápico e
suporte para idosos ou indivíduos lesionados. Possui um algoritmo anticolisão para evitar o
contato deste com a cadeira de rodas. Os autores citaram algumas dificuldades que precisam
ser mostradas aqui:
(I) A obtenção de sinais iguais de EMG para o mesmo movimento é difícil, por mais que o
usuário seja sempre o mesmo;
(II) O nível de atividade de cada um dos músculos e o modo de utilização, para um
determinado movimento, é diferente entre as pessoas;
(III) A atividade dos músculos antagonistas afeta o torque articular;
(IV) O tempo reação e previsão de movimento não são fáceis, pois, muitos músculos estão
envolvidos em um movimento articular;
(V) Um músculo não reage apenas com um movimento, mas também com outros tipos de
movimento;
FIG.2.4.5.1 – Exoesqueleto parte superior (KIGUCHI, Kazuo et. al, 2007).
37
2.4.6 –ESTUDOS EXPERIMENTAIS SOBRE O PAPEL DA REAÇÃO DO TORNOZELO
NA TRANSIÇÃO ENTRE A CAMINHADA E A CORRIDA, POR MEIO DE UM
TORNOZELO – PÉ-EXOESQUELETO.
Este estudo procura a transição da caminhada para a corrida, através de um exoesqueleto
tornozelo – pé. De acordo com Malcolm(2009), este equipamento diminui o consumo
metabólico do usuário e aumenta a velocidade desejada. Podemos observar na FIG. 2.4.6.1 a
utilização de músculo pneumático neste equipamento.
FIG.2.4.6.1 – Exoesqueleto pé – tornozelo (MALCOLM, P. et. Al, 2009).
2.4.7 – CONCEPÇÃO E DESENVOLVIMENTO DE UM EXOESQUELETO MÃO PARA
REABILITAÇÃO APÓS ACIDENTE VASCULAR CEREBRAL
Segundo Md Akhlaquor Rahman (2012), este trabalho tem o objetivo auxiliar pessoas
que sofreram AVC (Acidente Vascular Cerebral), atrvés de um exoesqueleto-mão esquerda,
reproduzindo os movimentos da mão direita. Podemos conceber da FIG. 2.4.7.1 a concepção
do projeto e na FIG. 2.4.7. observamos o hadware utilizado em uma rede XBee(em ambos os
braços).
38
FIG.2.4.7.1 – Exoesqueleto (a) Mão esquerda para reabilitar (b) Mão direita produz
movimentos (RAHMAN, Md Akhlaquor et. al, 2012).
FIG.2.4.7.2 – Exoesqueleto (a) Mão esquerda há reabilitar (b) Mão direita produz
movimentos (RAHMAN, Md Akhlaquor et. al, 2012).
2.4.8 – DESIGN E CONTROLE HÍBRIDOPNEUMÁTICO DE FORÇAS COM
RETROALIMENTAÇÃO DE SISTEMAS PARA BRAÇO EXOESQUELETO, USANDO
ACIONAMENTO ON / OFF
Consoante com Chen Ying (2007) “O braço-exoesqueleto com feedback de força tem
sido amplamente concebido e utilizado nos campos de robô interface teleoperação”. Este
equipamento é concebido como um sistema de controle distribuído, ou seja , são utilizados
vários microcontroladores Mega8 processando as informações localmente em cada parte do
exoesqueleto. Este trabalho utiliza conjuntos fuzzy no seu controle de sinais pneumáticos.
Podemos depreender a concepção na FIG. 2.4.8.1.
39
FIG.2.4.8.1 – Concepção do exoesqueleto para o controle do robô tele controlado (YING,
Chen et. Al, 2007)
2.4.9 – MODELAGEM E CONTROLE DE UM ATUADOR PNEUMÁTICO MUSCULAR
CURVO PARA EXOESQUELETO COTOVELO.
Podemos verificar que o autores Zhang Jia-Fan (et. Al, 2008) desenvolveram um
exoesqueleto cotovelo destinado para telerobótica, tratamento de reabilitação e etc. com
atuadores músculos pneumáticocurvos (PAM) que trabalham com movimentos antagônicos.
Trata-se de uma junta de rotação com dois PAM’s, os quais proporcionam força e torque para
o braço do usuário. Visualizaremos nas FIG. 2.4.9.1.a , FIG. 2.4.9.1.b e FIG. 2.4.9.2.
(a)
(b)
FIG.2.4.9.1 – Sistema pneumático de atuação exoesqueleto (JIA-FAN, Zhang et. Al, 2008).
40
FIG.2.4.9.2 – Implementação do exoesqueleto (JIA-FAN, Zhang et. Al, 2008).
3 - INSTRUMENTAÇÃO
3.1 – ATUADORES PAM’S
Os PAM’s são músculos pneumáticos artificiais utilizados em aplicações de atuação
linear acionados por diferença de pressão. Aplicando-se uma carga de gás comprimido
aumenta-se o diâmetro do PAM, contraindo as fibras de sua estrutura, isso ocasiona o
encurtamento 25% (sem carga), do seu comprimento no sentido axial, assemelhando-se a um
sistema mola, demonstrado na FIG. 3.1.1.
FIG.3.1.1 – Semelhança do PAM com sistema mola (MORGADO JUNIOR, Fernando
d’Assunção, 2011)
41
Consoante (MORGADO JUNIOR, Fernando d’Assunção, 2011), “O PAM é constituído
por um tubo flexível com uma estrutura tridimensional composta de fibras entrelaçadas, que
aumentam a sua resistência. As extremidades são compostas por acessórios que podem ser
fixados diretamente a um sistema, em que o PAM será empregado”.
Ele descreve que o PAM possui características de monotocidade, semelhante à
características encontradas no corpo humano, ou seja, “A força máxima sempre decai até zero
do maior comprimento, até que este esteja totalmente contraído”. Isso pode ser verificado na
FIG. 3.1.2.
FIG.3.1.2 – Expansão/Contração em função da força exercida (MORGADO JUNIOR,
Fernando d’Assunção, 2011).
Existem seis modelos de estrutura de fabricação do PAM: Músculos com pregas,
Músculos emaranhados, Músculo Yarlott, Músculo Kukolj, Músculos embutidos e Músculos
trançados (MORGADO JUNIOR, Fernando d’Assunção, 2011).
O PAM é um sistema que trabalha com a diferença de pressão externa e interna, e como
já mencionado, ocorre a diminuição do seu comprimento no sentido axial, desta forma a
contração exerce uma força de tração diretamente aplicada em sua extremidade, assim,
tornando-se um atuador mecânico.
A aplicação desse atuador já foi tema de pesquisa de Mestrado, desenvolvido por
(MORGADO JUNIOR, Fernando d’Assunção, 2011). O autor comparou o PAM do
fabricante FESTO (MAS 20) com modelos analíticos (modelagem geométrica e física) FIG.
3.1.3 e FIG. 3.1.4, respectivamente, assim, implementando o Controle Baseado em Modelo e
Controle Baseado em Lógica Nebulosa. O autor concluiu que em ambas as técnicas de
42
controle, o erro ficou abaixo de 10%, sobressaindo-se na Lógica Nebulosa, e que o ponto
crítico está em baixas pressões, enquanto que em altas pressões é satisfatório.
Roosevelt Brasileiro Lira (2012) cita que “O músculo trançado que pode ser conhecido
como McKibben é o tipo mais utilizado em pesquisas e estudos atualmente” e pela
disponibilidade quatro unidades do PAM, no Laboratório de Projetos Mecânicos no Instituto
Militar de Engenharia, sendo objeto de estudos desde 2011 pelo pesquisador, Fernando
d’Assunção Morgado Junior e no ano de 2012, por Lira, será utilizado esses PAM’s do
fabricante FESTO, devido possuir as mesmas características do Músculo Pneumático
Artificial McKibben.
FIG.3.1.3 – Gráfico de comparação do PAM FESTO com Cilindro Ideal (Modelagem
Geométrica) (MORGADO JUNIOR, Fernando d’Assunção, 2011).
FIG.3.1.4 – Gráfico de comparação do Simulado com Experimental (Modelagem Física)
(MORGADO JUNIOR, Fernando d’Assunção, 2011).
43
3.2 – ELETROMIOGRAFIA
3.2.1 – SISTEMA NERVOSO MOTOR
O movimento se inicia a partir de um desejo, uma decisão, e sofre influência das
informações sensoriais para serem regulados. Então as áreas de controle motor são ativadas
(gânglios de base e cerebelo) levando sinais pelas vias motoras descendentes para os Inter
neurônios medulares, que são neurônios que fazem o processamento de uma informação local
ou transmitem uma informação em uma distância curta, de um lugar do sistema nervoso para
outro, e moto neurônios, conduzindo o impulso nervoso até a musculatura esquelética,
promovendo assim a contração muscular. (FIG.3.2.1.1)
FIG. 3.2.1.1 – Sistema Neuro – Motor
As informações sensoriais de modificações do meio externo e interno são levadas ao
sistema nervoso central pelos neurônios sensitivos “vias aferentes”, onde são processadas pelo
44
córtex cerebral e transformadas em estímulos para gerar uma resposta motora. Este estímulo é
levado através das vias motoras descendentes, para os Inter neurônios medulares seguindo
para os moto neurônios para gerar a contração. Estas informações são de grande importância,
pois através destas é possível controlar e regular o movimento, como por exemplo, o tônus
musculares, a força e a velocidade.
FIG.3.2.1.2 – Músculos agonista e antagonista (NEUROCIÊNCIA – Ekman, 2008)
FIG.3.2.1.3 – Arco Reflexo
Para que se dê o movimento, o músculo agonista (responsável pela principal ação de
um movimento) e o músculo antagonista (se opõe a ação do músculo agonista com a função
de regular a velocidade do movimento ou controlar a potência) precisam ser ativados e
inibidos (FIG. 3.2.1.2). Isso acontece por meio da inervação reciproca, o moto neurônio vai
fazer duas sinapses, em um o estimulo contrátil e no outro o estimulo inibitório. Ocorre um
estimulo sensorial, o neurônio sensitivo recebe essa informação e faz duas sinapses uma com
o córtex e outra com o moto neurônio. O córtex processa esta informação e a transforma em
uma resposta motora que é enviada através do neurônio motor até o músculo alvo. Quando
45
está ação é reflexa (arco reflexo) não há intervenção do sistema nervoso central, pois ocorre a
nível medular, nesta forma acontece uma resposta imediata. (FIG. 3.2.1.3)
3.2.2 – ELETROMIOGRÁFIA
Os autores (MARCHETTI, P. Henrique e DUARTE M. , 2006) cita que “Eletromiografia
é uma técnica de monitoramento da atividade elétrica das membranas excitáveis,
representando a medida dos potencias de ação do sarcolema, como efeito de voltagem em
função do tempo”.
A propagação do potencial de ação intracelular causa uma corrente transmembrana iônica
que se propaga também no sarcolema. Em termos de circuito elétrico, a fibra pode ser
considerada um tubo muito fino no qual a corrente flui axialmente. A velocidade com a qual o
potencial propaga-se depende do diâmetro e tipo da fibra, sendo chamada de velocidade de
condução (SANTOS, Sibele Bruno Soares dos, 2011).
FIG.3.2.2.1 – Geração do Sinal Mioelétrico de um músculo, a partir da somatória dos trens de
MUAPs ( RIBEIRO, V. de Sousa et al, 2006)
O sinal mioelétrico de cada músculo, é composto pela soma dos vários potenciais de
ação musculares, resultando nos diversos MUAP’s de cada unidade motora e que apresentam
46
características diferentes entre si (FIG. 3.2.2.1) (RIBEIRO, V. de Sousa et al, 2006). MUAP’s
(Potencial de Ação da unidade motora) constitui a unidade fundamental do sinal EMG.
É verificado na FIG. 3.2.2.1 a somatória de trens de pulso resultando em um sinal da
EMG. Tal sinal “bruto” deve ser condicionado para utilização no acionamento dos PAM’s.
Existem duas formas de captação do sinal EMG, monopolar e bipolar. Monopolar
utiliza dois eletrodos, um para referência (sem atividade muscular) e outro para o músculo
ativo (com atividade muscular). No bipolar são utilizados três eletrodos dois nos músculos
ativos e um para referência.
Considerando Sinal EMG com captação bipolar, o sinal precisa ser retificado,
suavizado, o qual está demonstrado na FIG. 3.2.2.2 para depois amplifica-lo. A amplificação
vai depender do dispositivo de processamento digital de sinal. Como a plataforma Arduino
trabalha em um range de 0 à 5V, será amplificado o sinal em mil vezes para poder atender a
aplicação.
FIG.3.2.2.2 – Gráfico representativo do sinal EMG bruto, retificado e suavizado
(MARCHETTI, P. Henrique e DUARTE M., 2006)
47
3.2.3 – EXEMPLO DE UM ELETROMIOGRAFO
Um eletromiografo, equipamento para medição de sinais EMG, basicamente consiste
de um amplificador de instrumentação, um retificador de onda completa e filtros passa-baixa
e passa-alta. Para todos estes, estão relacionados com amplificadores operacionais.
3.2.3.1 – AMPLIFICADOR OPERACIONAL
Amplificadores operacionais são dispositivos que podem realizar operações matemáticas
como: adição, subtração, multiplicação, divisão, diferênciação, integração e logaritimo, além
de ser um comparador e amplificador. São constituidos por inúmeros transistores, diodos e
resistores encapsulados em um circuito integrado (FIG. 3.2.3.1.a e FIG. 3.2.3.1.b) (
MACHADO E. C. , 2011).
(a)
(b)
FIG. 3.2.3.1.1 – Amplificador Operacional
O amplificador operacional têm características como: duas entradas(Inversora (𝑉+),
Não-inversora(𝑉−)), uma saída 𝑉0 e dois terminais de alimentação(+Vcc e –Vcc). Apesar da
alimentação precise de uma fonte simétrica, existem amplificadores operacionais que
suportam no lugar do –Vcc o Gnd (MACHADO E. C. , 2011).
48
Operação Básica do amplificador operacional é amplificação da tensão diferencial das
entradas, assim:
𝑉0 = 𝐴0. (𝑉+ − 𝑉−) (3.2.3.1.1)
Ou,
𝑉0 = 𝐴0. 𝑉𝑒 (3.2.3.1.2)
Onde:
𝑉0 - Tensão de saída;
𝐴0 - Ganho de tensão, e
𝑉𝑒 - Entrada diferêncial.
O aplificador operacional possui como principais especificações: Impedância de
Entrada ( 𝑍𝑖 ), Impedância de saída ( 𝑍0 ), Ganho de tensão em Malha Aberta ( 𝐴0 ), Largura
de Banda ( LB ) e Tensão de Off-Set.
Considerando um amplificador operacional ideal, temos:
A impedância de entrada é infinita, o que garante uma sensibilidade máxima,
ou seja, a tensão diferencial aplicada nas suas entradas, por menor que seja , é
amplificada;
A impedância de saída é nula, o que garante um máximo rendimento do
amplificador em relação ao sinal amplificado, nesta forma favorecendo que
toda amplificação seja transferida para a carga;
O ganho de tensão em malha aberta é infinito, garantindo amplificação máxima
de qualquer diferênça de tensão nas entradas;
A largura de banda é infiita, ou seja, todos os sinais de entrada são
amplificados, desde os sinais DC até AC de frequência infinita;
A tensão de saída é nula para tensões de entradas iguais ou nulas.
Para um amplificador operacional real, temos algumas considerações:
49
A impedância de entrada é extremamente alta, desde algumas dezenas de
quiloohms até dezenas de megaohms;
A impedância de saída é muito baixa, desde algumas unidades de ohms até
alguma centenas de ohms;
O ganho de tensão em malha aberta é muito elevado, desde alguns milhares de
tensão até centenas de milhares de tensão;
A largura de banda é relativamente alta, desde DC até AC com centenas de
megahertz, porém o ganho de tensão cai com o aumento da frequencia;
Mesmo que as entradas sejam aterradas, há tensão na saída, devido as
imperfeições dos dispositivos que o compoem (MACHADO E. C. , 2011).
3.2.3.2 – APLICAÇÕES BÁSICAS COM AMPLIFICADORES OPERACIONAL
3.2.3.2.1 –AMPLIFICADOR INVERSOR
O Amplificador inversor tem a entrada de sinal ligada ao terminal inversor por meio de
um resistor 𝑅1 e o terminal não-inversor aterrado. Entre os terminais de saída e o inversor, há
um resistor de realimentação 𝑅2 , conforme mostra o circuito da FIG. 3.2.3.2.1.1.
(MACHADO E. C., 2011)
50
FIG.3.2.3.2.1.1 – Amplificador Inversor
Como o amplificador operacional possui uma impedância de entrada muito alta, a
corrente que flui por 𝑅1 é desviada diretamente para 𝑅2 . Assim aplicando a Lei de Ohm nos
dois resistores, obtivemos:
𝑉𝑖 − 𝑉𝑒
𝑅1=
−(𝑉0 − 𝑉𝑒 )
𝑅2 (3.2.3.2.1.1)
−𝑅2
𝑅1=
𝑉0 − 𝑉𝑒
𝑉𝑖 − 𝑉𝑒 (3.2.3.2.1.2)
A tensão 𝑉0 é o resultado da amplificação 𝐴0 da tensão diferencial de entrada,
representada por 𝑉𝑒 , assim a partir da equação 3.2.3.1.2 (MACHADO E. C. , 2011):
𝑉𝑒 =𝑉0
𝐴0 (3.2.3.2.1.3)
Como o amplificador operacional possui um ganho de tensão muito elevado, no limite,
podemos afirmar que se 𝐴0 → ∞ , então 𝑉𝑒 → 0. Como 𝑉𝑒 = 0 , considera-se que o terminal
𝑉− está aterrado, tal como 𝑉+. Nesta forma consideramos que o terminal 𝑉− é um terra
virtual.
Através de 3.2.3.2.1.2 , Obtemos:
−𝑅2
𝑅1=
𝑉0 − 0
𝑉𝑖 − 0 (3.2.3.2.1.4)
Assim:
51
−𝑅2
𝑅1=
𝑉0
𝑉𝑖 (3.2.3.2.1.5)
A relação 𝑉0
𝑉𝑖 ⁄ reflete a amplificação do sinal efetivamente aplicado na entrada do
circuito. Pode ser um circuito composto por um resistor de realimentação entre a saída e a
entrada , essa relação é denominada ganho de tensão de malha fechada, representada pela
expressão (3.2.3.2.1.6) (MACHADO E. C., 2011).
𝐴𝑣 = −𝑅2
𝑅1 (3.2.3.2.1.6)
3.2.3.2.2 –AMPLIFICADOR NÃO-INVERSOR
O resistor de entrada inversora 𝑅1 está aterrado e há um resistor de realimentação 𝑅2 que
liga a saída na entrada inversora. O sinal de entrada 𝑉𝑖 é ligado diretamente ao terminal não
inversor, de modo que o sinal amplificado não terá fase invertida.O ganho de tensão de malha
fechada é dado por:
𝐴𝑣 = 1 +𝑅2
𝑅1 (3.2.3.2.1.6)
FIG.3.2.3.2.2.1 – Amplificador Não-Inversor
52
3.2.3.2.3 – SOMADOR DE TENSÃO
Basicamente é um amplificador inversor com diversas entradas, cada uma com um ganho
que depende do valor do respectivo resistor. Podemos visualizar na FIG.3.2.3.2.3.1.
FIG.3.2.3.2.3.1 – Somador de Tensão
A expressão de tensão de saída para 𝑅1 = 𝑅2 = 𝑅3 =. . . = 𝑅𝑛, é:
𝑉0 = − 𝑅
𝑅𝑛. (𝑉1 + 𝑉2 + 𝑉3 + ⋯+ 𝑉𝑛) (3.2.3.2.3.1)
Para 𝑅 = 𝑅𝑛 , a expressão diminui:
𝑉0 = −(𝑉1 + 𝑉2 + 𝑉3 + ⋯+ 𝑉𝑛) (3.2.3.2.3.2)
3.2.3.2.4 – SUBTRATOR DE TENSÃO
Basicamente é um amplificador diferencial com o mesmo ganho nas entradas: inversora e
não-inversora.A expressão da tensão de saída está em (3.2.3.2.4.1)
𝑉0 =𝑅4
𝑅3. 𝑉2 −
𝑅2
𝑅1. 𝑉1 (3.2.3.2.4.1)
53
FIG.3.2.3.2.4.1 – Subtrator de Tensão
Para a condição de 𝑅4
𝑅3=
𝑅2
𝑅1, temos com expressão de saída:
𝑉0 =𝑅2
𝑅1. 𝑉2 − 𝑉1 (3.2.3.2.4.2)
Para a condição 𝑅1 = 𝑅2 = 𝑅3 = 𝑅4 , a expressão diminui (MACHADO E. C., 2011):
𝑉0 = 𝑉2 − 𝑉1 (3.2.3.2.4.3)
3.2.3.2.5 – COMPARADORES DE TENSÃO
Pode-se implementar vários tipos de comparadores de tensão: em função da tensão de
referência usada na comparação e em função da tensão de saída desejada após a
comparação.Podendo ser todas com comparações zero, positiva ou negativa.
𝑉0 terá dois vaolores possíveis, devido o ganho de tensão do amplificador operacional
em malha aberta ser muito elevado, assim: 𝑉0 = +𝑉𝑠𝑎𝑡, quando 𝑉2 > 𝑉1 e 𝑉0 = −𝑉𝑠𝑎𝑡,
quando 𝑉1 > 𝑉2 .
54
FIG.3.2.3.2.5.1 – Circuito básico de comparador de tensão
3.2.3.2.5.1 –TIPOS DE COMPARADORES DE TENSÃO
3.2.3.2.5.1.1 – COMPARADORES DE ZERO
Para um comparador de zero não-inversor 𝑉𝑖 > 0 quando a saída é positiva e negativa
quando 𝑉𝑖 < 0. Podemos verificar na FIG. 3.2.3.2.5.1.1.1
FIG.3.2.3.2.5.1.1.1 - Comparador de zero não-inversor.
Para um comparador de zero inversor 𝑉𝑖 < 0 quando a saída é positiva e negativa
quando 𝑉𝑖 > 0. Podemos verificar na FIG. 3.2.3.2.5.1.1.2
55
FIG.3.2.3.2.5.1.1.2 - Comparador de zero inversor.
3.2.3.2.5.1.2 – COMPARADORES DE NIVEL
Para um comparador de nível (FIG. 3.2.3.2.5.1.2.1.a) a tensão de referência 𝑉𝑅 é dada por
um potênciometro . A saída é positiva quando 𝑉𝑖 > 𝑉𝑅 e negativa quando 𝑉𝑖 < 𝑉𝑅. Podemos
verificar na FIG. 3.2.3.2.5.1.2.1.b.
FIG.3.2.3.2.5.1.2.1 - Comparador de nível não-inversor
Para um comparador de nível (FIG.3.2.3.2.5.1.2.2.a) a tensão de referência 𝑉𝑅 é dada
por um potênciometro . A saída é positiva quando 𝑉𝑖 < 𝑉𝑅 e negativa quando 𝑉𝑖 > 𝑉𝑅.
Podemos verificar na FIG.3.2.3.2.5.1.2.2.b.
56
FIG.3.2.3.2.5.1.2.2 - Comparador de nível inversor
3.2.3.2.5.1.3 – COMPARADOR SCHMITT TRIGGER
FIG.3.2.3.2.5.1.3.1 - Schmitt Trigger
Este comparador diferencia-se pelo fato de gerar a tensão de referência 𝑉𝑅 a partir da
tensão de saída 𝑉0, gerando uma histerese na sua curva de transferência.Verificamos na FIG.
3.2.3.2.5.1.3.1.a um comparador Schmitt Trigger cuja a tensão de referência 𝑉𝑅 pode ser
positiva ou negativa, dependendo da tensão de saída.
A tensão de referência 𝑉𝑅 é dada por:
𝑉𝑅 =𝑅2
𝑅1+𝑅2. 𝑉0 (3.2.3.2.5.1.3.1)
Onde,
57
𝑉0 = ±𝑉𝑠𝑎𝑡 (3.2.3.2.5.1.3.2)
A FIG. 3.2.3.2.5.1.3.1.b apresenta a curva de transferência com histerese. Quando VR é
positivo (V0>0), a tensão de entrada Vi pode variar desde valores negativos até positivos
maiores que +VR, sem comutar a saída. Ao atingir +VR, tensão Vi provoca a comutação de
V0·, que passa a ser negativa, convertendo a tensão VR também em valor negativo. Agora a
tensão de entrada Vi pode variar desde valores positivos até negativos maiores que −VR, sem
comutar a saída. A comutação ocorre quando Vi atingir −VRvoltando o circuito ao estado
inicial. Essa histerese é últil, por exemplo, para eliminar ruídos de sinais, fazendo com que o
circuito funcione como um regenerador de sinal ( MACHADO E. C. , 2011).
3.2.3.2.6 – DIFERENCIADOR E INTEGRADOR ATIVOS
3.2.3.2.6.1 – DIFERENCIADOR ATIVO
É um filtro passa – alta cuja a frequência do sinal de entrada é bem menor do que sua
frequência de corte(𝑓 ≪ 𝑓𝑐). Verificamos na FIG. 3.2.3.2.6.1.1.a o circuito do diferenciador
ativo e na FIG. 3.2.3.2.6.1.1.b a sua curva de resposta em frequência.
FIG.3.2.3.2.6.1.1 – Diferenciador Ativo
A frequência de corte é dada por:
58
𝑓𝑐 =1
2.𝜋.𝑅.𝐶 (3.2.3.2.6.1.1)
Para frequências maiores que fc, o capacitor comporta-se como um curto circuito, de
modo que o circuito funciona como um amplificador inversor de ganho infinito, ou seja, a
tensão de saída é Vsat. Para frequências bem menores que fc , o capacitor mantem suas
características de função diferencial envolvendo corrente e tensão, de modo que a tensão de
saída V0 é proporcional a derivada da tensão de entrada Vi (MACHADO E. C., 2011), ou seja:
𝑉0 = −𝑅. 𝐶𝑑𝑉𝑖
𝑑𝑡 (3.2.3.2.6.1.2)
3.2.3.2.6.2 – INTEGRADOR ATIVO
É um filtro passa baixa cuja a frequência do sinal de entrada é bem maior do que sua
frequência de corte ( 𝑓 ≫ 𝑓𝑐).
A FIG. 3.2.3.2.6.2.1.a mostra o circuito do integrador ativo e a FIG. 3.2.3.2.6.2.1.b a
sua curva de resposta em frequência.
FIG.3.2.3.2.6.2.1 – Integrador Ativo
A frequência de corte é dada pela equação (3.2.3.2.6.1.1). Para frequência menores
que 𝑓𝑐 , o capacitor comporta-se como uma alta impedância, de modo que o circuito funciona
59
como amplificador inverso de ganho muito elevado, ou seja a tensão de saída é 𝑉𝑠𝑎𝑡.Para
frequências bem maiores que , o capacitor mamtem sua característica de função diferêncial
envolvendo corrente e tensão, de modo que a tensão de saída 𝑉0 é proporcional à integral da
tensão de entrada 𝑉𝑖 (MACHADO E. C., 2011), ou seja:
𝑉0 = −1
𝑅.𝐶∫𝑉𝑖 . 𝑑𝑡 (3.2.3.2.6.1.3)
3.2.3.3 – AMPLIFICADOR DE INSTRUMENTAÇÃO
Para o Amplificador de Instrumentação são utilizados três amplificadores operacionais
no circuito,assim o resultado é uma alta taxa de rejeição de modo comum e impedâncias de
entrada bem próximas uma da outra, o que resulta numa maior precisão na aquisição do sinal,
pois reduz o offset. (FIG. 3.2.3.3.1) (VELLOSO R. P, 2004)
FIG.3.2.3.3.1 – Esquema simplificado do amplificador de instrumentação (VELLOSO R. P.,
2004).
60
O fabricante Analog Device recomenda em seu produto (AD8221 – Amplificador de
instrumentação) a TAB. 3.2.3.3.1 para ganhos em função de um resistor com 1% de precisão.
TAB.3.2.3.3.1 – Tabela de ganhos em função de um resistor (ANALOG DEVICE, 2011)
FIG.3.2.3.3.2 – Configuração de pinagem AD8221 (ANALOG DEVICE, 2011).
O autor (VELLOSO R. P., 2004) desenvolve as equações de cálculos de ganho com
objetivo de controle de ganho total por apenas um resistor no circuito. Esse resistor é o
mesmo que Analog Device recomenda para vários ganhos, ver FIG. 3.2.3.3.2 os pinos “2” e
“3” reservados para instalação do Resistor (𝑅𝐺). Vejamos o desenvolvimento para equação
final de ganho do amplificador de instrumentação:
De acordo com a FIG. 3.2.3.3.1, temos:
O ganho dos amplificadores não inversores, neste circuito, é calculado por (3.2.3.3.1)
e (3.2.3.3.2).
1 + 2.𝑅1
𝑅2 (3.2.3.3.1)
1 + 2.𝑅3
𝑅2 (3.2.3.3.2)
Assumindo que 𝑅5 = 𝑅7 e 𝑅4 = 𝑅6, para simplificação, o ganho do amplificador
diferencial pode ser calculado por:
61
(𝑉1 − 𝑉2).𝑅5
𝑅4 (3.2.3.3.3)
O ganho total do circuito, assumindo 𝑅1 = 𝑅3, é dado por:
(1 + 2.𝑅1
𝑅2).
𝑅5
𝑅4 (3.2.3.3.3)
Com 𝑅5 = 𝑅4 e fixando-se um valor para 𝑅1, o ganho total do circuito pode ser
controlado com apenas um resistor, assim:
(1 + 2.𝐾
𝑅2) (3.2.3.3.3)
Por fim podemos visualizar na FIG. 3.2.3.1 um eletromiografo genérico que contém
um amplificador de instrumentação para um sinal EMG diferencial, que gera um sinal 1 de
somatórios MUAP’s (FIG. 3.2.3.1.a), para que depois seja retificado (FIG. 3.2.3.1.b) por uma
ponde de diodos. Depois dessas etapas é necessário “abrir uma janela” com dois filtros, passa-
alta e passa-baixa, os quais são um diferenciador e um integrador. Este último possui também
o objetivo de gerar um envoltório do sinal (FIG. 3.2.3.1.e) e por fim o sinal 4 deve ser
amplificado por um amplificador não-inversor (FIG. 3.2.3.1.f).
FIG.3.2.3.1 – Eletromiografo genérico
As recomendações do (THE SENIAM PROJECT, 2013) com relação à utilização dos
filtros analógicos são:
62
•Passa-Baixa: com freqüência de corte de 500 Hz, aplicado para promover uma atenuação
dos componentes de freqüências e ruído.
•Passa-Alta: com freqüência de corte menor que 10 Hz para a análise espectral e 10-20
Hz para a análise do movimento. (MARCHETTI, P. Henrique e DUARTE M., 2006)
3.2.4 – ATIVAÇÃO DE PAM’S POR EMG
LIRA, Roosevelt Brasileiro utilizou o sinal EMG para dois limites de ativação (liga
/desliga), ou seja, sinal de 5v para acionamento da válvula e 0v para o desligamento da
válvula de controle do PAM, finalizando com a análise da média móvel do sinal. As FIG.
3.2.4.1, FIG. 3.2.4.2, FIG. 3.2.4.3 3.2.4.4 demonstram o sinal bruto, filtrado (Rejeita faixa
60Hz, passa baixa 400Hz e filtro passa alta de 20Hz), retificado e suavizado através da média
móvel respectivamente.
FIG.3.2.4.1 – Sinal EMG bruto (LIRA, Roosevelt Brasileiro, 2012).
FIG.3.2.4.2 – Sinal EMG filtrado (LIRA, Roosevelt Brasileiro, 2012).
63
FIG.3.2.4.3 – Sinal EMG retificado (LIRA, Roosevelt Brasileiro, 2012).
FIG.3.2.4.4 – Sinal EMG suavização através da média móvel (LIRA, Roosevelt Brasileiro,
2012).
3.3 – MEDIÇÃO DE ACELERAÇÃO
3.3.1 – ACELERÔMETROS
Acelerômetros fornecem sinal proporcional à aceleração, vibração ou ao choque.
Conhecido como uma tecnológia MEMS (Microeletromechanical systems) com tecnologia de
integrados, podem também ser fabricados com princípios piezoelétricos, piezoresistivos e
capacitivos.
Através da segunda lei de Newton a ação da aceleração acontece através de uma massa
(m), essa massa é denominada massa inercial ou massa sísmica, produzindo força (F) com
64
unidade em [N – Newton] e a em [𝑚 𝑠2⁄ - metro por segundo ao quadrado], sendo assim
regido equação:
𝐹 = 𝑚 × 𝑎 (3.3.1.1)
Pode ser modelado por um sistema massa-mola-amortecedor, como demonstrado na FIG.
3.3.1.1.
FIG.3.3.1.1– Sistema massa-mola-amortecedor
3.3.1.1 – MODELAGEM
“Qualquer força inercial devida à aceleração movimenta a massa de acordo com a
segunda lei de Newton, de forma que o sistema possa ser modelado matematicamente por:
𝑥(𝑠)
𝑎(𝑠)=
1
𝑠2+𝑏
𝑚+𝑠
𝐾
𝑚
(3.3.1.1.1)
Em que s representa o operador de Laplace, x o deslocamento da massa da sua posição
de repouso, a a aceleração a ser medida, b o coeficiente de amortecimento, m a massa
destinada ao movimento e K a constante da mola do sistema.Às vezes, é interessante
determinar a função a função de transferência de um sistema em função da frequência natural
𝜔𝑛 e do fator de qualidade Q . Nesse caso, o modelo matemático é dado por:
65
𝑥(𝑠)
𝑎(𝑠)=
1
𝑠2+𝜔𝑛𝑄
𝑠+𝜔𝑛2
(3.3.1.1.2)
Com, 𝑄 =𝜔𝑛×𝑚
𝑏= √
𝑚×𝐾
𝑏, (3.3.1.1.3)
𝜔𝑛 = √𝐾
𝑚 (3.3.1.1.4)
Cuja a sensibilidade (S) para um sistema não realimentado é dado por:
𝑆 =𝑚
𝐾
(3.3.1.1.5)
Sendo K a constante da mola e m a massa sísmica. (BALBINOT A, VALNER J. ,
2011).
3.3.1.2 – SENSIBILIDADE
“Valores elevados de sensibilidade normalmente são encontrados em acelerômetros
piezoelétricos relativamente grandes, e portanto, relativamente pesados.Acelerômetros
capacitivos apresentam baixa sensibilidade, mas hoje, com o uso de circuitos condicionadores
apropriados, é possível utilizar esses sensores com diversas aplicações. A sensibilidade
normalmente é dada em pC/g ou mV/g.” (BALBINOT A, VALNER J. , 2011).
3.3.1.3 – MASSA
66
“Fator importante na medição de sistemas leves, pois massas elevadas podem alterar
significativamente o comportamento dinâmico dos sistema. Por exemplo, na caracterização da
vibração ocupacional ou da vibração humana, um acelerômetro fixado, por exemplo, no
seguimento mão-braço deve ser um microacelerômetro de massa menor do que 5 a 3 gramas
para não alterar a elasticidade da pele, ou seja, o comportamento dinâmico do sistema a ser
medido. Como regra geral, o tamanho do acelerômetro nunca pode excerder um décimo da
massa dinâmica da peça sobre a qual o acelerômetro é posicionado ou fixado.O acelerômetro
escolhido deve ser adequado à aplicação, portanto, deve apresentar sensibilidade, faixa de
frequência, amplitude e faixa dinâmica apropiadas” (BALBINOT A, VALNER J. , 2011).
3.3.1.4 – PROCESSO DE FABRICAÇÃO DO MICRO-ACELERÔMETRO
São micro-usinados formando micro-sistemas mecânicos integrados com a micro-
eletrônica (transistores, capacitores, resistores, etc.). Como exemplo de micro-sistemas
mecânicos são micro-motores e micro-engranagens (FIG. 3.3.1.4.1), a estes são integrados a
microeletrônica.. “As estruturas comumente encontradas são pontes, vigas e membranas,
embora outras geometrias podem também ser realizadas para as mais diversas aplicações”
(RENATO P. R. , 2005).
FIG.3.3.1.4.1– Micromotores e micro-engranagens (RENATO P. R., 2005).
Para que tenhamos ideia da dimensão dessas estruturas podemos ver na FIG. 3.3.1.4.2,
uma imagem clássica associada a nanotecnologia. Observamos nesta imagem um ácaro ao
lado de engrenagens micro-usinadas.
67
FIG.3.3.1.4.2– Dimensão de estrutura micro usinadas
“Há pelo menos quatro formas de se traduzir essas deformações mecânicas em sinais
elétricos, são elas: utilizando-se capacitores variáveis, por efeito piezo-resistivo, por efeito
piezo-elétrico, ou por interferência em sinais óticos” (RENATO P. R., 2005).
“Estes capacitores variáveis podem estar tanto dispostos horizontalmente quanto
verticalmente, como no caso do comb-drive (estrutura em pente). No comb-drive os
´dentes´ formam capacitores, onde um grupo de ´dentes´ está fixado ao substrato enquanto
que o outro grupo encontra-se posicionado sobre uma massa móvel (ver FIG. 3.3.1.4.3). Este
dispositivo é bastante usado em acelerômetros comerciais” (RENATO P. R. , 2005).
FIG.3.3.1.4.3– Estrutura comb-drive para o uso em acelerômetros (RENATO P. R., 2005).
3.3.1.5 – DINÂMICA DA ESTRUTURA DE MEDIÇÃO DO ACELERÔMETRO
(TECNOLOGIA CAPACITIVA)
68
Acelerômetros integrados chamados de imems (Integrated microeletromechanical
systems) fabricados por exemplo: Analog Devices e Motorola. São tecnologias baseadas em
silício, formando estruturas micros-capacitivas, como demonstrado na FIG. 3.3.1.5.1. Como
podemos ver nesta figura a estrutura tem formato de “H”, onde a parte central é o elemento de
deformação, ou seja , o sistema massa-mola-amortecedor.
FIG.3.3.1.5.1 – Desenho de uma célula básica iMEMS.
A FIG. 3.3.1.5.2 demonstra uma imagem eletrônica do acelerômetro capacitivo.
FIG.3.3.1.5.2 – Imagem estrutura acelerômetro
Para esses acelerômetros capacitivos podemos utilizar a Lei de Hooke e a Segunda Lei de
Newton:
𝐹 = 𝐾𝑥 𝑒 𝐹 = 𝑚𝑎 (3.3.1.5.1)
Como :
𝐾𝑥 = 𝑚𝑎 (3.3.1.5.2)
Temos:
𝑎 =𝐾
𝑚𝑥 (3.3.1.5.3)
69
A aceleração "𝑎" é obtida pelo deslocamento "𝑥" da massa sísmica "𝑚" . A variação da
capacitância "ΔC" é:
ΔC =2εA
d2 𝑥 (3.3.1.5.4)
Sendo:
ε – Permissividade do díelétrico;
A – Área entre as placas;
D – Distância entre as placas;e
𝑥 - Variação da distância entre as placas do sensor capacitivo diferêncial
Essa tecnologia de capacitância possui no mínimo dez células básicas de dois
capacitores. “A base eletrica desse sensor é o capacitor diferencial 𝐶𝑆1 e 𝐶𝑆2, formado por
uma placa central, que é a parte móvel e duas placas externas fixas. Os dois capacitores
apresentam comportamento elétrico igual em repouso(nenhum movimento aplicado).Quando
uma aceleração é aplicada, a viga(massa sísmica) movimenta-se alterando o comportamento
dos capacitores 𝐶𝑆1 e 𝐶𝑆2, ou seja, alterando sua capacitância diferencial, formando o
parâmetro elétrico básico para a determinação da aceleração” (BALBINOT A, VALNER J. ,
2011).
3.3.2 – GIROSCÓPIO
“ É um instrumento utilizado para medir deslocamento angular e apresenta grande
utilidade em sistemas de navegação. São encontrados giroscópios mecânicos, semicondutores
e por meio ópticos ” (BALBINOT A, VALNER J. , 2011).
70
Os giroscópios são amplamente utilizados em uma variedade de aplicações em
aeronaves, mísseis e outros veículos como dispositivos para medir a rotação angular em
relação a um referencial inercial. Hoje, eles descobrem mais e mais áreas de aplicações para
consumidores e para os sistemas de detecção de posição. Giroscópios tradicionais consistem
de rotores e rolamentos baseado na detecção de torque em um rotor girando rapidamente. No
entanto, os componentes mecânicos impõem algumas desvantagens em termos de tamanho,
peso, preço e vida útil. Além disso, eles não podem fornecer uma sensibilidade elevada o
suficiente para satisfazer as exigências indústria moderna. Essas limitações têm motivado o
desenvolvimento de giroscópios novos em ambas as formas e materiais, ou seja, fibra, óptico,
laser, ultra-som e piezoelétricos.
“O primeiro dispositivo que se assemelhava muito um giroscópio mecânico moderno
foi descrito em 1817 por Johann Von Bohnenberger, um professor de matemática e
astronomia na Universidade de Tübingen na Alemanha . No entanto, o crédito para a
descoberta do giroscópio é mais amplamente atribuído ao cientista francês Jean Foucault em
1852. Ele procurou desenvolver um instrumento que iria ajudar a visualizar a rotação e
precessão da terra sobre seu eixo. Foucault cunhou o nome para a sua invenção a partir de
duas palavras gregas "gyros", que significa círculo ou rotação, e "skopein", que significa
ver”(SKOPEK K. et. al. , 2007). A réplica é representada na Figura 3.3.2.1.
FIG.3.3.2.1– Giroscópio mecânico (SKOPEK K. et. al., 2007)
“O giroscópio utiliza um fenômeno físico chamado de força de Coriolis. O Pêndulo de
Foucault é frequentemente usado para explicar essa força. Como mostrado na FIG.3.3.2.2,
quando uma massa (m) é, com uma velocidade de vibração e, quando é dada uma revolução
71
tal como expresso por uma velocidade angular w, a força de Coriolis é gerado, tal como
expresso pela equação seguinte”( DATAWEEK ELETRONICS):
𝐹𝑐𝑟⃑⃑⃑⃑ ⃑ = 2𝑚(𝑣 ⃑⃑⃑ × �⃑⃑� ) (3.3.2.1)
FIG.3.3.2.2–Pendulo de Foucault (DATAWEEK ELETRONICS).
Hoje podemos encontrar também giroscópios moleculares, os quais “Garcia-Garibay
sintetizou e caracterizou uma variedade de excelentes modelos para giroscópios” (SKOPEK
K. et. al., 2007). Podemos visualizar na FIG. 3.3.2.1.
FIG.3.3.2.3 – Giroscópio molecular (RONCONI C. M., 2013).
72
3.3.2.1 – MODELAGEM
Existem vários modelos matemáticos para giroscópio, e neste trabalho demonstraremos
um modelo simplificado, sistema massa-mola monstrado na FIG. 3.3.2.1.1.
FIG.3.3.2.1.1 – Modelo simplificado da estrutura de um giroscópio. (ANSEL Y. et. al, 1997)
O modelo utilizado para o dispositivo é um bloco retangular. Este bloco tem
comprimento 𝑎, largura 𝑏, espessura 𝑐 e massa 𝑚 suspensa por molas. A perpendicularidade
do conjunto de suspensões da mola 𝑘1 e 𝑘2 constitui um Modelo 2-D do feixe de suspensão
real. O caso ideal de uma suspensão de feixe quadrado é matematicamente dado por 𝑘1 ≅ 𝑘2.
O dispositivo está se movendo no plano xy. O movimento do bloco é descrito pela
deslocamentos de 𝑢 e 𝑣 nas direcções x e y, respectivamente, e por uma rotação (ângulo de
balanço 𝛼). Existe um força de excitação aplicada ao ponto A na direção x e não são
considerados as forças de amortecimento. As equações diferenciais para o movimento são:
𝑚 𝑑2𝑢
𝑑𝑡2 + 2𝑘1𝑢 = 𝑐𝑘1𝑠𝑖𝑛𝛼 + 𝐹 (3.3.2.1.1)
𝑚 𝑑2𝑣
𝑑𝑡2 + 2𝑘2𝑣 = 𝑐𝑘2(𝑐𝑜𝑠𝛼 − 1) (3.3.2.1.2)
𝑚 (𝑏2 + 𝑐2
6)
𝑑2𝛼
𝑑𝑡2+ (𝑐2𝑘1 + 𝑏2𝑘2) = 𝑠𝑖𝑛𝛼 𝑐𝑜𝑠𝛼 − (𝑐2𝑘1 + 𝑏2𝑘2)𝑠𝑖𝑛𝛼 (𝑐𝑜𝑠𝛼 − 1) =
= 2𝑐𝑘1𝑢 𝑐𝑜𝑠𝛼 − 2𝑐𝑘2𝑣 𝑠𝑖𝑛𝛼 + 𝑐𝐹 𝑐𝑜𝑠𝛼 − 𝑏𝐹𝑠𝑖𝑛𝛼 (3.3.2.1.3)
73
As três equações de movimento (3.3.2.1.1 ,3.3.2.1.2 e 3.3.2.1.3) são acopladas.As
equações (3.3.2.1.1) e (3.3.2.1.3) levam em conta a carga 𝐹. As seguintes notações são
usadas para simplificar:
�⃑⃑� = 𝑚 ( 𝑏2+𝑐2
6) (3.3.2.1.4)
�⃑� = 𝑐2𝑘1 + 𝑏2𝑘2 (3.3.2.1.5)
3.3.2.2 – PROCESSO DE FABRICAÇÃO DE MICROGIROSCÓPIO
São micro-usinados em variadas estruturas, geralmente possuem princípios capacitivo. Os
giroscópios possuem uma ou várias massas sismicas aclopadas com um conjunto de
capacitores diferências. Na FIG. 3.3.2.2.1 podemos visualizar um esquemático da construção.
FIG.3.3.2.2.1 – Esquemático de um giroscópio de princípio capacitivo (BATUR C. et. al.,
2006).
Podemos ver na FIG. 3.3.2.2.2 outra estrutura de fabricação com um mecanismo
rotacional (Disco). “A parte de detecção é cercada com o quadro de silício, que constitui
vedação hermética com dois substratos de vidro. A base de vidro tem quatro furos fixos de
detecção eletrodos. Os eletrodos são direcionados para fora através desses furos que servem
para fiação” (FUJITA T. et. al., 1999).
74
FIG.3.3.2.2.2 – Estrutura de um giroscópio (FUJITA T. et. al., 1999).
3.3.2.3 – DINÂMICA DA ESTRUTURA DE MEDIÇÃO DO GISROSCÓPIO
(TECNOLOGIA CAPACITIVA)
É observado na FIG. 3.3.2.3.1 um ciclo de oscilação de um gisroscópio, assim na direção
horizontal ocorre a deformação da massa sismica, elemento chamado de drive.Enquanto que
no sentido vertical das figuras está o elemento sensor, ou seja, elemento capacitivo que é
influenciado, devido a variação do dielétrico, pelo movimento da massa sismica.
FIG.3.3.2.3.1 – Ciclo de oscilação de um giroscópio (ALPER S. E. et. al., 2006)
75
“O detalhe da estrutura da vibração do silício é demonstrado na FIG. 3.3.2.3.2, onde o
disco de vibração (rotação) é suportado por quatro molas. Sob o silício vibratório são
colocados quatro eletrodos de detecção (𝐶𝑥1 − 𝐶𝑥2 𝑒 𝐶𝑦1 − 𝐶𝑦2), que são depositados sobre o
substrato de vidro, que formam as capacitâncias diferenciais para detectar individualmente os
eixos x e y, no disco de vibração. Uma vibração de referência é aplicada através de atuadores
na borda do disco na mesma frequência de ressonância do disco. Quando a velocidade angular
é aplicada em torno do eixo X, a força de Coriolis associado produz um deslocamento da
placa vibratória. Este deslocamento é capacitivamente monitorizado por variação da
capacitância diferencial (Cx1Cx2).As mudanças de capacitância são medidas pela BiCMOS
ASIC chips.Uma vez que existem dois conjuntos de elétrodos de detecção posicionado em
ângulo reto em relação uns aos outros (𝐶𝑥1 − 𝐶𝑥2 𝑒 𝐶𝑦1 − 𝐶𝑦2), a medição bidimensional da
velocidade angular pode ser realizada simultaneamente” (FUJITA T. et. al., 1999).
FIG.3.3.2.3.2 – Estrutura de vibração de silício (FUJITA T. et. al., 1999).
3.4 – MEDIÇÃO DE PRESSÃO
3.4.1 – DEFINIÇÃO
76
Definida como força aplicada na direção perpendicular por unidade de àrea e geralmente
representada em psi (Libras/polegada quadrada), bar, atmosfera, Pascal e milímetro de
mercúrio.
3.4.2 – MEDIÇÕES DE PRESSÃO
“Pode ser medida em termos absoluto ou diferenciais. A pressão absoluta (equação
3.4.2.1) é a diferença entre a pressão em um determinado ponto em um fluido e a pressão
absoluta zero, ou seja, vácuo completo.Quando é medida a diferença entre a pressão
desconhecidae a pressão atmosférica local, esta pressão é conhecida como pressão
manométrica. Quando o sensor mede a diferença entre duas pressões desconhecidadas,
nenhuma delas sendo a pressão atmosférica, então a medida é conhecida como pressão
diferencial.” (BALBINOT A, VALNER J. , 2011).
𝑃𝑎𝑏𝑠𝑜𝑙𝑢𝑡𝑎 = 𝑃𝑙𝑜𝑐𝑎𝑙 + 𝑃𝑚𝑎𝑛𝑜𝑚é𝑡𝑟𝑖𝑐𝑎 (3.4.2.1)
É necessário considerar as variações causadas pela diferênça de pressões em vários
pontos, por exemplo, cidades com altitudes diferentes em relação ao nível do mar.
Quando um fluido ou gás está dentro de um reservatório a medição é denominada
pressão estática , ja quando um determinado fluido está em movimento em uma tubulação,
ocasionando mudanças bruscas de pressão, é denominada pressão dinâmica.
Os métodos de detecção de pressão são: Sensores de pressão capacitivos, Sensores de
pressão piezoelétricos e Sensores de pressão piezoresistivos. Este pesquisa está direcionada
para tecnologia piezoresistiva, devido a utilização do sensor da motorola MPX5700, que
possibilita a implantação embarcada (FIG. 3.4.2.1 a e b)
77
(a)
(b)
FIG.3.4.2.1 – Sensor de pressão MPX5700 (FREESCALE SEMICONDUCTOR, 2013).
A Figura 3.4.2.2 demonstra a curva característica do sensor MPX5700.
FIG.3.4.2.2 – Saída x pressão sensor MPX5700(FREESCALE SEMICONDUCTOR, 2013).
Como podemos verificar, na FIG.3.4.2.2 a saída tem um range de 0 até 5v, ideal para
aplicações em microcontroladores.
3.4.3 – SENSOR DE PRESSÃO PIEZORESISTIVO
78
“Os sensores de pressão piezoresistivos variam a resistência elétrica de elementos
sensores quando submetidos a uma força e uma conseguente deformação.Os extensômetros de
resistência elétrica (strain gages) são os sensores fundamentais geralmente utilizados para esta
função na fabricação de células de carga.Os extensômetros podem ser fixados em um
diafragma de área denominada, medindo as deformações causadas pela aplicação de uma
pressão.Entretanto, a maioria dos dispositivos de pressão piezoresistivos é construída com a
integração dos elementos sensores em um diafragma no próprio silício (FIG. 3.4.3.1) com as
mesmas tecnologias utilizadas nos circuitos integrados (CI’s). Com isso, é possivel construir
sensores menores e mais uniformes com características muito bem definidas e repetitivas.”
(BALBINOT A, VALNER J. , 2011).
FIG.3.4.3.1 – Sensor de pressão piezoresistivo
“Os dispositivos que utilizam o efeito piezo-resistivo de materiais têm sido
considerados em sensores fabricados com processos estandares de circuitos integrados. No
caso de processos CMOS, camadas de polissilício são bastante eficientes como componentes
piezo-resistivos, e são geralmente posicionados nas regiões de maior estresse em vigas, pontes
e membranas” (RENATO P. R. , 2005).
3.4.3.1 – PROCESSO DE FABRICAÇÃO
“É feita uma cavidade em um bloco semicondutor, e é deixada uma mebrana para
funcionar como um diafragma.Uma pequena deflexão mecânica causa a variação nos valores
de resistência de pequenos resistores implantados nesse substrato.Essa variação de resistência
79
é convertida em variação de tensão, a qual pode ser fiel à variação de pressão que atua no
diafragma.” (BALBINOT A, VALNER J. , 2011).
É necessário para o funcionamento deste sensor, um circuito eletrônico condicionador
de sinal parecido com os usados para células de carga, ou seja, uma ponte de Wheatstone, este
circuito é montado com os piezoresistores (FIG. 3.4.3.2) .Também necessita de amplificação,
compensação de temperatura, calibração de zero e fundo de escala. O MPX5700 já tem
embarcado todas essas necessidades.
FIG.3.4.3.2 – Sensor de pressão
3.4.3.2 – PONTE DE WHEATSTONE
A ponte de Wheatstone (FIG. 3.4.3.2.1) foi inventada por Samuel Hunter Christie em
1833 e melhorada por Sir Charles Wheatstone em 1843. Trata-se de um arranjo de resistores
que possui a finalidade de medir a resistência elétrica. Quando a ponte está em equilíbrio, a
tensão V é zero e a equação 3.4.3.2.1 é válida. Essa propriedade é útil para determinar uma
resistência desconhecida na ponte. Se R1 é desconhecido pode-se ajustar R4 até que se
obtenha a tensão zero de equilíbrio.
𝑅4
𝑅1=
𝑅3
𝑅2 (3.4.3.2.1)
80
FIG.3.4.3.2.1 – Ponte de Wheatstone
4 - LÓGICA NEBULOSA E FILTROS DIGITAIS
4.1 – LÓGICA NEBULOSA
A Lógica Nebulosa (Fuzzy) é um dos pilares da Inteligência Computacional, e esta visa
imitar o comportamento, raciocínio e as características inerentes aos seres vivos.
“A lógica fuzzy é a lógica baseada na teoria dos conjuntos fuzzy. Ela difere dos sistemas
lógicos tradicionais em suas características e seus detalhes. Nesta lógica, o raciocínio exato
corresponde a um caso limite do raciocínio aproximado, sendo interpretado como um
processo de composição de relações nebulosas” (GOMIDE, Fernando A. C. , 2012).
“Zadeh (Zadeh, 1965) propôs uma caracterização mais ampla, na medida em que sugere
que alguns elementos são mais membros de um conjunto do que outros. O fator de pertinência
pode então assumir qualquer valor entre 0 e 1, sendo que o valor 0 indica uma completa
exclusão e um valor 1 representa completa pertinência” (GOMIDE, Fernando A. C. , 2012).
81
Temos abaixo várias considerações expostas pelo autor TRINDADE M. R. P(2011) que
servirá para o entendimento desta teoria:
A imprecisão e a incerteza são dois aspectos que podem estar presentes em uma
informação.
A teoria clássica dos conjuntos e da probabilidade nem sempre conseguem captar a
riqueza da informação fornecida por um ser humano;
A teoria clássica dos conjuntos não consegue tratar o aspecto vago da informação.
A teoria de probabilidades é mais capacitada para tratar informação freqüentista do
que aquelas fornecida pelos seres humanos.
A Teoria dos Conjuntos Nebulosos foi desenvolvida por Loft Zadeh em 1965 para
tratar os aspectos vago da informação.
A Teoria dos Conjuntos Nebulosos e a Teoria das Possibilidades estão intimamente
ligadas.
A lógica fuzzy suporta os modos de raciocínio que são aproximados ao invés de exato.
Isto faz com que seja natural utilizar termos lingüísticos para expressar a condição, de
um elemento dentro de um conjunto fuzzy.
Lógica Fuzzy (ou lógica difusa) é uma lógica multivalorada capaz de capturar
informações vagas, em geral descritas em uma linguagem natural e convertê-las para
um formato numérico, de fácil manipulação pelos computadores de hoje em dia. A
representação depende não apenas do conceito, mas também do contexto em que está
sendo usada.
Antes do surgimento da lógica fuzzy essas informações não tinham como ser
processadas.
A lógica Fuzzy vem sendo aplicada nas seguintes áreas: Análise de dados, Construção
de sistemas especialistas, Controle e otimização, Reconhecimento de padrões, etc.
Baseia-se em palavras e não em números, ou seja, os valores verdades são expressos
lingüisticamente.Ex: baixo, médio, alto, e outros usados para definir estados de uma
variável.
82
Possui vários modificadores de predicado.Ex: muito, mais ou menos, pouco, bastante,
médio, etc;
Possui também um amplo conjunto de quantificadores. Ex: poucos, vários, em torno
de, usualmente;
Exemplos da lógica fuzzy:
Suponha que as funções de pertinência mostradas abaixo(FIG. 4.1.1) caracterizem as
possíveis temperaturas que a água existente em um determinado recipiente possa atingir, sem
que ocorra sua evaporação.
FIG. 4.1.1 – Funções de Pertinência (TRINDADE M. R. P- 2011)
O universo de discurso encontra-se dividido em três conjuntos fuzzy (temperatura
baixa, média e alta), representando as temperaturas que a água pode assumir desde 0 ºC até
perto de 100ºC, ou seja, com universo U=[0, 100].
Para uma temperatura de 30ºC, os conjuntos fuzzys:
“temperatura baixa” possui o valor de pertinência BAIXA (30) = 0.5;
“temperatura média” possui o valor de pertinência MÉDIA(30) = 0.5;
“temperatura alta” a função de pertinência tem valor ALTA (30) = 0;
Para uma temperatura de 90ºC, o conjunto fuzzy, temos: BAIXA (90) = MEDIA
(90) = 0 e ALTA (90) = 1 .
Como se pode observar o valor numérico de uma medida pode assumir,
simultaneamente, mais de um valor lingüístico em diferentes graus.
0 10 30 50 70 90
100 t(ºC)
(temperatura) ALTA MÉDIA BAIXA
83
4.1.1 – FUNDAMENTOS
Apesar de existir abordagens complexas sobre o assunto, nesta seção será abordado os
fundamentos básicos de teoria de Conjuntos e Lógica Fuzzy para fascilitar a comprreesão do
Controlador Nebuloso Embarcado.
4.1.1.1 – CONJUNTOS NEBULOSOS
Comparando com teoria dos conjuntos clássicos o mapeamento acontece na segunite
forma:
Na Lógica booleana 0 ou 1 ∈ ou ∉ , ou seja, pertence ou não pertence (Equação
4.1.1.1.1).
𝑋𝐴: 𝑋 → {0,1] (4.1.1.1.1)
Já na Lógica Nebulosa serão admitidos todos os valores entre 0 e 1 (Equação
4.1.1.1.2)
𝐴 = {(𝑥, 𝜇𝐴(𝑥))|𝑥 ∈ 𝑋} (4.1.1.1.2)
4.1.1.2 – PLANO DE UMA FUNÇÃO DE PERTINÊNCIA
Na FIG.4.1.1.2 identificamos as características de uma função de pertinência, tais como :
Corpo é o elemento do conjunto possui um valor de pertinência igual a 1 ;
Suporte é o Conjunto Classico de elementos pertencentes a “X” ;
84
Fronteiras são as regiões laterais da funçãoo de pertinência onde a função de
pertinência tem valor maior que 0 e menor que 1.
FIG.4.1.1.2 – Plano da Função de Pertinência.
4.1.1.3 – PROPRIEDADES DE CONJUNTOS NEBULOSOS
Os Conjuntos Nebulosos possuem as seguintes propriedades:
Comutativa:A∪B=B∪A;
Associativa:A∪(B∪C) = (A∪B)∩(A∪C);
Identidade: A∪∅=A; A∪A=A; A∩∅=∅; A∪X=X;
Transitividade: Se A⊆B e B⊆C ⇒ A⊆C;
Lei de Morgan: A∩B=A∪B.
85
4.1.1.4 – FUNÇÕES DE PERTINÊNCIA BÁSICAS
4.1.1.4.1 – TRAPEZOIDAL (FIG. 4.1.1.4.1.1)
41
43
34
3
32
21
12
1
,0
,1
,1
,
)(
xxouxxse
xxxsexx
xx
xxxse
xxxsexx
xx
x (4.1.1.4.1.1)
0 x1 x2 x3 x4
1 F
)(xF
FIG.4.1.1.4.1.1– Função de Pertinência Trapezoidal
4.1.1.4.2 – TRIANGULAR (FIG.4.1.1.4.1.2).
86
31
32
23
2
21
12
1
ou x xse , 0
xse , 1
xse ,
)(
xx
xxxx
xx
xxxx
xx
xF (4.1.1.4.2.1)
0 x1 x2 x3 x
1 F
F(x)
FIG.4.1.1.4.1.2– Função de Pertinência Triangular.
4.1.1.4.3 – FUNÇÃO DE PERTINÊNCIA GAUSIANA (FIG.4.1.1.4.1.3).
2
exp)(
cxxx (4.1.1.4.3.1)
87
0 xC
)(xF
x
FIG.4.1.1.4.1.3 – Função de Pertinência Gaussiana.
4.1.1.5 - PRINCÍPIO DA EXTENSÃO FUZZY
“O Princípio da extensão é a concepção básica da teoria dos Conjuntos Fuzzy que fornece
o procedimento geral, estendendo o domínio crisp para o domínio das expressões
Fuzzy.Supondo que a função f(.) é uma função organizada de X para Y e A é um conjunto
Fuzzy em X definido por” (JYH-SHING Roger Jang, et.al, 1997).
𝐴 =𝜇𝐴(𝑥1)
𝑥1+
𝜇𝐴(𝑥2)
𝑥2…+
𝜇𝐴(𝑥𝑛)
𝑥𝑛 (4.1.1.5.1)
4.1.1.6 - RELAÇÃO FUZZY
“Sejam X e Y universos de discurso, nesta forma:” (JYH-SHING Roger Jang, et.al, 1997)
𝑅 = {((𝑥, 𝑦), µ𝑅(𝑥, 𝑦))| (𝑥, 𝑦) 𝜖 𝑋 ∗ 𝑌 } (4.1.1.6.1)
88
4.1.1.7 – OPERADORES T-NORM
Minimo: 𝑇𝑚𝑖𝑛(𝑎, 𝑏) = 𝑚𝑖𝑚(𝑎, 𝑏) = 𝑎 ∧ 𝑏;
Produto algébrico: 𝑇𝑎𝑝(𝑎, 𝑏) = 𝑎𝑏;
4.1.1.8 – OPERADORES T-CONORM(S-NORM)
Máximo: 𝑆(𝑎, 𝑏) = 𝑚𝑎𝑥(𝑎, 𝑏) = 𝑎 ∨ 𝑏;
Soma algébrica: 𝑆(𝑎, 𝑏) = 𝑎 + 𝑏 − 𝑎𝑏;
4.1.1.9 – COMPOSIÇÃO MAX-MIN
“Seja 𝑅1 𝑒 𝑅2 duas relações fuzzy definidas 𝑋 ∗ 𝑌 e 𝑌 ∗ 𝑍 , respectivamente. A
composição max-min de 𝑅1 𝑒 𝑅2 é o conjunto fuzzy definido por:
𝑅1 ο 𝑅2 = {[(𝑥, 𝑧),𝑚𝑎𝑥𝑦𝑚𝑖𝑛(𝜇𝑅1(𝑥, 𝑦), 𝜇𝑅2(𝑦, 𝑧))]|𝑥 𝜖 𝑋, 𝑦 𝜖 𝑌, 𝑧 𝜖 𝑍} (4.1.1.7.1)
Ou a equivalência:
𝜇𝑅1 𝜊 𝑅2 (𝑥, 𝑧) = 𝑚𝑎𝑥𝑦 min [𝜇𝑅1(𝑥, 𝑦), 𝜇𝑅2(𝑦, 𝑧)] (4.1.1.7.2)
=∨𝑦 [𝜇𝑅1(𝑥, 𝑦) ∧ 𝜇𝑅2(𝑦, 𝑧)],
89
Com as simbologias ∨ e ∧ que representão os operadores max e min, respectivamente”
(JYH-SHING ROGER Jang, et.al, 1997).
4.1.1.10 – COMPOSIÇÃO MAX-PRODUCT
“Assumindo a mesma notação como utilizado na definição de composição max-min,
pode-se definir produto máximo a seguinte composição:” (JYH-SHING Roger Jang, et.al,
1997)
𝜇𝑅1 𝜊 𝑅2 (𝑥, 𝑧) = 𝑚𝑎𝑥𝑦[𝜇𝑅1(𝑥, 𝑦)𝜇𝑅2(𝑦, 𝑧)] (4.1.1.8.1)
4.1.1.11 – VARIÁVEL LINGÜISTICA
Uma variável lingüística pode ser definida como uma variável cujo valor é um numero
nebuloso, ou até mesmo, como uma variável cujos valores podem ser definidos em termos
lingüísticos. Uma variável lingüística e caracterizada pela quíntupla: (JYH-SHING Roger
Jang, et.al, 1997)
(𝑥, 𝑇(𝑥), 𝑈, 𝐺,𝑀) (4.1.1.9.1)
Na qual:
𝑥 é o nome da variável;
𝑇(𝑥) é o conjunto de nomes de valores lingüisticos de 𝑥, sendo que cada valor
é um número nebuloso definido em 𝑈(domínio);
𝐺 é uma regra sintática para gerar os nomes dos valores de 𝑇(𝑥);
𝑀 é a regra semântica que associa cada valor com o seu significado.
90
4.1.1.12 – CONCENTRAÇÃO E DILATAÇÃO DOS VALORES LINGÜISTICOS
“Seja A um valor lingüístico caracterizado por um conjunto fuzzy com funções de
pertinência 𝜇𝐴(∙) . Então 𝐴𝐾 é interpretado como uma versão modificada do valor da
lingüística original expresso como:” (JYH-SHING Roger Jang, et.al, 1997)
𝐴𝐾 = ∫ [𝜇𝐴(𝑥)]𝐾𝑋
/𝑥 (4.1.1.10.1)
Patircularmente temos:
𝐶𝑂𝑁(𝐴) = 𝐴2 (4.1.1.10.2)
Na dilatação temos:
𝐷𝐼𝐿(𝐴) = 𝐴0.5 (4.1.1.10.3)
4.1.1.13 – INTESIFICAÇÃO – CONTRASTE
“A operação de intensificação - contraste sobre o valor lingüístico de A, ou seja , é
definida por:” (JYH-SHING Roger Jang, et.al, 1997)
𝐼𝑁𝑇 {2𝐴2, 𝑝𝑎𝑟𝑎 0 ≤ 𝜇𝐴(𝑥) ≤ 0.5,
¬2(¬𝐴)2, 𝑝𝑎𝑟𝑎 0.5 ≤ 𝜇𝐴(𝑥) ≤ 1. (4.1.1.11.1)
4.1.1.14 – ORTHOGONALIDADE
91
“Um conjunto de termos T = t1, … , tn é uma variável lingüística 𝑥 no universo X, é
ortogonal, se cumprir as seguintes propriedades:” (JYH-SHING Roger Jang, et.al, 1997)
∑ 𝜇𝑡𝑖(𝑥) = 1, ∀ 𝑥 ∈ 𝑋,𝑛𝑖=1 (4.1.1.12.1)
4.1.1.15 – REGRAS SE-ENTÃO
A regra fuzzy se-então (também conhecido como regra fuzzy, implicação fuzzy, ou
declaração condicional fuzzy) assume a forma:
se x é A então y é B, (4.1.1.13.1)
Onde A e B são os valores linguísticos definidos pelos conjuntos difusos em universos
de discurso X e Y, respectivamente. Nesta forma "x é A", é chamado de antecedente ou
premissa, enquanto "y é B" é chamada a consequência ou conclusão.
Em muitos casos a expressão "se x é A então y é B" é abreviado por A → B, ou seja, é
a relação de duas variáveis x e y. De um modo geral, há duas formas de interpretar a regra
fuzzy A → B. Se interpretar A → B como A, combinado com B, temos:
𝑅 = 𝐴 → 𝐵 = 𝐴 × 𝐵 = ∫ 𝜇𝐴(𝑥) ̅𝑋×𝑌
𝜇𝐵(𝑦)/(𝑥, 𝑦), (4.1.1.13.2)
Onde ̅ é um operador T-norm A→B e é utilizado para representar a relação fuzzy R.”
(JYH-SHING Roger Jang, et.al, 1997)
4.1.1.16 – RACIOCÍNIO FUZZY
92
4.1.1.16.1 – SIMPLES REGRA COM ANTECEDENTE SIMPLES
É o caso mais simples, temos:
𝜇𝐵′(𝑦) = 𝑚𝑎𝑥𝑥 min[𝜇𝐴′(𝑥), 𝜇𝑅′(𝑥, 𝑦)] (4.1.1.14.1.1)
=∨𝑥 [𝜇𝐴′(𝑥) ∧ 𝜇𝑅(𝑥, 𝑦)],
Simplificando e redimensionando, obtemos:
𝜇𝐵′(𝑦) = [∨𝑥 (𝜇𝐴′(𝑥) ∧ 𝜇𝐴(𝑥)] ∧ 𝜇𝐵(𝑦) (4.1.1.14.1.2)
= 𝑤 ∧ 𝜇𝐵(𝑦)
Podemos visualizar este raciocínio fuzzy na FIG.4.1.1.16.1.1.
FIG.4.1.1.16.1.1 – Interpretação gráfica regra simples com antecedente simples (JYH-SHING
Roger Jang, et.al, 1997)
4.1.1.16.2 – REGRA SIMPLES COM MULTIPLOS ANTECEDENTES
“A regra fuzzy se-então com dois antecedentes é geralmente escrito como "se x é A e
y é B então z é C."assim temos:
93
Premícia 1(Fato): x é A’ e y é B’,
Premícia 2(Regra): Se x é A e y é B então z é C,
Conseguencia(conclusão): z é C’.
TAB.4.1.1.16.2.1 – Tabela de relações se – então regra simples com múltiplos antecedentes.
A regra fuzzy na premissa 2 pode ser colocado na forma mais simples "A x B→ C."
intuitivamente, esta regra fuzzy pode ser transformada em uma relação ternária fuzzy
𝑅 𝑚 com base na função de implicação fuzzy Mamdani, como se segue:
𝑅 𝑚 = (𝐴, 𝐵, 𝐶) = (𝐴 × 𝐵) × 𝐶) = ∫ 𝜇𝐴(𝑥)𝑋×𝑌×𝑍
∧ 𝜇𝐵(𝑦) ∧ 𝜇𝐶(𝑧)/(𝑥, 𝑦, 𝑧).(4.1.1.14.2.1)
O resultante C’ é expresso:
𝐶′ = (𝐴′ × 𝐵′)ο(𝐴 × 𝐵 → 𝐶) (4.1.1.14.2.2)
Assim:
𝜇𝐶′(𝑧) = ⋁𝑥,𝑦[𝜇𝐴′(𝑥) ⋀ 𝜇𝐵′(𝑦)] ⋀ [𝜇𝐴(𝑥) ⋀ 𝜇𝐵(𝑦) ⋀ 𝜇𝐶(𝑧)] (4.1.1.14.2.3)
= ⋁𝑥,𝑦{[𝜇𝐴′(𝑥) ⋀ 𝜇𝐵′(𝑦) ⋀ 𝜇𝐴(𝑥) ⋀ 𝜇𝐵(𝑦)]} ⋀ 𝜇𝐶(𝑧)
= {⋁𝑥[𝜇𝐴′(𝑥) ⋀ 𝜇𝐴(𝑥)]} ⋀ {⋁𝑦[𝜇𝐵′(𝑦) ⋀ 𝜇𝐵(𝑦)]} ⋀ 𝜇𝐶(𝑧)
= (𝑤1 ⋀ 𝑤2) ⋀ 𝜇𝐶(𝑧),
“Onde 𝑤1 e 𝑤2 são os máximos da função de pertinência de A∩A'e B∩B',
respectivamente. Em geral, 𝑤1 representa os graus de compatibilidade entre A e A',
similarmente notamos para 𝑤2. Desde a parte antecedente da regra fuzzy seja construído pelo
conectivo "e", 𝑤1 ⋀ 𝑤2 são chamados de grau de verdade. Uma interpretação gráfica é
mostrada na FIG. 4.1.1.16.2.1, onde a função de pertinência resultante de C’, é igual a função
de pertinência de C seccionada por 𝑤 , onde 𝑤 = 𝑤1 ⋀ 𝑤2 .” (JYH-SHING Roger Jang,
et.al, 1997)
94
FIG.4.1.1.16.2.1 – Interpretação gráfica regra simples para múltiplos antecedentes (JYH-
SHING Roger Jang, et.al, 1997)
4.1.1.16.3 – MULTIPLAS REGRAS COM MULTIPLOS ANTECEDENTES
“A interpretação de várias regras é geralmente considerada como a união das relações
fuzzy correspondentes às regras fuzzy.Assim temos:
Premícia 1 (Fato): x é A’ e y é B’,
Premícia 2 (Regra 1): Se x é 𝐴1 e y é 𝐵1então z é 𝐶1,
Premícia 3(Regra 2): Se x é 𝐴2 e y é 𝐵2então z é 𝐶2,
Conseguencia(conclusão): z é C’.
TAB.4.1.1.16.3.1 – Tabela de relações se – então regra simples com múltiplos antecedentes.
O resultante C’ é expresso:
𝐶′ = (𝐴′ × 𝐵′) ο (𝑅1 ∪ 𝑅2 ) (4.1.1.14.2.4)
= [(𝐴′ × 𝐵′)ο 𝑅1 ] ∪ [(𝐴′ × 𝐵′)ο 𝑅2 ]
= 𝐶′1 ∪ 𝐶′2 ,
95
“Onde 𝐶′1 e 𝐶′2 são os conjuntos fuzzy para inferir nas regras 1 e 2, respectivamente.
A figura 4.1.1.9.3.1 mostra graficamente a operação de raciocínio fuzzy para multiplas regras
com multiplos antecedentes.” (JYH-SHING Roger Jang, et.al, 1997)
FIG.4.1.1.16.3.1 – Interpretação gráfica das multiplas regras com multiplos antecedentes.
(JYH-SHING Roger Jang, et.al, 1997)
4.1.2 – SISTEMA DE INFERÊNCIA FUZZY
4.1.2.1 – MODELO FUZZY MAMDANI
“O sistema de inferência fuzzy Mamdani foi proposta como uma primeira tentativa
para controlar um motor a vapor, combinado com uma caldeira através de um conjunto de
regras linguísticas de controle obtidos a partir de experientes operadores humanos. A
FIG.4.1.2.1.1 é uma ilustração do modelo Mamdani sistema de inferência fuzzy deriva a saída
geral z quando submetido a duas entradas crisp x e y.” (JYH-SHING Roger Jang, et.al, 1997)
96
FIG.4.1.2.1.1 – Ilustração de Sistema de Inferência Mamdani.
Como em sistemas controlados por essa técnica necessitam de valores de saída crisp,
ou seja, valores numéricos, é necessário desfuzzyficar os valores nebulosos.Para isso existem
cinco técnicas de desfuzzyficação:
4.1.2.1.1 – CENTRÓIDE DA ÁREA
Obtida através da relação:
𝐶𝑂𝐴 =∫ 𝜇𝐴(𝑧)𝑧 𝑑𝑧𝑍
∫ 𝜇𝐴(𝑧)𝑧 𝑑𝑧𝑍
𝑧
(4.1.2.1.1.1)
4.1.2.1.2 – BISSETRIZ DA ÁREA
Obtida através da relação:
∫ 𝜇𝐴(𝑧) 𝑑𝑧 = ∫ 𝜇𝐴(𝑧) 𝑑𝑧𝛽
𝑧𝐵𝑂𝐴
𝑧𝐵𝑂𝐴
∝ (4.1.2.1.2.1)
97
4.1.2.1.3 – MÉDIA MÁXIMO
Obtida através da relação:
𝑀𝑂𝑀 =∫ 𝑧 𝑑𝑧𝑍′
∫ 𝑑𝑧𝑍′
𝑧
(4.1.2.1.3.1)
4.1.2.1.4 – MENOR DO MÁXIMO
𝑺𝑶𝑴 𝒛 É o mínimo (em termos de magnitude) da maximização de z.
4.1.2.1.5 – MAIOR DO MÁXIMO
𝑳𝑶𝑴 𝒛 É o máximo (em termos de magnitude) da maximização de z.
4.2 – FILTROS DIGITAIS
O filtro é um dispositivo designado para atenuar variações específicas de freqüências . Os
filtros possuem duas utilidades importantes, ou seja, de separação e restauração do sinal. A
separação do sinal é necessária quando este for contaminado com alguma interferência, ruído
ou outro sinal. A restauração do sinal é utilizada quando este foi distorcido de alguma forma.
98
Portanto, a proposta dos filtros é permitir a passagem de algumas freqüências inalteradas e
atenuar outras (MARCHETTI, P. Henrique e DUARTE M., 2006)
Os filtros podem ser analógicos ou digitais, e podem ser implementados tanto em sinais
analógicos (variação de voltagem), quanto em digitais, onde os sinais analógicos são
amostrados e representados por uma matriz numérica (MARCHETTI, P. Henrique e
DUARTE M., 2006).
Os filtros digitais são poderosas ferramentas no processamento de sinais digitais, pois
realizam a filtragem de sinais de forma semelhante aos filtros analógicos implementados em
hardware, mas sem apresentar os problemas relacionados a imperfeições dos componentes,
variações com a temperatura, etc. Desta forma é possível alcançar níveis de performance
dificílimos, se não impossíveis, de serem alcançados com filtros analógicos (VELLOSO R. P
, 2004).
De acordo com Autor (MELLO C. A., 2013) Existem três diferentes tipos de
abordagem de projetos de filtros analógicos e digitais:
Abordagem analógica, a qual se aplica à classe de filtros analógicos.
Abordagem digital direta a qual se aplica à classe de filtros digitais.
Abordagem de analógico para digital, em que a motivação é projetar um filtro digital
lançando mão de um projeto de filtro analógico.
4.2.1 – FILTROS DE ABORDAGEM DIGITAL DIRETA
Os dois tipos básicos de filtros digitais existentes são FIR (finite impulse response) e
IIR (infinite impulse response)(VELLOSO R. P. , 2004).
Filtros FIR são implementados através da aplicação direta da operação de
convolução.A resposta em freqüência desejada é calculada, quantizada e depois transformada
99
para o domínio do tempo. O resultado da transformação, a resposta no tempo, são os
coeficientes do filtro.(VELLOSO R. P. , 2004).
Podemos verificar na figura 4.2.1.1 “a” e “b” a estrutura simples e com quatro
coeficientes a estrutura composta.
(a) – Estrutura simples
(b) – Estrutura com quatro coeficientes
FIG.4.2.1.1 – Estruturas do Filtro FIR (MELLO C. A., 2013 e VELLOSO R. P, 2004).
O Autor (MELO C. A. , 2013) expõe que os Filtros FIR é expresso como:
𝑦[𝑛] = ∑ 𝑏𝑘𝑥[𝑛 − 𝑘]𝑀𝑘=0 (4.2.1.1)
Com a função de transferência:
𝐻[𝑧] = ∑ 𝑏𝑘𝑧−𝑘𝑀
𝑘=0 (4.21.2)
A resposta ao impulso ℎ[𝑛] é dada por:
ℎ[𝑛] = {𝑏𝑛 0 ≤ 𝑛 ≤ 𝑀 − 10 𝑠𝑒 𝑛ã𝑜
(4.2.1.3)
A representação em equação de diferenças é:
𝑦[𝑛] = 𝑏0𝑥[𝑛] + 𝑏1𝑥[𝑛 − 1] + …+ 𝑏𝑛−1𝑥[𝑛 − 𝑀 + 1] (4.2.1.4)
Os filtros IIR são a versão digital dos filtros analógicos e seus coeficientes são
calculados diretamente da função de transferência do circuito. Os coeficientes de entrada são
os zeros do numerador da função de transferência e os coeficientes de realimentação
(recursão) são os pólos do denominador da função de transferência(VELLOSO R. P. , 2004).
100
(a)
(b)
FIG.4.2.1.2 – Estruturas do Filtro IIR (MELLO C. A., 2013 e VELLOSO R. P., 2004).
As entradas são colocadas em um buffer circular e multiplicadas pelos
respectivos zeros do denominador da função de transferência do circuito, as saídas vão para
outro buffer circular e são multiplicadas pelos pólos da função e, por fim, são somadas saídas
e entradas para formar a saída atual do filtro. O pólo “P0” não é utilizado na realimentação e
representa o ganho do filtro (VELLOSO R. P. , 2004).
Podemos verificar na figura 4.2.1.2 “a” e “b” estrutura simples e estrutura com três
zeros e dois polos respectivamente.
O Autor (MELO C. A., 2013) expõe que a forma geral dos Filtros IIR é expresso
como:
𝑦[𝑛] = ∑ 𝑎𝑘𝑦[𝑛 − 𝑘]𝑁𝑘=0 = ∑ 𝑏𝑘𝑥[𝑛 − 𝑘]𝑀
𝑘=0 (4.2.1.5)
Com a seguinte função de sistema:
101
𝐻[𝑧] =∑ 𝑏𝑘𝑧−𝑘𝑀
𝑘=0
1−∑ 𝑎𝑘𝑧−𝑘𝑁𝑘=0
(4.2.1.6)
Considerando a figura 4.6.6.3.1.2.a temos a equação que descreve sua saída:
𝑦[𝑛] = 0,6𝑥[𝑛] + 0,2𝑥[𝑛 − 1] + 0,4𝑦[𝑛 − 1] (4.2.1.7)
Podemos verificar na tabela 4.2.1.1 o comparativo dos dois filtros.
TAB.4.2.1.1 - Comparativo entre filtros IIR e FIR (VELLOSO R. P. , 2004).
4.2.2 – FILTROS DE ABORDAGEM DE ANALÓGICO PARA DIGITAL
Como já mencionado anteriormentente no item 4.2.1 os filtros IIR reside na existência de
filtros analógicos para obter filtros digitais. Esses filtros analógicos são chamados de
filtros protótipos ( MELO C. A. , 2013). Analisaremos os filtros passa-baixa Butterworth, o
qual é referência para análise dos outrros, Chebyshev e Bessel , pois esses dois ultimos
possuem bibliotecas para hardware Arduino, e será aplicado no processamento global.
Para uma variação de parâmetros de um filtro, onde N é a ordem do filtro e Ωc é a
frequência de corte. A plotagem de 𝐻𝑎(𝑗Ω) é mostrada na FIG. 4.2.2.1 para que seja
observado que |𝐻𝑎(𝑗Ω)|2 aproxima-se de um filtro passa-baixa ideal quando 𝑁 → ∞.
102
FIG.4.2.2.1– Característica de um filtro com variação de parâmetros (MELO C. A., 2013).
As respostas ideais, consideração feita no parágrafo anterior, são imposíveis de ser
realizadas em circuitos analógicos. A especificação de um filtro deve ser feita com base em
parâmetros que determinam uma transmissão aceitável para o filtro, que pode aproximar-se
mais ou menos do caso ideal.No entanto, quando mais se pretender um filtro próximo do
ideal, mais complexo será o circuito eletrônico respectivo (FILTROS ELEC, 2013).
A transmissão de um filtro passa-baixa é especificada com quatro parâmetros: "fc"
frequência de corte, que também é representada por "Ωc", "fcor" frequência mínima da banda
de corte, "Apas" máxima variação permitida para atenuação na banda de passagem, "Acor"
atenuação mínima na banda cortante.O quais podemos visualizar na FIG. 4.2.2.2.
FIG.4.2.2.2– Parâmetros para especificação de um filtro passa-baixa (FILTROS ELEC,
2013).
103
4.2.2.1 – FILTRO PASSA-BAIXA BUTTERWORTH
A aproximação Butterworth também chama aproximação otima, possui atenuação
plana na banda de passagem e de corte (FIG. 4.2.2.1.1 ), por isso que considera-se que os
filtros Butterworth têm resposta monotônica em ambas as bandas. De acordo com (MELO C.
A, 2013). A resposta quadrática de magnitude de um filtro passa-baixa de N-ésima ordem é
dada por:
|𝐻𝑎(𝑗Ω)|2 =1
1+(Ω
Ωc)2𝑁 (4.2.2.1.1)
A FIG. 4.2.2.1.2 demonstra a resposta ao degrau unitário dos filtros IIR Butterworth,
com 𝑛=10, 𝐴𝑝𝑎𝑠 = 3𝑑𝐵 e 𝑓𝑐 = 1𝐾𝐻𝑧.
FIG.4.2.2.1.1 – Aproximação Butterwoeth (FILTROS ELEC, 2013)
FIG.4.2.2.1.2 – Resposta ao degrau Butterworth (FILTROS ELEC, 2013)
104
4.2.2.2 – FILTRO PASSA-BAIXA CHEBYSHEV
De acordo com (MELO C. A. , 2013) existem dois tipos de filtros de Chebyshev tipo I e
II. A resposta quadrática de magnitude de um filtro Chebyshev tipo I é dada por:
|𝐻𝑎(𝑗Ω)|2 =1
1+𝜀2𝑇𝑁2(
Ω
Ωc) (4.2.2.2.1)
Onde N é a ordem do filtro, Ωc é a frequência de corte , ε é o fator de ondulação da
banda de passagem e 𝑇𝑁(x) é o polinômio de Chebyshev dado por:
𝑇𝑁[𝑥] = {cos(𝑁. cos−1(𝑥)) , 0 ≤ 𝑥 ≤ 1
cosh(cosh−1(𝑥)) , 1 < 𝑥 < ∞ (4.2.2.2.2)
Considerando que 𝑥 = (ΩΩc
).
O filtro Chebyshev tipo I possui ondulações na banda passante(FIG. 4.2.2.2.1), com o
mesmo valor pico a pico. Nesta forma é chamado de “aproximação de igual ondulação
“(equirriple).Possui também declive na zona de transição que é mais acentuado do que na
aproximação Butterworth
FIG.4.2.2.2.1 – Aproximação Chebyshev tipo I (FILTROS ELEC, 2013)
A resposta quadrática de magnitude de um filtro Chebyshev tipo II é dada por:
|𝐻𝑎(𝑗Ω)|2 =1
1+[𝜀2𝑇𝑁2(
ΩcΩ
)]−1 (4.2.2.2.3)
105
Ou seja, 𝑥 = (ΩΩc
) é substituído por seu inverso e 𝜀2𝑇𝑁2
(x) também.
O filtro Chebyshev tipo II tem resposta plana na banda passante, ondulações na banda
de rejeição e declive acentuado na zona de transição semelhante ao tipo I(FIG.4.2.2.2.2).
FIG.4.2.2.2.2 – Aproximação Chebyshev tipo II (FILTROS ELEC, 2013)
As figuras 4.2.2.2.3 demonstra a resposta ao degrau unitário dos filtros IIR Chebyshev
com 𝑛=10, 𝐴𝑝𝑎𝑠 = 3𝑑𝐵 e 𝑓𝑐 = 1𝐾𝐻𝑧.
FIG.4.2.2.2.3 – Resposta ao degrau Chebyshev (FILTROS ELEC, 2013)
4.2.2.3 – FILTRO PASSA-BAIXA BESSEL
106
A resposta do filtro Bessel é semelhante ao Butterworth, suave na faixa de passagem e na
faixa de rejeição, se a ordem do filtro é a mesma para os dois, a atenuação de banda do filtro
bessel é mais baixa que a do filtro Butterworth.Dado um conjunto de especificações para um
filtro, a aproximação de Bessel é a que origina um filtro de maior ordem ou maior
complexidade de um circuito quando se compara as diferêntes aproximações, citadas
anteriormente.A aproximação Bessel é utilizada para produzir um defasamento linear da
frequência, comprometendo o declive.O defasamento linear faz com que a distorção de um
sinal não sinusoidal seja mínima.
FIG.4.2.2.3.1 – Aproximação Bessel (FILTROS ELEC, 2013)
FIG.4.2.2.3.2 – Resposta ao degrau Bessel (FILTROS ELEC, 2013)
As figuras 4.2.2.3.2 demonstra a resposta ao degrau unitário dos filtros IIR Bessel,
com 𝑛=10, 𝐴𝑝𝑎𝑠 = 3𝑑𝐵 e 𝑓𝑐 = 1𝐾𝐻𝑧.
107
4.2.2.4 – COMPARAÇÃO ENTRE OS FILTROS IIR BUTTERWORTH, CHEBYSHEV
TIPO I E II E BESSEL
Através dos itens anteriores que analisam as aproximação dos filtros Butterworth,
Chebyshev tipo I e II e Bessel, mais a comparação das respostas dos filtros ao degrau unitário,
obtemos a tabela de comparação abaixo que auxilia na especificcações de projeto dos filtros já
analisados:
Tipo de Filtro Banda de
passagem
Banda de
corte
Declive de
transição
Resposta ao
degrau
Butterworth Plana Não
ondulada
Bom Boa
Chebyshev tipo I Ondulada Não
ondulada
Muito bom Má
Chebyshev tipo
II
Plana Ondulada Muito bom Boa
Bessel Plana Não
ondulada
Mau A melhor
TAB.4.2.2.4.1 – Comparação de Filtros (FILTROS ELEC, 2013)
Assim como explanado na FIG.4.2.2.1, que demonstra um filtro ideal, a banda de
transição é atenuada quando a ordem do filtro passa-baixa tende ao infinito(𝑁 → ∞), ou seja ,
quanto mais inclinada a faixa de transição temos um filtro proximo do ideal, sendo que no
filtro Chebyshev ocorre ondulações na banda de passagem.Neta forma podemos visualizar na
FIG.4.2.2.4.1(resposta de ao impulso com ordem do filtro fixa) os filtros Butterworth,
Chebyshev e Bessel para comparação com a TAB.4.2.2.4.1.
108
FIG.4.2.2.4.1 – Comparação entre filtros
5 - CONCEPÇÃO GLOBAL E RESULTADOS DA INSTRUMENTAÇÃO E
CONTROLE
5.1 – ORGANIZAÇÃO GLOBAL DA INSTRUMENTAÇÃO
É demostrado na FIG.5.1.1 a forma global dos processamentos (central e locais).
Comentaremos cada um desses e como serão implementados.
109
FIG.5.1.1 – Concepção global
5.1.1 – PROCESSAMENTO CENTRAL
Trata-se do “coração” do sistema, pois nele será implementado o controlador nebuloso
para aquisição de sinais de pressão transduzido para sinais elétricos (Entradas do sistema) e a
atuação das válvulas proporcionais (saídas do sistema), os quais serão as variáveis do sistema.
Como somente trata-se de um exoesqueleto parte inferior, será utilizado apenas 4 PAM’s. Na
FIG. 5.1.1.1 está legendado os elementos principais do processamento central, os quais
iremos esplanar:
110
Reservtório (Marcado com circulo cinza) – Trata-se do local de armazenamento do
suprimento, em nosso caso é o ar comprimido;
Entrada de Suprimento(Marcado com circulo preto) – Trata-se da alimentação do
sistema pneumático para o controle dos PAM’s;
Atuadores Servo mecanizados / válvulas proporcionais(Marcado com círculo
vermelho) – Trata-se de microservos acoplados eixo à eixo com válvulas esféricas.
Neste caso possui quatro conjuntos, em que cada um tem a função individual de
abertura e fechamento de duas válvulas ao mesmo tempo, assim possibilitando o
controle na hora oportuna de atuação,ou seja, a alimentação do PAM ou o
descarregamento do mesmo.
Sensores MXP 5700(Marcado com circulo azul) – Trata-se de um sensor que mede
pressão absoluta, citado pelos autores (BALBINOT A, VALNER J. , 2011) em
“Instrumentação e Fundamentos de Medição”. Esses sensores convertem sinais
pneumáticos( 0 à 6 Bar) para sinais eletrônicos com range de 0v a 5v. Geralmente
esses tipos de sensores(microeletrônicos) favorecem por serem lineares, eles são
contruidos com um diafragma sobre pastilhas de silício conectados por elementos
piezorresistivos, facilitando na aquisição direta do sinal microcontrolado, sem a
necessidade de condicionamento do sinal, pois a maioria dos sistemas
microcontrolados trabalham na faixa de 0 à 5V.
Placas Microprocessadas(Marcada com circulo marrom) – Trata-se da união de placas
do projeto Arduino, as quais favorecem na prototipagem rápida, ou seja, são
projetadas para encaixe rápido.
Hadware Xbeee(Marcada com cículo roxo) – Trata-se de um equipamento de
comunicação por rádio frequencia com o protocolo ZigBee. Este têm o objetivo de
comunicar com os processamentos locais;
Saídas de atuação para os PAM’s(Marcado com circulo verde) – Trata-se de um sinal
pneumático controlado para atuação nos PAM’s.
111
FIG.5.1.1.1 – Processamento central
5.1.2 – PROCESSAMENTO LOCAL 1
Consiste na aquisição de sinais eletromiográficos (EMG 1/ EMG 2/ EMG 3) e sinais de
aceleração (Módulo ADXL, citado pelos autores (BALBINOT A, VALNER J. , 2011) em
“Instrumentação e Fundamentos de Medição”) instalados no centro de aproximação de
gravidade da coxa (considerando o membro do corpo plano, forma cilindrica), os quais serão
processados na placa Arduino nano ou Arduino Lilypad, para depois serem transmititidos
pelo módulo Xbee, conforme mostra a FIG. 5.1.2.1. Tais sinais são entradas na malha de
controle do processamento central, o qual têm um módulo Xbee de recepção, conforme
mostra a FIG. 5.1.1.1.Os dados da EMG (Eletromiografia) serão dados de entrada do sistema
nebuloso, enquanto que as acelerações servirão para validação da marcha do exoesqueleto
comprados com dados da literatura, como exemplo DYNAMICS OF HUMAN GAIT do
autor (VAUGHAN Christopher L. , 1999). Assim na FIG. 5.1.2.1 identificamos
respectivamente: o módulo Xbee, o hardware de processamento Arduino nano e o módulo
ADXL (acelerômetro).
112
FIG.5.1.2.1 – Processamento local 1
5.1.3 – PROCESSAMENTO LOCAL 2
Da mesma forma que o processamento local 1 , temos os EMG’s , Xbee, processamento
Arduino nano e hardware com acelerômetro ADXL com o mesmo objetivo, e está
demonstrado na FIG.5.1.3.1.
FIG.5.1.3.1 – Processamento local 2
113
5.1.4 – PROCESSAMENTO LOCAL 3 E 4
O processamento 3 e 4 não possuem EMG’s , tem a mesma características dos demais,
mas possui sensores de pressão do tipo piezoresistivo, ou seja , tem o objetivo de identificar
os estágios da marcha. Na FIG.5.2.4.1 podemos ver que é processado (Arduino nano) e
transmitido por Radio frequência pelo módulo Xbee.
FIG.5.1.4.1 – Processamento Local 3
5.2 – APROVEITAMENTO DE TECNOLOGIAS
Como já verificamos no capítulo 2 o autor (SANTOS, Diego Pedroso , 2011) utilizou em
seu projeto sensores capacitivo de proximidade para sensoriar o contacto da pisada do
exoesqueleto nas fases da marcha. Já o autor (JARDIM, Bruno, 2009) utilizou sensores de
instante de contacto (SIC). Devido a necessidade da identificação dos estágios da marcha,
adotaremos o sensoriamento SIC para auxiliar o controlador na tomada de ações, como por
exemplo: compensar a pressão necesária no reservatório de ar comprimido para o arranque e
propulsão na caminhada.
No projeto Raytheon o grupo de pesquisa da Sarcos Research Corp. utilizaram redes sem
fio com o controle descentralizado, ou seja , processamento de cada sensor e atuador
114
localmente. Adotaremos uma rede XBee assim como os autores (RAHMAN, Md Akhlaquor
et. al, 2012) em sua pesquisa, a qual o exoesqueleto tem o objetivo de reabilitação dos
movimentos da mão esquerda com auxílio da mão direita.
No trabalho dos autores (YING, Chen et. Al, 2007), os mesmos adotaram o controle de s
através da Lógica Fuzzy. Adotaremos um controlador Fuzzy embarcado, devido o
barateamento de dispositivos microcontrolados que fascilitam na implementação.
5.2.1 – POSSIBILIDADES DE CONTRIBUIÇÃO
Observaremos abaixo algumas lacunas identificadas:
Primeira “lacuna”: A não-utilização de servos mecanismos proporcionais para o controle
de ar comprimido nos atuadores pneumáticos. Por exemplo, o exoesqueletos pé-tornozelo
desenvolvido pelos autores (MALCOLM, P. et. al, 2009) utilizam somente controle on – off
nas “eletro-micro-valvulas”, assim desenvolveremos o controle microprocessado aliado com
micro-servos para a criação de uma válvula proporcional.
Outra é a utilização de hadware com grande quantidade de portas analógicas e saídas
PWM’s para suprir a “escrita” e “leitura’ de sinais. De acordo com autor (JARDIM, Bruno,
2009). “O BLEEX 2 possui mais de 40 sensores e atuadores que funciona como um sistema
nervoso humano e disponibilizam as informações para um computador que calcula que é
necessário fazer para distribuir o peso, para que o usuário não sinta carga excedente”. Nesta
forma é necessário um sistema de aquisição de sinais robusto. Para não utilizar um
microcomputador e trazer o incoveniente de ocupar consideráveis espaços, utilizaremos
microcontroladores, embarcando a tecnologia em espaços pequenos do exoesqueleto. As
tecnologias “candidatas” a suprir essa necessidade é a Arduino Mega (FIG.5.2.1.1) ou MBED
(Arquitetura ARM) (FIG.5.2.1.2).O primeiro possui 16 portas analógicas e ainda quatro
portas de comunicação serial, assim facilitando aquisição de sinais de controle dos
dispositivos microcontrolados locais. Já o MBED (Arquitetura ARM) tem seis portas
115
analógicas, 6 portas PWM’s e três portas seriais. Neste casos adotaremos a primeira opção
para o processamento central.
FIG.5.2.1.1 – Arduino Mega
FIG.5.2.1.2 – MBED –ARM
Já no processamento local podemos utilizar LilyPad (FIG.5.2.1.3 ), o qual pode ser
acoplado a uma rede sem fio módulo Xbee, este possui confiabilidade no mercado (protocolo
802.15.4 ), pois este módulo trabalha sobre as bandas de frequência ISM (Industrial Medical
Scientific) de 868khz (Europa), 915khz (EstadosUnidos) e 2450khz (Internacional),
permitindo o uso de rádios não-licenciados nestas faixas de frequência.
116
Outro é O Arduino Nano (FIG.5.2.1.4), também de dimensões pequenas que poderá
ser utilizado no processamento local dos sinais do exoesqueleto e também tem a possibilidade
de se integrar a uma rede Xbee.
No próximo capitulo será esclarecido o que é processamento central e local no
exoesqueleto.
FIG.5.2.1.3 –LilyPad
FIG.5.2.1.4 – Arduino Nano
117
Após os testes de bancada, será selecionada à tecnologia que será utilizada (FIG.5.2.1.5).
Esta seleção levará em conta vários aspectos tais como: custo/benefício, facilidade de
implementação, disponibilidade de bibliotecas, processamento e etc.
FIG.5.2.1.5 – Seleção de Tecnologias de processamento de sinais
5.3 – POSICIONAMENTO DE SENSORES INERCIAIS
O procedimento laboral de marcadores para capiturar dados cinemáticos, servirá como
auxílio na locação dos acelerômetros nas posições de marcos externos. Também nesta seção,
será visto os cálculos e orientações dos centros de gravidade ajudando na compreesão do
posicionamento dos hardwares (Processamento Local). “Um dos problemas na captura do
dados cinemáticos, é que estamos interessados nas posições subjacentes do esqueleto, mas só
somos capazes de medir posições dos marcos externos” (VAUGHAN Christopher L. , 1999).
118
5.3.1 – PREVISÃO DOS PONTOS DE ARTICULAÇÃO
Os autores (VAUGHAN Christopher L., 1999) demonstram três estratégias para
calcular as posições adjacentes do esqueleto humano, assim temos:
1 – “Selecione três marcadores de interesse para segmento do corpo”;
2 – “Crie um sistema de referência UVW ortogonal com base nesses três marcadores”;
2 – “Use equações de predição baseadas em medidas antropométricas (FIG.5.3.1.1 e
TAB.5.3.1.1), conjunta com o sistema de referência UVW para estimar as adjacências do
esqueleto humano”.
FIG.5.3.1.1 – Medidas antropométricas (VAUGHAN Christopher L., 1999).
119
TAB.5.3.1.1 – Tabela de medições antropométricas (VAUGHAN Christopher L., 1999).
5.3.1.1 – MODELO PARA O “PÉ”
São necessários três marcadores (FIG.5.3.1.1.a):
1º sobre a parte superior do pé;
2º atrás do calcanhar;
3º no maléolo lateral.
120
FIG.5.3.1.1.1– Marcadores para definição do pé em 3D (VAUGHAN Christopher L., 1999).
“Ao criar o sistema de referência UVW, primeiro colocar a origem no marcador 3
(maléolo lateral). Os três marcadores formam um plano, onde eixo W é perpendicular a este
plano. O eixo U é paralelo à linha entre os marcadores 2 e 1, embora a sua origem seja o
marcador 3. Finalmente, o eixo V é perpendicular a ambos eixos U e W de modo a que os três
eixos UVW formar um chamado sistema destro. Definido o sistema UVW para o pé, podemos
usar esta informação em equações de predição, e estimar a posição do dedo do pé e
tornozelo:” (VAUGHAN Christopher L., 1999) (Equações 5.3.1.1 e 5.3.1.2).
𝑃𝐴𝑛𝑘𝑙𝑒 = 𝑃𝐿𝑎𝑡𝑒𝑟𝑎𝑙 𝑚𝑎𝑙𝑙𝑒𝑜𝑙𝑢𝑠 (5.3.1.1)
+0.016(𝐹𝑜𝑜𝑡 𝑙𝑒𝑛𝑔𝑡ℎ)𝑈𝐹𝑜𝑜𝑡
+0.392(𝑀𝑎𝑙𝑙𝑒𝑜𝑙𝑢𝑠 ℎ𝑒𝑖𝑔ℎ𝑡)𝑉𝐹𝑜𝑜𝑡
+0.478(𝑀𝑎𝑙𝑙𝑒𝑜𝑙𝑢𝑠 𝑤𝑖𝑑𝑡ℎ)𝑊𝐹𝑜𝑜𝑡
𝑃𝑇𝑜𝑒 = 𝑃𝐿𝑎𝑡𝑒𝑟𝑎𝑙 𝑚𝑎𝑙𝑙𝑒𝑜𝑙𝑢𝑠 (5.3.1.2)
+0.742(𝐹𝑜𝑜𝑡 𝑙𝑒𝑛𝑔𝑡ℎ)𝑈𝐹𝑜𝑜𝑡
+1.074(𝑀𝑎𝑙𝑙𝑒𝑜𝑙𝑢𝑠 ℎ𝑒𝑖𝑔ℎ𝑡)𝑉𝐹𝑜𝑜𝑡
−0.187(𝐹𝑜𝑜𝑡 𝑏𝑟𝑒𝑎𝑑𝑡ℎ)𝑊𝐹𝑜𝑜𝑡
5.3.1.2– MODELO PARA A “PANTURRILHA”
121
Igualmente ao exemplo anterior são necessários três marcadores (FIG.5.3.2.1):
3º no maléolo lateral;
4º lateral direita da panturrilha;
5º epicôndilo femoral.
FIG.5.3.1.2.1 – Marcadores para definição da panturrilha em 3D (VAUGHAN Christopher L.,
1999).
“Ao criar o sistema de referência UVW, primeiro colocar a origem no marcador 5,
epicôndilo femoral. Os três marcadores formar um plano, e o eixo W é perpendicular a este
plano. O eixo V é paralelo à linha entre os marcadores 5 e 3. Finalmente, o eixo U é a
tornozelos direito para ambos V e W de modo a que os três eixos UVW formam um sistema
destro. Podemos agora usar essa tríade UVW com a panturrilha para estimar a posição do
centro de articulação do joelho com base na seguinte equação de predição:” (VAUGHAN
Christopher L., 1999) (Equação 5.3.2.1).
𝑃𝐾𝑛𝑒𝑒 = 𝑃𝐹𝑒𝑚𝑜𝑟𝑎𝑙 𝑒𝑝𝑖𝑐𝑜𝑛𝑑𝑦𝑙𝑒 (5.3.2.1)
+0.000(𝐾𝑛𝑒𝑒 𝑑𝑖𝑎𝑚𝑒𝑡𝑒𝑟))𝑈𝐶𝑎𝑙𝑓
122
+0.000(𝐾𝑛𝑒𝑒 𝑑𝑖𝑎𝑚𝑒𝑡𝑒𝑟))𝑉𝐶𝑎𝑙𝑓
+0.500(𝐾𝑛𝑒𝑒 𝑑𝑖𝑎𝑚𝑒𝑡𝑒𝑟))𝑊𝐶𝑎𝑙𝑓
5.3.1.3 – MODELO PARA O “QUADRIL”
“Considere os marcadores na pelve como pode ser visto na FIG.5.3.3.1.b.São
numerados marcador 7, direita da coluna ilíaca anterossuperior ou cintura direita, o marcador
14, cintura esquerda, e o marcador 15, no sacro. O marcador de sacro é colocado na junção
entre a quinta vértebra lombar e o sacro” (VAUGHAN Christopher L., 1999).
FIG.5.3.1.3.1 – Marcadores para definição do quadril em 3D (VAUGHAN Christopher L.,
1999).
“Ao criar o sistema de referência UVW para o quadril, primeiro colocar a origem no
marcador 15 (sacro). Os três marcadores formam um plano, e o eixo w é perpendicular a este
plano. O eixo V é paralelo à linha entre a marcadores 7 e 14, embora a sua origem é de
marcador 15. Finalmente, o eixo u é perpendicular a ambos V e W de modo a que os três
eixos UVW formar um sistema destro. Agora que UVW para a bacia foi definido, podemos
123
usar esta informação em uma equação de predição para estimar as posições das articulações
do quadril esquerdo e direito:” (VAUGHAN Christopher L., 1999) (Equação 5.3.3.3.1).
𝑃𝐻𝑖𝑝 = 𝑃𝑆𝑎𝑐𝑟𝑢𝑚 (5.3.3.1)
+(0.598)(𝐴𝑆𝐼𝑆 𝑏𝑟𝑒𝑎𝑑𝑡ℎ)𝑈𝑃𝑒𝑙𝑣𝑖𝑠
+/−(0.344)(𝐴𝑆𝐼𝑆 𝑏𝑟𝑒𝑎𝑑𝑡ℎ)𝑉𝑃𝑒𝑙𝑣𝑖𝑠
−(0.290)(𝐴𝑆𝐼𝑆 𝑏𝑟𝑒𝑎𝑑𝑡ℎ)𝑊𝑃𝑒𝑙𝑣𝑖𝑠
“Existe uma diferencia nas articulações entre o quadril esquerdo (+) e direito (-)”
(VAUGHAN Christopher L., 1999).
5.3.1.4 – PREVISÃO DOS CENTROS DE GRAVIDADE
A partir da FIG.5.3.4.1 podemos extrair as seguintes equações:
FIG.5.3.1.4.1– Locação do centro de gravidade da coxa direita (VAUGHAN Christopher L.,
1999).
124
𝑃𝑇ℎ𝑖𝑔ℎ.𝐶𝐺 = 𝑃𝐻𝑖𝑝 + 0.39(𝑃𝐾𝑛𝑒𝑒− 𝑃𝐻𝑖𝑝) (5.3.4.1)
𝑃𝐶𝑎𝑙𝑓.𝐶𝐺 = 𝑃𝐾𝑛𝑒𝑒 + 0.42(𝑃𝐴𝑛𝑘𝑙𝑒 − 𝑃𝐾𝑛𝑒𝑒) (5.3.4.2)
𝑃𝐹𝑜𝑜𝑡.𝐶𝐺 = 𝑃𝐻𝑒𝑒𝑙 + 0.44(𝑃𝑇𝑜𝑒− 𝑃𝐻𝑒𝑒𝑙) (5.3.4.3)
5.3.1.5 – ORIENTAÇÕES DOS CENTROS DE GRAVIDADE
Extraimos as orientações dos centros de gravidade, através das orientação de segmentos
do corpo humano na literatura FIG.5.3.5.1 (VAUGHAN Christopher L. , 1999), Por
limitações de instalação de hardware, inicialmente podemos direcionar a instalação dos
acelerômetros levando em consideração o plano sagital, facilitando assim na aproximação dos
centros de gravidade.
FIG.5.3.1.5.1– Orientações dos centros de gravidade (VAUGHAN Christopher L., 1999).
125
5.3.1.6 – ANGULOS DE EULER
“Os ângulos de Euler nos seguimentos (FIG.5.3.6.1) são importantes porque são
necessários para definir as velocidades angulares e acelerações angulares dos segmentos”
(VAUGHAN Christopher L. , 1999). Por limitações de instalação de hardware inicialmente
podemos direcionar a instalação dos giroscópios levando em consideração o plano sagital, ou
seja, o ângulo de Euler medido será 𝝍𝑹.
FIG.5.3.1.6.1– Os três ângulos de Euler (𝜃𝑅, 𝜓𝑅, 𝜙𝑅 ) (VAUGHAN Christopher L., 1999).
5.4 – PROTÓTIPO DE PROCESSAMENTO LOCAL
O protótipo foi desenvolvido com seis elementos: fonte, unidade de comunicação (radio
frequência), unidade de processamento, unidade de medição de aceleração, unidade de
medição de velocidade angular e unidade de medição eletromiográfica. Este visa a análise de
arquitetura de hardware, para posterior refinamento de um posssível produto final.
126
5.4.1. – FONTE
Como o módulo de comunicação tem limitações no range de trabalho, ou seja,só trabalha
de 0 à 3V, sem uso de conversores, passamos adotar esse range para todas unidades.Nesta
forma utilizaremos pilhas de 1.5V para alimentação do sistema, para posteriormente utilizar
baterias de 3,7V.
5.4.2 – HARDWARE PARA COMUNICAÇÃO SEM FIO
Como já foi mencionado no item 3.1 usaremos uma rede sem fio módulo Xbee,
(protocolo 802.15.4 ), pois este módulo trabalha sobre as bandas de frequência ISM
(Industrial Medical Scientific) de 868khz (Europa), 915khz (EstadosUnidos) e 2450khz
(Internacional), permitindo o uso de rádios não-licenciados nestas faixas de frequência
(FIG.5.4.2.1).
FIG.5.4.2.1 – Modulo de comunicação Xbee serie 1.
127
TAB.5.4.2.1 – Tabela de pinagem do módulo Xbee.
O módulo Xbee além de possuir um canal serial de comunicação nos pinos Din e Dout
, possui também quatro portas analógicas sendo duas para comunicar com outro módulo no
controle de dois sinais PWM’s, ou seja, em uma par de hardware Xbee o nó 1 poderá, através
da porta analógica configurada, controlar no nó 2 dois sinais PWM’s. Abaixo segue
TAB.5.4.2.1 com a pinagem do módulo Xbee.
Esse dispositivo aconpanha um software de configuração chamado XTU que lê as
configurações de cada modelo e versão Xbee. O XTU possibilita configura a taxa de
comunicação, o endereçamento de cada dispositovo, seleção de portas digitais e analógicas e
também dois sinais PWM’s, inclusive já mencionado, com níveis diferentes de taxas de
amostragem.
128
5.4.3 – HARDWARE PARA PROCESSAMENTO LOCAL
Está sendo adotado como unidade de processamento, a Lilypad Arduino que possui seis
portas analógicas (A0 à A5) , as quais atendem a quantidade de sinais à ser medidos, além da
porta de comunicação serial (TTL). Por exemplo, o acelerômetro ADXL 335 tem três saída de
sinais correspondentes a três eixo (x,y,z), o giroscópio com um sinal de saída e a
eletromiografia com um sinal de saída.Assim atendendo com 5 portas analógicas
(FIG.5.4.3.1).
FIG.5.4.3.1 – Pinagem Lilypad Arduino.
5.4.4 – HARDWARE PARA MEDIÇÃO DE ACELERAÇÃO
129
Será utilizado o acelerômetro de tecnologia capacitiva ADXL335 (FIG.5.4.4.1), com
um hardware de condicionamento de sinal, ou seja, será necessário para atender
recomendações do fabricante, como:
Desacoplamento da fonte de alimentação - “Para a maioria das aplicações, um
único capacitor de 0,1 uF, 𝐶𝐷𝐶, colocado perto dos pinos de ADXL335
desacopla adequadamente o acelerómetro de ruído na fonte de
alimentação”(Analog Device).Nesta forma favorece que ruídos não interfiram
na medição de aceleração, ou seja , um filtro para linha de alimentação”;
“Ajuste na largura de banda utilizando os capacitores 𝐶𝑥, 𝐶𝑦 e 𝐶𝑧 - “O
ADXL335 ajustes no limite de banda nos pinos 𝑋𝑜𝑢𝑡, 𝑌𝑜𝑢𝑡, e 𝑍𝑜𝑢𝑡. Capacitores
devem ser adicionados a esses pinos para implementação de um filtro passa-
baixa na suavização e redução de ruído”.
FIG.5.4.4.1 – Acelerômetro ADXL3358 com sinal de saída condicionado.
Este hardware já possui regulação de tensão, podendo trabalhar no range de operação
de 1.8~5 V, corrente de suprimento de 350uA, temperatura de operação entre -40~85° e
dimenções de 20.3mm×15.7mm×11.6mm. Podemos visualizar na FIG.5.4.4.2.a os eixos de
sensibilidade que orientaram na montagem do hardware final, já na FIG.5.4.4.2.b podemos
visualizar a atuação do campo gravitacional em vários sentidos de posicionamento da
pastilha.
130
(a)
(b)
FIG.5.4.4.2 – Eixos de sensibilidade do acelerômetro(a) e ação da gravidade sobre o
acelerômetro (ANALOG DEVICES, 2013).
5.4.5 – HARDWARE PARA MEDIÇÃO DE VELOCIDADE ANGULAR
“Este sensor de velocidade angular utiliza uma força de Coriolis que atua sobre um
objecto vibratório quando a velocidade angular for aplicada. A unidade vibratória cerâmica
bimorfa da Murata é utilizada como unidade elemento sensor, permitindo assim a cerâmica
piezoeléctricos ser usados tanto para a excitação e detecção.A utilização deste aparelho
131
simplifica a estrutura e configuração do equipamento do circuito, tornando assim possível
fornecer um excelente desempenho. Este sensor pode ser utilizado para o controle do
posicionamento e controle da postura de um objecto em movimentos, requerendo medições de
precisão e de resposta rápida”( MURATA, 2013)
Assim como o acelerômetro possui um circuito de condicionamento de sinal mostrado
na FIG.5.4.5.1 também recomendado pelo fabricante.
FIG.5.4.5.1 – Hardware Giroscópio.
Observando o diagrama de bloco (FIG.5.4.5.2) recomendado pelo fabricante, temos:
“Componentes de baixa frequência deve ser filtrados pelo HPF (Hi-Pass-
Filter). O componente de alta frequência deve ser filtrado pela LPF (Low-Pass-
Filter), a fim de eliminar o ruído de saída”;
“Normalmente o conversor A/D de 8 bits é o mais usado. A resolução do
conversor A / D influencia na precisão da medição”;
“A frequência de amostragem utilizada para a medição deve ser no mínimo 50
amostras/seg. A frequência de amostragem influencia na precisão da medição”;
O fabricante recomenda também um circuito típico (FIG.5.4.5.3) com frequência de
corte de aprox. 0.3Hz pelo filtro passa alta e frequência de corte é de aprox. 1kHz para o filtro
passa baixa.
132
FIG.5.4.5.2 –Diagrama de bloco recomendado pelo fabricante para condicionamento de sinal.
FIG.5.4.5.3 – Circuito típico recomendado pelo fabricante Murata (MURATA, 2013)
Os terminais são mostrados na TAB.5.4.5.1 abaixo:
TAB.5.4.5.1 - Tabela dos terminais (MURATA, 2013)
Para este giroscópio temos a voltagem de saída em relação à velocidade angular através da
equação 5.4.5.1:
Saída voltagem = V0 + Sv x w [V] (5.4.5.1)
Onde:
133
V0: saída estática [V] (com velocidade angular é de 0 [graus / s]);
Sv: fator de escala [mV / deg / s]
w: velocidade angular [faixa de velocidade angular: -90 a 90 [deg /s];
Este sensor pode detectar uma velocidade angular ao longo de um eixo conforme
demonstrado na FIG.5.4.5.4.
FIG.5.4.5.4 – Eixo angular (MURATA, 2013).
5.4.6 – HARDWARE DE ELETROMIOGRAFIA
Será utilizado a placa Muscle Sensor V3 (FIG.5.4.6.1 e FIG.5.4.6.2) de configuração
bipolar.Ela possui quatro estágios: medição, retificação, suavização e amplificação, conforme
demonstrado na FIG.5.4.6.3 (Diagrama eletrônico).
FIG.5.4.6.1 – Muscle Sensor V3 (ADVANCER TECHNOLOGIES, 2013)
134
FIG.5.4.6.2 – Muscle Sensor V3 com cabo (ADVANCER TECHNOLOGIES, 2013)
FIG.5.4.6.3 – Diagrama eletrônico Muscle Sensor V3 (ADVANCER TECHNOLOGIES,
2013 com modificações).
No primeiro estágio (Ver FIG.5.4.6.3) é utilizado um amplificador de instrumentação ,
com objetivo de detecção de dois sinais (músculos ativos).Este tem como objetivo detectar o
modo comum de rejeição (Commom Mode Rejection Rrate), além de amplificar e detectar
dois sinais musculares(sensoriamento diferencial).“Com a configuração do amplificador
diferencial podemos eliminar a maioria dos ruídos dos cabos. O amplificador diferencial
analisa a diferença entre os dois terminais ativos. Como pode ser visto, a interferência do
135
ruído aparece com amplitude igual em ambos os terminais. Pois o sinal não desejado é
comum em ambos os terminais ativos – Isto é chamado de sinal de modo comum, conforme
apresentado na FIG.5.4.6.4”. (RIBEIRO, V. de Sousa et al, 2006)
FIG.5.4.6.4 – Amplificador diferencial (RIBEIRO, V. de Sousa et al, 2006).
No segundo estágio temos o filtro passa alta (diferênciador) e a retificação do sinal (Ver
FIG.5.4.6.3). No estágio três temos uma configuração de um filtro passa baixa (Integrador),
para suavizar o sinal e finalmente no quarto estágio é aplicada a amplificação do sinal. Na
FIG.3.2.2.1 , visto no item 3.2 (Eletromiografia) , podemos similarizar com os três primeiros
estágios.
5.4.7 – MOTAGEM DO HARDWARE DE PROCESSAMENTO LOCAL (UNIDADE
BÁSICA DE ANÁLISE - PROTÓTIPO)
Como pode ser visualizado na FIG.5.4.7.1, temos uma fonte simétrica( rachurado em
vermelho) para atender o módulo Muscle Sensor(rachurado em cinza), pois o mesmo
necessita de dois valores de tensão, um Vs+ e outro Vs- para detectar todos os ‘trens de
pulsos” provenientes dos eletrodos. Podemos visualizar na mesma figura que foi utilizado
vários “jumpes” para as conecções. Na FIG.5.4.7.2 é demonstrado o dispositivo com uma
visão geral.
136
FIG.5.4.7.1 – Localização de módulos.
FIG.5.4.7.2 – Visão geral do dispositivo de processamento local.
Está disponível no anexo 3 o programa para aquisição de sinais deste dispositivo.
5.4.8 – INTERFACE PARA AVALIAÇÃO DE SINAIS
Para validação do sistema foi desenvolvida uma interface básica em LabView para
posteriormente acoplar ao processamento global.
137
5.4.8.1 – LABVIEW
“LabVIEW (Laboratory Virtual Instruments Enginneering Workbench) é uma linguagem
de desenvolvimentos de aplicativos assim como a linguagem C, Basic ou Delphi. A diferença
marcante entre a linguagem de programação gráfica (G), onde o LabVIEW se insere, e as
outras convencionais é a forma de programação.Embora ambas sejam linguagens direcionadas
a objetos, cujos compiladores mais modernos simplificam o processo de programação através
de interfaces amigáveis com comandos, funções e propriedades pré-definidas; existe uma
diferença fundamental entre elas. A a linguagem G é uma ferramenta de linguagem gráfica,
altamente produtiva para construção de sistemas de aquisição de dados, instrumentação e
controle, entre outras aplicações” (REGAZZI R. D. et. al., 2005).
A interface hardware/software foi concebida através de uma porta serial (USB) conectada
em um conversor FTDI interconectado com um módulo Xbee série 1, que está demonstrado
na FIG. 5.4.8.1.1.
FIG.5.4.8.1.1 – Interface Xbee/ Serial.
A FIG.5.4.8.1.2 mostra a interface lógica do software para aquisição de dados.
Consiste em um conjunto de blocos para porta serial e blocos de tratamento dados seriais, ou
seja, para cada sinal, foi determinado um endereço AN0, AN1, AN2, AN3 e AN4, os quais
são: três sinais de aceleração (x/y/z), sinal do giroscópio (eixo simples) e finalmente o sinal da
eletromiografia.
138
FIG.5.4.8.1.2 – Interface Lógica (LabVIEW).
A interface gráfica inclui cinco barras verticais (azul, vermelha, verde, amarela e lilas)
e cinco gráficos dinâmicos que plotam os valores medidos em função do tempo
(FIG.5.4.8.1.3).
FIG.5.4.8.1.3 – Interface gráfica LabVIEW.
Os valores plotados poderam ser salvos em formato de texto ou planilha, podendo assim
ser analizado em outros software’s.
139
5.5 – BIBLIOTECA PARA LINGUAGEM C
Trata – se de uma co ntribuição significativa do autor (ALVES, A. J. O., 2013) para
aplicações em linguagem C, tanto em plataformas virtuais ou embarcados. Esta biblioteca foi
desenvolvida pelo Robotic Research Group(RRG) na Universidade Estadual do Piauí
(UESPI-Teresina).
De acordo com autor, “esta biblioteca não possui limitações explícitas de quantidade de
conjuntos fuzzy , regras fuzzy, entradas ou saídas, mas poderá ocorrer limitações na utilização
desta em aplicações embarcadas, ou seja, depende da quantidade de memória do hardware
para que funcione corretamente”.
De acordo com o autor a biblioteca é baseada nos seguintes objetos:
Objeto Fuzzy : “Este objeto engloba todo o Sistema Fuzzy, através dele, é possível
manipular os Conjuntos Fuzzy, as Regras Linguísticas, entradas e saídas.”
Objeto FuzzyInput : “Este objeto literalmente agrupa todos os Conjuntos Fuzzy de entradas
que pertencem ao mesmo domínio.”
Objeto FuzzyOutput: “Este objeto é semelhante ao FuzzyInput, é usado para agrupar todos
os Conjuntos Fuzzy de saída que pertencem ao mesmo domínio.”
Objeto FuzzySet: “Este é um dos principais objetos da Biblioteca Fuzzy, com é possível
modelar cada conjunto do sistema em questão. Atualmente a biblioteca suporta as funções de
pertinência triangular, trapezoidal e singleton, que são montadas com base nos pontos A, B, C
e D que são passados por parâmetro no construtor FuzzySet(float a, float b, float c, float d).”
Com este objeto ( FuzzySet) lançamos mão de uma ferramenta simples, pois através dos
parâmetros a, b, c e d podemos determinar pontos, concentrar ou dilatar as funções de
pertinência. Abaixo demonstraremos através de TAB(5.5.1 à 5.5.7) as funções de pertinências
com FIG.5.5.1 à 5.5.7 e suas respectivas funções em linguagem de progrmação em C:
140
Função de Pertinência Função na Linguagem C
FIG.5.5.1 – Função de Pertinência
Triangular (ALVES, A. J. O., 2013)
FuzzySet* fs = FuzzySet(10,
20, 20, 30);
TAB.5.5.1 – Função de Pertinência Triangular
Função de Pertinência Função na Linguagem C
FIG.5.5.2 – Função de Pertinência
Triangular (ALVES, A. J. O., 2013)
FuzzySet* fs = FuzzySet(10,
33, 33, 33);
TAB.5.5.2 – Função de Pertinência Triangular com dilatação
Função de Pertinência Função na Linguagem C
FIG.5.5.3 – Função de Pertinência
Triangular (ALVES, A. J. O., 2013)
FuzzySet* fs = FuzzySet (5, 5,
5, 30);
TAB.5.5.3 – Função de Pertinência Triangular dilatada
Função de Pertinência Função na Linguagem C
FIG.5.5.4 – Função de Pertinência
Trapezoidal (ALVES, A. J. O., 2013)
FuzzySet* fs = FuzzySet (10,
20, 30, 40);
TAB.5.5.4 – Função de Pertinência Trapezoidal
141
Função de Pertinência Função na Linguagem C
FIG.5.5.5 – Função de Pertinência
Trapezoidal (ALVES, A. J. O., 2013)
FuzzySet* fs = FuzzySet (0, 0,
10, 20);
Qualquer valor abaixo de 10
terá pertinência = 1
TAB.5.5.5 – Função de Pertinência Trapezoidal
Função de Pertinência Função na Linguagem C
FIG.5.5.6 – Função de Pertinência
Trapezoidal (ALVES, A. J. O.)
FuzzySet* fs = FuzzySet (20,
30, 40, 40);
Qualquer valor acima de 30
terá pertinência = 1
TAB.5.5.6 – Função de Pertinência Trapezoidal
Função de Pertinência Função na Linguagem C
FIG.5.5.7 – Função de Pertinência
Singleton (ALVES, A. J. O., 2013)
FuzzySet* fs = FuzzySet (20,
30, 40, 40);
Qualquer valor acima de 30
terá pertinência = 1
TAB.5.5.7 – Função de Pertinência Singleton
Objeto FuzzyRule: “Este objeto é usado para montar a base de regras do objeto Fuzzy, que
contem um ou mais deste. Instanciado com FuzzyRule fr = new FuzzyRule(ID, antecedent,
consequente)”.
Objeto FuzzyRuleAntecedent: “Este objeto é usado para compor o objeto FuzzyRule,
responsavel por montar a expressão condicional do antecedente de um FuzzyRule”.
Objeto FuzzyRuleConsequente: “Este objeto é usado para compor o objeto FuzzyRule,
responsavel por montar a expressão de saída de um FuzzyRule”.
De acordo com o autor o método de inferência e composição é MAX-MIN e Mínimo
de Mamdani, e a desfuzzyficação utiliza a técnica de Centro de área.
142
5.6 – LÓGICA NEBULOSA NO MATLAB PARA IMPLEMENTAÇÃO DE UMA
VÁLVULA PROPORCIONAL
Antes de iniciar a programação no microcontrolador, será utilizado o editor Fuzzy do
MatLab para treinar o sistema e depois extrair os dados. Considerando que através da
eletromiografia temos um sinal com range de 0v à 5V, aplicamos no editor Fuzzy o universo
de domínio conforme FIG.5.6.1 que representa uma entrada do sistema, a qual representa o
sensoriamento muscular de um indivíduo.
Considerando que através do sensoriamento possa ser medida a pressão no circuito
pneumático de um PAM e levando em consideração as especificações do fabricante, foi
determinado outra entrada com range de 0 bar à 6 bar para o domínio conforme FIG.5.6.2 no
editor Fuzzy.
Considerando um atuador servomecanismo como saída do sistema, e atue em na
abertura e fechamento de uma válvula pneumática entre 0° e 90° (radiano), para o controle da
alimentação pneumática do PAM, foi determinado no editor Fuzzy o domínio conforme
FIG.5.6.3.
FIG.5.6.1 –Implementação do movimento muscular
143
FIG.5.6.2 – Implementação da variação de pressão
FIG.5.6.3 – Implementação da Alimentação do PAM
Considerando outro atuador servomecanismo como saída do sistema, que atue em
outra válvula pneumática com abertura e fechamento entre 0° e 90°(radiano), para o controle
do descarregamento da pressão pneumática do PAM, foi determinado no editor Fuzzy o
domínio conforme FIG.5.6.4.
144
FIG.5.6.4 – Implementação Descarregamento do PAM
Notamos nas FIG.5.6.1 à FIG.5.6.4 que existem faixas no domínio para monitorar e
atuar em contrações musculares, pressão diferencial, alimentação pneumática e
descarregamento pneumático que estão listados abaixo:
Na FIG.5.6.1 que representa o monitoramento da eletromiografia, temos três
faixas (Tracionado – neutro – contraído);
Na FIG.5.6.2 que representa o monitoramento da pressão diferencial do
circuito pneumático do PAM, temos três faixas (Pouca pressão – Média
Pressão – Pouca Pressão);
Na FIG.5.6.3 que representa a atuação do servomecanismo 1 (Alimentação do
PAM), temos três faixas (Pouco aberto – Aberto – Muito Aberto);
E finalmente na FIG.5.6.4 representa a atuação do servomecanismo 2
(Descarregamento do PAM).
Todos esses valores possuem seu grau de pertinência observado no eixo y de cada
FIG.(5.6.1 à 5.6.4), os quais são utilizados na lógica nebulosa para infinitos valores entre 0 e
1, nesta forma possibilitando graus de verdade de cada ação, assim podendo aproximarmos o
sistema de um raciocínio humano. Mas para que um ser humano possa tomar uma ação é
necessário um prévio conhecimento daquele sistema, ou seja, é preciso uma base de
145
conhecimento (banco de dados), então temos abaixo na TAB.5.6.1 com a base de regras
necessárias para o funcionamento do sistema:
BASE DE REGRAS
IF THEN
SINAL EMG SENSOR
PRESSÃO
SERVO 1 SERVO 2
Movimento Muscular Delta Pressão Alimentação
muscular
Descarregamento
Muscular
1 Tracionado Pouca pressão Pouco aberto Muito aberto
2 Neutro Média pressão Aberto Aberto
3 Contraído Muita pressão Muito aberto Pouco aberto
TAB.5.6.1 – Base de Regras
Notamos na TAB5.6.1 que o servo 1 e servo 2 começam a atuar simultaneamente nas
faixas com pouca pressão e sinal do músculo tracionado. Por se tratar de um controle
proporcional e com duas vias, alimentação e descarregamento que são respectivamente o
servo 1 e servo 2, os quais abrem e fecham de forma inversa as válvulas para o controle de ar
comprimido no PAM. No próximo capítulo será demonstrado a estrutura física de uma
válvula proporcional.
FIG.5.6.5 – Sistema Fuzzy para controle de uma válvula proporcional
Finalmente temos o sistema Fuzzy de controle de uma válvula proporcional que está
apresentado abaixo na FIG.5.6.5 com duas variáveis de entrada, Movimento muscular (sinais
146
EMG) e Pressão diferencial (Sensor pressão MXP5700- Motorola) que monitoram o sistema,
e duas variáveis de saída, Alimentação do PAM e Descarregamento do PAM que atuam no
sistema.
5.7 – LÓGICA NEBULOSA EMBARCADA EM HARDWARE ARDUINO
Passamos agora a implemaentar a Lógica fuzzy em um sistema embarcado, e o escolhido
primeiramente é o projeto plataforma arduino.Trata-se de um projeto desenvolvido na Itália
com objetivo de facilitar protótipos rápidos, ou seja, existem várias aplicações com hardware
prontos no mercado e são complementados por outros projetos de hardware chamados
“shields”. Abordaremos sobre sheilds nas próximas apresentações no decorrer do projeto, pois
na explicação atual, implantaremos somente a lógica nebulosa embarcada na placa arduino
duemilanove analisando a resposta do sistema pela porta serial. A FIG.5.7.1 demonstra
fisicamente a placa com a conexão usb serial e na figura 5.7.2 os resultados obtidos na
interface gráfica arduino (coopilador).
FIG.5.7.1 – Placa Arduino na porta serial (USB)
147
FIG.5.7.2 – Interface serial (compilador)
Para que o sistema fosse implementado lançamos mão da biblioteca eFLL, já
apresentada. Será demonstrado nesta etapa como foi implementado cada objeto e função desta
biblioteca. Primeiramente depois de importar a biblioteca conforme demonstrado no anexo
1organizaremos cada passo de implementação da programação em C:
1 - Inclusão e chamada de objetos da memória não volátil:
Cada instrução include, direciona cada objeto para memória não volátil, ou seja, como o
microcontrolador Atmega 328P possui apenas 30.720 byte máximo de memória volátil, o
autor (ALVES, A. J. O., 2013) criou os objetos para não ocupar espaço de memória volátil, a
qual é destinada para o algorítimo do sistema.
2 – Declaração de Variáveis:
#include<FuzzyRule.h>
#include<FuzzyRule.h>
#include<FuzzyComposition.h>
#include<Fuzzy.h>
#include<FuzzyRuleConsequent.h>
#include<FuzzyOutput.h>
#include<FuzzyInput.h>
#include<FuzzyIO.h>
#include<FuzzySet.h>
#include<FuzzyRuleAntecedent.h>
int potPin_1 = 1; // Potenciômetro conectado na porta analógica A1
int potPin_2 = 2; // Potenciômetro conectado na porta analógica A2
float potValue_1 = 0; // Variável de escrita relacionada a porta A1
float potValue_2 = 0; // Variável de escrita relacionada a porta A2
float movmuscular=0; // Variável de entrada da lógica fuzzy
float VarPress=0; // Variável de entrada da lógica fuzzy
148
Como precisamos direcionar a porta analógica (pino do microcontrolador Atmega
328P), devemos declará “potPin_1” igual a “1”, para a variação de etensão de 0 até 5v sobre a
porta analógica A1 e identicamente para a porta A2 com “potPin_2”.
Nas FIG.5.7.3.a e FIG.5.7.3.b demonstra a instalação dos potenciômetros que servirão
de simuladores para entradas da lógica nebulosas. Assim determinando que tais entradas serão
as variáveis “movmuscular” e “VarPress”, ou seja, potenciômetro 1 e 2 respectivamente.
(a)
(b)
FIG.5.7.3 – Instalação de potenciômetros
3 – Aplicação das funções de pertinência das entradas:
Com o objeto FuzzySet podemos criar as funções de pertinência para as entradas e saidas
do sitema nebuloso demosntrado no trecho de programação acima.
/* (MOVIMENTO MUSCULAR)
Tracionado Neutro Contraido
1-|. . .|
| . . . . |
| . . |
| . . . . |
0-| ......................................|
---------------------------------------- 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 */ FuzzySet* tracionado = new FuzzySet(-2, 0, 0, 2);
FuzzySet* neutro = new FuzzySet(0.5, 2.5, 2.5, 4.5);
FuzzySet* contraido = new FuzzySet(3, 5, 5, 7);
149
A função “addFuzzySet” adiciona tais pertinências na variáveis de entrada e saída,
com exemplo o trecho acima e por conseguinte “addFuzzyInput” ou “addFuzzyOutput”
adiciona ao objeto fuzzy.
4 – Construção das regras:
1º REGRA
"SE MovMuscular = Tracionado E VarPressão = PoucaPress ENTAO AlimMuscular =
PoucoAberto"
FuzzyRuleAntecedent* ifMovmuscularTracionadoAndVarpressPoucapress = new
FuzzyRuleAntecedent();
ifMovmuscularTracionadoAndVarpressPoucapress->joinWithAND(tracionado,
poucapress);
FuzzyRuleConsequent* thenAlimmuscularPoucoaberto = new FuzzyRuleConsequent(); //
Instancinado um Consequente para a expressao
thenAlimmuscularPoucoaberto->addOutput(poucoaberto);// Adicionando o FuzzySet
correspondente ao objeto Consequente
FuzzyRule*fuzzyRule1 = new FuzzyRule(1,
ifMovmuscularTracionadoAndVarpressPoucapress, thenAlimmuscularPoucoaberto);
fuzzy->addFuzzyRule(fuzzyRule1);
TAB.5.7.1 – Construção da regra 1
// FuzzyInput 1
FuzzyInput* movmuscular = new FuzzyInput(1);
movmuscular->addFuzzySet(tracionado);
movmuscular->addFuzzySet(neutro);
movmuscular->addFuzzySet(contraido);
fuzzy->addFuzzyInput(movmuscular);
// FuzzyInput 2
FuzzyInput* varpress = new FuzzyInput(2);
varpress->addFuzzySet(poucapress);
varpress->addFuzzySet(mediapress);
varpress->addFuzzySet(muitapress);
fuzzy->addFuzzyInput(varpress);
150
Como podemos ver na tabela 5.7.1, iniciamos a construção com os antecedentes e as
funções objeto “FuzzyRuleAntecedent”. Assim verificamos que a função “joinWithAND”
utiliza o operador T-norm para um resgra simples com múltiplos antecedentes, ou seja, é
aplicada a T-norm nas variáveis de pertinência “tracionado” e “poucapress” para posterior
aplicação na função objeto “FuzzyRuleAntecedente”.
Já na construção do conseguente, temos a associação da variável de pertinência
“pouco aberto” com a função objeto “FuzzyRuleConsequente” sem aplicação do operadores.
Para terminar construção da primeira regra com a função “new FuzzyRule”, temos a
estrutura:
new FuzzyRule (nº da regra, variável antecedente, variável consequente)
nº regra – neste caso “1” devido ser a primeira regra;
variável antecedente - neste caso
“ifMovmuscularTracionadoAndVarpressPoucapress” , a qual trata-se de uma
variável já aplicada a T-norm;
variável consequente – neste caso vaiável “thenAlimmuscularPoucoaberto”
está relacionado com a variável de pertinência “poucoaberto”.
Finalmente a variável criada “fuzzyRule1” está associado a função objeto “fuzzy” para
a construção da 1º regra, conforme demonstrado no trecho de programação da TAB.5.7.1.
Observamos ao leitor que poderíamos aplicar o operador T-conorm através da
função objeto “joinWithOR”, mas neste momento não foi utilizado.
5 – Fuzzyficação
Essas etapas são aplicadas no laço principal. Em nossa aplicação pegamos os valores
crisp’s da “função analogRead(variável)” – Etapa 1,potênciômetro ligado na porta
analógica, associado a função “setImput(ID, variável)” – Etapa 2 , onde “ID” é a
idenficação do objeto FuzzyInput e “variável” está associado com a função analogRead.
Finalmente aplicamos a fuzzyficação através da função objeto “fuzzify” – Etapa 3, conforme
trecho de programação abaixo:
151
6 – Desfuzzyficação
Podemos verificar no trecho de programação abaixo que a função objeto “defuzzify” ,
Por fim disponibiliza o valor crisp na variável output.
Concluímos a aplicação da lógica embarcada, com a análise da FIG.5.7.5, a qual
demonstra as entradas, saídas e graus de pertinência de cada função de pertinência de entrada.
FIG.5.7.5 – Análise da interface serial
void loop(){
potValue_1 = analogRead(potPin_1); // Etapa 1
potValue_2 = analogRead(potPin_2);
movmuscular=5*potValue_1/1023;
VarPress=5*potValue_2/1023;
Serial.print("SINAL MUSC: ");
Serial.println(movmuscular);
Serial.print("VAR PRESS: ");
Serial.println(VarPress);
fuzzy->setInput(1,movmuscular); // Etapa 2
fuzzy->setInput(2, VarPress);
fuzzy->fuzzify(); // Etapa 3
float output1 = fuzzy->defuzzify(1);
float output2 = fuzzy->defuzzify(2);
Serial.print("ALIMENTACAO D0 MUSCULO: ");
Serial.print(output1);
Serial.print(",DESCARREGAMENTO D0 MUSCULO: ");
Serial.println(output2);
delay(1000);
}
152
5.8 – APLICAÇÃO FÍSICA DA LÓGICA NEBULOSA EMBARCADA PARA
CONTROLE DE UMA VÁLVULA PROPORCIONAL.
Da mesma forma do item anterior adotaremos dois potênciômetros para entrada do
sistema e como saída, dois servos motores controlando o fluxo pneumático conforme
demonstrado na FIG.5.8.1.
FIG.5.8.1 – Estrutura de controle da válvula proporcional
A estrutura da válvula proporcional foi concebida na seguinte forma:
Duas válvulas esfericas de 1/4 “ interligadas para a alimentação e descarregamento de
pressão pneumática;
Dois microservos-motores acoplado eixo a eixo com as válvulas esféricas; e
Conecções em latão para montagem do circuito.
Na FIG.5.8.2 podemos visualizar melhor a estrutura da válvula proporcional.
153
FIG.5.8.2 – Estrutura da válvula proporcional
Como podemos ver na FIG.5.8.1, estrutura básica de controle de um PAM, temos dois
potênciomestros , os quais serviram de simuladores para sinais de eletromiografica e sinal
pneumático, ou seja, temos duas entradas(sensoriamentos) e duas saídas(atuadores), os
microservos-motores.
FIG.5.8.3 – Fluxo de atuação da válvula proporcional
154
Os atuadores microservos-motores estão condicionados na condição inversa, ou seja,
quando um está abrindo o outro está fechando para que seja atendido o fluxo mostrado na
FIG.5.8.3. Este fluxo está determinado pelas caracteristicas do PAM, devido o mesmo possuir
somente um orifício de controle de ar, nesta forma devemos encher e esvaziar (descarregar) o
ar comprimido pelo mesmo orifício.
FIG.5.8.4 – Estrutura controle montada
Para que tenha a compreensão global do controle, está demonstrado na FIG.5.8.4 o
fluxo no circuito pneumático inteiro. Observamos que para o descarregamento, inicialmente
adotou-se um descarregamento direcionado para atmosfera, independente de uma análise do
suprimento de energia (consumo), ou seja, considera-se que o circuito sempre terá suprimento
suficiente para o controle do PAM.
Após esta prévia demonstração da estrutura básica para uma válvula proporcional e
sabendo que para estrutura final (FIG.5.1.1.1) temos 4 válvulas proporcionais,
implementaremos, neste momento , apenas o Controlador Nebuloso para uma única válvula
proporcional.
155
ALIMENTAÇÃO
PNEUMÁTICA
DESCARREGAMENTO
PNEUMÁTICO
FIG.5.8.5 – Superfície comportamental não treinada
FIG.5.8.6 – Concentração e dilatação de uma função de pertinência triangular.
Temos na FIG.5.8.5 as superfícies comportamentais da lógica nebulosa desenvolvida
no item anterior.Observamos que para alguns valores ativados pelas entradas, geram valores
nulos que comprometerão o controle de saída, angulação dos microservos-motores,
desfavorecendo o mecanismo.É necessário que tenhamos uma superfície que não tenha
156
valores comprometidos, e para isso devemos treinar o Sistema de Lógica Nebulosa através de
algumas técnicas, por exemplo concentração e dilatação de funções de pertinência, já visto no
item. 3.1.1.10 .Nesta forma através do treinamento do sistema podemos chegar a uma
superficie favorável intuitivamente.
A FIG.5.8.6 demonstra o comportamento dos operadores concentração e dilatação.
Esse tipo operação, favorece ou desfavorece na sensibilidade da função de pertinência,
devido diminuir ou aumentar o domínio da função.
Após o treinamento do sistema fuzzy observamos que as áreas de zeros na superfície,
tornaram-se descontínuas conforme mostrado na FIG.5.8.7.
ALIMENTAÇÃO
PNEUMÁTICA
DESCARREGAMENTO
PNEUMÁTICO
FIG.5.8.7 – Superfície comportamental treinada
Diferente das superfícies não treinadas (FIG.5.8.5), podemos observar que
independentimente da região ativada, temos valores de saída diferente de zero.
Para comparação com o sistema não treinado, segue abaixo nas FIG.5.8.8 até
FIG.5.8.11 as funções de pertinência de entra e saída do sistema treinado:
157
FIG.5.8.8 – Movimento Muscular
FIG.5.8.9 – Variação de pressão
158
FIG.5.8.10 – Alimentação do PAM
FIG.5.8.11 – Descarregamento do PAM
159
5.9 – IMPLEMENTAÇÃO FINAL DA INSTRUMENTAÇÃO E CONTROLE DO
EXOESQUELETO
5.9.1 – HARDWARE FINAL DE PROCESSAMENTO LOCAL
A partir do protótipo demonstrado no item 5.5, foi criado um novo hardware para
concepção final dos processamentos locais, com a utilização dos seguintes componente:
Arduino Fio, Bateria de Litío recerregavel, Acelerômetro ADXL335, Giroscópio e Muscle
Sensor V3.Os três ultimos já citados no item 5.4.3.
5.9.1.1 – ARDUÍNO FIO
“O Arduino Fio (FIG.5.9.1.1.1) é uma placa de microcontrolador baseado no
ATmega328P, é executado em 3.3V e 8MHz. Possui 14 entradas / saidas digitais (dos quais 6
podem ser usados como saídas PWM), 8 entradas analógicas, um ressonador on-board, um
botão de reset, e os furos para fixação de pinos. Ele tem conexões para a bateria de polímero
de lítio e inclui um circuito de carga ao longo do USB.Um XBee tomada está disponível na
parte inferior da placa.” (Arduino site oficial). A utilização desse hardware para a montagem
dos novos processamentos locais, como unidade de processamento, favorece devido o mesmo
está condicionado para a comunicação Xbee e baterias (com carregador usb).
Podemos visualizar na FIG.5.9.1.1.2 uma das unidades de processamentos locais,
instalada e protegida em caixa de acrílico. São utilizadas quatro unidades, duas com sinais de
aceleração linear triaxial, giroscópio com simples eixo, monitoramento de carga das baterias e
sinal EMG.Já as outras duas , com somente o sinal EMG, e monitoramento de carga das
baterias.
160
FIG.5.9.1.1.1 – Arduino Fio (ARDUINO FIO)
FIG.5.9.1.1.2 – Nova unidade de processamento local
5.9.1.2 – INSTALAÇÃO DAS UNIDADES DE PROCESSAMENTOS LOCAIS
A concepção da instalação das unidades de processamentos locais está baseada na
técnica de marcadores exposta no item 5.3, a qual leva em consideração os centros de
gravidade e orientações de cada seguimento do corpo. Na FIG.5.9.1.2.1 “a” e “b”
visualizamos a instalação de quatro unidades de processamento, e mais a unidade de
sensoriamento da marcha (Pé direito). Cada unidade está fixada à uma tira de pano com
velcro com à função de abraçadeira para fixação dos sistemas.
161
(a)
(b)
FIG.5.9.1.2.1 – Processamentos Locais
Considerando que os segmentos do corpo (Coxa + Perna) acionará dois PAM’s, foram
dispostos eletrodos diferencias considerando procedimentos de instalação do grupo europeu
de pesquisa (THE SENIAM PROJECT, 2013) .Esta grupo desenvolveu procedimentos para
otimização da capção de sinais eletromiográfico de superfície. As FIG.5.9.1.2.2 “b” e “c”
demonstram os pontos centrais de instalação para cada músculo. Neste presente trabalho foi
considerado, para efeito de teste do sistema , os músculos Reto femoral, Vasto Medial de cada
perna para o acionamento dos PAM’s.
FIG.5.9.1.2.2 – Instalação de Sensores (THE SENIAM PROJECT, 2013 – com
modificações).
O reto femoral tem a função de flexão do quadril e o vasto femoral possui a função de
extensão do joelho. Através desses movimentos musculares serão acionados os PAM’s.
162
5.9.1.3 – UNIDADE DE SENSORIAMENTO DAS FASES DA MARCHA
Para o sensoriamento da marcha foi utilizado dois sensores de força com função
resistiva denominados FSR (Force Sensing Resistors), ou seja, para uma aplicação de força
por área, ocorre uma variação de resistência inversa a força, que podemos verificar no na
FIG.5.9.1.3.1 . O sensor FSR trabalha em conjunto com um circuito condicionador de sinal,
que possui amplificadores operacionais para a relação proporcional de ganho. O fabricante
recomenda que seja feito um circuito de condicionamento de sinal conforme demonstrado na
FIG.5.9.1.3.2.
FIG.5.9.1.3.1 – Resistência x Força do FSR (INTERLINK ELECTRONICS, 2013).
FIG.5.9.1.3.2 - Circuito Recomendado pelo fabricante (INTERLINK ELECTRONICS, 2013).
Com objetivo de propotipagem rápida (utilização de hardware com fácil manuseio),
foi utilizado uma placa com caracteríscas de circuito semelhante a recomendação do
fabricante para o condicionamento de sinal (FIG.5.9.1.3.3.a), ou seja possui um CI “LM393”
163
com dois amplificadores operacionais, dois trimpot’s para a regulação de ganho, LED’s
indicativos de acionamento e pinagem exposta para a ligação de jumper’s . Foi retirado os
sensores originais para a soldagem dos FSR’s, conforme demonstrado na FIG.5.9.1.3.3.b
(a)
(b)
FIG.5.9.1.3.3 – Hardware condicionador de sinal.
Na FIG.5.9.1.3.4 é simbolizado uma resistência de nome Sensor 1 para o FSR. Nesta
figura esquemática está o circuito báse de condicionamento de sinal do hardware da
FIG.5.9.1.3.4. O funcionamento consiste em : Sem contato, o circuito fornece nas saídas
digitais, sinais de nível lógico alto (Bit 1), já com o ganho proporcional. Quando há o contato
inicial da pisada na marcha, o Sensor 1 que está ligado ao Amplificador 1, a força aplicada
gera uma diminuição da resistência ocasionando a queda no ganho, assim chaveando o
circuito para o nível lógico baixo (Bit 0). Este chaveamento do circuito nos possibilita
identificar o contato inicial e o pré balanço nas fases da marcha.
FIG.5.9.1.3.4 - Circuito básico de sensoriamento da marcha.
Na FIG.5.9.1.3.5 “a” e “b” podemos ver respectivamente o posicionamento dos FSR’s
e o circuito instalado no calçado. Este sinal gerado será direcionado ao processamento local
na perna, para depois ser tratado e “empacotado” e enviado ao sistema supervisório.
164
(a)
(b)
FIG.5.9.1.3.5 – Unidade de sensoriamento das fases da marcha.
5.9.1.4 – UNIDADE DE PROCESSAMENTO GLOBAL
A unidade de processamento global foi instalada em uma estrutura de mochila que é
utilizada pelo exército brasileiro.Como podemos visualizar nas FIG.5.9.1.4.1 “a” ,“b” e “c”
foi de fácil instalação o reservatório de ar comprimido na estrutura. Esta estrutura foi
projetada para descarregar todo o peso na cintura do usuário, assim livrando a carga da
colunado vertebral.Como podemos visualizar também nas figuras, toda a pneumática e
eletrônica está protegida por uma caixa de acrílico.
Na caixa de acrílico (FIG.5.9.1.4.2) foi instalada quatro unidades de válvulas
proporcionais, com mesmas funções da válvula desenvolvida no item 5.8. Em cada linha
pneumática está instalado manômetros para comparação dos valores analógicos com os
valores digitais dos sensores de Pressão MPX.
165
(a)
(b)
(c)
FIG.5.9.1.4.1 – Unidade de processamento global – Estrutura
FIG.5.9.1.4.2 – Unidade de processamento global – válvulas
Como podemos visualizar na FIG.5.9.1.4.3 as instalações eletrônicas consistem em: Placa
microcontrolada Arduino Mega sobreposta com shield Sensor, que possibilita a disposição de
toda a pinagem do microcontrolador, somado com opções de três slot’s para comunicação
XBEE, entradas de alimentação separadas, ou seja, alimentação dos servos separada da
alimentação da placa microcontrolada. Nesta mesma figura, está rachurado em vermelho a
localização dos sensores MPX5700, conectados em quatro portas analógicas dispostas pela
shield Sensor. Na mesma estrutura da válvula proporcional do item 5.8, é utilizado para cada
linha pneumática, dois servos motores para abertura e fechamento das vávulas, já descrito no
item 5.8 e demonstrado na FIG.5.8.3(Fluxo de atuação da válvula proporcional).
166
FIG.5.9.1.4.3 – Unidade de processamento global – Eletrônica
FIG.5.9.1.4.4 - Estrutura “Instrumentada”
Assim como no item 5.8 a FIG.5.8.4, que demonstra a alimentação e descarregamento
do PAM podemos visualizar na FIG.5.9.1.4.4 a forma global do fluxo de alimentação
pneumática do sistema do Exoesqueleto.
De acordo com a FIG.5.9.1.4.4, a alimentação pneumática está estocada no
reservatório de ar comprimido, que está rachurado na cor cinza, para depois ser direcionada
para as linhas pneumáticas, indicada pela seta vermelha, a qual é processada para o controle
dos PAM’s.
167
Como este trabalho foi direcionado para a instrumentação e controle de músculos
artificiais, ou seja , construção de um sistema eletrônico- pneumático.É sugerido pelo autor
deste trabalho a arquitetura demonstrada na FIG.5.9.1.4.5, que demonstra um sistema
mecânico genérico para os trabalhos futuros.
FIG5.9.1.4.5 – Implementação Global
Por fim visualizamos na FIG.5.9.1.4.6 “d” a integração de todo o sistema.
FIG.5.9.1.4.6 – Integração do Sistema
168
5.9.2 – SUPERVISÓRIO
O Sistema de Supervisão foi desenvolvido para análise dos dados EMG, de acelerações e
carga de baterias para monitoramento do usuário e coleta de dados para avaliação do
desempenho do Exoesqueleto. Na FIG.5.9.2.1 podemos visulizar as janelas dos dados
eletromiográficos, dos músculos reto femoral e vasto femoral para duas pernas.
FIG.5.9.2.1 – Interface Supervisório – Eletromiografia
FIG.5.9.2.2 – Lógica Supervisório – Eletromiografia
169
A lógica consiste em receber dados endereçáveis junto com dados de medição, por
exemplo:
Para EMG do músculo reto femoral o endereço é ECD, que significa eletromiografia
para flexão da coxa direita do exoesqueleto;
Os dados recebidos (Endereço + medição) são tratados serialmente, de tal forma que o
endereço identificado é filtrado e direcionado para o bloco de plotagem.
Todos os dados são concentrados em abas de acordo com o tipo de medição. E são
recebidos serialmente dos processamentos locais.
A FIG.5.9.2.3 demonstra aba do software com o monitoramento das baterias de cada
processamento local, com objetivo de verificar o nível crítico de carregamento das baterias.
FIG.5.9.2.3 – Interface Supervisório– Baterias
5.9.3 – SOFTWARES EMBARCADOS
Através do fluxo lógico na FIG.5.9.3.1 podemos identificar a interligação dos algorítimos
de programação do sistema de Instrumentação e Controle de um Exoesqueleto.
170
Os processamentos locais 1 e 2 enviam os “pacotes” de informação da aceleração em
três eixos, a velocidade angular com simple eixo, e os sinais EMG’s correspondente a coxa
direita e perna direita do usuário.
Já os processamentos locais 3 e 4 somente estão responsáveis em enviar para o
processamento global, pacotes com as informações dos sinais EMG’s da coxa esquerda e
perna esquerda junto com o sinais de sensoriamento da marcha.Para análise do sistema como
um todo, o sistema supervisório identifica todos os sinais dos processamentos locais
simultaneamente.
FIG.5.9.3.1 – Fluxo Lógico
5.9.3.1 – PROCESSAMENTOS LOCAIS ( 1, 2, 3 E 4)
O fluxo de programação dos processamentos locais está representado na
FIG.5.9.3.1.1.Trata-se da inicialização (Bloco 1) que carrega as bibliotecas e declarações de
variáveis, configuraçãoes (Bloco 2) que configura a velocidade da comunicação serial, filtro,
171
ordem do filtro, processa as informações das portas analógicas (Bloco 3), e por fim endereça e
envia os pacotes de informações (Bloco 4). Está no anexo 3, 4, 5 e 6 a programação em
linguagem C.
FIG.5.9.3.1.1 – Fluxo Lógico da Programação do Processamento Local.
5.9.3.2 – PROCESSAMENTO GLOBAL
O fluxo de programação do processamento global (FIG.5.9.3.2.1) começa com o Bloco 1
inicializando o sitema, para depois o Bloco dois carregar as bibliotecas e as declarações de
variáveis. Já nos blocos 3 à 6 ocorre pré rotinas que são chamadas de funções, e estas estão
entre um laço infinito. Podemos visualizar na FIG.5.9.3.2.1 que cada função possui uma
lógica que está representada no subfluxograma com os blocos de A até D. O Bloco A tem o
objetivo parecido com o bloco 1, inicialização da função. O bloco B tem a função de decisão,
a qual destina-se para análise de endereços.Por emplo:
Para o pacote com o endereço do processamento Local 1, é analizado o caracter “a”.
Caso seja este endereço o fluxo passa para o Bloco C, executa as funções de atuação e
172
controle na abertura e fechamento da válvula correspondente ao PAM que atua na
flexão do quadril da perna direita.
Assim para os respectivos endereço dos outros processamento locais, “b”, “c” e “d”
ocorrerá a atuação no PAM responsável pela extensão do joelho direito, PAM responsável
pela flexão do quadril perna esquerda e PAM responsável pela extensão do joelho esquerdo,
respectivamente.
Pode-se verificar no anexo 7 o software em linguagem C para o processamento global.
FIG.5.9.3.2.1 – Fluxo Lógico da Programação do Processamento Global.
173
5.9.4 – FILTROS DIGITAIS EMBARCADOS
Considerando filtros de abordagem direta e abrodagem analógico para digital, os quias
foram expostos no capítulo 4, será análisado o desenmpemho para seleção do melhor filtro
para o sistema do Exoesqueleto, ou seja, um filtro que melhor se adequa para o sinal do
sensor MPX5700.
O fabricante do MPX5700 recomenda o uso da Nota de aplicação AN1646
(FREESCALE SEMICONDUCTOR, 2013) , a qual recomenda o uso de um filtro passa-
baixa.O comportamento do sinal do sensor MPX sem filtro está demonstrado na FIG.5.9.4.1.
A Nota de aplicação AN1646 (FREESCALE SEMICONDUCTOR, 2013) também
recomenda a implantação de dois circuitos passa-baixa (FIG.5.9.4.2).
FIG.5.9.4.1 – Saída de sinal do sensor MPX5006
174
(a)
(b)
FIG.5.9.4.2 – Circuitos de condicionamento de sinais -Filtro RC Passa-Baixa
Apesar da recomendação do fabrinate, exposto anteriormente, será implantado filtros
digitais para retirada de sinais de ruído do MPX5700, utilizado no processamento global.
Para aplicação de filtros embarcados, foi utilizada a biblioteca Arduino signal filtering
library (Long J. , 2013), que está disponível no link:
https://github.com/jeroendoggen/Arduino-signal-filtering-library/tree/master/Filter
Este projeto é uma iniciativa livre para criar uma biblioteca Arduino para filtragens de
sinais. O site foi desenvolvido por Jason Long e gerada por GitHub Pages.
175
A FIG.5.9.4.3 mostra a estrutura e o fluxo de informações.Trata-se da coleta do sinal
pneumático (seta vermelha) convertida para um sinal elétrico com range de 0 à 5v(seta azul),
para finalmente ser “empacotado” e enviado a um desktop(seta verde).
FIG.5.9.4.3 – Floxo de sinal do hardware
As informações enviadas serialmente pelo hardware arduino será tratada e analisada em
uma interface LabView demonstrada na FIG.5.9.4.4.
FIG.5.9.4.4 – Interface basica para análise de filtros
176
FIG.5.9.4.5 – Lógica de programação - Coleta de sinais
A lógica de programação (FIG.5.9.4.5) consiste em uma porta serial que recebe o pacote
de informações de endereço e dados, que serão tratados, plotados e salvos em arquivos com
dados numéricos em colunas.Estes arquivos podem ser transformados para extensões “.txt” ou
“.xls”, assim gerando um banco de dados dos sinais - Sinal Bruto / Sinal Filtrado.
As FIG.5.9.4.6 à FIG.5.9.4.8 demonstram respectivamente os filtros FIR, Chebyshev
e Bessel. Podemos observar na ultima figura, uma atenuação mais acentuada, devido a banda
passante do filtro Bessel ser menor e o declive na zona de transição mais acentuado,
comparado com os filtros FIR e Chebyshev.
FIG.5.9.4.6 – Aplicação do Filtro FIR(Pressão(PSI) x Tempo (s))
177
FIG.5.9.4.7 – Aplicação do Filtro Chebyshev(Pressão(PSI) x Tempo (s))
FIG.5.9.4.8 – Aplicação do Filtro Bessel(Pressão(PSI) x Tempo (s))
6 - CONCLUSÃO
Como apresentado neste texto, foi desenvolvido aplicações inéditas na construção de
hardwares para instrumentação de um exoesqueleto parte inferior do corpo. Além das
aplicações ciêntificas de Lógica Nebulosa e Filtros digitais embarcados neste projeto, foi
construido uma solução de micro-válvulas proporcionais, as quais foram integradas ao
processamento global do exoesqueleto. O conjunto prcessamento global e processamento
locais integraram-se através de uma rede sem fio, nesta forma reduzindo a quantidade de fios
na instalação da instrumetação e facilitando o envio de sinais de aceleração para o sistema de
178
supervisão. Para todas essas aplicações possibilitou diversas vertentes de pesquisas assim
como surgiu vários problemas que serão apresentados no item 6.1.
6.1 – PROBLEMAS NO PROJETO E SUGESTÕES PARA TRABALHOS FUTUROS
6.1.1 – PROBLEMAS NO PROJETO
6.1.1.1 – ACLOPLAMENTO DE SERVOS MOTORES
Como podemos visualizar na FIG.5.9.1.4.3 foi necessário alinhar cada servo com
válvulas esféricas, assim surgindo um problema estrutural de alinhamento. Como a fabricação
da caixa proteção do sistema foi artesanal, não levando em consideração medidas de precisão,
o subsistema de travamento dos motores que consiste em uma haste engastada nas laterais da
caixa, acabou sendo fabricada com furos desalinhados, assim ocasionando na montagem com
inclinações no motores que podem comprometer a atuação dos mesmos, ou seja,
comprometendo a vida útil das engrenagens internas dos servos.
6.1.1.2 – POSICIONAMENTO DOS MEDIDORES DE SINAIS INERCIAIS
Como foi considerado neste trabalho o sitemas de marcadores no item 5.3.3 para o
posicionamento dos sensores inerciais, acelerômetro e giroscópio, ocorreram dificuldades no
posiconamento dos sensores com os centros de orientações de cada segmento do corpo
179
humano. Fisicamente os hardware’s limitam o posicionamento, devido a sua estrutura de
fabricação. O eixo do giroscópio não pode ser alinhado com os centros de gravidade e o
segmento de eixo do acelerômentro, pois na montagem do processamneto local, fisicamente
as portas analógicas só premitem que os barramentos de cada sensor estejam separados por
uma diferênça de centímetros, assim comprometendo o alinhamento físico dos sensores.
6.1.1.3 – MONTAGEM DO SISTEMA ELETROMIOGRÁFICO
Demonstrado na FIG.5.9.1.3.2 a instalação do sistema varia em torno de 40 minutos para
ser instalado, sem levar em consideração a instalação do sistema mecânico, o qual não foi
escopo de desenvolvimento neste presente trabalho.
6.1.1.4 – CAIXAS DE PROTEÇÃO DOS SISTEMAS DE PROCESSAMENTO LOCAIS
Assim como na caixa de proteção para o sistema de processamento global, a qual contém
o sistema eletrônico de processamento global e sistemas pneumáticos (válvulas
proporcionais), já citado no item 5.9.1.1. As caixas de proteção dos sistemas de
processamento locais também foram fabricados artesanalmente. Nesta forma, a dimensão das
caixas ficaram com um tamanho e peso considerável, podendo influênciar no deslocamento
dos eixos de medição, devido o escorregamento das faixas de velcro na codição de
movimentação do usuário.
180
6.1.2 – SUGESTÃO PARA TRABALHOS FUTUROS
6.1.2.1 – DESENVOLVIMENTO DO SISTEMA MECÂNICO
Como sugerido na FIG.5.9.1.4.5 é necessário implantar o sistema mecânico para finalizar
a construção do exoesqueleto parte inferior do corpo. Como não possuíamos o sistema
mecânico no LPM, a etapa de testes de carga planejada, ficou comprometida no presente
trabalho.
6.1.2.2 – ESTUDO DE POSICIONAMENTO E RESPOSTA DA MEDIÇÃO DOS SINAIS
ELETROMIOGRÁFICOS
O autor (VAUGHAN Christopher L. , 1999) expões em sua obra literária “Dynamics of
Human Gait”, dados (sinais) dos principais músculos dos membros inferiores de um indivíduo
(FIG.6.1.2.2.1). A geração de novos dados em conjunto com as recomendações de
procedimentos de instalação do grupo europeu de pesquisa (THE SENIAM PROJECT, 2013),
poderá servir como refinamento e sintonia de sinais para acionamento do exoesqueleto.
181
FIG.6.1.2.2.1 – Sinais EMG’s (VAUGHAN Christopher L., 1999).
6.2.2.3 – OTIMIZAÇÃO DO SISTEMA PNEUMÁTICO
Como no presente trabalho considerou-se que o sistema pneumático não possuia perdas,
ficou como sugestão para trabalhos futuros a simulação e implementação de um sistema
pneumático levando em consideração perda de carga pneumática.
182
7 - REFERÊNCIAS BIBLIOGRÁFICAS
ARDUINO FIO on-line: version 9.0 [online]. 2013. Disponível:
http://arduino.cc/en/Main/ArduinoBoardFio [capturado em 20 de dezembro 2013].
ARDUINO SITE OFICIAL. Arduino Fio: version 9.0 [online]. 2013. Disponível:
http://arduino.cc/en/Main/ArduinoBoardFio. [capturado em 5 novembro de 2013]
ALPER Said Emre, AZGIN Kivanc, AKIN Tayfun. A high-performance silicon-on-
insulator MEMS gyroscope operating at atmospheric pressure. Turkey, v. A 135, p.
34–42, July 2006.
ANALOG DEVICES – Accelerometer ADXL335, Small, Low Power, 3-Axis ±3 g: version
9.0 [online]. 2013. Disponível: http://www.analog.com/static/imported-
files/data_sheets/ADXL335.pdf. [capturado em 20 agosto de 2013]
ADVANCER TECHNOLOGIES - Muscle v3 Sensor on-line : version 9.0 [online]. 2012.
Disponível: http://www.advancertechnologies.com/p/muscle-sensor-v3.html [capturado
em 30 nov. 2012].
ALVES, A. J. O. eFLL – Uma Biblioteca Fuzzy para Arduino e Sistemas Embarcados on-
line : version 9.0 [online]. 2012. Disponível: http://softwarelivre.org/psl-pi/blog/aj-alves-
efll-%E2%80%93-uma-biblioteca-fuzzy-para-arduino-e-sistemas-embarcados [capturado
em 29 jan. 2013].
ANSEL Y., LERCH Ph. RENAUD Ph . Mode coupling aspects in a vibrating gyroscope. ,
Lausanne, v. 3, n. A 62, p. 576-581, January 1997.
BATUR C., SREERAMREDDY T., KHASAWNEH Q. Sliding mode control of a
simulated MEMS gyroscope. Akron- USA, v. 45, n. 1, p. 99–108, January 2006.
BALBINOT A, VALNER J. Instrumentação e fundamentos de medidas. 2. ed. Rio de
Janeiro: LTC, 2011. 262 p. il. 28 cm.
CIAMPA, Paulo Fracalossi. Projeto e desenvolvimento de um sensor MAP de pressão e
temperatura em LTCC para aplicações automotivas. Tese (Mestrado) - Universidade
de São Paulo, Escola Politécnica da Universidade de São Paulo -2011.
183
CHRISTOPHER, E. Carr, NEWMAN Dava J. Characterization of a lower-body
exoskeleton for simulation of space-suited locomotion, Michigan, v. 62, p. 308 – 323,
December 2007.
DATAWEEK ELETRONICS & COMUNICATIONS TECHNOLOGY - Applications
expand for downsized piezoelectric vibrating gyroscopes: version 9.0 [online]. 2013.
Disponível: http://www.dataweek.co.za/news.aspx?pklnewsid=19303 [capturado em 20
agosto de 2013].
EKMAN L. L. NEUROCIÊNCIA: Fundamentos para a reabilitação/ Laurie Lundy-Ekman;
[tradução Fernando Diniz Mundim ... et al.]. – Rio de Janeiro: Elsevier, 2008. Tradução
de: Neurocience: Fundamentals for rehabilitation (3. ed.) ISBN 978-85-352-2658-4.
FUJITA T. , MAENAKA K. , MIZUNO T. , MATSUOKA T. , KOJIMA T. , OSHIMA T. ,
MAEDA M. Disk-shaped bulk micromachined gyroscope with vacuum sealing.
Japan, v. 82, p. 198–204, November 1999.
FILTROS ELEC – Filtros.on-line: version 9.0 [online]. 2013. Disponível:
http://pt.scribd.com/doc/150480637/Filtros-Elec-0607[capturado em 04 de dezembro
2013].
GORDON, Keith E., FERRIS, Daniel P. Learning to walk with a robotic ankle exoskeleton.
Journal of Biomechanics, Michigan, 5 December 2006. p. 40.
GOMIDE, Fernando A. C., GUDWIN Ricardo R., TANSCHEIT Ricardo. CONCEITOS
FUNDAMENTAIS DA TEORIA DE CONJUNTOS FUZZY, LÓGICA FUZZY E
APLICAÇÕES. Campinas, UNICAMP, 12 Out. 2012. Notas de aulas ministrada aos
alunos.
INTERLINK ELECTRONICS: on-line: version 9.0 [online]. 2013. Disponível:
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/ForceFlex/2010-10-26-
DataSheet-FSR400-Layout2.pdf [capturado em 20 de dezembro 2013].
JARDIM, Bruno. Atuadores elásticos em série aplicados no desenvolvimento de um
exoesqueleto para membros inferiores. 2011. Tese (Mestrado Engenharia Mecânica) -
Universidade de São Paulo, Escola de Engenharia de São Carlos, 2009.
JIA-FAN, Zhang, CAN-JUN, Yang, YING, Chen, YU Zhang, YI-MING, Dong. Modeling
and control of a curved pneumatic muscle actuator for wearable elbow exoskeleton.
Hangzhou China, v. 18, p. 448–457, February 2008.
184
JYH-SHING Roger Jang, Chuen-Tsai Sun, Eiji Mizutani. Neuro-Fuzzy and Soft
Computing. 1. ed. United States of America: Editora Prentice-Hall, 1997. 56 p. il.
ISBN 0-13-261066-3.
KIGUCHI, Kazuo, RAHMAN, Mohammad Habibur, SASAKI, Makoto, TERAMOTO,
Kenbu. Development of a 3DOF mobile exoskeleton robot for human upper-limb
motion assist. Saga, v. 56, p. 678 – 691, December 2007.
LIRA, Roosevelt Brasileiro. Controle de um músculo pneumático Artificial usando sinais
eletromiográfico. 2012. Tese (Mestrado Engenharia Mecânica) - Instituto Militar de
Engenharia, 2012.
LONG J. – Arduino signal filtering library.on-line: version 9.0 [online]. 2013. Disponível:
https://github.com/jeroendoggen/Arduino-signal-filtering-
library/tree/master/Filter,[capturado em 04 dezembro. 2013] .
MALCOLM, P., FIERS, P., SEGERS, V. , VAN CAEKENBERGHE I., LENOIR M., DE
CLERCQ D. Experimental study on the role of the ankle push off in the walk-to-run
transition by means of a powered ankle-foot-exoskeleton. Ghent, v. 30, p. 322 – 327,
June 2009.
MORGADO JUNIOR, Fernando d’ Assunção. Modelagem e Controle de músculo
pneumático. 2012 Tese (Mestrado Engenharia Mecânica) - Instituto Militar de
Engenharia, 2011.
MURATA MFG. CO. LTD. – OPERATION MANUAL OF GYROSTAR- MODEL ENC-
03M TYPE: version 9.0 [online]. 2013. Disponível:
http://www.worlduc.com/UploadFiles/BlogFile/50%5C1557027%5Cenc-03m.pdf
[capturado em 20 agosto de 2013]
MARCHETTI, P. Henrique e DUARTE M. Instrumentação em Eletromiografia, Laboratório
de Biofísica, Escola de Educação Física e Esporte, Universidade de São Paulo - 2006.
http://lob.iv.fapesp.br.
MACHADO E. C. Notas de aulas – Amplificadores operacionais. Instituto de Ensino
Superiors da Amazônia– IESAM, 2011. E-mail: [email protected].
MELLO C. A. Notas de aulas – Processamento Digital de Sinais. Universidade Federal de
Pernambuco – UFPE, 2013. on-line: version 9.0 [online]. 2013. Disponível:
http://www.cin.ufpe.br/~cabm/ E-mail: [email protected].
RAHMAN, Md Akhlaquor, AL-JUMAILY, Adel. Design and development of a hand
exoskeleton for rehabilitation following stroke. Sydney, v. 41, p. 1028 – 1034, 2012.
185
RYOO Hyeok, LEE Youngjin, ROH Yongrae . Design and fabrication of a dual-axial
gyroscope with piezoelectric ceramics. 1998, Sourh Korea, v. 3, n. A 65, p. 54–60, July
1998.
RONCONI C. M. Revista Nanomáquinas - QUÍMICOS COMO ARQUITETOS DO
MUNDO MOLECULAR: version 9.0 [online]. 2013. Disponível:
http://cienciahoje.uol.com.br/revistach/2011/284/pdf_aberto/nanomaquinas284.pdf/at_do
wnload/file. [capturado em 19 agosto de 2013]
REGAZZI R. D., PEREIRA P.S., SILVA JR. M. F. Soluções práticas de Instrumentação e
Automação ed. 3R.KWG. Rio de Janeiro: PUC - Rio, 2005. 30 p. il. ISBN 85-905646-
1-4.
RENATO P. R. Microssistemas Integrados (MEMS). Instituto de Informática – UFRGS,
2005. E-mail: [email protected].
SANTOS, Diego Pedroso dos. Projeto mecânico de exoesqueleto robótico para membros
inferiores. 2011. Tese (Mestrado Engenharia Mecatrônica) - Universidade de São Paulo,
Escola Politécnica, 2011.
SANTOS, Sibele Bruno Soares dos. Detecção de Início de Ativação Muscular no
Eletromiograma com o Operador Teager-Kaiser. Dissertação (mestrado) – UFRJ/
COPPE/ Programa de Engenharia Biomédica, 2011.
SKOPEK Katrin, HERSHBERGER Mark C., GLADYSZ John A. Gyroscopes and the
chemical literature: 1852–2002. 2007, Erlangen, v. 251, p. 1723–1733, January 2007.
TECNODROP - NASA cria exoesqueleto que será acessível à população on-line : version 9.0
[online]. 2012. Disponível: http://www.tecnodrop.com/2012/10/nasa-cria-exoesqueleto-
que-sera-acessivel-a-populacao.html [capturado em 1 nov. 2012].
TRINDADE M. R. P. Notas de aulas - Logica Fuzzy e Controle Fuzzy. Instituto de Ensino
Superiors da Amazônia– IESAM, 2011. E-mail: [email protected].
THE SENIAM PROJECT (Surface ElectroMyoGraphy for the Non-Invasive Assessment of
Muscles). European concerted action in the Biomedical Health and Research Program
(BIOMED II) of the European Union: version 9.0 [online]. 2013. Disponível:
http://www.seniam.org/. [capturado em 22 novembro de 2013].
VAUGHAN Christopher L, DAVIS Brian L, O’CONNOR Jeremy C. Dynamics of Human
Gait. 2. ed. South Africa: Kiboho Publishers, 1999. 141 p. il. ISBN 0-620-23558-6.
186
VELLOSO R. P. Protótipo de um Eletromiógrafo digital. Trabalho de Conclusão de Curso
submetido à Universidade Regional de Blumenau para a obtenção dos créditos na
disciplina Trabalho de Conclusão de Curso II do curso de Ciências da Computação —
Bacharelado, 2004.
YING, Chen, JIA-FAN, Zhang, CAN-JUN, Yang, BIN Niu. Design and hybrid control of
the pneumatic force-feedback systems for Arm-Exoskeleton by using on/off valve.
PR China, v. 17, p. 325–335, April 2007.
187
8 – APÊNDICES
188
8.1 - APËNDICE 1 – LÓGICA NEBULOSA VÁLVULA PROPORCIONAL
/*--------APËNDICE 1 - LÓGICA NEBULOSA VÁLVULA PROPORCIONAL --------------/
/INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO:HELTONCASTANHEIRA /
/Orientador: Prof. Maj. Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 17 DE ABRIL DE 2013 /
/------------------------------------------------------------------------------------------------------------*/
#include <Fuzzy.h>
#include <FuzzyComposition.h>
#include <FuzzyInput.h>
#include <FuzzyIO.h>
#include <FuzzyOutput.h>
#include <FuzzyRule.h>
#include <FuzzyRuleAntecedent.h>
#include <FuzzyRuleConsequent.h>
#include <FuzzySet.h>
#include <Servo.h>
Servo myservo_1; Servo myservo_2; // Criação de Objeto
// Declaração de Variáveis
float movmuscular=0;float varPress=0;
// Instanciando um objeto da biblioteca
Fuzzy* fuzzy = new Fuzzy();
/* APLICANDO AS FUNÇÕES DE PERTINÊNCIA ANTECEDENTES (MOVIMENTO
MUSCULAR)
Tracionado Neutro Contraido
1-|o o o|
189
| o o o o |
| o o |
| o o o o |
0-|o .......................o..............................o|
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 */
FuzzySet* tracionado = new FuzzySet(0, 0, 0, 5);
FuzzySet* neutro = new FuzzySet(3, 2.5, 2.5, 3);
FuzzySet* contraido = new FuzzySet(0, 5, 5, 5);
/* (VARIAÇÃO DE PRESSÃO)
Tracionado Neutro Contraido
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-|o .......................o..............................o|
0 1 2 3 4 5 6 */
FuzzySet* poucapress = new FuzzySet(0, 0, 0,5);
FuzzySet* mediapress = new FuzzySet(2, 2.5, 2.5, 3);
FuzzySet* muitapress = new FuzzySet(0, 5, 5, 5);
void setup(){
Serial.begin(9600);
myservo_1.attach(9);
myservo_2.attach(10);
// FuzzyInput 1
FuzzyInput* movmuscular = new FuzzyInput(1);
movmuscular->addFuzzySet(tracionado);
movmuscular->addFuzzySet(neutro);
movmuscular->addFuzzySet(contraido);
190
fuzzy->addFuzzyInput(movmuscular);
// FuzzyInput 2
FuzzyInput* varpress = new FuzzyInput(2);
varpress->addFuzzySet(poucapress);
varpress->addFuzzySet(mediapress);
varpress->addFuzzySet(muitapress);
fuzzy->addFuzzyInput(varpress);
// FuzzyOutput 1
/* (ALIMENTAÇÃO D0 MUSCULO)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-|o .......................o..............................o|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* alimmuscular = new FuzzyOutput(1);
FuzzySet* poucoaberto = new FuzzySet(0, 0, 5, 40);
alimmuscular->addFuzzySet(poucoaberto);
FuzzySet* aberto = new FuzzySet(28, 40, 55, 77);
alimmuscular->addFuzzySet(aberto);
FuzzySet* muitoaberto = new FuzzySet(70, 90, 100, 100);
alimmuscular->addFuzzySet(muitoaberto);
fuzzy->addFuzzyOutput(alimmuscular);
// FuzzyOutput 2
/* (DESCARREGAMENTO D0 MUSCULO)
PoucoAberto Aberto MuitoAberto
1-|o o o|
191
| o o o o |
| o o |
| o o o o |
0-|o .......................o..............................o|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* descmuscular = new FuzzyOutput(2);
FuzzySet*Poucoaberto = new FuzzySet(0, 0, 5, 40);
descmuscular->addFuzzySet(Poucoaberto);
FuzzySet* Aberto = new FuzzySet(28, 40, 55, 77);
descmuscular->addFuzzySet(Aberto);
FuzzySet* Muitoaberto = new FuzzySet(70, 90, 100, 100);
descmuscular->addFuzzySet(Muitoaberto);
fuzzy->addFuzzyOutput(descmuscular);
// CONSTRUÇÃO DE REGRAS
// REGRA 1
//"SE MovMuscular = Tracionado E VarPressão = PoucaPress
//ENTAO AlimMuscular = poucoAberto e Descmuscular=MuitoAberto"
FuzzyRuleAntecedent* ifMovmuscularTracionadoAndVarpressPoucapress = new
FuzzyRuleAntecedent();
ifMovmuscularTracionadoAndVarpressPoucapress->joinWithAND(tracionado, poucapress);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto =
new FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto->addOutput(poucoaberto);
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto->addOutput(Muitoaberto);
192
FuzzyRule* fuzzyRule1 = new FuzzyRule(1,
ifMovmuscularTracionadoAndVarpressPoucapress,
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto);
fuzzy->addFuzzyRule(fuzzyRule1);
// REGRA 2
//"SE MovMuscular = Neutro E VarPressão = MediaPress ENTAO AlimMuscular = aberto e
Descmuscular=Aberto"
FuzzyRuleAntecedent* ifMovmuscularNeutroAndVarpressMediapress = new
FuzzyRuleAntecedent();
ifMovmuscularNeutroAndVarpressMediapress->joinWithAND(neutro, mediapress);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularAberto = new
FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularAberto->addOutput(aberto);
thenAlimmuscularpoucoabertoAndDescmuscularAberto->addOutput(Aberto);
FuzzyRule* fuzzyRule2 = new FuzzyRule(2,
ifMovmuscularNeutroAndVarpressMediapress,
thenAlimmuscularpoucoabertoAndDescmuscularAberto);
fuzzy->addFuzzyRule(fuzzyRule2);
// REGRA 3
//"SE MovMuscular = Contraido E VarPressão = MuitaPress ENTAO AlimMuscular =
MuitoAberto e Descmuscular=PoucoAberto"
FuzzyRuleAntecedent* ifMovmuscularContraidoAndVarpressMuitapress = new
FuzzyRuleAntecedent();
ifMovmuscularContraidoAndVarpressMuitapress->joinWithAND(contraido, muitapress);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto =
new FuzzyRuleConsequent();
193
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto->addOutput(muitoaberto);
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto->addOutput(Poucoaberto);
FuzzyRule* fuzzyRule3 = new FuzzyRule(3,
ifMovmuscularContraidoAndVarpressMuitapress,
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto);
fuzzy->addFuzzyRule(fuzzyRule3);
}
void loop(){
float Movmuscular;
float VarPress;
float potValue_1;
float potValue_2;
float M_M;
float V_P;
potValue_1 = analogRead(0); //Leitura do valor crisp do Potênciometro 1
potValue_2 = analogRead(5); //Leitura do valor crisp do Potênciometro 2
//Condicionando a resolução de 10 bits
Movmuscular=5*potValue_1/1023;
VarPress=5*potValue_2/1023;
//Visualização pela serial
Serial.print("SINAL MUSC: ");
Serial.println(Movmuscular);
Serial.print("VAR PRESS: ");
Serial.println(VarPress);
//Fuzificação
fuzzy->setInput(1,Movmuscular);
fuzzy->setInput(2, VarPress);
194
fuzzy->fuzzify();
Serial.print("MOVIMENTO MUSCULAR:");
Serial.print(tracionado->getPertinence());
Serial.print(", ");
Serial.print(neutro->getPertinence());
Serial.print(", ");
Serial.println(contraido->getPertinence());
Serial.print("VARIACAO DE PRESSAO: ");
Serial.print(poucapress->getPertinence());
Serial.print(", ");
Serial.print(mediapress->getPertinence());
Serial.print(", ");
Serial.println(muitapress->getPertinence());
//Desfuzificação
int output1 = fuzzy->defuzzify(1);
int output2 = fuzzy->defuzzify(2);
//Mapeamento e controle de servos entre 0 à 90 graus rad
M_M = map(output1, 0, 89, 0, 89);
myservo_1.write(M_M);
V_P = map(output2, 89, 0, 89, 0);
myservo_2.write(V_P);
Serial.print("ALIMENTACAO D0 MUSCULO: ");
Serial.print(output1);
Serial.print(",DESCARREGAMENTO D0 MUSCULO: ");
Serial.println(output2);
delay(5);
}
//--------------------------------------------------------------------------------------------------------------//
195
8.2 - APËNDICE 2 – PROCESSAMENTO LOCAL (PROTÓTIPO)
/*----------------APËNDICE 2 - PROCESSAMENTO LOCAL (PROTÓTIPO)-----------------/
/INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO: HELTON CASTANHEIRA /
/Orientador: Prof. Maj Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 21 DE AGOSTO DE 2013 /
/--------------------------------------------------------------------------------------------------------------*/
// Constantes que representam pinos adicionais de alimentação e
// pinos das portas analógicas
const int groundpin = 13; // Pino adicional de referência - GND
const int powerpin = 12; // Pino adicional de alimentação - VS
const int groundpin_g = 11; // Pino adicional de referência - GND
const int powerpin_g = 9; // Pino adicional de alimentação - VS
const int epin = A0; // Porta analógica EMG
const int xpin = A1; // Eixo x do acelerômetro
const int ypin = A2; // Eixo y do acelerômetro
const int zpin = A3; // Eixo z do acelerômetro
const int gpin = A4; // Eixo simple giroscópio
void setup()
{
// Inicialização da serial
Serial.begin(9600);
//Inicialização dos pinos adicionais de alimentação
pinMode(groundpin, OUTPUT);
pinMode(powerpin, OUTPUT);
digitalWrite(groundpin, LOW);
196
digitalWrite(powerpin, HIGH);
pinMode(groundpin_g, OUTPUT);
pinMode(powerpin_g, OUTPUT);
digitalWrite(groundpin_g, LOW);
digitalWrite(powerpin_g, HIGH);
}
void loop()
{
Serial.print("AN0:"); //Endereço para o sinal eixo x acelerômetro
Serial.print(analogRead(xpin)); //Sinal analógico eixo x acelerômetro
Serial.print("\t");
Serial.print(",AN1:"); //Endereço para o sinal eixo y acelerômetro
Serial.print(analogRead(ypin)); //Sinal analógico eixo y acelerômetro
Serial.print("\t");
Serial.print(",AN2:"); //Endereço para o sinal eixo z acelerômetro
Serial.print(analogRead(zpin)); //Sinal analógico eixo z acelerômetro
Serial.println();
Serial.print(",AN3:"); //Endereço para o sinal giroscópio
Serial.print(analogRead(gpin)); //Sinal analógico giroscópio
Serial.println();
Serial.print(",AN4:"); //Endereço para o sinal EMG
Serial.print(analogRead(epin)); //Sinal analógico EMG
Serial.println();
// atraso para o próximo loop
delay(100);
}
//--------------------------------------------------------------------------------------------------------------//
197
8.3 - APËNDICE 3 – PROCESSAMENTO LOCAL (COXA DIREITA)
/*---------APËNDICE 3 - PROCESSAMENTO LOCAL (COXA DIREITA)---------------------/
/INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO: HELTON CASTANHEIRA /
/Orientador: Prof. Maj Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 23 DE NOVEMBRO DE 2013 /
/--------------------------------------------------------------------------------------------------------------*/
// Constantes que representam pinos adicionais de alimentação e
// pinos das portas analógicas
//PINAGEM PARA ARDUINO FIO
//ACELERÔMETRO
// ALIMENTAÇÃO PIN LÓGICOS
//(A4 --> gnd , D13--> VCC), (A7 --> X_OUT, A6 --> Y_OUT, A5 --> Z_OUT)
//GIROSCÓPIO
//(D12 --> GND , A1 --> VCC), (A0 --> SINGLE AXIS)
//EMG
//(PIN 3,3V --> +VS , PIN GND--> GND), (A3 --> SIG)
// BATERIA
//( ) , ( A2 --> + BATERIA)
// DECLARAÇÃO PINOS DE ALIMENTAÇÕES
const int gnd_acel = 18;
const int vcc_acel = 13;
const int gnd_giros = 12;
const int vcc_giros = 15;
// DECLARAÇÃO PINOS DE DADOS
const int acel_xpin = A7; // Eixo x do acelerômetro
198
const int acel_ypin = A6; // Eixo y do acelerômetro
const int acel_zpin = A5; // Eixo z do acelerômetro
const int gy_pin = A0; // Pino eixo simple Giroscópio
const int emg_pin = A3; // Pino EMG
const int bat_pin = A2; // Pino da bateria
// DECLARAÇÃO VARIÁVEIS GERAIS
int acel_x, acel_x_ft;
int acel_y, acel_y_ft;
int acel_z, acel_z_ft;
int gy, gy_ft;
float emg, emg_ft;
float EMG,BAT,bat;
void setup()
{
// Inicialização da serial
Serial.begin(38400);
//Inicialização dos pinos adicionais de alimentação
// Acelerômetro
pinMode(gnd_acel, OUTPUT);
pinMode(vcc_acel, OUTPUT);
digitalWrite(gnd_acel, LOW);
digitalWrite(vcc_acel, HIGH);
// Giroscópio
pinMode(gnd_giros, OUTPUT);
pinMode(vcc_giros, OUTPUT);
digitalWrite(gnd_giros, LOW);
digitalWrite(vcc_giros, HIGH);
}
199
void loop()
{
Serial.print("X"); //Endereço para o sinal eixo x acelerômetro
acel_x=analogRead(acel_xpin);
Serial.print(acel_x); //Sinal analógico eixo x acelerômetro
Serial.print("Y"); //Endereço para o sinal eixo y acelerômetro
acel_y=analogRead(acel_ypin);
Serial.print(acel_y); //Sinal analógico eixo y acelerômetro
Serial.print("Z"); //Endereço para o sinal eixo z acelerômetro
acel_z=analogRead(acel_zpin);
Serial.print(acel_z); //Sinal analógico eixo z acelerômetro
Serial.print("W"); //Endereço para o sinal giroscópio
gy=analogRead(gy_pin);
Serial.print(gy);
Serial.print("a"); //Endereço para o sinal EMG
emg=analogRead(emg_pin);
EMG=3.3*emg/1023;
Serial.print(EMG);
Serial.print("1"); //Endereço para o sinal da bateria
bat=analogRead(bat_pin);
BAT=3.3*bat/1023;
Serial.print(BAT);
delay(100);
}
//--------------------------------------------------------------------------------------------------------------//
200
8.4 - APËNDICE 4 – PROCESSAMENTO LOCAL (PERNA DIREITA)
/*------------APÊNDICE 4 - PROCESSAMENTO LOCAL (PERNA DIREITA)----------------/
/INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO: HELTON CASTANHEIRA /
/Orientador: Prof. Maj Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 18 DE SETEMBRO DE 2013 /
/--------------------------------------------------------------------------------------------------------------*/
// Constantes que representam pinos adicionais de alimentação e
// pinos das portas analógicas
//PINAGEM PARA ARDUINO FIO
//ACELERÔMETRO
// ALIMENTAÇÃO PIN LÓGICOS
//(A4 --> gnd , D13--> VCC), (A7 --> X_OUT, A6 --> Y_OUT, A5 --> Z_OUT)
//GIROSCÓPIO
//(D12 --> GND , A1 --> VCC), (A0 --> SINGLE AXIS)
//EMG
//(PIN 3,3V --> +VS , PIN GND--> GND), (A3 --> SIG)
// BATERIA
//( ) , ( A2 --> + BATERIA)
// DECLARAÇÃO PINOS DE ALIMENTAÇÕES
const int gnd_acel = 18;
const int vcc_acel = 13;
const int gnd_giros = 12;
const int vcc_giros = 15;
// DECLARAÇÃO PINOS DE DADOS
const int acel_xpin = A7; // Eixo x do acelerômetro
201
const int acel_ypin = A6; // Eixo y do acelerômetro
const int acel_zpin = A5; // Eixo z do acelerômetro
const int gy_pin = A0; // Pino eixo simple Giroscópio
const int emg_pin = A3; // Pino EMG
const int bat_pin = A2; // Pino da bateria
// DECLARAÇÃO VARIÁVEIS GERAIS
int acel_x, acel_x_ft;
int acel_y, acel_y_ft;
int acel_z, acel_z_ft;
int gy, gy_ft;
float emg, emg_ft;
float EMG,BAT,bat;
void setup()
{
// Inicialização da serial
Serial.begin(38400);
//Inicialização dos pinos adicionais de alimentação
// Acelerômetro
pinMode(gnd_acel, OUTPUT);
pinMode(vcc_acel, OUTPUT);
digitalWrite(gnd_acel, LOW);
digitalWrite(vcc_acel, HIGH);
// Giroscópio
pinMode(gnd_giros, OUTPUT);
pinMode(vcc_giros, OUTPUT);
digitalWrite(gnd_giros, LOW);
digitalWrite(vcc_giros, HIGH);
}
202
void loop()
{
Serial.print("x"); //Endereço para o sinal eixo x acelerômetro
acel_x=analogRead(acel_xpin);
Serial.print(acel_x); //Sinal analógico eixo x acelerômetro
Serial.print("y"); //Endereço para o sinal eixo y acelerômetro
acel_y=analogRead(acel_ypin);
Serial.print(acel_y); //Sinal analógico eixo y acelerômetro
Serial.print("z"); //Endereço para o sinal eixo z acelerômetro
acel_z=analogRead(acel_zpin);
Serial.print(acel_z); //Sinal analógico eixo z acelerômetro
Serial.print("w"); //Endereço para o sinal giroscópio
gy=analogRead(gy_pin);
Serial.print(gy); //Sinal analógico giroscópio
Serial.print("b"); //Endereço para o sinal EMG
emg=analogRead(emg_pin);
EMG=3.3*emg/1023;
Serial.print(EMG); //Sinal analógico EMG
Serial.print("2"); //Endereço para o sinal da bateria
bat=analogRead(bat_pin);
BAT=3.3*bat/1023;
Serial.print(BAT); //Sinal analógico nivel da bateria*/
delay(100);
}
//--------------------------------------------------------------------------------------------------------------//
203
8.5 - APËNDICE 5 – PROCESSAMENTO LOCAL (COXA ESQUERDA)
/*-----------APËNDICE 5 - PROCESSAMENTO LOCAL (COXA ESQUERDA)--------------/
/INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO: HELTON CASTANHEIRA /
/Orientador: Prof. Maj Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 23 DE NOVEMBRO DE 2013 /
/--------------------------------------------------------------------------------------------------------------*/
// Constantes que representam pinos adicionais de alimentação e
// pinos das portas analógicas
//PINAGEM PARA ARDUINO FIO
// ALIMENTAÇÃO PIN LÓGICOS
//EMG
//(PIN 3,3V --> +VS , PIN GND--> GND), (A3 --> SIG)
// BATERIA
//( ) , ( A4 --> + BATERIA)
// DECLARAÇÃO PINOS DE DADOS
const int emg_pin = A5; // Pino EMG
const int bat_pin = A4; // Pino da bateria
// DECLARAÇÃO VARIÁVEIS GERAIS
float emg, emg_ft, bat, BAT;
float EMG;
void setup()
{
// Inicialização da serial
Serial.begin(38400);
}
204
void loop()
{
Serial.print("c"); //Endereço para o sinal EMG
emg=analogRead(emg_pin);
EMG=3.3*emg/1023;
Serial.print(EMG); //Sinal analógico EMG
Serial.print("3");
bat=analogRead(bat_pin);
BAT=3.3*bat/1023; //Endereço para o sinal da bateria
Serial.print(BAT); //Sinal analógico nivel da bateria*/
delay(100);
}
//--------------------------------------------------------------------------------------------------------------//
8.6 - APËNDICE 6 – PROCESSAMENTO LOCAL (PERNA ESQUERDA)
/*-------APËNDICE 6 - PROCESSAMENTO LOCAL (PERNA ESQUERDA)-----------------/
/INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO: HELTON CASTANHEIRA /
/Orientador: Prof. Maj Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 23 DE NOVEMBRO DE 2013 /
/--------------------------------------------------------------------------------------------------------------*/
// Constantes que representam pinos adicionais de alimentação e
// pinos das portas analógicas
//PINAGEM PARA ARDUINO FIO
205
// ALIMENTAÇÃO PIN LÓGICOS
//EMG
//(PIN 3,3V --> +VS , PIN GND--> GND), (A3 --> SIG)
// BATERIA
//( ) , ( A4 --> + BATERIA)
// DECLARAÇÃO PINOS DE DADOS
const int emg_pin = A5; // Pino EMG
const int bat_pin = A4; // Pino da bateria
// DECLARAÇÃO VARIÁVEIS GERAIS
float emg, emg_ft,BAT,bat;
float EMG;
void setup()
{
// Inicialização da serial
Serial.begin(38400);
}
void loop()
{
Serial.print("d"); //Endereço para o sinal EMG
emg=analogRead(emg_pin);
EMG=3.3*emg/1023;
Serial.print(EMG); //Sinal analógico EMG
Serial.print("4"); //Endereço para o sinal da bateria
bat=analogRead(bat_pin);
BAT=3.3*bat/1023;
Serial.print(BAT); //Sinal analógico nivel da bateria*/
delay(100);}
//--------------------------------------------------------------------------------------------------------------//
206
8.7 - APËNDICE 7 – LÓGICA NEBULOSA PARA EXOESQUELETO PARTE INFERIOR
/*-APËNDICE 7 - LÓGICA NEBULOSA PARA EXOESQUELETO PARTE INFERIOR --/
/ INSTITUTO MILITAR DE ENGENHARIA /
/ALUNO: HELTON CASTANHEIRA /
/Orientador: Prof. Maj. Jorge Audrin Morgado de Gois /
/RIO DE JANEIRO, 8 DE DEZEMBRO DE 2013 /
/--------------------------------------------------------------------------------------------------------------*/
#include <Fuzzy.h> // Biblioteca Fuzzy
#include <FuzzyComposition.h> // Biblioteca Fuzzy
#include <FuzzyInput.h> // Biblioteca Fuzzy
#include <FuzzyIO.h> // Biblioteca Fuzzy
#include <FuzzyOutput.h> // Biblioteca Fuzzy
#include <FuzzyRule.h> // Biblioteca Fuzzy
#include <FuzzyRuleAntecedent.h> // Biblioteca Fuzzy
#include <FuzzyRuleConsequent.h> // Biblioteca Fuzzy
#include <FuzzySet.h> // Biblioteca Fuzzy
#include <Servo.h> // Biblioteca Servos
#include <stdlib.h> // Biblioteca para a função atol()
Servo myservo_1; // Criação do objeto de controle do Servo
Servo myservo_2; // Criação do objeto de controle do Servo
Servo myservo_3; // Criação do objeto de controle do Servo
Servo myservo_4; // Criação do objeto de controle do Servo
Servo myservo_5; // Criação do objeto de controle do Servo
Servo myservo_6; // Criação do objeto de controle do Servo
Servo myservo_7; // Criação do objeto de controle do Servo
Servo myservo_8; // Criação do objeto de controle do Servo
207
// Declaração de Variáveis
float movmuscular_1=0; float varPress_1=0; float movmuscular_2=0; float varPress_2=0;
float movmuscular_3=0; float varPress_3=0; float movmuscular_4=0; float varPress_4=0;
// Instanciando um objeto da biblioteca
Fuzzy* fuzzy = new Fuzzy();
/* APLICANDO AS FUNÇÕES DE PERTINÊNCIA ANTECEDENTES
(MOVIMENTO MUSCULAR_1)
Tracionado Neutro Contraido
1-|o o o|
| o o o o |
| o o |
| o o o 0 |
0-| .........................................|
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 */
FuzzySet* tracionado_1 = new FuzzySet(0, 0, 0, 5);
FuzzySet* neutro_1 = new FuzzySet(3, 2.5, 2.5, 3);
FuzzySet* contraido_1 = new FuzzySet(0, 5, 5, 5);
/* (VARIAÇÃO DE PRESSÃO_1)
PoucaPress MediaPress MuitaPress
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| ....................................... |
0 1 2 3 4 5 6 7 */
FuzzySet* poucapress_1 = new FuzzySet(0, 0, 0,5);
FuzzySet* mediapress_1 = new FuzzySet(2, 2.5, 2.5, 3);
FuzzySet* muitapress_1 = new FuzzySet(0, 5, 5, 5);
208
/* APLICANDO AS FUNÇÕES DE PERTINÊNCIA ANTECEDENTES
(MOVIMENTO MUSCULAR_2)
Tracionado Neutro Contraido
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .......................................|
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 */
FuzzySet* tracionado_2 = new FuzzySet(0, 0, 0, 5);
FuzzySet* neutro_2 = new FuzzySet(3, 2.5, 2.5, 3);
FuzzySet* contraido_2 = new FuzzySet(0, 5, 5, 5);
/* (VARIAÇÃO DE PRESSÃO_2)
PoucaPress MediaPress MuitaPress
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .........................................|
0 1 2 3 4 5 6 7 */
FuzzySet* poucapress_2 = new FuzzySet(0, 0, 0,5);
FuzzySet* mediapress_2 = new FuzzySet(2, 2.5, 2.5, 3);
FuzzySet* muitapress_2 = new FuzzySet(0, 5, 5, 5);
/* APLICANDO AS FUNÇÕES DE PERTINÊNCIA ANTECEDENTES
(MOVIMENTO MUSCULAR_3)
Tracionado Neutro Contraido
1-|o o o|
| o o o o |
209
| o o |
| o o o o |
0-| .........................................|
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 */
FuzzySet* tracionado_3 = new FuzzySet(0, 0, 0, 5);
FuzzySet* neutro_3 = new FuzzySet(3, 2.5, 2.5, 3);
FuzzySet* contraido_3 = new FuzzySet(0, 5, 5, 5);
/* (VARIAÇÃO DE PRESSÃO_3)
PoucaPress MediaPress MuitaPress
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| ........................................|
0 1 2 3 4 5 6 7 */
FuzzySet* poucapress_3 = new FuzzySet(0, 0, 0,5);
FuzzySet* mediapress_3 = new FuzzySet(2, 2.5, 2.5, 3);
FuzzySet* muitapress_3 = new FuzzySet(0, 5, 5, 5);
/* APLICANDO AS FUNÇÕES DE PERTINÊNCIA ANTECEDENTES
(MOVIMENTO MUSCULAR_4)
Tracionado Neutro Contraido
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .........................................|
----------------------------------------
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 */
210
FuzzySet* tracionado_4 = new FuzzySet(0, 0, 0, 5);
FuzzySet* neutro_4 = new FuzzySet(3, 2.5, 2.5, 3);
FuzzySet* contraido_4 = new FuzzySet(0, 5, 5, 5);
/* (VARIAÇÃO DE PRESSÃO_4)
PoucaPress MediaPress MuitaPress
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .........................................|
0 1 2 3 4 5 6 7 */
FuzzySet* poucapress_4 = new FuzzySet(0, 0, 0,5);
FuzzySet* mediapress_4 = new FuzzySet(2, 2.5, 2.5, 3);
FuzzySet* muitapress_4 = new FuzzySet(0, 5, 5, 5);
void setup(){
Serial.begin(38400);
myservo_1.attach(9); // Endereçamento da Porta PWM(Porta 9)
myservo_2.attach(8); // Endereçamento da Porta PWM(Porta 8)
myservo_3.attach(7); // Endereçamento da Porta PWM(Porta 7)
myservo_4.attach(6); // Endereçamento da Porta PWM(Porta 6)
myservo_5.attach(5); // Endereçamento da Porta PWM(Porta 5)
myservo_6.attach(4); // Endereçamento da Porta PWM(Porta 4)
myservo_7.attach(3); // Endereçamento da Porta PWM(Porta 3)
myservo_8.attach(2); // Endereçamento da Porta PWM(Porta 2)
// FuzzyInput 1
FuzzyInput* movmuscular_1 = new FuzzyInput(1);
movmuscular_1->addFuzzySet(tracionado_1);
movmuscular_1->addFuzzySet(neutro_1);
211
movmuscular_1->addFuzzySet(contraido_1);
fuzzy->addFuzzyInput(movmuscular_1);
// FuzzyInput 2
FuzzyInput* varpress_1 = new FuzzyInput(2);
varpress_1->addFuzzySet(poucapress_1);
varpress_1->addFuzzySet(mediapress_1);
varpress_1->addFuzzySet(muitapress_1);
fuzzy->addFuzzyInput(varpress_1);
// FuzzyInput 3
FuzzyInput* movmuscular_2 = new FuzzyInput(3);
movmuscular_2->addFuzzySet(tracionado_2);
movmuscular_2->addFuzzySet(neutro_2);
movmuscular_2->addFuzzySet(contraido_2);
fuzzy->addFuzzyInput(movmuscular_2);
// FuzzyInput 4
FuzzyInput* varpress_2 = new FuzzyInput(4);
varpress_2->addFuzzySet(poucapress_2);
varpress_2->addFuzzySet(mediapress_2);
varpress_2->addFuzzySet(muitapress_2);
fuzzy->addFuzzyInput(varpress_2);
// FuzzyInput 5
FuzzyInput* movmuscular_3 = new FuzzyInput(5);
movmuscular_3->addFuzzySet(tracionado_3);
movmuscular_3->addFuzzySet(neutro_3);
movmuscular_3->addFuzzySet(contraido_3);
fuzzy->addFuzzyInput(movmuscular_3);
// FuzzyInput 6
FuzzyInput* varpress_3 = new FuzzyInput(6);
212
varpress_3->addFuzzySet(poucapress_3);
varpress_3->addFuzzySet(mediapress_3);
varpress_3->addFuzzySet(muitapress_3);
fuzzy->addFuzzyInput(varpress_3);
// FuzzyInput 7
FuzzyInput* movmuscular_4 = new FuzzyInput(7);
movmuscular_4->addFuzzySet(tracionado_4);
movmuscular_4->addFuzzySet(neutro_4);
movmuscular_4->addFuzzySet(contraido_4);
fuzzy->addFuzzyInput(movmuscular_4);
// FuzzyInput 8
FuzzyInput* varpress_4 = new FuzzyInput(8);
varpress_4->addFuzzySet(poucapress_4);
varpress_4->addFuzzySet(mediapress_4);
varpress_4->addFuzzySet(muitapress_4);
fuzzy->addFuzzyInput(varpress_4);
// FuzzyOutput 1
/* (ALIMENTAÇÃO D0 MUSCULO_1)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .........................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* alimmuscular_1 = new FuzzyOutput(1);
FuzzySet* poucoaberto_1 = new FuzzySet(0, 0, 5, 40);
alimmuscular_1->addFuzzySet(poucoaberto_1);
213
FuzzySet* aberto_1 = new FuzzySet(28, 40, 55, 77);
alimmuscular_1->addFuzzySet(aberto_1);
FuzzySet* muitoaberto_1 = new FuzzySet(70, 90, 100, 100);
alimmuscular_1->addFuzzySet(muitoaberto_1);
fuzzy->addFuzzyOutput(alimmuscular_1);
// FuzzyOutput 2
/* (DESCARREGAMENTO D0 MUSCULO_1)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| ........................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* descmuscular_1 = new FuzzyOutput(2);
FuzzySet*Poucoaberto_1 = new FuzzySet(0, 0, 5, 40);
descmuscular_1->addFuzzySet(Poucoaberto_1);
FuzzySet* Aberto_1 = new FuzzySet(28, 40, 55, 77);
descmuscular_1->addFuzzySet(Aberto_1);
FuzzySet* Muitoaberto_1 = new FuzzySet(70, 90, 100, 100);
descmuscular_1->addFuzzySet(Muitoaberto_1);
fuzzy->addFuzzyOutput(descmuscular_1);
// FuzzyOutput 3
/* (ALIMENTAÇÃO D0 MUSCULO_2)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
214
| o o o o |
0-| ......................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* alimmuscular_2 = new FuzzyOutput(3);
FuzzySet* poucoaberto_2 = new FuzzySet(0, 0, 5, 40);
alimmuscular_2->addFuzzySet(poucoaberto_2);
FuzzySet* aberto_2 = new FuzzySet(28, 40, 55, 77);
alimmuscular_2->addFuzzySet(aberto_2);
FuzzySet* muitoaberto_2 = new FuzzySet(70, 90, 100, 100);
alimmuscular_2->addFuzzySet(muitoaberto_2);
fuzzy->addFuzzyOutput(alimmuscular_2);
// FuzzyOutput 4
/* (DESCARREGAMENTO D0 MUSCULO_2)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| ......................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* descmuscular_2 = new FuzzyOutput(4);
FuzzySet*Poucoaberto_2 = new FuzzySet(0, 0, 5, 40);
descmuscular_2->addFuzzySet(Poucoaberto_2);
FuzzySet* Aberto_2 = new FuzzySet(28, 40, 55, 77);
descmuscular_2->addFuzzySet(Aberto_2);
FuzzySet* Muitoaberto_2 = new FuzzySet(70, 90, 100, 100);
descmuscular_2->addFuzzySet(Muitoaberto_2);
fuzzy->addFuzzyOutput(descmuscular_2);
215
// FuzzyOutput 5
/* (ALIMENTAÇÃO D0 MUSCULO_3)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .........................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* alimmuscular_3 = new FuzzyOutput(5);
FuzzySet* poucoaberto_3 = new FuzzySet(0, 0, 5, 40);
alimmuscular_3->addFuzzySet(poucoaberto_3);
FuzzySet* aberto_3 = new FuzzySet(28, 40, 55, 77);
alimmuscular_3->addFuzzySet(aberto_3);
FuzzySet* muitoaberto_3 = new FuzzySet(70, 90, 100, 100);
alimmuscular_3->addFuzzySet(muitoaberto_3);
fuzzy->addFuzzyOutput(alimmuscular_3);
// FuzzyOutput 6
/* (DESCARREGAMENTO D0 MUSCULO_3)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| .........................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* descmuscular_3 = new FuzzyOutput(6);
FuzzySet*Poucoaberto_3 = new FuzzySet(0, 0, 5, 40);
216
descmuscular_3->addFuzzySet(Poucoaberto_3);
FuzzySet* Aberto_3 = new FuzzySet(28, 40, 55, 77);
descmuscular_3->addFuzzySet(Aberto_3);
FuzzySet* Muitoaberto_3 = new FuzzySet(70, 90, 100, 100);
descmuscular_3->addFuzzySet(Muitoaberto_3);
fuzzy->addFuzzyOutput(descmuscular_3);
// FuzzyOutput 7
/* (ALIMENTAÇÃO D0 MUSCULO_4)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
| o o |
| o o o o |
0-| ......................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* alimmuscular_4 = new FuzzyOutput(7);
FuzzySet* poucoaberto_4 = new FuzzySet(0, 0, 5, 40);
alimmuscular_4->addFuzzySet(poucoaberto_4);
FuzzySet* aberto_4 = new FuzzySet(28, 40, 55, 77);
alimmuscular_4->addFuzzySet(aberto_4);
FuzzySet* muitoaberto_4 = new FuzzySet(70, 90, 100, 100);
alimmuscular_4->addFuzzySet(muitoaberto_4);
fuzzy->addFuzzyOutput(alimmuscular_4);
// FuzzyOutput 8
/* (DESCARREGAMENTO D0 MUSCULO_4)
PoucoAberto Aberto MuitoAberto
1-|o o o|
| o o o o |
217
| o o |
| o o o o |
0-| .........................................|
0 10 20 30 40 50 60 70 80 90 */
FuzzyOutput* descmuscular_4 = new FuzzyOutput(8);
FuzzySet*Poucoaberto_4 = new FuzzySet(0, 0, 5, 40);
descmuscular_4->addFuzzySet(Poucoaberto_4);
FuzzySet* Aberto_4 = new FuzzySet(28, 40, 55, 77);
descmuscular_4->addFuzzySet(Aberto_4);
FuzzySet* Muitoaberto_4 = new FuzzySet(70, 90, 100, 100);
descmuscular_4->addFuzzySet(Muitoaberto_4);
fuzzy->addFuzzyOutput(descmuscular_4);
//----------------------CONSTRUÇÃO DE REGRAS - VÁLVULA 1-----------------------------//
// REGRA 1
//"SE MovMuscular = Tracionado E VarPressão = PoucaPress
//ENTAO AlimMuscular = poucoAberto e Descmuscular=MuitoAberto"
FuzzyRuleAntecedent* ifMovmuscularTracionadoAndVarpressPoucapress_1 = new...
...FuzzyRuleAntecedent();
ifMovmuscularTracionadoAndVarpressPoucapress_1->joinWithAND(tracionado_1,
poucapress_1);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_1 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_1-
>addOutput(poucoaberto_1);
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_1-
>addOutput(Muitoaberto_1);
218
FuzzyRule* fuzzyRule1 = new FuzzyRule(1,
ifMovmuscularTracionadoAndVarpressPoucapress_1,...
...thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_1);
fuzzy->addFuzzyRule(fuzzyRule1);
// REGRA 2
//"SE MovMuscular = Neutro E VarPressão = MediaPress ENTAO AlimMuscular = aberto e
...Descmuscular=Aberto"
FuzzyRuleAntecedent* ifMovmuscularNeutroAndVarpressMediapress_1 = new
FuzzyRuleAntecedent();
ifMovmuscularNeutroAndVarpressMediapress_1->joinWithAND(neutro_1, mediapress_1);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularAberto_1 = new...
...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularAberto_1->addOutput(aberto_1);
thenAlimmuscularpoucoabertoAndDescmuscularAberto_1->addOutput(Aberto_1);
FuzzyRule* fuzzyRule2 = new FuzzyRule(2,
ifMovmuscularNeutroAndVarpressMediapress_1,...
...thenAlimmuscularpoucoabertoAndDescmuscularAberto_1);
fuzzy->addFuzzyRule(fuzzyRule2);
// REGRA 3
//"SE MovMuscular = Contraido E VarPressão = MuitaPress ENTAO AlimMuscular =
MuitoAberto e... ...Descmuscular=PoucoAberto"
FuzzyRuleAntecedent* ifMovmuscularContraidoAndVarpressMuitapress_1 = new
FuzzyRuleAntecedent();
ifMovmuscularContraidoAndVarpressMuitapress_1->joinWithAND(contraido_1,
muitapress_1);
// Instancinado um Consequente para a expressao
219
FuzzyRuleConsequent* thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_1 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_1-
>addOutput(muitoaberto_1);
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_1-
>addOutput(Poucoaberto_1);
FuzzyRule* fuzzyRule3 = new FuzzyRule(3,
ifMovmuscularContraidoAndVarpressMuitapress_1,...
...thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_1);
fuzzy->addFuzzyRule(fuzzyRule3);
//---------------------CONSTRUÇÃO DE REGRAS - VÁLVULA 2------------------------------//
// REGRA 4
//"SE MovMuscular = Tracionado E VarPressão = PoucaPress
//ENTAO AlimMuscular = poucoAberto e Descmuscular=MuitoAberto"
FuzzyRuleAntecedent* ifMovmuscularTracionadoAndVarpressPoucapress_2 = new...
...FuzzyRuleAntecedent();
ifMovmuscularTracionadoAndVarpressPoucapress_2->joinWithAND(tracionado_2,
poucapress_2);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_2 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_2-
>addOutput(poucoaberto_2);
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_2-
>addOutput(Muitoaberto_2);
FuzzyRule* fuzzyRule4 = new FuzzyRule(4,
ifMovmuscularTracionadoAndVarpressPoucapress_2,...
...thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_2);
220
fuzzy->addFuzzyRule(fuzzyRule4);
// REGRA 5
//"SE MovMuscular = Neutro E VarPressão = MediaPress ENTAO AlimMuscular = aberto
e... ...Descmuscular=Aberto"
FuzzyRuleAntecedent* ifMovmuscularNeutroAndVarpressMediapress_2 = new
FuzzyRuleAntecedent();
ifMovmuscularNeutroAndVarpressMediapress_2->joinWithAND(neutro_2, mediapress_2);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularAberto_2 = new...
...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularAberto_2->addOutput(aberto_2);
thenAlimmuscularpoucoabertoAndDescmuscularAberto_2->addOutput(Aberto_2);
FuzzyRule* fuzzyRule5 = new FuzzyRule(5,
ifMovmuscularNeutroAndVarpressMediapress_2,...
...thenAlimmuscularpoucoabertoAndDescmuscularAberto_2);
fuzzy->addFuzzyRule(fuzzyRule5);
// REGRA 6
//"SE MovMuscular = Contraido E VarPressão = MuitaPress ENTAO AlimMuscular =
MuitoAberto e... ...Descmuscular=PoucoAberto"
FuzzyRuleAntecedent* ifMovmuscularContraidoAndVarpressMuitapress_2 = new
FuzzyRuleAntecedent();
ifMovmuscularContraidoAndVarpressMuitapress_2->joinWithAND(contraido_2,
muitapress_2);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_2 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
221
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_2-
>addOutput(muitoaberto_2);
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_2-
>addOutput(Poucoaberto_2);
FuzzyRule* fuzzyRule6 = new FuzzyRule(6,
ifMovmuscularContraidoAndVarpressMuitapress_2,...
...thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_2);
fuzzy->addFuzzyRule(fuzzyRule6);
//-------------------CONSTRUÇÃO DE REGRAS - VÁLVULA 3--------------------------------//
// REGRA 7
//"SE MovMuscular = Tracionado E VarPressão = PoucaPress
//ENTAO AlimMuscular = poucoAberto e Descmuscular=MuitoAberto"
FuzzyRuleAntecedent* ifMovmuscularTracionadoAndVarpressPoucapress_3 = new...
...FuzzyRuleAntecedent();
ifMovmuscularTracionadoAndVarpressPoucapress_3->joinWithAND(tracionado_3,
poucapress_3);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_3 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_3-
>addOutput(poucoaberto_3);
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_3-
>addOutput(Muitoaberto_3);
FuzzyRule* fuzzyRule7 = new FuzzyRule(7,
ifMovmuscularTracionadoAndVarpressPoucapress_3,...
...thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_3);
fuzzy->addFuzzyRule(fuzzyRule7);
// REGRA 8
222
//"SE MovMuscular = Neutro E VarPressão = MediaPress ENTAO AlimMuscular = aberto
e... ...Descmuscular=Aberto"
FuzzyRuleAntecedent* ifMovmuscularNeutroAndVarpressMediapress_3 = new
FuzzyRuleAntecedent();
ifMovmuscularNeutroAndVarpressMediapress_3->joinWithAND(neutro_3, mediapress_3);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularAberto_3 = new...
...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularAberto_3->addOutput(aberto_3);
thenAlimmuscularpoucoabertoAndDescmuscularAberto_3->addOutput(Aberto_3);
FuzzyRule* fuzzyRule8 = new FuzzyRule(8,
ifMovmuscularNeutroAndVarpressMediapress_3,...
...thenAlimmuscularpoucoabertoAndDescmuscularAberto_3);
fuzzy->addFuzzyRule(fuzzyRule8);
// REGRA 9
//"SE MovMuscular = Contraido E VarPressão = MuitaPress ENTAO AlimMuscular =
MuitoAberto e... ...Descmuscular=PoucoAberto"
FuzzyRuleAntecedent* ifMovmuscularContraidoAndVarpressMuitapress_3 = new
FuzzyRuleAntecedent();
ifMovmuscularContraidoAndVarpressMuitapress_3->joinWithAND(contraido_3,
muitapress_3);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_3 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_3-
>addOutput(muitoaberto_3);
223
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_3-
>addOutput(Poucoaberto_3);
FuzzyRule* fuzzyRule9 = new FuzzyRule(9,
ifMovmuscularContraidoAndVarpressMuitapress_3,...
...thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_3);
fuzzy->addFuzzyRule(fuzzyRule9);
//---------------------CONSTRUÇÃO DE REGRAS - VÁLVULA 4------------------------------//
// REGRA 10
//"SE MovMuscular = Tracionado E VarPressão = PoucaPress
//ENTAO AlimMuscular = poucoAberto e Descmuscular=MuitoAberto"
FuzzyRuleAntecedent* ifMovmuscularTracionadoAndVarpressPoucapress_4 = new...
...FuzzyRuleAntecedent();
ifMovmuscularTracionadoAndVarpressPoucapress_4->joinWithAND(tracionado_4,
poucapress_4);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_4 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_4-
>addOutput(poucoaberto_4);
thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_4-
>addOutput(Muitoaberto_4);
FuzzyRule* fuzzyRule10 = new FuzzyRule(10,
ifMovmuscularTracionadoAndVarpressPoucapress_4,...
...thenAlimmuscularpoucoabertoAndDescmuscularMuitoAberto_4);
fuzzy->addFuzzyRule(fuzzyRule10);
// REGRA 11
//"SE MovMuscular = Neutro E VarPressão = MediaPress ENTAO AlimMuscular = aberto
e... ...Descmuscular=Aberto"
224
FuzzyRuleAntecedent* ifMovmuscularNeutroAndVarpressMediapress_4 = new
FuzzyRuleAntecedent();
ifMovmuscularNeutroAndVarpressMediapress_4->joinWithAND(neutro_4, mediapress_4);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularpoucoabertoAndDescmuscularAberto_4 = new...
...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularpoucoabertoAndDescmuscularAberto_4->addOutput(aberto_4);
thenAlimmuscularpoucoabertoAndDescmuscularAberto_4->addOutput(Aberto_4);
FuzzyRule* fuzzyRule11 = new FuzzyRule(11,
ifMovmuscularNeutroAndVarpressMediapress_4,...
...thenAlimmuscularpoucoabertoAndDescmuscularAberto_4);
fuzzy->addFuzzyRule(fuzzyRule11);
// REGRA 12
//"SE MovMuscular = Contraido E VarPressão = MuitaPress ENTAO AlimMuscular =
MuitoAberto e... ...Descmuscular=PoucoAberto"
FuzzyRuleAntecedent* ifMovmuscularContraidoAndVarpressMuitapress_4 = new
FuzzyRuleAntecedent();
ifMovmuscularContraidoAndVarpressMuitapress_4->joinWithAND(contraido_4,
muitapress_4);
// Instancinado um Consequente para a expressao
FuzzyRuleConsequent* thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_4 =
new... ...FuzzyRuleConsequent();
// Adicionando o FuzzySet correspondente ao objeto Consequente
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_4-
>addOutput(muitoaberto_4);
thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_4-
>addOutput(Poucoaberto_4);
225
FuzzyRule* fuzzyRule12 = new FuzzyRule(12,
ifMovmuscularContraidoAndVarpressMuitapress_4,...
...thenAlimmuscularmuitoabertoAndDescmuscularPoucoAberto_4);
fuzzy->addFuzzyRule(fuzzyRule12);
}
//--------------------------------------- LAÇO PRINCIPAL ---------------------------------------------//
void loop(){ // Laço Principal
if (Serial.available() > 0) {
int inByte = Serial.read();
switch (inByte) {
case 'a':
local_1(); // Função 1 - controle PAM 1
delay(1);
case 'b':
local_2(); // Função 2 - controle PAM 2
delay(1);
case 'c':
local_3(); // Função 3 - controle PAM 3
delay(1);
case 'd':
local_4(); // Função 4 - controle PAM 4
delay(1);
} } }
//---------------------FUNÇÕES PARA CONTROLE DE FLUXO ---------------------------------//
//------------------------------------------ Função 1 -------------------------------------------------------//
void local_1(void){
float Movmuscular_1;
float VarPress_1;
226
float potValue_1;
float potValue_2;
float M_M_1;
float V_P_1;
char buffer1[4];
int contadorBuffer = 0;
while(Serial.available() == 0){
}
delay(1);
while(Serial.available() > 0)
{
buffer1[contadorBuffer++] = Serial.read();
for (int i = 0; i < 3; i++)
{
buffer1[i];
delay(1);
}
int long steps2move = atol(buffer1);
potValue_1 = steps2move;
potValue_2 = analogRead(1); //Leitura do valor crisp do Potênciometro 2
Movmuscular_1=5*potValue_1/1023;
VarPress_1=5*potValue_2/1023;
fuzzy->setInput(1,Movmuscular_1);
fuzzy->setInput(2, VarPress_1);
fuzzy->fuzzify();
int output1 = fuzzy->defuzzify(1);
int output2 = fuzzy->defuzzify(2);
227
M_M_1 = map(output1, 0, 89, 0, 89); // scale it to use it with the servo (value between
0 and 180)
myservo_1.write(M_M_1); // sets the servo position according to the scaled
value
V_P_1 = map(output2, 89, 0, 89, 0); // scale it to use it with the servo (value between 0
and 180)
myservo_2.write(V_P_1); // sets the servo position according to the scaled
value
} }
//----------------------------------------------- Função 2 --------------------------------------------------//
void local_2(void)
{
float Movmuscular_2;
float VarPress_2;
float potValue_3;
float potValue_4;
float M_M_2;
float V_P_2;
char buffer2[4];
int contadorBuffer = 0;
while(Serial.available() == 0){
}
delay(1);
while(Serial.available() > 0)
{
buffer2[contadorBuffer++] = Serial.read();
for (int i = 0; i < 3; i++)
{
228
buffer2[i];
delay(1);
}
int long steps3move = atol(buffer2);
potValue_3 = steps3move;
potValue_4 = analogRead(3); //Leitura do valor crisp do Potênciometro 4
Movmuscular_2=5*potValue_3/1023;
VarPress_2=5*potValue_4/1023;
fuzzy->setInput(3,Movmuscular_2);
fuzzy->setInput(4, VarPress_2);
fuzzy->fuzzify();
int output3 = fuzzy->defuzzify(3);
int output4 = fuzzy->defuzzify(4);
M_M_2 = map(output3, 0, 89, 0, 89); // scale it to use it with the servo (value between
0 and 180)
myservo_3.write(M_M_2); // sets the servo position according to the scaled
value
V_P_2 = map(output4, 89, 0, 89, 0); // scale it to use it with the servo (value between 0
and 180)
myservo_4.write(V_P_2); // sets the servo position according to the scaled
value
} }
//--------------------------------------------- Função 3 ----------------------------------------------------//
void local_3(void)
{
float Movmuscular_3;
float VarPress_3;
float potValue_5;
229
float potValue_6;
float M_M_3;
float V_P_3;
char buffer3[4];
int contadorBuffer = 0;
while(Serial.available() == 0){
}
delay(1);
while(Serial.available() > 0)
{
buffer3[contadorBuffer++] = Serial.read();
for (int i = 0; i < 3; i++)
{
buffer3[i];
delay(1);
}
int long steps4move = atol(buffer3);
potValue_5 = steps4move;
potValue_6 = analogRead(5); //Leitura do valor crisp do Potênciometro 6
Movmuscular_3=5*potValue_5/1023;
VarPress_3=5*potValue_6/1023;
fuzzy->setInput(5,Movmuscular_3);
fuzzy->setInput(6, VarPress_3);
fuzzy->fuzzify();
int output5 = fuzzy->defuzzify(5);
int output6 = fuzzy->defuzzify(6);
M_M_3 = map(output5, 0, 89, 0, 89); // scale it to use it with the servo (value between
0 and 180)
230
myservo_5.write(M_M_3); // sets the servo position according to the scaled
value
V_P_3 = map(output6, 89, 0, 89, 0); // scale it to use it with the servo (value between 0
and 180)
myservo_6.write(V_P_3); // sets the servo position according to the scaled
value
} }
//--------------------------------------------- Função 4 ----------------------------------------------------//
void local_4(void)
{
float Movmuscular_4;
float VarPress_4;
float potValue_7;
float potValue_8;
float M_M_4;
float V_P_4;
char buffer4[4];
int contadorBuffer = 0;
while(Serial.available() == 0){
}
delay(1);
while(Serial.available() > 0)
{
buffer4[contadorBuffer++] = Serial.read();
for (int i = 0; i < 3; i++)
{
buffer4[i];
delay(1);
231
}
int long steps5move = atol(buffer4);
potValue_7 = steps5move;
potValue_8 = analogRead(7); //Leitura do valor crisp do Potênciometro 8
Movmuscular_4=5*potValue_7/1023;
VarPress_4=5*potValue_8/1023;
fuzzy->setInput(7,Movmuscular_4);
fuzzy->setInput(8, VarPress_4);
fuzzy->fuzzify();
int output7 = fuzzy->defuzzify(7);
int output8 = fuzzy->defuzzify(8);
M_M_4 = map(output7, 0, 89, 0, 89); // scale it to use it with the servo (value between
0 and 180)
myservo_7.write(M_M_4); // sets the servo position according to the scaled
value
V_P_4 = map(output8, 89, 0, 89, 0); // scale it to use it with the servo (value between 0
and 180)
myservo_8.write(V_P_4); // sets the servo position according to the scaled
value
}
}
//--------------------------------------------------------------------------------------------------------------//
232
9 – ANEXO
233
9.1 - ANEXO 1 – INSTALAÇÃO E IMPORTAÇÃO DA BIBLIOTECA FUZZY
De acordo com autor (ALVES, A. J. O., 2013) a biblioteca eFLL é instalada nos seguintes
passos:
“1º Passo: Vá a página oficial do projeto no GitHub: eFLL”;
“2º Passo: Faça um clone do projeto usando o Git ou faço o download em Donwload pelo
botão “Downloads as zip”.”
“3º Passo: Clone ou descompacte os arquivos para a pasta de bibliotecas do Arduino:”
“Obs: no Ubuntu (/usr/share/arduino/libraries/) caso instalado via apt-get;
no Windows, Mac ou Linux (Onde você baixou o IDE Arduino, a pasta de biblioteca está
dentro).”
“Pronto, a biblioteca está pronta para ser usada.”
De acordo com autor (ALVES, A. J. O., 2013) a biblioteca eFLL é importada seguintes
passos:
“1º Passo: Abra o seu Arduino IDE, vá a aba no menu superior SKETCKS → BIBLIOTECA
→ Importar eFLL.”