Você está na página 1de 131

FACULDADE DO CENTRO LESTE

RENAN ROGER LOUZADA


MARCOS ANTONIO SILVA VIEIRA








PROJETO E DESENVOLVIMENTO DE UM
ROB ANTROPOMRFICO
DIDTICO
















SERRA
2014

RENAN ROGER LOUZADA
MARCOS ANTONIO SILVA VIEIRA







PROJETO E DESENVOLVIMENTO DE UM
ROB ANTROPOMRFICO
DIDTICO


















SERRA
2014
Trabalho de concluso de curso apresentado ao
curso de Engenharia de Controle e Automao,
da Faculdade do Centro Leste, como requisito
parcial para obteno do ttulo de Engenheiro
de Controle e Automao.
Orientador: Prof. MSc. Gustavo Perim Cola



















Dedicamos este trabalho de concluso de
curso inteiramente a todos que nos
apoiaram direta e indiretamente.
Renan Louzada e Marcos Vieira




















Aos nossos pais, familiares, amigos,
professores, em especial ao nosso
orientador Gustavo Cola que tanto nos
ajudou desde o primeiro perodo do
curso quando era nosso monitor de
Clculo I, e principalmente a Deus.





















O tempo nos faz esquecer o que nos
trouxe at aqui. Mas eu lembro muito
bem como se fosse amanh.
Humberto Gessinger
Engenheiros do Hawaii


RESUMO

Os alunos do curso de engenharia de controle e automao tendo em vista os recentes
investimentos da faculdade UCL na rea de robtica como, por exemplo, do manipulador
Michelangelo, se propuseram a realizar o projeto e desenvolvimento de um brao
manipulador antropomrfico em busca de aprimorar os conhecimentos na crescente rea da
robtica. O projeto consiste no desenvolvimento de um brao robtico acionado por servo-
motores, controlado pelo microcontrolador Atmega presente na plataforma Arduino,
possuindo comando digital wireless via bluetooth ou via teclado wifi, comando anlogico via
exoesqueleto ou controle remoto e comando de posicionamento direto dos ngulos dos elos
via software. O objetivo do projeto deste brao robtico consiste na aplicao direta de
diversos contedos abordados durante o curso e a elaborao de um prottipo a ser utilizado
como plataforma de ensino e incentivo para os demais alunos da instituio para a robtica. O
brao robtico elaborado ser chamado de SPIDER devido ao batismo do mesmo pelos
familiares dos alunos durante fase de incio de projeto e testes. Foi desenvolvida a modelagem
matemtica baseada no mtodo Denavit-Hatemberg com os dados obtidos foi craido um
modelo virtual do prottipo no software MATLAB, foram realizados previamente testes dos
componentes eletrnicos e lgica de programao no software Proteus, assim finalizando a
fase de concepo do projeto. O torque dos servo-motores foram dimensionados para
manipular uma carga til de 150g. Tendo sido alcanado este objetivo como tambm o
desenvolvimento do prottipo completamente funcional operando a partir dos mtodos de
comando anteriormente citados.

PALAVRAS CHAVE: Rob, Manipulador, Antropomrfico e Didtico.


LISTA DE ILUSTRAES


Figura 1 - Rob Humanoide proposto por Leonardo da Vinci. ................................................ 11
Figura 2 - Rob Geminoid F da Universidade de Osaka. ......................................................... 12
Figura 3 - Rob antropomrfico comercial da ABB modelo IRB 140. ................................... 14
Figura 4 - Utilizao de robs em diversos pases. .................................................................. 15
Figura 5 - Supervisor de controle de rob. ............................................................................... 17
Figura 6 - Rob Manutec-R3. ................................................................................................... 18
Figura 7 - Resultados obtidos gerando trajetrias complexas .................................................. 19
Figura 8 - Manipulador robtico articulado ............................................................................. 19
Figura 9 - Kit didtico Robix Rascal (RASCAL, 2013)........................................................... 20
Figura 10 - Configurao jogador de golfe .............................................................................. 21
Figura 11 - Exemplo de manipulador hidrulico ...................................................................... 21
Figura 12 - Manipulador Semi-Passivo .................................................................................... 22
Figura 14 - Controle de motores proposto por Induzzi e Dutra. .............................................. 23
Figura 13 - Rob movel de seis pernas hibridas. ...................................................................... 23
Figura 15 - Brao manipulador didtico Arm-Pet .................................................................... 24
Figura 16 - Tipos de juntas ....................................................................................................... 26
Figura 17 - Efetuador com 3 graus de liberdade ...................................................................... 27
Figura 18 - Elementos bsicos do rob .................................................................................... 28
Figura 19 - Rob cartesiano...................................................................................................... 29
Figura 20 - Rob cilndrico ...................................................................................................... 29
Figura 21 - Rob esfrico ......................................................................................................... 30
Figura 22 - Rob articulado Scara na parte superior e tipo antropomrfico parte inferior ..... 30
Figura 23 - Exemplo de rea de trabalho de rob com articulao vertical ............................. 31
Figura 24 - Tipos de efetuadores .............................................................................................. 32


Figura 25 - Teach-box .............................................................................................................. 33
Figura 26 - Rob programado via conduo ............................................................................ 34
Figura 27 - Teach-pendant ........................................................................................................ 34
Figura 28 - Esquemtico da estrutura de um manipulador ....................................................... 35
Figura 29 - Algoritmo Denavit-Hartenberg .............................................................................. 36
Figura 30 - Sistema de coordenadas e ngulos para o rob PUMA ......................................... 37
Figura 31 - Relao entre cinemtica direta e inversa .............................................................. 37
Figura 32 - Rob planar e suas expresses da cinemtica direta.............................................. 38
Figura 33 - Brao manipulador didtico da UCL. .................................................................... 39
Figura 34 - Vista Frontal e Lateral. .......................................................................................... 40
Figura 35 - Vista Superior. ....................................................................................................... 41
Figura 36 - Efetuador. ............................................................................................................... 41
Figura 37 - Motor SG90. .......................................................................................................... 42
Figura 38 - Servomotor MG995. .............................................................................................. 43
Figura 39 - Localizao dos servomotores. .............................................................................. 44
Figura 40 - Arduino Duemilanove............................................................................................ 45
Figura 41 - Display JHD-162A. ............................................................................................... 46
Figura 42 - Fonte ATX-220W. ................................................................................................. 47
Figura 43 - Mdulo Bluetooth JYMCU. ................................................................................ 48
Figura 44 - Graus de liberdade brao manipulador Spider. ...................................................... 49
Figura 45 - Links manipulador Spider. ..................................................................................... 50
Figura 46 - Esquema grfico de coordenandas Denavit-Hatemberg. ....................................... 51
Figura 47 - Distribuio dos dados na matriz de posio-orientao final. ............................. 53
Figura 48 - Modelo computacional do rob manipulador Spider. ........................................... 55
Figura 49 - Modelo computacional rob manipulador Spider. ................................................ 55
Figura 50 - Conectores. ............................................................................................................ 57


Figura 51 - Controle anlgico. ................................................................................................ 58
Figura 52 - Conector modular e chave de acionamento para o bluetooth. ............................... 60
Figura 53 - Exoesqueleto. ......................................................................................................... 62
Figura 54 - Exibio dos parmetros rob Spider. ................................................................... 63
Figura 55 - Manipulador didtico Spider. ................................................................................ 63
Figura 56 - Coordenadas de teste ............................................................................................. 65
Figura 57 - Teste de preciso .................................................................................................... 67
Figura 58 - Resultados do teste 1.............................................................................................. 67
Figura 59 - Resultados do teste 2.............................................................................................. 69
Figura 60 - Resultados do teste 3.............................................................................................. 71
Figura 61 - Resultados do teste 4.............................................................................................. 73
Figura 62 - Layout Microcontroller BT. ................................................................................. 102
Figura 63 - Parmetros de clculo. ......................................................................................... 108
Figura 64 - Volume de trabalho do rob Spider ..................................................................... 112



LISTA DE SIGLAS

PC Personal Computer (Computador pessoal).
CPU Central Processing Unit (Unidade Central de processamento).
PIC Peripherical Interface Controller (Interface Controladora de Perifricos).
UCL Faculdade do Centro Leste.
CI Circuito Integrado.
RRR Rotativo, Rotativo, Rotativo.
PRR Prismtico, Rotativo, Rotativo.
PPR Prismtico, Prismtico, Rotativo.
PPP Prismtico, Prismtico, Prismtico.
DOF Degree of freedom (Grau de liberdade).
IDE - Integrated Development Environment (Ambiente integrado de desenvolvimento).
PNP Plug And Play (Ligar e Usar).
ISM Industrial, Scientific, Medical (Industrial, Cientifica, Mdica).
PDCA Plan, Do, Check, Act.
ATX - Advanced Technology Extended.













SUMRIO

1 INTRODUO ........................................................................................................... 11
1.1 ESTADO DA ARTE .................................................................................................... 17
2 ROBTICA INSDUSTRIAL .................................................................................... 26
2.1 MODELAGEM CINEMTICA DE ROBS .............................................................. 35
3 PROJETO DO ROB MANIPULADOR DIDTICO .......................................... 39
3.1 ACIONAMENTOS DO ROB ................................................................................... 42
3.2 PROCESSAMENTO .................................................................................................... 44
3.3 COMUNICAO ........................................................................................................ 47
4 ROB MANIPULADOR SPI DER ........................................................................... 49
4.1 MODELAGEM CINEMTICA DO BRAO ROBTICO SPIDER ........................ 51
4.2 METODOS DE PROGRAMAO APLICADOS AO ROB SPIDER ................... 56
4.3 INTERFACES .............................................................................................................. 57
4.3.1 Controle Analgico ....................................................................................................... 58
4.3.2 Controle Via Teclado .................................................................................................... 59
4.3.3 Controle Via Celular ..................................................................................................... 59
4.3.4 Controle Autonmo ...................................................................................................... 60
4.3.5 Controle Via Exoesqueleto ........................................................................................... 61
4.3.6 Modos de exibio e acabamento ................................................................................. 62
5 PROBLEMAS ENCONTRADOS ............................................................................. 64
6 TESTES E RESULTADOS ....................................................................................... 65
7 CONCLUSO ............................................................................................................. 74
7.1 SUGESTES FUTURAS ............................................................................................ 75
BIBLIOGRAFIA .................................................................................................................... 76
8 APNDICES ............................................................................................................... 79
9 ANEXOS .................................................................................................................... 114
11


1 INTRODUO

Os robs sempre exerceram fascnio na humanidade, especialmente nos cientistas. A primeira
referncia sobre humanides que se tm notcia vm da mitologia grega, com o deus Hefesto
e seus serventes mecnicos. At um dos grandes gnios, o italiano Leonardo da Vinci,
sonhava em projetar robs ao desenvolver, em 1492, a sua prpria verso de rob humanide
que tinha forma de cavaleiro (ALL ON ROBOTS, 2012), Figura 1.


Figura 1 - Rob Humanoide proposto por Leonardo da Vinci (ALL ON ROBOTS, 2012).

O primeiro registro do termo rob foi pelo dramaturgo Karel Capek, escritor de Os Robs
Universais de Rossum em 1920, este termo derivado de robota da lngua Checa (servio
compulsrio, atividade forada) o que originou a palavra robot em ingls e traduzido para o
portugus como rob (GROOVER, 1998). Na ultima dcada muitos filmes de fico
cientfica mostraram robs produzidos com o comportamento e forma humana, tendo como
exemplo O Homem Bicentenrio e Eu Rob, baseados nos contos de Isaac Asimov. Pesquisas
como a do rob humanoide Geminoid F da Universidade de Osaka (INTELLIGENT
ROBOTICS AND COMMUNICATION LABORATORIES, 2012) demonstram quo
prximos humanidade esta desta realidade, Figura 2.

12




Figura 2 - Rob Geminoid F da Universidade de Osaka (REVISTA GALILEU, 2012).

Precursores da robtica, as tecnologias de comando numrico e telecomando possibilitaram
controlar as aes de uma mquina atravs de programao ou por um operador remoto
(ROMANO, 2002).
Com isso, os primeiros robs foram desenvolvidos basicamente para executar tarefas difceis,
perigosas, repetitivas ou mesmo impossveis para um ser humano, o que despertou o interesse
das indstrias. Os robs foram perfeitamente introduzidos no mbito industrial, aumentando
assim produtividade e eliminando tarefas perigosas, antes executadas exclusivamente por
seres humanos (SPONG, 1989).
O primeiro rob industrial denominado Unimate
1
, foi instalado em uma empresa no ano de
1961 pela Unimation Inc, sendo este uma juno de articulaes mecnicas e garras. Eles
possuiam tecnologia de teleoperador master-slave, desenvolvida aps a Segunda Grande
Guerra Mundial, onde o operador humano manipulava diretamente o sistema, master, e as
aes eram replicadas por atuadores mecnicos, ento chamados de slave (ROMANO, 2002).
O meio acadmico ainda no determinou uma definio nica para os robs. Sendo assim,
sero apresentadas algumas definies utilizadas (CUNHA, 2012).

1
Os robs Unimate apresentam at seis eixos de movimento totalmente programveis e so projetados para a
manipulao de alta velocidade de peas com peso de at 226.8kg.
13


Um rob uma mquina de uso geral que, como um humano, pode executar uma variedade
de diferentes tarefas sobre condies que no necessitam ser conhecidas a priori" (NITZAN,
1985).
"So mquinas flexveis capazes de controlar suas prprias aes em uma variedade de tarefas
utilizando uma programao armazenada" (MARSH, 1985).
O rob industrial um manipulador multifuncional, programvel, cuja posio controlada
automaticamente que tem vrios graus de liberdade e capaz de apanhar os materiais, as
peas, as ferramentas ou os aparelhos especializados para submet-los s operaes
programadas (ORGANIZAO INTERNACIONAL DE NORMATIZAO, 1982).
O rob uma mquina automtica universal destinada manipulao de objetos e dotada de
capacidade de aprendizagem de um comportamento tpico, da faculdade de aprender o
ambiente (percepo), da faculdade de anlise da informao assim obtida e da possibilidade
de modificar seu comportamento tpico (ADMINISTRAO RENAULT, 1979).
Um rob industrial um manipulador multifuncional e reprogramvel, concebido para
mover cargas, peas, ferramentas ou dispositivos especiais, segundo movimentos
programados variveis, para execuo de diversas tarefas (ROBOT INSTITUTE OF
AMERICA ( RIA), 1979).
Robs so manipuladores modestos, efetuando automaticamente sequncias de trabalho,
variveis ou mesmo fixas. A robtica deve englobar todas as novas adaptaes em mquinas
conhecidas e todas as mquinas desenvolvidas com base na utilizao de tcnicas modernas
de controle, da informtica e de novos sensores (ASSOCIATION FRANAISE DE
ROBOTIQUE (AFRI), 1986).
Mesmo que ainda no haja uma definio unnime no meio acadmico para o que um rob,
pode-se ter uma definio com os termos comuns utilizados por diversos autores. Desta
forma, um rob pode ser definido como, uma mquina flexvel, multifuncional,
reprogramvel e com capacidade de interagir com objetos em seu ambiente (CUNHA, 2012).
Os robs sofreram diversas evolues ao longo da histria. Essas evolues foram agrupadas
em 5 geraes, sendo (SANTOS, 2004):
1 gerao Robs executores: Executam repetitivamente instrues previamente gravadas.
2 gerao Robs controlados por sensores: Possuem realimentao de dados obtidos a
partir de sensores a fim de aperfeioar a tomada de decises.
14


3 gerao Robs com viso: Possuem sistemas de viso (processamento de imagens).
4 gerao Robs com controle adaptativo: Podem se reprogramar analisando leituras
sensoriais.
5 gerao Robs com inteligncia artificial: Utiliza inteligncia artificial a fim de,
solucionar problemas e tomar decises.
Conforme a definio proposta anteriormente, a 1 gerao de robs somente poderia ser
considerada um rob, se pudessem ser reprogramados, sendo assim flexveis.
Um exemplo de rob de 4 gerao o manipulador antropomrfico demonstrado na Figura 3
que um dos tipos de robs atualmente aplicados em diversos tipos de processos industriais,
tais como: Processos de soldagem, pintura, fixao e manipulao em geral (SPONG, 1989).


Figura 3 - Rob antropomrfico comercial da ABB modelo IRB 140 (ABB, 2012).

Com o desenvolvimento das novas geraes de robs com capacidade de operaes cada vez
mais complexas e flexveis, atendendo a diversas demandas industriais a fabricao de robs
se tornou um negcio altamente promissor conforme pode ser visualizado na Figura 4 que
demonstra uma tendncia muito clara no aumento da utilizao de robs em diversos pases
(INTERNATIONAL FEDERATION OF ROBOTICS , 2012).
15



Figura 4- Utilizao de robs em diversos pases (INTERNATIONAL FEDERATION OF ROBOTICS , 2012).

Percebe-se ento que a robtica uma rea de conhecimento em franca expanso, motivada
principalmente pela crescente necessidade da indstria moderna, onde a capacidade
competitiva (produo, qualidade e custo) pode determinar o sucesso ou o fracasso de vrios
empreendimentos (SEBRAE, 2013).
Com isso, robs didticos tm sido amplamente usados na orientao de estudantes e tcnicos
responsveis pela operao e manuteno de robs. Em geral, esses robs possuem apenas
algumas das funcionalidades dos robs industriais, sendo mais baratos, menores e com um
nvel de desempenho inferior. Desta forma, a utilizao desta ferramenta vem se mostrando
importante na experimentao, imerso e fixao dos conhecimentos tericos referentes a
robtica (FRANCHIN, 2013).
Tendo em vista os pontos apresentados, fica clara a importncia dos robs didticos como
mecanismos de aprendizado em robtica, colaborando com a disseminao do conhecimento,
aperfeioamento e desenvolvimento de novos dispositivos, como tambm em prticas de
operao mais eficientes. Sua relevncia na robtica refora a necessidade deste projeto, que
consiste em desenvolver um rob manipulador com 4 graus de liberdade, baixo custo de
hardware e software, acionamentos simplificados e com diversas interfaces de comando
como: Exoesqueleto com sistema mestre-escravo, comando analgico, comando wireless via
celular, comando por computador via USB e execuo autnoma com insero prvia de
coordenadas. Para que isso seja possvel, os seguintes itens sero abordados:

16


Circuitos eletrnicos placa(s) eletrnica(s), seleo da tecnologia de processamento
(microcontrolador ou microprocessador), bem como sua programao;
Interface homem mquina desenvolvimento do programa (software) supervisrio e sua
comunicao com o rob, bem como o hardware para tal;
Desgin estrutural que possibilite sua plena utilizao;
Seleo e anlise dos materiais a serem utilizados materiais que proporcionem a rigidez
e caractersticas mecnicas necessrias;
Controle de motores, tipos configuraes e circuitos eletrnicos para o controle dos
motores (drivers);
Programao em diversas linguagens;
Transmisso de fora por engrenagens ou correias;
Dinmica e cinemtica de robs;
Sensores e suas aplicaes;
Eletrnica;
Comunicao entre dispositivos eletrnicos.
E tambm os demais conceitos necessrios para que o rob efetue movimentos previamente
programados e controlados em tempo real pelo operador humano, com grau de preciso e
repetitividade a serem mensurados e otimizados de acordo com as limitaes fsicas,
possibilitando assim operaes de movimentao de cargas simples, desenvolvendo uma
ferramenta didtica onde os futuros discentes da faculdade UCL podero aplicar vrios
conhecimentos das disciplinas integrantes dos cursos de engenharia. Podendo assim tambm
incentivar os discentes da faculdade UCL a pesquisa cientfica em robtica bem como em
reas afins.





17


1.1 ESTADO DA ARTE

De acordo com o estudo realizado em Fayan (1992), o custo elevado e a grande dificuldade na
utilizao, bem como operaes fracamente dimensionadas, so algumas das dificuldades de
implementao do supervisor de controle em robs manipuladores industriais, como o
apresentado na Figura 5. Esse autor cita tambm que existem vrios problemas com relao
mudana de aplicaes dos robs, que podem tornar oneroso este processo. Esse fato, muitas
vezes gerado pela falta de informaes das estruturas internas utilizadas nos supervisores de
controle dos robs, propondo como possvel soluo para os problemas supracitados, o uso de
uma arquitetura modular microprocessada, de forma hierarquizada e com interfaces
padronizadas, resultando na diviso das tarefas de forma otimizada. Outra abordagem adotada
neste estudo a utilizao de processadores trabalhando de forma independente nas diversas
juntas.


Figura 5 - Supervisor de controle de rob (FAYAN, 1992).

Como resultado das modelagens da cinemtica direta e inversa as transformaes das
coordenadas das articulaes nos diversos graus de liberdade do rob geraram coordenadas
cartesianas. Foi utilizado o rob industrial Manutec-R3 (Figura 6) como modelo para
simulaes dos algoritmos de modelagem inversa.
Aps os testes para a seleo do algoritmo implementado na unidade central de superviso, o
autor Fayan (1992) selecionou o mtodo de miss que tem como principais vantagens a fcil
implementao, operaes matemticas reduzidas e gerao de pontos intermedirios de
coordenadas que colabora para a criao de uma trajetria suave que uma caracterstica
essencial para aplicao de controle no espao cartesiano.
18




Figura 6 - Rob Manutec- R3 (FAYAN, 1992).

Outro estudo relevante foi o realizado por Santos, Junior e Lopes (2005), tendo como tema
principal, o problema de um grande nmero de solues de posio admissveis para
orientao de um atuador final (efetuador). Por incluir equaes no lineares utilizando a
cinemtica inversa, o autor prope a elaborao de um algoritmo gentico (AG), que
trabalhando em conjunto com uma tcnica de reduo progressiva de espao de busca (REB),
visa solucionar o problema do manipulador e toda sua trajetria.
Foi realizada uma sequncia de testes com trajetrias diferentes (Figura 7) e demonstrado o
sucesso do algoritmo gentico com a tcnica de reduo progressiva do espao de busca para
gerar trajetrias complexas.

19



Figura 7 Resultados obtidos gerando trajetrias complexas (SANTOS, JUNIOR e LOPES, 2005).

J no estudo realizado por Vieira, Saraiva, Listo e Santos (2009), demonstra que possvel o
projeto de um manipulador com baixo custo e razovel rigidez. Onde tambm foram
utilizados servo motores como atuadores devido a preciso, torque, tamanho, peso e custo. Na
elaborao dos circuitos eletrnicos tambm foi possvel manter o baixo custo.
Aps anlise foi possvel a elaborao do manipulador atendendo a expectativa do projeto em
estudo como segue na Figura 8.


Figura 8 - Manipulador robtico articulado (SARAIVA, LISTO, et al., 2009).

20


Ribeiro, Nascimento e Queiroz (RIBEIRO, NASCIMENTO e QUEIROS-NETO, 2010)
motivados pela necessidade de aprimoramento do polo industrial de Manaus e pela observada
dificuldade de ensino de robtica como tambm pela impossibilidade de aquisio de robs
didticos, desenvolveram um simulador de robs utilizando o ambiente LabView verso 8.5
da empresa National Instruments (NATIONAL INSTRUMENTS, 2013).
Como base, foi ultilizado o kit didtico Robix Rascal (RASCAL, 2013) que uma estrutura
modular didtica para construo de robs com as mais diversas peculiaridades, como simular
o movimento de uma cobra, jogar golfe como demonstrado na Figura 9, fazer caf e entre
outras. Utilizando a notao de Denavit-Hartemberg foi possvel elaborar o simulador do rob
no ambiente LabView e comparando com os resultados obtidos do sistema real apresentado
pelo kit Robix com configurao jogador de golfe.


Figura 9 Kit didtico Robix Rascal (RASCAL, 2013).

Tendo como concluso que o desenvolvimento de simuladores como na Figura 10, de robs
para anlise da cinemtica direta uma ferramenta poderosa e de baixo custo para demonstrar
exemplos nas aulas de robtica (RIBEIRO, NASCIMENTO e QUEIROS-NETO, 2010).
21



Figura 10 Configurao jogador de golfe (RIBEIRO, NASCIMENTO e QUEIROZ-NETO, 2010).

De acordo com Testi (2005), outra indstria que utiliza fortemente os manipuladores
antropomrficos a indstria offshore, que os utiliza nos veculos remotamente operados
(ROV) na forma de manipuladores hidrulicos submarinos, como o demonstrado na Figura
11. Esses sistemas so complexos de serem modelados pelo motivo de apresentarem diversas
no linearidades na dinmica do comportamento.
Em geral so operados pelo sistema mestre-escravo com tcnicas de controle tradicionais e os
trabalhos executados so geralmente em ambientes no estruturados. Ento o mesmo prope a
utilizao de um controlador aplicando lgica Fuzzy, este controlador se mostrou capaz de
lidar com diversas variaes nos parmetros do sistema assegurando um desempenho
esperado.


Figura 11 Exemplo de manipulador hidrulico (TESTI, 2005).

22


Visando reduzir a interferncia dinmica do brao manipulador nos veculos submarinos
autnomos (VSAs) durante as inspees e intervenes de equipamentos submarinos na
indstria de leo e gs. Fato que se deve ao veculo ser livre de restries de movimento (seis
graus de liberdade) e tambm a ligao cinemtico-dinmica existente entre o veculo e o
brao manipulador. Ferreira (2006) apresenta ento uma soluo para a reduo desses
distrbios desenvolvendo um equipamento nomeado de Manipulador Semi-Passivo (MSP),
Figura 12, uma nova soluo tecnolgica aplicando a braos manipuladores com propsito de
elevar a rigidez estrutural, alterando significativamente a capacidade de carga, preciso e
repetibilidade.


Figura 12- Manipulador Semi-Passivo (FERREIRA, 2006).

Outro trabalho relevante de desenvolvimento na rea da robtica mvel foi proposta por Moreira e
Cunha (2010) que proporam construir um rob com seis pernas hbridas, conhecido como Rhex
(Rob Hexapodal). O desenvolvimento se deu a partir da plataforma feita com motores de passo
bipolar; circuitos integrados; driver de interface computador-circuito eletrnico; e um software
controlador de movimentos pr-determinados, utilizando do software Matlab. Atravs de
simulaes e testes prticos obtiveram resultados satisfatrios comprovando que o projeto de
possvel aplicao Figura 13.
23











Outro exemplo de trabalho voltado para a rea da robtica o controle das juntas do rob
manipulador didtico da Faculdade do Centro Leste (UCL) proposto por Induzzi e Dutra
(2009), com o desenvolvimento de hardware e software modular. Tendo como hardware o
desenvolvimento e confeco de placas de circuito impresso para controlar os motores de
corrente contnua das juntas do rob. A comunicao foi realizada atravs do protocolo I2C.
Os resultados dos testes confirmaram a viabilidade da soluo, na Figura 14 exibida a
arquitetura do trabalho.


Figura 14 - Controle de motores proposto por Induzzi e Dutra (2009).
Figura 13- Rob movel de seis pernas hibridas (MOREIRA e CUNHA, 2010).
24


Tambm no campo da robtica didtica Moreira (2005) props o desenvolvimento de um
projeto de uma plataforma didtica baseada na placa GoGo Board. Sendo que essa j usada
com mrito em muitos trabalhos didticos. Moreira prope a utilizao da placa como o
crebro de um rob mvel terrestre de pequeno porte. Foram testados varios tipos de
sensoriamentos possivelmente aplicados ao projeto.
Como concluso do trabalho ficou evidente a aplicao da placa GoGo Board na robtica
didtica fornecendo inmeras vantagens para o aprendizado do aluno.
Outra pesquisa no campo da robtica foi realizada por Quaresma (2005) criando o Arm-Pet,
Figura 15, um brao robtico manipulador didtico construdo para fins acadmicos de nvel
tcnico e de engenharia, completamente funcional, criado para facilitar as prticas e conceitos
de robtica, eletrnica, controle, instrumentao e fsica. O Arm-Pet possibilita a simulao
de um modelo industrial de pintura automotiva. Possui 5 graus de liberdade (5 DOF), volume
de trabalho esfrico, tipo antropomrfico ou articulado, operando a partir de juntas rotativas.
A estrutura suporta cargas de ate 150g, controlado por microcontroladores. Com a
possibilidade de utilizar as seguintes ferramentas: Pinas, garras, solda a ponto, pistola de
pintura, sendo um projeto que conseguiu manter um custo relativamente baixo o que torna
uma alternativa vivel para a complementao das praticas acadmicas.


Figura 15 Brao manipulador didtico Arm-Pet (QUARESMA, 2005).








25


Similar ao projeto citado anteriormente o manipulador didtico proposto nesse trabalho
tambm tem o objetivo principal de movimentar cargas de ate 150g, tendo como objetivos
secundrios manter o baixo custo, desenvolver interfaces de comando prticas e de utilizao
intuitiva, criando uma plataforma de ensino que possa ser futuramente utilizada em conjunto a
outras plantas didticas.
Foi adotada a metodologia Top-Down, onde foram definidos os propsitos do projeto e ento
qual configurao atenderia aos objetivos e assim at as configuraes finais do prottipo.
As demais fases do projeto sero demonstradas nos prximos captulos assim como os
estudos tericos que o embassaram, desenhos esquemticos, at a exposio dos resultados
finais obtidos.
26


2 ROBTICA INSDUSTRIAL

Os robs industriais so classificados observando-se suas configuraes fsicas, que esto
relacionadas com os tipos de juntas que ele possui. Cada configurao pode ser representada
por um esquema de notao de letras. Neste caso, consideram-se primeiro os graus de
liberdade mais prximos da base, ou seja, as juntas do corpo, do brao e posteriormente do
punho (CUNHA, 2012).
As juntas so as partes responsveis pela ligao, movimento e acionamento das partes fixas
de um manipulador. Existem dois tipos bsicos, Figura 16, que so (ROSRIO, 2005):
Junta prismtica (P): Realiza movimento em linha reta;
Junta Rotacional (R): Gira em torno do eixo de rotao.
Os demais tipos de juntas podem ser obtidos atravs da combinao de juntas prismticas e
(ou) rotacionais (CORKE, 2012).
Junta esfrica: Pode ser entendida como a combinao de trs juntas rotacionais
possibilitando o movimento nos eixo (X, Y, Z);
Junta cilndrica: Composta por uma junta prismtica e uma rotacional;
Junta Planar: Composta por duas juntas prismticas;
Junta Fuso: Um parafuso gera o movimento prismtico ao eixo central.


Figura 16 - Tipos de juntas (SANTOS, 2004).

27


O grau de liberdade, ou Degree of freedom (DOF), de um rob industrial, a quantidade de
movimentos indenpendentes possveis realizados por este manipulador (GROOVER, 1998).
Como exemplo pode-se citar o grau de liberdade de um efetuador com o seu movimento mais
comum de rolamento ou roll, que a rotao do punho em torno do brao, arfagem ou pitch
que a rotao para baixo ou para cima e guinada ou yaw que a rotao para direita ou
esquerda, Figura 17 (GROOVER, 1998).


Figura 17 - Efetuador com 3 graus de liberdade (GROOVER, 1998).

denominado brao robtico todo sistema que se encontra entre a base e o elemento final do
rob, sendo composto basicamente de brao e punho. O brao a parte de ligamento (elos)
que possuem as juntas onde acoplado o acionamento. O punho composto por vrias juntas
prximas que compem os movimentos do elemento final conforme Figura 18 (ROSRIO,
2005).
28



Figura 18 - Elementos bsicos do rob (ROSRIO, 2005).

As diversas configuraes dos elementos bsicos (base, juntas, brao, punho e antebrao) dos
robs atribuem aos mesmos caractersticas prprias, a fim de maximizar a capacidade de
execuo de uma determinada tarefa. A seguir sero apresentadas as configuraes mais
comuns.
Robs manipuladores cartesianos, Figura 19, so aqueles que possuem a combinao de trs
juntas prismticas
2
(PPP), geralmente sendo sua configurao do tipo prtico, trabalhando no
sistema de coordenadas (X,Y,Z). possvel exemplificar este tipo sendo aplicado nas
dependncias da UCL no trabalho da disciplina de Projeto de Mquinas com a elaborao da
CNC e tambm em diversas indstrias com retficas de cilindros ou fresas (ROMANO, 2002).


2
Superfcie reta com direo fixa que se desloca apoiando-se no contorno de um polgono plano.
29



Figura 19 - Rob cartesiano (ROMANO, 2002).

Os Robs manipuladores cilndricos, Figura 20, so aqueles que possuem duas juntas
prismticas e uma rotativa (RPP), o que gera seus movimentos com um giro e duas
translaes (ROMANO, 2002).


Figura 20 - Rob cilndrico (ROMANO, 2002).

Robs manipuladores esfricos, Figura 21, so aqueles que possuem uma junta prismtica e
duas juntas rotativas (RRP), sendo seu volume de trabalho esfrico devido a um movimento
de translao e dois movimentos rotativos (ROMANO, 2002).
30



Figura 21 - Rob esfrico (ROMANO, 2002).

Robs manipuladores articulados, dividem-se em dois tipos bsicos, os de articulao vertical
tipo antropomrfico e os de articulao horizontal tendo como um dos tipos o Scara como
demonstrados na Figura 22, o rob tipo Scara segue uma configurao (RRP), os robs
antropomrficos so aqueles que possuem suas trs juntas rotativas (RRR), produzindo assim
o trabalho resultante mais complexo e com maior mobilidade se comparado com os demais,
(ROMANO, 2002).


Figura 22 - Rob articulado tipo Scara na parte superior e tipo antropomrfico parte inferior (ROMANO, 2002).
31


Cada tipo de rob possui caractersticas de movimento prprios assim o volume da rea de
trabalho tambm difere de um tipo para outro, o volume da rea de trabalho de robs se
caracteriza pela regio prxima ao rob onde qualquer pea ou ferramenta pode ser acessada,
conforme a Figura 23 (CUNHA, 2012).


Figura 23 - Exemplo de rea de trabalho de rob com articulao vertical (CORKE, 2012).

O clculo do volume de trabalho de cada tipo se da pelos seguintes equacionamentos (UFMG,
2013).
Robs Cartesianos - Acessam todos os pontos de um cubo de lado L.

Robs Cilndricos - Acessam todos os pontos em um cilindro de altura L e raio 2L,
excluindo os pontos do cilindro interno de raio L e altura L.

Robs Esfricos - Acessam todos os pontos de uma esfera de raio 2L, excluindo a esfera
interna de raio L.

Robs de Articulao Horizontal - Acessam todos os pontos de um cilindro de raio 2L e
altura L.

Robs de Articulao Vertical - Acessam todos os pontos de uma esfera de raio 2L.
32



Assim, os robs possuem um gradual aumento no seu volume de trabalho, do cartesiano at o
articulado vertical.
A razo entre o volume de trabalho relativa nos casos extremos :

Demonstrando que o volume de trabalho de um rob articulado vertical com dois vnculos de
tamanho L 33,51 vezes superior que o volume da rea de trabalho do rob cartesiano com
trs vnculos de tamanho L (UFMG, 2013).
Outro elemento importante o End-effector ou efetuador tendo como o modelo mais
popularmente conhecido a Garra, Sendo um dos elementos finais de um sistema robtico e
pode possuir diversos tipos e formas conforme a necessidade de uma aplicao dentro de uma
linha de produo. Normalmente os tipos de preenso da mo humana so utilizados para
facilitar a elaborao do efetuador com diferentes tipos de formatos mecnicos como na
Figura 24.


Figura 24 - Tipos de efetuadores (SPONG, 1989).

33


METODOS DE PROGRAMAO DE ROBS

Pode-se dividir os mtodos de programao de robs bsicamente em dois grupos (CORKE,
2012):
Mtodo de programao on-line (ligado), se faz necessrio utilizar o rob para gerar o
programa.
Mtodo de programao offline (desligado), utiliza a escrita em modo texto numa
linguagem de programao.
Sero demonstradas a seguir tcnicas que utilizam os mtodos citados.
Programao por aprendizagem realizada off-line atravs da conduo do manipulador at o
ponto desejado via joystick, onde a programao do rob utilizado reconhece as coordenadas
referentes a todo trajeto realizado do efetuador. Este modo de programao tambm pode ser
realizado atravs de um controle remoto conhecido como teach-box, mostrado na Figura 25,
que especifica toda a trajetria requerida para um determinado ponto aps o mesmo ser
selecionado pelo operador humano (ROMANO, 2002).


Figura 25 Teach-box (ROMANO, 2002).

Programao por conduo como ilustrado na Figura 26, realizada offline atravs da
conduo do efetuador fsicamente onde seus sensores internos reconhecem os movimentos
realizados (ROSRIO, 2005).
34



Figura 26 - Rob programado via conduo (ROSRIO, 2005).

Programao via teach-pendant realizada on-line atravs de um teclado porttil, Figura 27,
que associado com os sensores acoplados ao rob, permite seu posicionamento em qualquer
ponto dentro do volume de trabalho do manipulador e seu end-effector. permitido tambm,
atravs deste controle, a interligao de outros equipamentos que esto na mesma sequncia
de execuo do manipulador facilitando assim a produo contnua de uma linha (ROSRIO,
2005).



Figura 27 - Teach-pendant (ROSRIO, 2005).

Programao via linguagem textual realizada on-line, onde o programador, atravs de uma
linguagem especfica, insere toda a sequncia de operao com as coordenadas respectivas.
Existem linguagens comuns, como Assembly e C++, assim como existem tambm linguagens
prprias, como o do fabricante ABB, com a Arla.Rapid, da Fanuc com a Karel, da IBM com a
Aml/2, da Seiko com a Darl4 e entre outros (MCCOMB, 2001).

35


2.1 MODELAGEM CINEMTICA DE ROBS

A modelagem cinemtica de robos o estudo da velocidade e da posio do efetuador e seus
ligamentos que distinguem em dois tipos bsicos conforme segue (GROOVER, 1998).

Cinemtica direta
Entende-se por cinemtica direta quando se deseja obter a posio e velocidade do efetuador
atravs da posio e velocidade das juntas previamente conhecidas, Figura 28.


Figura 28 - Esquemtico da estrutura de um manipulador (SPONG, HUTCHINSON e VIDYASAGAR, 2006).

A posio,

, do efetuador obtida inicialmente pela coordenada da posio


inicial, que encontra-se na base do manipulador,

. atravs desta referncia


que possvel conhecer a posio de cada articulao,

, pelo uso de matrizes


homogneas em orientao atravs da orientao anterior . O mtodo para obter as
coordenadas relacionando duas articulaes foi elaborado por Denavit-Hartenberg, (SPONG,
HUTCHINSON e VIDYASAGAR, 2006).


36


Aplicao da notao de Denavit-Hartenberg
O algoritmo de Denavit-Hartenberg (D-H) oferece uma soluo metdica para obteno das
coordenadas e transformaes para todos os elos do manipulador (CORKE, 2012).
O mtodo D-H apresenta a posio e orientao do efetuador que obtido atravs da
coordenada referncia, Figura 29, sendo que a coordenada da junta sucessiva se refere a
coordenada anterior, resultando assim em uma matriz homognea 4x4, sendo necessrio
obedecer trs regras iniciais (ROMANO, 2002):
O eixo deve ser estabelecido ao longo do eixo de movimento da junta ;
O eixo normal ao eixo , apontando para fora dele;
Utilizando a regra da mo direita o eixo completa o sistema.
O comportamento cinemtico de um ligamento esta relacionado quatro parmetros da junta
a ser analisada, como demonstrado no exemplo da Figura 30.


Figura 29 - Algoritmo Denavit-Hartenberg (ROMANO, 2002).

37



Figura 30 - Sistema de coordenadas e ngulos para o rob PUMA (CUNHA, 2012).

Cinemtica inversa
Diferente da cinemtica direta a cinemtica inversa busca os valores das juntas que se
adaptam a uma configurao cartesiana, Figura 31. A complexidade se da pelo fato de poder
haver diversas solues ou mesmo nenhuma soluo para determinado problema. Outra
grande dificuldade a falta de uma metodologia central de aplicao da cinemtica inversa.
Alguns dos mtodos mais proeminentes (CORKE, 2012) so:
Transformaes inversas.
Matrizes duais.
Mtodos interativos.
Abordagens geomtricas.


Figura 31 - Relao entre cinemtica direta e inversa (FRANCHIN, 2013).
38


Matriz Jacobiana
A matriz jacobiana (ROSRIO, 2005) tem como principal funo relacionar as velocidades
no espao operacional com a velocidade das juntas, que so obtidas atravs da diferenciao
das expresses da cinemtica direta



em cada dimenso (X, Y e Z). Tal relao pode ser observada na Figura 32.


Figura 32 - Rob planar e suas expresses da cinemtica direta (SANTOS, 2004).

Obtendo assim sua forma matricial como demostrado:



Obtemos nesse capitulo o conhecimento terico necessrio para desenvolver o brao
manipulador. No prximo capitulo ser demonstrado como foram aplicadas as teorias
expostas.
39


3 PROJETO DO ROB MANIPULADOR DIDTICO

Foi adotada inicialmente a ideia de elaborar um manipulador cujas funes pudessem se
aproximar ao mximo do manipulador existente na Faculdade UCL, como demonstrado na
Figura 33. Porm, pretendeu-se fazer uma plataforma simples de ensino e com melhor
facilidade de manuseio e operao. Sendo assim, foram utilizadas as dimenses demonstradas
na Figura 34, que exibe a vista lateral e frontal do manipulador. A Figura 35 exibe a vista
superior e na Figura 36 o efetuador.
Para confeco da estrutura foi elaborado um esboo mostrado no apndice H, e enviado a
uma empresa, denominada Projetos Especiais, para usinagem e preparao das partes, o que
gerou bons resultados na aplicao dos acionamentos, das engrenagens e unio com as juntas
e seus graus de liberdade, devido ao material aplicado e ao acabamento realizado com
equipamentos profissionais.


Figura 33 - Brao manipulador didtico da UCL.

40


Figura 34 - Vista Frontal e Lateral.

41



Figura 35 - Vista Superior.


Figura 36 Efetuador.

42


3.1 ACIONAMENTOS DO ROB

Aps definio da dimenso e da disposio dos motores de acionamento foi necessrio a
especificao dos tipos de motores a serem aplicados a cada junta. Para isso, foram
especificados trs tipos de servomotores por serem compactos, precisos, possuir fcil
integrao com o circuito eletrnico adotado, serem robustos pelos seus tamanhos para as
devidas aplicaes facilitando o acoplamento e tambm por possurem um controle digital
interno de posicionamento conforme o sinal PPM
3
recebido.
O servomotor SG90, Figura 37, possui o ngulo de trabalho entre 0 e 180 graus com a
velocidade mxima de giro igual a 60 graus a cada 0,12 segundos, alimentado a 5 volts.
Possui suas engrenagens de nylon que permitem um torque de 1,6kg / cm e um peso total de
9g , o que fica excelente para a aplicao nos elementos finais de braos robticos (TOWER
PRO, 2013).
Este tipo de motor foi aplicado em dois movimentos do brao robtico Spider, sendo um na
abertura e fechamento da garra e outro no giro da mesma.


Figura 37 - Motor SG90.

Outro modelo utilizado foi MG995, Figura 38, que um poderoso servomotor da TowerPro
com engrenagens de metal que compem o peso mximo deste motor de 65 gramas. Possui
um controle preciso de posio angular especificamente designado para aplicaes em
robticas que requerem alta qualidade com um range de operao entre 0 e 180 graus. O
torque dinmico deste servo de aproximadamente 15kg/cm o que atende perfeitamente o

3
Modulao por Posio de Pulso
43


projeto, que necessita de 14.66kg/cm conforme clculos apresentados no apndice I, o
servomotor MG995 tambm fornece a velocidade de 60 graus por 0,16 segundos a uma
alimentao de 5 volts e consumo maximo de corrente igual a 3 ampres (TOWER PRO,
2013).
Usando a biblioteca Arduino para servomotores possvel facilmente o controle de
posicionamento para ngulos requeridos por controle de sinais PPM com resoluo de 2s e
range de largura de pulso positivo entre 400s e 2550s. A frequencia PWM
4
mxima de
4khz.
Este modelo de servomotor foi aplicado em trs movimentos do brao robtico Spider, sendo
um no cotovelo, dois no obro devido ao torque requerido e um no giro da base.


Figura 38 Servomotor MG995.

Os servomotores citados foram posicionados conforme a Figura 39, de forma a executar os
movimentos desejados de um manipulador antropomrfico com as seguintes funcionalidades:
Motor 1: Abrir e fechar o efetuador;
Motor 2: Giro do efetuador;
Motor 3: Movimento do cotovelo;
Motor 4 e 5: Movimento do ombro;
Motor 6: Giro da base.

4
Modulao por Largura de Pulso uma tcnica utilizada para obter resultados analgicos por meios digitais. O
controle digital utilizado para criar uma onda quadrada, ou seja, um sinal chaveado entre ligado e desligado.
Este liga/desliga padronizado pode simular tenses entre 0Ve 5V, alterando a parcela de tempo que o sinal
utilizado associado ao tempo em que o sinal retirado. A durao deste tempo chamado de largura de pulso.
Para ter valores analgicos variando, alterada ou modulada a largura do pulso.
44




Figura 39 - Localizao dos servomotores.


3.2 PROCESSAMENTO

Dando prosseguimento ao projeto, foi definido um controlador que j possuisse toda a
interface para programao e aplicabilidade de entradas e sadas analgicas e digitais,
principalmente com o controle PWM.
O Arduino Duemilanove, Figura 40, uma placa microcontrolada baseada no Atmega 168 ou
Atmega 328. Esse possui tenso de entrada recomendada entre 7 e 12V, 14 pinos de entradas /
sadas digitais (Destas 6 podem ser utilizadas como sadas PWM), 6 entradas analgicas, um
cristal oscilador de 16 MHz, conexo USB, um plugue de alimentao, um conector ICSP e
um boto de reset. Possui todo o necessrio para suportar o microcontrolador, simplificar a
45


conexo com o computador via cabo USB ou alimentao do circuito com um adaptador AC /
DC. Ver diagrama esquemtico no anexo A.


Figura 40 Arduino Duemilanove.

Foi observado que o Arduino Duemilanove possui algumas particularidades que foram
descobertas durante a fase de testes com o comando de motores isolados conforme segue:
Uma fonte externa no USB pode ser conectada com um plugue de 2,1mm com centro
positivo para utilizar o adaptador direto disponvel na placa ou com uma conexo externa feita
pelos pinos Vin e GND, sendo a segunda aplicada ao projeto.
A interface pode operar com uma fonte externa entre 6 e 20V. Se o fornecimento de energia
for inferior a 7V, entretanto, o pino de 5V pode fornecer menos de cinco volts e o circuito
apresentar instabilidade. Se utilizar mais que 12V, o regulador de tenso pode sobreaquecer e
danificar a placa. O recomendado um range entre 7 e 12V, sendo o aplicado na entrada de
alimentao igual a 12V e nas entradas digitais e analgicas especficas de 5V.
O Arduino Duemilanove possui um polifusvel resetvel que realiza a proteo da porta USB
de sobrecorrentes. Se mais de 500mA for aplicado a porta USB, o fusvel ir automaticamente
romper a comunicao antes que a sobrecarga seja danosa.
Alm destes citados alguns pinos possuem funes especiais como:
0 (RX) e 1 (TX). Utilizados para receber e transmitir dados seriais TTL. Estes pinos so
conectados aos correspondentes pinos FTDI USB para TTL do chip serial, utilizado para
comunicao direta com o mdulo JY-MCU.
3, 5, 6, 9, 10 e 11. Disponibilizam 6 portas com possibilidade de sada PWM.
46


A0, A1, A2, A3, A4 e A5: Entradas analgicas que providenciam 10 bits de resoluo
(1024 valores diferentes). Por default eles medem de 0V a 5V, sendo possvel alterar o
range utilizando o pino de AREF ou a funo analogReference.
Para atender a necessidade de demonstrar o status do rob e o ngulo das juntas o hardware
de impresso de dados utilizado ser o display LCD JHD 162, Figura 41. Baseado no chipset
Hitachi HD 44780 para matriz de pontos. Sendo possvel exibir 240 caracteres alfanumricos
diferentes. O LCD possui escrita composta por duas linhas com mximo de 16 caracteres
cada, alm da funo backlight, que significa a utilizao de um LED para iluminao dos
caracteres de leitura.
A especificao bsica deste display uma alimentao de 5V, clock interno de 2Mhz,
suporte a 4 ou 8 bits, memria RAM para 80 caracteres e reset automtico a cada
inicializao.


Figura 41 Display JHD-162A.

Foi especificada para este projeto, uma fonte de alimentao ATX modelo 500 P42S, Figura
42. Esta possui potncia mxima de 220W, para uma entrada de 115 VCA, 60Hz e consumo
mximo de 6A. Possui sada CC de 5V com capacidade de 18A a potncia de 100W e 12V
com capacidade de 12A a potncia de 104w, sendo capaz de alimentar a plataforma Arduino e
os motores conforme especificaes recomendadas. Veja no apndice B tabela de clculo de
corrente.
47



Figura 42 - Fonte ATX - 220W.


3.3 COMUNICAO

Foram concebidas algumas formas de comunicao entre o operador e o rob, como via USB
e Bluetooth.

USB
O Universal Serial Bus (USB) exatamente o que o nome expressa, ou seja, um barramento
universal serial desenvolvido entre um consrcio de vrias empresas como Microsoft, Apple,
HP, Intel, entre outras com o objetivo de interligar diversos equipamentos em uma porta de
comunicao nica e de simples utilizao pelo usurio mais imaturo em relao a
computadores pessoais. A concepo de desenvolvimento ocorreu aps o surgimento da
topologia plug and play (PnP) e a necessidade de interligar dispositivos perifricos para
usurios de PCs que no possuam familiaridade com a parte interna de um computador,
sendo a partir de ento os perifricos conectados e imediatamente utilizados sem dificuldades.
Atualmente existem trs tipos de conexo USB sendo a 1.1 com velocidade mxima de
transmisso de dados de 12 Mb/s, a USB 2.0 com velocidade de 480 Mb/s e a USB 3.0 com
4,8 Gb/s.
A comunicao USB ser utilizada no projeto para a transferncia de dados do IDE Arduino
para o microcontrolador via interface Arduino.

48


Bluetooh
O Bluetooth um protocolo de transmisso de dados a curta distncia via faixa de frequncia
ISM centrada em 2,45 GHz. Cada dispositivo possui seu endereo de 48 bits no formato
00:00:00:00:00:00 normalmente exibidos com o nome dos dispositivos por default. Para
iniciar uma comunicao necessrio o pareamento entre o mestre que fornece a senha e o
escravo que insere a senha para comprovao de amizade para transferncia de dados, sendo
estes salvos at que os usurios alterem as configuraes, tambm e possvel a alterao entre
mestre e escravo entre o pareamento de mais dispositivos.
Neste projeto a comunicao sem fio entre o celular ou computador e o microcontrolador ser
atravs do modulo Bluetooth JY-MCU.
O mdulo JY-MCU, Figura 43, possui a caracterstica ideal para associao com o Arduino.
Contm um regulador de tenso que permite a alimentao entre 3,3 e 5V, LED de indicao
de pareamento e comunicao, baud rate de 4800 / 9600 / 38400 / 57600 / 115200 / 230400 /
460800 / 921600, suporte em modo mestre e escravo, velocidade sncrona de 1Mbps, alcance
mximo de 10 metros e perfil serial Bluetooth. Veja no apndice E o modo de configurao
prvia do mdulo.


Figura 43 Mdulo Bluetooth JYMCU.
49


4 ROB MANIPULADOR SPI DER

O brao projetado possui quatro juntas rotacionais, sendo a primeira com o giro de 180 graus
da base, a segunda com o movimento de giro de 180 graus do ombro, a terceira com o
movimento de giro de 180 graus do cotovelo e a quarta acoplada garra articulada com
movimento de rotao de 90 graus. A garra possui, tambm, abertura e fechamento.
Consequentemente, o brao robtico possui quatro graus de liberdade e classificao como
rob articulado. Estes dados podem ser observados na Figura 44.


Figura 44 Graus de liberdade brao manipulador Spider.

O rob manipulador Spider possui um volume de trabalho, e sua determinao foi dada por
(Figura 45):



50



Figura 45 - Links manipulador Spider.


A razo entre a rea relativa de robs com articulao vertical 33,51 sendo esta utilizada no
clculo.




Como os motores so limitados a 180 Graus:


Ou seja,
O Espao de trabalho do rob Spider esfrico com volume da area de trabalho aproximado
de (Figura 64).
51


4.1 MODELAGEM CINEMTICA DO BRAO ROBTICO SPIDER

Inicialmente, foi elaborada a modelagem cinemtica do manipulador Spider utilizando o
mtodo Denavit-Hartenberg, resultando nas coordenadas de acordo com Figura 46.


Figura 46 Esquema grfico de coordenandas Denavit-Hatemberg.

Com a tabela elaborada a partir do algoritimo D-H obtm-se as matrizes de transformao
homognea de cada junta,


52



































Foi utilizado o vetor de entrada com os ngulos de cada junta conforme abaixo para
verificao e simulao de resultados:




Atravs da multiplicao das matrizes homogneas de cada junta, obteve-se ento a matriz de
posio-orientao final . Na Figura 47 demonstrado como os dados de rotao,
orientao, perspectiva e escala so distribudos na referida matriz.
A matriz relaciona por sua vez o sistema de coordenadas da base com o sistema de
coordenadas do efetuador para a configurao do rob manipulador Spider.



















53



Figura 47 - Distribuio dos dados na matriz de posio-orientao final.

Utilizando os parmetros obtidos pelo algoritimo de D-H no Robotic Toolbox (CORKE, 2011)
no Matlab verso 7.12.0 tambm foi obtida a matriz de transformao homognea para o
mesmo vetor de entrada .







Com isso pde-se verificar que a matriz idntica ao mtodo D-H, utilizado anteriormente,
reforando a validade dos dados. Tambm foram testados outros vetores de entrada com
valores aleatrios e os resultados obtidos sempre foram idnticos.
Com o mesmo Toolbox foi construido o modelo computacional do rob manipulador Spider,
que possibilitar variadas anlises e experimentaes, sem que sejam alterados componentes
fsicos no rob, podendo assim manter o baixo custo nos experimentos.
Como entrada, o modelo utiliza os parmetros Denavit-Hatenberg (Tetha, D, A, Alpha), como
pode ser observado no trecho de cdigo:

>> startup_rvc
>> L(1) = Link([0 0.147 0 pi/2 0]);
>> L(2) = Link([0 0 0.122 0 0]);
>> L(3) = Link([0 0 0 pi/2 0]);
>> L(4) = Link([0 0.333 0 0 0]);
>> robo = SerialLink(L, 'name', 'Rob Spider')

54



j theta D A alpha
1 Q1 0.147 0 1.571
2 Q2 0 0.122 0
3 Q3 0 0 1.571
4 Q4 0.333 0 0













O Matlab gera uma nova tabela de dados baseada nos mesmos dados D-H com o comando
SerialLink , com base nessa tabela cria o rob nas configuraes especificadas.
Com a mesma ferramenta foi extrada a matriz Jacobiana que relaciona as velocidades das
juntas com a velocidade espacial do efetuador.



Com isso, foi obtido o modelo computacional, conforme a Figura 48 e Figura 49, que tambm
pode ser perfeitamente controlado atravs de comandos prprios do Matlab. Veja apndice I.


55



Figura 48 - Modelo computacional do rob manipulador Spider.




Figura 49 - Modelo computacional rob manipulador Spider.



56


4.2 METODOS DE PROGRAMAO APLICADOS AO ROB SPIDER

aplicado no brao robtico Spider uma programao principal que a existente no
microcontrolador utilizado na interface Arduino. Esta programao baseada na linguagem
textual especfica da plataforma utilizada e que constitui a idia pincipal do programador de
hardware (Apndice A). Existe tambm uma programaco do programador-operador do brao
robtico. Esta baseada na idia da programao por Teach-Pendant, porm com uma
particularidade aplicada ao rob Spider. Esta programao secundria se baseia no
posicionamento via controle analgico ou digital, registros dos ngulos dos servomotores e
insero posterior conforme seleo de modo de operao.
Ao selecionar a operao por modo contnuo ser solicitado insero dos ngulos de cada
junta, logo aps inserir os dados o rob inicializar a rotina de repetio conforme a
quantidade tambm fornecida. importante lembrar que a sequncia de movimentos se baseia
sempre da base para o elemento final, ou seja, ao realizar a programao o brao robtico ir a
uma posio default e logo aps iniciar o giro, seguindo o acionamento do ombro, cotovelo,
giro do pulso, abertura e fechamento da garra respectivamente.
A elaborao da programao foi feita no Ambiente Integrado de Desenvolvimento (IDE) do
Arduino, que derivado de projetos com linguagem de programao de cdigo aberto para
plataforma de prototipagem eletrnica de hardware livre, composta por um microcontrolador
de placa nica. Possui uma aplicao multiplataforma escrita em Java e esquematizada para
introduzir pessoas no acostumadas com ambientes de programao e desenvolvimentos de
softwares. Para isto, o editor possui caractersticas e ferramentas de apoio ao desenvolvimento
de software, recursos de identificao automtica, parnteses correspondentes, realce de
sintaxe e capacidade de compilao simples que exibe a um click o ponto de defeito caso
exista.
Para realizar um programa funcional so exigidos apenas duas funes chamadas de Setup(),
que inserida no incio do programa e usada para inicializar a configurao, e Loop(), que
utilizada para repetir um bloco de comandos ou esperar at o desligamento do mesmo. Para
programadores mais familiarizados possivel atravs da biblioteca Wiring/Processing
5
a

5
uma linguagem de programao aberta com base na linguagem C/C++, possui recursos como classes e
objetos alm de bibliotecas para simplificao de cdigo.

57


capacidade de programar em C/C++ que a base de programao utilizada na plataforma
Arduino.
Para elaborao dos testes das lgicas dos programas elaborados foi observado que no existia
um software especfico para simulao da plataforma Arduino, sendo assim, foi utilizado o
software Proteus
6
, que exige a instalao de uma biblioteca especfica, alm de uma
particularidade para upload da lgica dentro do microcontrolador utilizado pelo programa,
conforme tutorial presente no apndice D.


4.3 INTERFACES

Com o ideal de ter o manipulador com facilidade de transporte, foram adaptados na base do
brao robtico Spider as conexes fmeas. Para a adaptao com a fonte de alimentao foi
utilizado um conector de 4 pinos conforme Figura 50, fixado prximo ao plug 2,1mm de
alimentao 12VCC alternativa e porta USB acoplada na plataforma Arduino.


Figura 50 Conectores.

No projeto foram adotadas vrias possibilidades de comando do manipulador, tais como
controle analgico, controle via teclado, controle via celular, autnomo e exoesqueleto. Cada
comando possui sua particularidade e sua lgica de programao especfica conforme
detalhadas a seguir.

6
um software que contm uma vasta biblioteca de componentes eletrnicos com uma excelente facilidade de
interligao que pode ser utilizado para simulao de circuitos eletrnicos e elaborao de circuitos impressos.

58


4.3.1 Controle Analgico

O controle analgico, demonstrado na Figura 51, foi elaborado a partir de um Joystick
especfico do videogame Play Station 2. Aproveitando a estrutura do mesmo, foram retirados
todos componentes eletrnicos, vedada as cavidades com massa plstica, aguardado
enrrigecimento e logo aps realizado pintura na cor prata.
Os potencimetros de 5 K responsveis pelos comandos analgicos foram fixados atravs
de dois furos, sendo um responsvel pela adaptao da parte mvel e outro para travamento
da parte fixa.
A conexo com o microcontrolador foi realizada via cabo de par tranado UTP CAT 5E com
um conector modular RJ45 macho, sendo o conector fmea fixado na base fixa do
manipulador (Figura 52) e diretamente ligado s entradas analgicas, alimentao e comum
respectivamente conforme padro seguite:
Verde = VCC; B. Laranja = A2;
B. Verde = GND; Laranja = A3;
B. Azul = A0; Marron = A4;
Azul = A1; B. Marron = No usado.


Figura 51 Controle anlgico.



59


4.3.2 Controle Via Teclado

O controle via teclado diretamente aplicado via comando por comunicao serial, realizada
especificamente pela conexo USB. Os dados trabalhados cumprem a lgica de tratamento
conforme o padro a seguir:
Caracter a = Comando de abre garra;
Caracter q = Comando de fecha garra;
Caracter s = Comando de giro anti horrio do pulso;
Caracter w = Comando de giro horrio do pulso;
Caracter d = Comando de abaixa cotovelo;
Caracter e = Comando de sobe cotovelo;
Caracter f = Comando de abaixa ombro;
Caracter r = Comando de sobe ombro;
Caracter g = Comando de giro anti horrio da base;
Caracter t = Comando de giro horrio da base.


4.3.3 Controle Via Celular

Para o controle via celular utilizado um aplicatido denominado Microcontroller BT. Este
aplicativo permite o pareamento do mdulo Bluetooth JY-MCU com o celular e logo aps a
elaborao de diferentes comandos selecionados e tratados na lgica de qualquer
microcontrolador. Veja no apndice F para configurao do aplicativo.
A comunicao aps o pareamento unidirecional, ou seja, o celular somente envia dados a
serem tratados na lgica que recebe sempre dois bytes, sendo o primeiro para discriminar qual
e a porta utilizada e o segundo para escrever o valor especfico entre 0 e 255, que corresponde
de 0 a 180 graus, no acionamento da base, ombro e contovelo, e de 0 a 90 graus no pulso e
60


garra. possvel o retorno de dados ao celular, porm no aplicado ao projeto. As portas
digitais utilizadas para comando via celular so:
3 = Comando da garra;
5 = Comando do pulso;
6 = Comando do cotovelo;
9 ou 10 = Comando do ombro;
11 = Comando da base.
Para evitar conflitos de transmisso e recebimento de dados foi instalado na base do
manipulador uma chave on/off para ligar e desligar o mdulo Bluetooth, sendo ligado apenas
quando necessrio utilizar o comando via celular, conforme Figura 52. Foi tratado tambm em
lgica, um contexto especfico para os pinos RX e TX, salvaguardando o conflito de dados
entre comunicao USB e Bluetooth.


Figura 52 Conector modular e chave de acionamento para o bluetooth.


4.3.4 Controle Autonmo

O controle autnomo segue o princpio de funcionamento do controle via teclado, porm sua
lgica de tratamento segue a condio de recebimento de valores correspondentes tabela
ASCII. Inicialmente so inseridos os valores de referncia iniciais das juntas, logo aps os
valores de referncia finais das juntas e por fim o nmero de repeties desejadas, iniciando
assim, o ciclo de repeties.
61


4.3.5 Controle Via Exoesqueleto

Para o comando via exoesqueleto demonstrado na Figura 53, foi elaborado uma estrutura em
EVA
7
que acoplada ao corpo, mais precisamente ao brao, reproduz os movimentos
especficos correspondentes ao brao humano. Para os comandos foi elaborado uma base
semelhante a do controle analgico sendo utilizado o conector modular RJ45, cabo UTP e
potencimentros de 5K.
Para que a estrutura montada reproduza os movimentos foram utilizadas chapas de alumnio
para acoplar a parte fixa dos potencimentros ao corpo e arames rgidos fixados na parte
mvel para realizar os movimentos de dobra das juntas do brao humano. A adaptao ao
corpo feita atravs da flexibilidade do EVA com o ajuste travamento via velcro.
A conexo com as entradas analgicas seguem o padro de conexo eltrica do controle
analgico e as seguintes reprodues associadas ao corpo humano:
Movimento do dedo mnimo = Abre e fecha garra;
Movimento do pulso = Giro horrio e anti-horrio do pulso do manipulador;
Movimento do cotovelo = Elevao e abaixamento do cotovelo do manipulador;
Movimento de flexo e extenso do ombro = Elevao e abaixamento do ombro do
manipulador;
Movimento pina digito-digital = Giro horrio e anti-horrio da base do manipulador.


7
uma mistura de alta tecnologia de Etil, Vinil e Acetato. uma borracha no-txica que pode ser aplicada em
diversas atividades.


62



Figura 53 Exoesqueleto.


4.3.6 Modos de exibio e acabamento

possvel acompanhar todos os comandos acima citados via serial monitor do IDE Arduino
ou via software X_CTU
8
na aleta Terminal e/ou via display. Para melhor aplicabilidade do
display conforme a Figura 54, foi instalado na base do manipulador, dois potencimentros
para ajuste de brilho e contraste respectivamente. As conexes dos pinos do display seguem
da seguinte forma:
1 = GND (Comum) 9 = No usado
2 = VCC (Alimentao 5V) 10 = No Usado
3 = Potencimetro 1 11 = Pino digital D8 do Arduino
4 = Pino digital D13 do Arduino 12 = Pino digital D7 do Arduino
5 = GND 13 = Pino digital D4 do Arduino
6 = Pino digital D12 do Arduino 14 = Pino digital D2 do Arduino
7 = No usado 15 = Potencimetro 2
8 = No usado 16 = GND



8
Software inicialmente desenvolvido para o teste de rdios e modems de comunicao. Possui uma plataforma
simples de utilizao para diversas aplicaes que envolvam envio e recebimento de dados via porta de
comunicao virtual COM.

63




Figura 54 Exibio dos parmetros rob Spider.

Para realizar o acabamento do brao robtico Spider foi utilizado um organizador para cabos
flexvel em espiral que permite envolver todos os cabos que saem dos motores e conectores.
Com isto finalizado o contexto prtico do projeto conforme Figura 55.


Figura 55 Manipulador didtico Spider.
64


5 PROBLEMAS ENCONTRADOS

Como todo projeto, a fase inicial de especificaes e de definies geram muitas dvidas
sobre quais as melhores ferramentas e componentes a serem utilizados e sendo assim neste
projeto no foi diferente.
Inicialmente vrios tipos de materiais foram propostos para a estrutura, foi utilizada a tcnica
Brain Storm
9
para seleo do material, posteriormente atravs de pesquisa foi encontrado em
outro estado brasileiro um fornecedor de acrlico que realizava cortes conforme necessidade
do cliente. Com esta informao e os objetivos definidos foram realizados os primeiros
esboos do manipulador.
Para compra dos motores foram encontradas vrias dificuldades, como podemos citar que o
mercado na grande Vitria no disponibiliza um mnimo de variedades de servomotores, o
que levou realizar as aquisies via internet e por mais de uma vez ocorreu de envio de motor
fora do especificado ou com funcionamento irregular.
Para elaborao das conexes do Arduino no foi encontrado no mercado um conector
especfico e sendo assim foi necessrio realizar a adaptao de outros tipos j existentes.
Aps a aquisio da fonte foi observado que o fornecedor realizou o enviou fora do
especificado e com isto fez-se necessrio a adaptao de uma chave on / off para facilitar o
ligamento e desligamento de todo circuito.
Para confeco do controle analgico tambm no foi encontrado no mercado um molde com
adaptao simples, o que levou a confeo conforme descrito anteriormente.



9
uma tcnica gerncial que visa utilizar ao mximo a criatividade dos participantes a fim de gerar diversas
solues e idias.


65


6 TESTES E RESULTADOS

Foram realizados testes de preciso e repetibilidade com o rob Spider. Inicialmente foi
acoplado uma caneta na garra para realizar marcaes em uma folha de papel A4 a fim de
verificar, com uma sequncia de comandos pr-definidos, a capacidade de atingir alvos
selecionados.
No primeiro teste foi demarcada a posio da base do rob Spider em relao a um ponto
definido com as coordenadas X = 0mm , Y = 500mm , Z = 40mm, como demonstrado na
Figura 56. A partir dessas coordenadas utilizando o modo celular de manuseio foi posicionado
o brao onde desejado e em seguida visualizando o display foram colhidos os ngulos das
juntas para alcanar essa posio no espao conforme Tabela 1. Utilizando o modo de
comando autnomo foi realizado o experimento que visava verficar a capacidade do rob
Spider em alcanar essa posio em diversas repeties.


Figura 56 - Coordenadas de teste.

66


Tabela 1 - Coleta de dados dos ngulos no teste 1.
Junta ngulo inicial ngulo Final
Ombro_Giro 126 41
Ombro 126 3
Cotovelo 3 126
Pulso 99 99
Garra 3 3

Fonte: Prpria.

Foram efetuadas dez repeties e colhidos os seguintes dados demonstrados na Tabela 2 e
exibidos na Figura 57 e Figura 58:

Tabela 2 - Coleta de dados do teste 1.
N Repetio Distncia do alvo (mm)
1 2
2 4
3 6
4 10
5 12
6 14
7 8
8 10
9 3
10 1
Mdia 7
Desvio padro 4,24

Fonte: Prpria.

67



Figura 57 - Teste de preciso.


Figura 58 Resultados do teste 1.



68


O segundo teste consistiu em traar um ponto em uma folha de papel A4, utilizando o modo
de comando via exoesqueleto. Com a caneta j posicionada no papel foram realizadas dez
elevaes das juntas do ombro e cotovelo simultaneamente com intuito de verificar a variao
das marcaes a partir da primeira marcao realizada, tendo os resultado conforme a Tabela
3 e exibidos na Figura 59.

Tabela 3 - Coleta de dados do teste 2.
N Repetio Distncia do alvo (mm)
1 6
2 5
3 5
4 5
5 4
6 2
7 3
8 2
9 10
10 2
Mdia 4,4
Desvio padro 2,33

Fonte: Prpria.


69



Figura 59 Resultados do teste 2.









70


O terceiro teste consistiu em traar uma linha em uma folha de papel A4, utilizando o modo
de comando via teclado. Com a caneta j posicionada no papel foram realizados dez
movimentos de giro na base, verificando assim as variaes em relao primeira marcao
realizada. Obtendo os resultados descritos na Tabela 4 e exibidos na Figura 60.

Tabela 4- Coleta de dados do teste 3.
N Repetio Distncia do alvo (mm)
1 5
2 1
3 1
4 1
5 1
6 2
7 3
8 4
9 4
10 4
Mdia 2,6
Desvio padro 1,49

Fonte: Prpria.


71



Figura 60 Resultados do teste 3.



72


O quarto teste consistiu em traar uma linha em uma folha de papel A4 utilizando o comando
via controle analgico. Com a caneta j posicionada no papel foram realizados dez
movimentos de giro na base seguidos por elevao, verificando assim a capacidade de
repetio dessa ao.
Aps dez repeties foram coletados os dados descritos na Tabela 5 e exibidos na Figura 61.

Tabela 5 - Coleta de dados do teste 4.
N Repetio Distncia do alvo (mm)
1 6
2 5
3 7
4 7
5 8
6 2
7 4
8 2
9 1
10 1
Mdia 4,3
Desvio padro 2,53

Fonte: Prpria.






73



Figura 61 - Resultados do teste 4.

Aps a realizao dos testes e levantamentos dos resultados foi observado eficcia dos
movimentos com um desempenho significativo na repetibilidade dos movimentos analisando
a preciso da posio e da trajetria nos diversos modos de comando. Sendo elaborado o
datasheet do rob manipulador Spider conforme apndice K.
74


7 CONCLUSO

O projeto do brao manipulador didtico proporcionou aos autores experincias nas mais
diversas fases de desenvolvimento de um projeto acadmico, desde a concepo at a
resoluo de problemas estruturais e conceituais. Tendo sido alcanado o objetivo principal de
desenvolver o brao manipulador didtico totalmente funcional mantendo o baixo custo e
operando com vrias interfaces de comando, podendo assim ser facilmente utilizado como
plataforma de ensino auxiliando na fixao e experimentao dos diversos conceitos de
robtica. Em especial as formas de comando foram um desafio parte onde a criatividade dos
autores foi posta a prova tendo em vista o desejo de criar dispositivos de controle com
operaes intuitivas com potencial aplicao industrial, onde o comando atravs de celular
demonstrou ser uma soluo com alto potencial de aplicabilidade tendo em vista a
possibilidade de o operador intervir facilmente na operao e o comando atravs de
exoesqueleto e controle analgico pode ser uma soluo para operaes por tempo
prolongado de aspecto dinmico onde os parmetros podem mudar sendo necessrio o
operador humano, operaes com aspecto esttico onde os movimentos so repetitivos o
comando autnomo sem duvidas a melhor opo dentre as apresentadas nesse projeto. O
arduino mostrou ser uma potente ferramenta para os mais diversos tipos de utilizao, com
fcil aplicao didtica o que reafirmou a necessidade da sua utilizao no projeto do brao
manipulador didtico.
As tcnicas de gerenciamento como, por exemplo: PDCA
10
e Brain Storm foram amplamente
utilizadas e se mostraram de grande valia nas tomadas de deciso.
Com este projeto esperamos ter contribudo para o aperfeioamento das prticas de robtica e
incentivar sua aplicao e pesquisa pelos discentes da UCL.




10
uma tcnica gerncial que tem uma proposta cclica para desenvolvimento de projetos, do
ingls: Plan (planejar), Do (fazer), Check (Checar), Act (Agir).

75


7.1 SUGESTES FUTURAS

Como sugestes futuras prope se os seguintes incrementos neste projeto:
Elaborao de comando por viso computacional que incrementaria uma gama de
conhecimentos tericos que podem tornar esta ferramenta tambm til para esta rea do
conhecimento;
Elaborao de comando atravs de um modelo virtual com interface grfica onde os
movimentos em um modelo virtual fossem replicados no manipulador, elevando assim a
quantidade e diversidade de comandos abrangendo ainda mais reas de conhecimento;
Elaborar ferramentas para atividades como soldagem e pintura para serem aplicadas no rob,
podendo assim gerar experimentos que reproduziriam atividades comuns de operao de
robs manipuladores;
Elaborar um projeto operao conjunta com a esteira didtica da UCL refletindo assim uma
operao usual dos robs manipuladores;
Conectar ao MATLAB, permitindo que seja utilizado o poder computacional de um
computador pessoal para a implementao de controladores acoplados, aplicando a
modelagem cinemtica aqui descrita.
Incluir sensores de posio articular (encoders) a fim de permitir um controle mais complexo.
76


BIBLIOGRAFIA

ABB. ABB, 04 Dezembro 2012. Disponivel em:
<www.abb.com/product/us/9AAC100735.aspx>. Acesso em: 04 Dezembro 2012.

ADMINISTRAO RENAULT. Robots. Renault. [S.l.]. 1979.

ALFRANCI SANTOS, M. J. E. H. L., 2005. Disponivel em:
<http://bioserver.cpgei.ct.utfpr.edu.br/publicacoes/2005/sbai2005a.pdf>. Acesso em: 01
Dezembro 2012.

ALL ON ROBOTS. All On Robots. All On Robots, 2012. Disponivel em:
<www.allonrobots.com/leonardo-da-vinci.html>. Acesso em: 10 Dezembro 2012.

ANGELES, J. Fundamentals Of Robotics Mechanical Systems. Montreal, Quebec H3A
2K6, Canada: Springer, 2002.

ASSOCIATION FRANAISE DE ROBOTIQUE (AFRI). ASSOCIATION FRANAISE
DE ROBOTIQUE (AFRI). L'A.F.N.O.R NF.E, 1986. 61-100.

CORKE, P. Robotics, Vision & Control. [S.l.]: SPRINGER, 2012.

CUNHA, F. Notas de aula da Disciplina Princpios de robtica, 2012. Disponivel em:
<ww1.ucl.br/disciplinas/PrincipRob/default.aspx>. Acesso em: 30 Agosto 2012.

FAYAN, B. L. Estudo e especificao de um supervisor de controle para um rob
industrial. Campinas. 1992.

FERREIRA, C. V. Manipulador Semi-Passivo para apoiar atividadesde veiculos
Submarinos. [S.l.]. 2006.

FRANCHIN, M. N. Robotica. [S.l.]. 2013.

GROOVER, M. P. Robtica Tecnologia e Programao. [S.l.]: McGraw-Hill, 1998.

HTTP://WWW.INMETRO.GOV.BR/CONSUMIDOR/UNIDLEGAISMED.ASP.
INMETRO, 10 out. 2012.

INDUZZI, R.; DUTRA, E. D. A. PROJETO DO SISTEMA DE CONTROLE DE
POSIO DE MOTORES DO ROB MANIPULADOR DIDTICO DA UCL. UCL.
Serra. 2009.

INTELLIGENT ROBOTICS AND COMMUNICATION LABORATORIES. Geminoid, 10
Dezembro 2012. Disponivel em: <www.irc.atr.jp/en/research-projects/geminoid/>. Acesso
em: 10 Dezembro 2012.

INTERNATIONAL FEDERATION OF ROBOTICS. IFR, 2012. Disponivel em:
<http://www.ifr.org/>. Acesso em: 13 Dezembro 2013.
77



MARSH, P. Robots. [S.l.]: Crescent, 1985.
MCCOMB, G. The robot Builders Bonanza. New York: McGraw-Hill Companies, 2001.

MOREIRA, A. E. O Uso da GoGo Board no Ensino da Robtica. UCL. Serra. 2005.

MOREIRA, A. L. V.; CUNHA, P. L. R. Plataforma Robtica Mvel Terrestre com seis
pernas Hibridas. UCL. Serra. 2010.

NATIONAL INSTRUMENTS. National Instruments, 2013. Disponivel em:
<http://brasil.ni.com/>. Acesso em: 13 Dezembro 2013.

NITZAN, D. Development of intelligent robots. [S.l.]: IEEE Journal of Robotics and
Automation , 1985.

ORGANIZAO INTERNACIONAL DE NORMATIZAO. http://www.iso.org/. ISO,
1982. Acesso em: Dezembro 2013.

QUARESMA, B. J. C. Projeto Mecnico para a Construo de um Manipulador
Robtico Articulado. [S.l.]. 2005.

RASCAL. RASCAL. www.robix.com, 2013. Disponivel em:
<http://www.robix.com/contents.html>. Acesso em: 28 ABRIL 2013.

REBOUAS, F. Homen vitruviano. http: //www.infoescola.com/desenho/o-homem-
vitruviano/, 09 ago. 2009. Acesso em: 30 ago. 2012.

REVISTA GALILEU. Revista Galileu, 2012. Disponivel em:
<www.revistagalileu.globo.com>. Acesso em: 10 Outubro 2012.

RIBEIRO, H.; NASCIMENTO, J.; QUEIROS-NETO, J. Simulador de cinemtica direta de
um rob didtico , 2010.

ROBOT INSTITUTE OF AMERICA ( RIA). Robots Definitions, 1979.

ROMANO, V. F. Robtica Industrial. Aplicao na Indstria de Manufatura e de
Processos. Sa Paulo: [s.n.], 2002.

ROSRIO, J. M. Principios de mecatrnica. So Paulo: Pearson, 2005.

SANTOS, A. F.; JUNIOR, M. G.; LOPES, H. S. Cinemtica inversa de trajetorias de
manipuladores roboticos redundantes utilizando algoritimo gentico com reduo
progressiva do espao de busca. CEFET- PR. Curitiba. 2005.

SANTOS, V. M. Robtica Industrial. [S.l.]: [s.n.], 2004.

SARAIVA, J. et al. Sistema de Controle Serial e Tapete Sensorial aplicado em manipulador
robtico articulado, Belm, 2009.

78


SEBRAE. Sebrae Mercados. Sebrae, 2013. Disponivel em:
<http://www.sebraemercados.com.br/?p=18891>. Acesso em: 22 Fevereiro 2013.
SILVA, R.; CABRAL, R.; CARVALHO, H. Tcnicas e linguagens de programao de
robs. Viseu: [s.n.], 2001.

SPONG, M. W. &. V. Control, Robot Dynamics and. [S.l.]: [s.n.], 1989.

SPONG, M. W.; HUTCHINSON, S.; VIDYASAGAR, M. Robot Modeling and Control.
[S.l.]: Wiley, 2006.

TESTI, L. B. Controlador Fuzzy com Aprendizado Aplicado em Manipuladores
Hidrulicos. UFRJ. Rio de Janeiro. 2005.

TOWER PRO. Tower Pro. http: //www.towerpro.com.tw/, 2013. Disponivel em:
<http://www.towerpro.com.tw/>. Acesso em: 09 Dezembro 2013.

UFMG, D. Aspectos Construtivos de Robs. ftp:
//ftp.demec.ufmg.br/lrss/Robotica_Graduacao_Pos/Aula2B_tiposderobos.pdf, 2013.
Disponivel em:
<ftp://ftp.demec.ufmg.br/lrss/Robotica_Graduacao_Pos/Aula2B_tiposderobos.pdf>. Acesso
em: 10 Dezembro 2013.

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL. Desenvolvimento de um
manipulador Robtico Cilindrico acionado pneumticamente. Universidade Federal do Rio
Grande do Sul, 2012. Disponivel em:
<www.lume.ufrgs.br/bitstream/handle/10183/32023/000784785.pdf?sequence=1>. Acesso>.
Acesso em: 28 Agosto 2012.


79


8 APNDICES

APNDICE A CDIGO DO MICROCONTROLADOR

#include <Servo.h> //inclui a biblioteca Servo.h
#include <LiquidCrystal.h> //Define a utilizao da biblioteca para controle de telas LDCs.
#include <SoftwareSerial.h>
SoftwareSerial RoboSpiderSerial(0,1);
char dados;
int key;
int cmd = 0;
int JYMCU = A5;
int JYMCU_AUX = 0;
Servo Garra;
Servo Pulso;
Servo Cotovelo;
Servo Ombro_1;
Servo Ombro_2;
Servo Ombro_Giro;
int val_Garra;
int val_Pulso;
int val_Cotovelo;
int val_Ombro;
int val_Ombro_Giro;
int val_Garra_Aux;
int val_Pulso_Aux;
80


int val_Cotovelo_Aux;
int val_Ombro_Aux;
int val_Ombro_Giro_Aux;
int incremento = 1; // Incremento do servo (Maior valor = maior velocidade, Menor
valor = Mais preciso)
int minPulso_Garra = 90; // Posio (angular) mnima do servo da Garra
int maxPulso_Garra = 180; // Posio (angular) mxima do servo da Garra
int largura_pulso_Garra = 0; // Largura do Pulso do servo (PWM) da Garra
int minPulso_Pulso = 0; // Posio (angular) mnima do servo de Giro do Pulso
int maxPulso_Pulso = 100; // Posio (angular) mxima do servo do Pulso
int largura_pulso_Pulso = 0; // Largura do Pulso do servo (PWM) do Pulso
int minPulso_Cotovelo = 0; // Posio (angular) mnima do servo de Giro do Cotovelo
int maxPulso_Cotovelo = 180; // Posio (angular) mxima do servo do Cotovelo
int largura_pulso_Cotovelo = 0; // Largura do Pulso do servo (PWM) do Cotovelo
int minPulso_Ombro_1 = 0; // Posio (angular) mnima do servo de Giro do Ombro_1
int maxPulso_Ombro_1 = 180; // Posio (angular) mxima do servo do Ombro_1
int largura_pulso_Ombro_1 = 0; // Largura do Pulso do servo (PWM) do Ombro_1
int minPulso_Ombro_2 = 0; // Posio (angular) mnima do servo de Giro do Ombro_2
int maxPulso_Ombro_2 = 180; // Posio (angular) mxima do servo do Ombro_2
int largura_pulso_Ombro_2 = 0; // Largura do Pulso do servo (PWM) do Ombro_2
int minPulso_Ombro_Giro = 0; // Posio (angular) mnima do servo de Giro do
Ombro_2
int maxPulso_Ombro_Giro = 180; // Posio (angular) mxima do servo do Ombro_2
int largura_pulso_Ombro_Giro = 0;
int n_repete;
int n_repete_aux;
int Base_inicial=0;
81


int Ombro_inicial=0;
int Cotovelo_inicial=0;
int Pulso_inicial=0;
int Garra_inicial=0;
int Base_final=0;
int Ombro_final=0;
int Cotovelo_final=0;
int Pulso_final=0;
int Garra_final=0;
int lixo=0;
int x=0;
LiquidCrystal lcd(13, 12, 8, 7, 4, 2); //Criando um objeto da classe LiquidCrystal e
inicializando com os pinos da interface
//---------------------------------------------------------------------------------------------------------------
void setup() {
Serial.begin(9600); // Abre conexo serial e define a taxa de transmisso em 9.600kbps
RoboSpiderSerial.begin(9600);
Serial.println("Inicializando \n"); // Imprime na Serial
Garra.attach(3); //Pino do arduino do Servo da Garra
Pulso.attach(5); //Pino do arduino do Servo da Pulso
Cotovelo.attach(6); //Pino do arduino do Servo da Cotovelo
Ombro_2.attach(9); //Pino do arduino do Servo da Ombro_2
Ombro_1.attach(10); //Pino do arduino do Servo da Ombro_1
Ombro_Giro.attach(11); //Pino do arduino do Servo da Ombro_Giro
pinMode(JYMCU, INPUT); // Selecional pino A5 como entrada digital.
lcd.begin(16, 2); // Caracteriza tamanho display JHD-162A
82


lcd.clear(); //limpa o display do LCD.
lcd.print("Inicializando"); //imprime a string no display do LCD.
lcd.setCursor(0,1); //posiciona o cursor na coluna 0 linha 1 do LCD.
lcd.print("Robo Spider"); //imprime a string no display do LCD.
Garra.write(180);
delay(500);
Pulso.write(100);
delay(500);
Cotovelo.write(0);
delay(500);
Ombro_2.write(180);
Ombro_1.write(180);
delay(500);
Ombro_Giro.write(100);
delay(500);
}
//---------------------------------------------------------------------------------------------------------------
void loop(){
JYMCU_AUX = digitalRead(JYMCU); // Verifica se mdulo bluetooth esta ligado
if (JYMCU_AUX == LOW) { // Seleciona logica via USB
lcd.clear();
lcd.print("Selecione o modo");
lcd.setCursor(0,1);
lcd.print("de funcionamento");
delay(200);
83


Serial.println("Selecione o modo de funcionamento: P(Controle) ou O(Teclado) ou
I(Exoesqueleto) ou U(Autonomo)"); // Imprime na serial
Serial.println("Digite 'L' para sair");
delay (3000);
if (Serial.available() > 0){ // verifica serial
int dados = Serial.read();
if(dados == 'o' || dados == 'O') // Seleciona comando via teclado
{
Teclado();
}
else if (dados == 'p' || dados == 'P') // Seleciona comando via controle analogico
{
ControleAnalogico ();
}
else if (dados == 'i' || dados == 'I') // Seleciona comando via exoesqueleto
{
Exoesqueleto();
}
else if (dados == 'u' || dados == 'U') // Seleciona comando via exoesqueleto
{
x=0;
RoboAutonomo ();
}
} // Fecha Serial
} // Fecha IF inicial
else // se (JYMCU_AUX == HIGH) - Seleciona logica via Celular
84


{
lcd.clear();
lcd.print("Modo Celular");
lcd.setCursor(0,1);
lcd.print("Desligue USB");
delay (100);
Celular ();
} // Fecha elsif
} // Fecha Loop
// LOGICA PARA CONTROLE POR TECLADO ---------------------------------------------------
void Teclado (){
Serial.println("");
Serial.println("Modo Teclado Selecionado");
lcd.clear();
lcd.print("Modo Teclado");
lcd.setCursor(0,1);
lcd.print("selecionado");
delay(200);
do {
int ServoMotor = Serial.read(); // l o byte na serial
switch(ServoMotor) {
case 'a': {
largura_pulso_Garra = largura_pulso_Garra - incremento;
lcd.clear();
lcd.print("Garra movendo");
lcd.setCursor(0,1);
85


lcd.print(largura_pulso_Garra);
lcd.print(" Graus");
if (largura_pulso_Garra < minPulso_Garra) {
largura_pulso_Garra = minPulso_Garra;
}
Garra.write(largura_pulso_Garra); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Garra: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Garra);
delay(100);
break;
}
case 'q': {
largura_pulso_Garra = largura_pulso_Garra + incremento;
lcd.clear();
lcd.print("Garra movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Garra);
lcd.print(" Graus");
if (largura_pulso_Garra > largura_pulso_Garra) {
largura_pulso_Garra = maxPulso_Garra;
}
Garra.write(largura_pulso_Garra); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Garra: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Garra);
delay(100);
break ;
86


}
case 's': {
largura_pulso_Pulso = largura_pulso_Pulso - incremento;
lcd.clear();
lcd.print("Pulso movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Pulso);
lcd.print(" Graus");
if (largura_pulso_Pulso < minPulso_Pulso) {
largura_pulso_Pulso = minPulso_Pulso;
}
Pulso.write(largura_pulso_Pulso); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Pulso "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Pulso);
delay(100);
break ;
}
case 'w': {
largura_pulso_Pulso = largura_pulso_Pulso + incremento;
lcd.clear();
lcd.print("Pulso movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Pulso);
lcd.print(" Graus");
if (largura_pulso_Pulso > largura_pulso_Pulso) {
largura_pulso_Pulso = maxPulso_Pulso;
87


}
Pulso.write(largura_pulso_Pulso); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Pulso "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Pulso);
delay(100);
break ;
}
case 'd': {
largura_pulso_Cotovelo = largura_pulso_Cotovelo - incremento;
lcd.clear();
lcd.print("Cotovelo movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Cotovelo);
lcd.print(" Graus");
if (largura_pulso_Cotovelo < minPulso_Cotovelo) {
largura_pulso_Cotovelo = minPulso_Cotovelo;
}
Cotovelo.write(largura_pulso_Cotovelo); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Cotovelo: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Cotovelo);
delay(100);
break ;
}
case 'e': {
largura_pulso_Cotovelo = largura_pulso_Cotovelo + incremento;
lcd.clear();
88


lcd.print("Cotovelo movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Cotovelo);
lcd.print(" Graus");
if (largura_pulso_Cotovelo > largura_pulso_Cotovelo) {
largura_pulso_Cotovelo = maxPulso_Cotovelo;
}
Cotovelo.write(largura_pulso_Cotovelo); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Cotovelo: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Cotovelo);
delay(100);
break ;
}
case 'f':
{
largura_pulso_Ombro_1 = largura_pulso_Ombro_1 - incremento;
largura_pulso_Ombro_2 = largura_pulso_Ombro_2 - incremento;
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Ombro_1);
lcd.print(" Graus");
if (largura_pulso_Ombro_1 < minPulso_Ombro_1) {
largura_pulso_Ombro_1 = minPulso_Ombro_1;
}
if (largura_pulso_Ombro_2 < minPulso_Ombro_2) {
89


largura_pulso_Ombro_2 = minPulso_Ombro_2;
}
Ombro_1.write(largura_pulso_Ombro_1); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Ombro_1: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Ombro_1);

Ombro_2.write(largura_pulso_Ombro_2); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Ombro_2: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Ombro_2);
delay(100);
break ;
}
case 'r': {
largura_pulso_Ombro_1 = largura_pulso_Ombro_1 + incremento;
largura_pulso_Ombro_2 = largura_pulso_Ombro_2 + incremento;
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Ombro_1);
lcd.print(" Graus");
//delay(100);
if (largura_pulso_Ombro_1 > largura_pulso_Ombro_1) {
largura_pulso_Ombro_1 = maxPulso_Ombro_1;
}
if (largura_pulso_Ombro_2 > largura_pulso_Ombro_2) {
largura_pulso_Ombro_2 = maxPulso_Ombro_2;
90


}
Ombro_1.write(largura_pulso_Ombro_1); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Ombro_1: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Ombro_1);
Ombro_2.write(largura_pulso_Ombro_2); // Envia o "comando" para o ServoMotor
Serial.println(" Servo_Ombro_2: "); // Imprime na serial o angulo do ServoMotor
Serial.println(largura_pulso_Ombro_2);
delay(100);
break ;
}
case 'g': {
largura_pulso_Ombro_Giro = largura_pulso_Ombro_Giro - incremento;
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Ombro_Giro);
lcd.print(" Graus");
if (largura_pulso_Ombro_Giro < minPulso_Ombro_Giro) {
largura_pulso_Ombro_Giro = minPulso_Ombro_Giro;
}
Ombro_Giro.write(largura_pulso_Ombro_Giro);
Serial.println(" Servo_Ombro_Giro: ");
Serial.println(largura_pulso_Ombro_Giro);
delay(100);
break ;
}
91


case 't': {
largura_pulso_Ombro_Giro = largura_pulso_Ombro_Giro + incremento;
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(largura_pulso_Ombro_Giro);
lcd.print(" Graus");
if (largura_pulso_Ombro_Giro > largura_pulso_Ombro_Giro) {
largura_pulso_Ombro_Giro = maxPulso_Ombro_Giro;
}
Ombro_Giro.write(largura_pulso_Ombro_Giro);
Serial.println(" Servo_Ombro_Giro: ");
Serial.println(largura_pulso_Ombro_Giro);
delay(100);
break ;
}
} // Fecha switch
dados = Serial.read();
} while (dados != 'l'); // Fecha do/while
} // Fecha funcao
// LOGICA PARA CONTROLE VIA CONTROLE ANALOGICO --------------------------------
void ControleAnalogico () {
Serial.println("");
Serial.println("Modo Controle analogico Selecionado");
lcd.clear();
lcd.print("Modo Controle");
92


lcd.setCursor(0,1);
lcd.print("selecionado");
delay(200);
do {
val_Garra = analogRead(0); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Garra = map(val_Garra, 10, 1023, 0, 180); // Escala o valor do potenciometro
conforme Servo(Valores entre 0 and 180)
if (val_Garra_Aux != val_Garra) {
Garra.write(val_Garra); // Seta posio do Servo conforme valor de escala
Serial.println(" Servo_Garra: ");
Serial.println(val_Garra);
lcd.clear();
lcd.print("Garra movendo");
lcd.setCursor(0,1);
lcd.print(val_Garra);
lcd.print( " Graus");
delay(100); // Aguarda posicionamento do Servo
val_Garra_Aux = val_Garra;
delay(100);
lcd.clear();
}
val_Pulso = analogRead(1); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Pulso = map(val_Pulso, 10, 1023, 0, 180); // Escala o valor do potenciometro conforme
Servo(Valores entre 0 and 180)
if (val_Pulso_Aux != val_Pulso) {
93


Pulso.write(val_Pulso); // Seta posio do Servo conforme valor de escala
Serial.println(" Servo_Pulso: ");
Serial.println(val_Pulso);
lcd.clear();
lcd.print("Pulso movendo");
lcd.setCursor(0,1);
lcd.print(val_Pulso);
lcd.print( " Graus");
delay(100);
val_Pulso_Aux = val_Pulso;
delay(100);
lcd.clear();
}
val_Cotovelo = analogRead(2); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Cotovelo = map(val_Cotovelo, 10, 1023, 0, 180); // Escala o valor do potenciometro
conforme Servo(Valores entre 0 and 180)
if (val_Cotovelo_Aux != val_Cotovelo) {
Cotovelo.write(val_Cotovelo); // Seta posio do Servo conforme valor de escala
Serial.println(" Servo_Cotovelo: ");
Serial.println(val_Cotovelo);
lcd.clear();
lcd.print("Cotovelo movendo");
lcd.setCursor(0,1);
lcd.print(val_Cotovelo);
lcd.print( " Graus");
94


delay(100);
val_Cotovelo_Aux = val_Cotovelo;
delay(100);
lcd.clear();
}
val_Ombro = analogRead(3); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Ombro = map(val_Ombro, 10, 1023, 0, 180); // Escala o valor do potenciometro
conforme Servo(Valores entre 0 and 180)
if (val_Ombro_Aux != val_Ombro) {
Ombro_1.write(val_Ombro); // Seta posio do Servo conforme valor de escala
Ombro_2.write(val_Ombro);
Serial.println(" Servo_Ombro_1_e_2: ");
Serial.println(val_Ombro);
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(val_Ombro);
lcd.print( " Graus");
delay(100);
val_Ombro_Aux = val_Ombro ;
delay(100);
lcd.clear();
}
val_Ombro_Giro = analogRead(4); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
95


val_Ombro_Giro = map(val_Ombro_Giro, 10, 1023, 0, 180); // Escala o valor do
potenciometro conforme Servo(Valores entre 0 and 180)
if (val_Ombro_Giro_Aux != val_Ombro_Giro) {
Ombro_Giro.write(val_Ombro_Giro); // Seta posio do Servo conforme valor de escala
Serial.println(" Servo_Ombro_Giro: ");
Serial.println(val_Ombro_Giro);
lcd.clear();
lcd.print("Ombro Girando");
lcd.setCursor(0,1);
lcd.print(val_Ombro_Giro);
lcd.print( " Graus");
delay(100);
val_Ombro_Giro_Aux = val_Ombro_Giro ;
delay(100);
lcd.clear();
}
dados = Serial.read();
} while (dados != 'l'); // Fecha do/while
} // Fecha funcao
// LGICA PARA CONTROLE VIA EXOESQUELETO ------------------------------------------
void Exoesqueleto () {
Serial.println("");
Serial.println("Modo Exoesqueleto Selecionado");
lcd.clear();
lcd.print("Exoesqueleto");
lcd.setCursor(0,1);
96


lcd.print("selecionado");
delay(200);
do {
val_Garra = analogRead(0); // L o valor do potencimetro (Valores entre 0 and 1023)
delay(100);
val_Garra = map(val_Garra, 60, 115, 0, 180); // Escala o valor do potnciometro conforme
Servo(Valores entre 0 and 180)
if (val_Garra_Aux != val_Garra) {
Garra.write(val_Garra); // Seta posio do servo conforme valor de escala
Serial.println(" Servo_Garra: ");
Serial.println(val_Garra);
lcd.clear();
lcd.print("Garra movendo");
lcd.setCursor(0,1);
lcd.print(val_Garra);
lcd.print( " Graus");
delay(100); // Aguarda posicionamento do servo
val_Garra_Aux = val_Garra;
delay(100);
lcd.clear();
}
val_Pulso = analogRead(1); // L o valor do potencimetro (Valores entre 0 and 1023)
delay(100);
val_Pulso = map(val_Pulso, 7, 120, 0, 180); // Escala o valor do potenciometro conforme
Servo(Valores entre 0 and 180)
if (val_Pulso_Aux != val_Pulso) {
Pulso.write(val_Pulso); // Seta posio do Servo conforme valor de escala
97


Serial.println(" Servo_Pulso: ");
Serial.println(val_Pulso);
lcd.clear();
lcd.print("Pulso movendo");
lcd.setCursor(0,1);
lcd.print(val_Pulso);
lcd.print( " Graus");
delay(100);
val_Pulso_Aux = val_Pulso;
delay(100);
lcd.clear();
}
val_Cotovelo = analogRead(2); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Cotovelo = map(val_Cotovelo, 7, 130, 0, 180); // Escala o valor do potenciometro
conforme Servo(Valores entre 0 and 180)
if (val_Cotovelo_Aux != val_Cotovelo) {
Cotovelo.write(val_Cotovelo); // Seta posio do Servo conforme valor de escala
Serial.println(" Servo_Cotovelo: ");
Serial.println(val_Cotovelo);
lcd.clear();
lcd.print("Cotovelo movendo");
lcd.setCursor(0,1);
lcd.print(val_Cotovelo);
lcd.print( " Graus");
delay(100);
98


val_Cotovelo_Aux = val_Cotovelo;
delay(100);
lcd.clear();
}
val_Ombro = analogRead(3); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Ombro = map(val_Ombro, 1023, 300, 0, 180); // Escala o valor do potenciometro
conforme Servo(Valores entre 0 and 180)
if (val_Ombro_Aux != val_Ombro) {
Ombro_1.write(val_Ombro); // Seta posio do Servo conforme valor de escala
Ombro_2.write(val_Ombro);
Serial.println(" Servo_Ombro_1_e_2: ");
Serial.println(val_Ombro);
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(val_Ombro);
lcd.print( " Graus");
delay(100);
val_Ombro_Aux = val_Ombro ;
delay(100);
lcd.clear();
}
val_Ombro_Giro = analogRead(4); // L o valor do potenciometro(Valores entre 0 and 1023)
delay(100);
val_Ombro_Giro = map(val_Ombro_Giro, 8, 1023, 0, 180); // Escala o valor do
potenciometro conforme Servo(Valores entre 0 and 180)
99


if (val_Ombro_Giro_Aux != val_Ombro_Giro) {
Ombro_Giro.write(val_Ombro_Giro); // Seta posio do Servo conforme valor de escala
Serial.println(" Servo_Ombro_Giro: ");
Serial.println(val_Ombro_Giro);
lcd.clear();
lcd.print("Ombro Girando");
lcd.setCursor(0,1);
lcd.print(val_Ombro_Giro);
lcd.print( " Graus");
delay(100);
val_Ombro_Giro_Aux = val_Ombro_Giro ;
delay(100);
lcd.clear();
}
dados = Serial.read();
} while (dados != 'l'); // Fecha do/while
} // Fecha funcao
// LOGICA PARA CONTROLE AUTONOMO ------------------------------------------------------
void RoboAutonomo () {
Serial.println("");
Serial.println("Modo Autonomo Selecionado");
lcd.clear();
lcd.print("Autonomo");
lcd.setCursor(0,1);
lcd.print("selecionado");
delay(200);
100


do {
if (Serial.available() > 0) // verifica serial {
if ( x == 0) {
lixo = Serial.read();
Serial.println("Inicio de Insercao da dados");
Serial.println("");
Serial.println("Digite angulo inicial da Base"); // Imprime na serial
delay (100);
x = 1;
}
else if ( x == 1) {
Base_inicial = Serial.read();
Serial.println("");
Serial.println("Digite angulo inicial do Ombro"); // Imprime na serial
delay (100);
x = 2;
}
else if (x == 2) {
Ombro_inicial = Serial.read();
Serial.println("");
Serial.println("Digite angulo inicial do Cotovelo"); // Imprime na serial
delay (100);
x = 3;
}
else if (x == 3) {
Cotovelo_inicial = Serial.read();
101


Serial.println("");
Serial.println("Digite angulo inicial do Pulso"); // Imprime na serial
delay (100);
x = 4;
}
else if (x == 4) {
Pulso_inicial = Serial.read();
Serial.println("");
Serial.println("Digite angulo inicial da Garra"); // Imprime na serial
delay (100);
x = 5;
}
else if (x == 5) {
Garra_inicial = Serial.read();
Serial.println("");
Serial.println("---------------------------------------------------------------");
Serial.println("");
Serial.println("Digite angulo final da Base"); // Imprime na serial
delay (100);
x = 6;
}
else if (x == 6) {
Base_final = Serial.read();
Serial.println("");
Serial.println("Digite angulo final do Ombro"); // Imprime na serial
delay (100);
102


x = 7;
}
else if (x == 7) {
Ombro_final = Serial.read();
Serial.println("");
Serial.println("Digite angulo final do Cotovelo"); // Imprime na serial
delay (100);
x = 8;
}
else if (x == 8) {
Cotovelo_final = Serial.read();
Serial.println("");
Serial.println("Digite angulo final do Pulso"); // Imprime na serial
delay (100);
x = 9;
}
else if (x == 9) {
Pulso_final = Serial.read();
Serial.println("");
Serial.println("Digite angulo final da Garra"); // Imprime na serial
delay (100);
x = 10;
}
else if (x == 10) {
Garra_final = Serial.read();
Serial.println("");
103


Serial.println("---------------------------------------------------------------");
Serial.println("");
Serial.println("Digite o numero de repeticoes"); // Imprime na serial
delay (100);
x = 11;
}
else if (x == 11) {
n_repete = Serial.read();
Serial.println("");
Serial.println("---------------------------------------------------------------");
Serial.println("Ok. Dados recebidos"); // Imprime na serial
Serial.println("");
Serial.println("Angulo inicial da base");
Serial.println(Base_inicial,DEC);
Serial.println("Angulo inicial do ombro");
Serial.println(Ombro_inicial,DEC);
Serial.println("Angulo inicial do cotovelo");
Serial.println(Cotovelo_inicial,DEC);
Serial.println("Angulo inicial do pulso");
Serial.println(Pulso_inicial,DEC);
Serial.println("Angulo inicial da Garra");
Serial.println(Garra_inicial,DEC);
Serial.println("------------------------");
Serial.println("Angulo final da base");
Serial.println(Base_final,DEC);
Serial.println("Angulo final do ombro");
104


Serial.println(Ombro_final,DEC);
Serial.println("Angulo final do cotovelo");
Serial.println(Cotovelo_final,DEC);
Serial.println("Angulo final do pulso");
Serial.println(Pulso_final,DEC);
Serial.println("Angulo final da Garra");
Serial.println(Garra_final,DEC);
Serial.println("------------------------");
Serial.println("Numero de repeticoes");
Serial.println(n_repete,DEC);
Serial.println("---------------------------------------------------------------");
delay (100);
x = 12;
}
else if ( x == 12); {
for (n_repete_aux=0; n_repete_aux < n_repete; n_repete_aux++) {
lcd.clear(); //limpa o display do LCD.
lcd.print("Repeticao atual"); //imprime a string no display do LCD.
lcd.setCursor(0,1); //posiciona o cursor na coluna 0 linha 1 do LCD.
lcd.print(n_repete_aux); //imprime a string no display do LCD.
Serial.println("Repeticao atual");
Serial.println(n_repete_aux,DEC);
delay(100);
Ombro_Giro.write(Base_inicial);
delay(500);
Ombro_2.write(Ombro_inicial);
105


Ombro_1.write(Ombro_inicial);
delay(500);
Cotovelo.write(Cotovelo_inicial);
delay(500);
Pulso.write(Pulso_inicial);
delay(500);
Garra.write(Garra_inicial);
delay(500);
//------------------------------------------------
Ombro_2.write(Ombro_final);
Ombro_1.write(Ombro_final);
delay(1000);
Cotovelo.write(Cotovelo_final);
delay(500);
Ombro_Giro.write(Base_final);
delay(500);
Pulso.write(Pulso_final);
delay(500);
Garra.write(Garra_final);
delay(500);
} // Fecha for
} //Fecha elsif
} // Fecha Serial
dados = Serial.read();
} while (dados != 'l');
} // fecha funcao
106


// LOGICA PARA CONTROLE VIA CELULAR ----------------------------------------------------
void Celular () {
while (RoboSpiderSerial.available() >= 2) { // Verifica serial para JY-MCU
key = Serial.read();
cmd = Serial.read();
cmd = map(cmd, 0, 100, 0, 180);
if (key == 3) {
if (cmd >= 0 && cmd <= 180) {
Garra.write(cmd);
lcd.clear();
lcd.print("Garra movendo");
lcd.setCursor(0,1);
lcd.print(cmd);
lcd.print( " Graus");
delay(100);
}
}
else if (key == 5) {
if (cmd >= 0 && cmd <= 180) {
Pulso.write(cmd);
lcd.clear();
lcd.print("Pulso movendo");
lcd.setCursor(0,1);
lcd.print(cmd);
lcd.print( " Graus");
delay(100);
107


}
}
else if (key == 6) {
if (cmd >= 0 && cmd <= 180) {
Cotovelo.write(cmd);
lcd.clear();
lcd.print("Cotovelo movendo");
lcd.setCursor(0,1);
lcd.print(cmd);
lcd.print( " Graus");
delay(100);
}
}
else if (key == 9 || key == 10) {
if (cmd >= 0 && cmd <= 180) {
Ombro_1.write(cmd);
Ombro_2.write(cmd);
lcd.clear();
lcd.print("Ombro movendo");
lcd.setCursor(0,1);
lcd.print(cmd);
lcd.print( " Graus");
delay(100);
}
}
else if (key == 11) {
108


if (cmd >= 0 && cmd <= 180){
Ombro_Giro.write(cmd);
lcd.clear();
lcd.print("Ombro girando");
lcd.setCursor(0,1);
lcd.print(cmd);
lcd.print( " Graus");
delay(100);
}
}
} // Fecha serial
} // Fecha funcao














109


APNDICE B LAYOUT DE SIMULAO DO BRAO MANIPULADOR SPIDER


Layout da simulao software Proteus.











110


APNDICE C TUTORIAL PARA SIMULAR ARDUINO NO PROTEUS

Para simulao dos circuitos propostos neste trabalho foi utilizado o programa Proteus com
uma biblioteca especfica do Arduino para criao e testes dos modelos propostos.
Como esta biblioteca no existe por padro necessrio realizar uma seqncia de instalao
conforme segue:
Com o programa Proteus fechado fazer download da biblioteca Arduino.ZIP para o
PC.
Extrair os arquivos Arduino.idx e Arduino.lib para o seguinte caminho: [unidade de
disco] \ program files \ labcenter electronics \ proteus 7 professional \ library
Abra o programa Proteus e no pick device wizard j apresentara os modelos para
insero.

Assim como feito nas simulaes utilizando PIC associado as lgicas criadas no MPLAB
necessrio tambm aps elaborao e compilao da lgica no Software do Arduino a
associao com o microprocessador Atmega. Porm existe uma peculiaridade nestes modelos
para fazer o download das lgicas elaboradas para o Arduino dentro do Proteus conforme
segue:
Aps compilar a lgica no software do Arduino criado um arquivo
[nome_Arquivo.cpp.elf] temporrio salvo em uma caminho especfico do computador
semelhante ao seguir conforme verso do sistema operacional.
Duplo click no componente do Arduino inserido na rea de trabalho do Proteus \
Program file \ Users \ AppData \ Local \ Temp \ build4239.tmp.

importante sempre que necessrio refazer o caminho pois a cada compilao realizada um
novo arquivo temporrio criado conforme a data inserida no sistema operacional.












111


APNDICE D TUTORIAL PARA CONFIGURAR O MDULO JY-MCU

Para personalizar o projeto exite uma maneira de configurar o modo de comunicao do
hardware Arduino com o mdulo Bluetooth, conforme segue:
Faa o Download da lgica presente no apndice E para o Arduino
Com o modulo JYMCU sem qualquer configurao previa de comunicao, faa as
ligaes da seguinte forma:
o VCC - Ligar no pino 5V do Arduino;
o GND - Ligar no pino GND do Arduino;
o TXD - Ligar no pino 10 do Arduino;
o RXD - Ligar no pino 11 do Arduino;
o CABO USB Ligar no Computador.
Com a logica aberta click no Serial Monitor e altere a configurao de velocidade para
115200 e assim ir aparecer mensagem Digite Comandos AT!;
Digite os commandos AT que forem necessrios para configurao conforme segue:
o AT = Retorna OK informado que a comunicao est certa;
o AT+NAMExxxxxxxxxx = Altera o nome do Dispositivo;
o AT+PINxxxx = Altera a senha;
o AT+BAUDx = Altera a velocidade de transmisso de dados 1 (bps)
x = 1 = 1200
x = 2 = 2400
x = 3 = 4800
x = 4 = 9600
x = 5 = 19200
x = 6 = 38400
x = 7 = 57600
x = 8 = 115200
x = 9 = 230400
o AT+VERSION = Retorna a verso de firmware da placa.
99


Aps inserir as configuraes, basta desconectar o cabo USB do computador e com
uma fonte externa alimentar os componentes e realizar o teste de comunicao, com
computador ou celular, conforme projetado.
























100


APNDICE E LGICA PARA CONFIGURAR MDULO JY-MCU

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
String command = ""; // Guarda respostas do dispositivo Bluetooth que permite simplificacao
void setup()
{
// Abre comunicao Serial e aguarda abertura de Porta:
Serial.begin(115200);
Serial.println("Digite Comandos AT!");
mySerial.begin(9600);
}
void loop()
{
// Le saidas dos dispositivos se disponivel.
if (mySerial.available()) {
while(mySerial.available()) { // Enquanto existe dados para leitura, continue lendo.
command += (char)mySerial.read();
}
Serial.println(command);
command = ""; // Sem repetio.
}
// Le entrada do usuario se disponivel.
if (Serial.available()){
delay(10);
mySerial.write(Serial.read());
}
}



101


APNDICE F TUTORIAL PARA CONFIGURAR MICROCONTROLLER BT

Para instalar o aplicativo preciso ir ao Googleplay, pesquisar e baixar normalmente o
software;
Abrindo o aplicativo ele ir para uma tela com o seguinte ttulo Creat New Layout, clique no
menu do celular e insira um novo layout;
Escreva o nome para seu layout e clique novamente no boto menu do celular e entre no
modo de edio;
Dentro do modo de edio ir aparecer uma aleta na parte inferior da tela, puxe a mesma para
a parte superior e assim ir aparecer os cones a serem inseridos para envio ou recebimento de
dados;
Clique no cone desejado e segure por um segundo que o mesmo ir possibilitar o
posicionamento dentro do seu layout criado;
Posicionando o cone faa um duplo clique no mesmo para abrir a configurao do mesmo, na
parte superior so exibidos quais as entradas e sadas a serem tratadas na lgica do
microcontrolador a ser utilizado;
Repita os itens anteriores para quantos cones forem necessrios e logo aps, quando finalizar
a insero e configurao faa um clique simples no boto de retorno de seu celular o que
levar a tela de trabalho do layout criado;
Dentro da tela de trabalho faa um novo clique no menu do celular o que possibilitar acessar
o cone de conectar;
No menu de conectar ir sugerir ligar o modo Bluetotooth do celular, caso esteja desligado,
seguindo do cone de localizar dispositivos;
Aps identificar o dispositivo a ser pareado, basta iniciar a comunicao e controle do
dispositivo.
102



Figura 62 - Layout Microcontroller BT.













103


APNDICE G TABELA DE CONSUMO DE CORRENTE

Quantidade Componente Corrente (Mx) Tenso alimentao
2 Servomotor SG90 0,5A 5V
4 Servomotor MG995 3A 5V
1 JY-MCU 0,5A 5V
1 Display JHD-162A 0,4A 5V
1 Arduino 1A 12V



















Consumo mximo 15A
104


APNDICE H ESBOO DOS DESENHOS


Vista lateral da base.


Superior da base.
105



Vista lateral ombro.


Vista lateral antebrao.
106




Vista lateral brao.


Vista superior do efetuador.



107


APNDICE I CLCULO DO TORQUE NOS MOTORES

Definio das massas dos links
Densidade do acrilico = 1,19 g/



MDE - Massa do link DE LDC Comprimento do link DC
MCD Massa do link CD LCD Comprimento do link CD
MBC - Massa do link BC LBC Comprimento do link BC

Mgarra = d * V
Mgarra = 1,19 * (14 * 5 * 0,5)
Mgarra = 42g = Aproximadamente 50g

MDE = 50(Mgarra) + 9(Motor) + 150(Carga til do brao) + 20(Parafusos)
MDE = Aproximadamente 230g

MC D= d * V
MCD = (1,19 * (2 * (23 * 10 * 0,5))) + 9(Motor) + 20(Parafusos) + 65(Motor)
MCD = Aproximadamente 380g

MBC = d * V
MBC = (1,19 * (2 * (22 * 10 * 0,5))) + 130(Dois Motores) + 20(Parafusos)
MBC = Aproximadamente 420g






108


Definio dos Torques dos motores principais
TB MDE * (LBC + LCD + Garra) MCD * (LBC + LCD) MBC * (LBC) = 0
TB = (0,23 * (12,2 + 18,3 + 15,2) + (0,38 * (12,2 * 18,3)) + (0,42 * 12,2)
TB = 10,51 + 11,59 + 5,12
TB = 27,22 Kg*cm

TC (MDE * (LCD + Garra)) (MCD * LCD) = 0
TC = (0,23 * (18,3 + 15,2)) + (0,38 * 18,3) = 0
TC = 7,71 + 6,95
TC = 14,66 Kg*cm


Figura 63 - Parmetros de clculo.











109


APNDICE J CDIGO MATLAB DO MODELO COMPUTACIONAL ROB SPIDER

necessrio a instalao do Robot Toolbox.
Os dados dos links foram coletados da tabela que foi gerada a partir do algoritimo de Denavit-
Hartemberg.
>> startup_rvc % Inicializa o TollBox
>> L(1) = Link([0 0.147 0 pi/2 0]); % parmentros link 0
>> L(2) = Link([0 0 0.122 0 0]); % parmentros link 1
>> L(3) = Link([0 0 0 pi/2 0]); % parmentros link 2
>> L(4) = Link([0 0.333 0 0 0]); % parmentros link 3
>> robo = SerialLink(L, 'name', 'Rob Spider') % Une os links criando o rob

robo = Rob Spider (4 axis, RRRR, stdDH) % parmentros do rob

+---+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha |
+---+-----------+-----------+-----------+-----------+
| 1| q1| 0.147| 0| 1.571|
| 2| q2| 0| 0.122| 0| % tabela de dados gerados pelo Matlab
| 3| q3| 0| 0| 1.571|
| 4| q4| 0.333| 0| 0|
+---+-----------+-----------+-----------+-----------+

grav = 0 base = 1 0 0 0 tool = 1 0 0 0
0 0 1 0 0 0 1 0 0
9.81 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
110


>> disp('Variveis de juntas:');

Variveis de juntas:
>> q = [1, pi/3, 1, pi/4] % parmentros algulares das juntas
q = 1.0000 1.0472 1.0000 0.7854
>> disp('Cinematica Direta:');

Cinematica Direta:
>> T = robo.fkine(q) % comando para obteno da cinemtica direta
T =
0.4198 0.7702 0.4801 0.1928
-0.6549 -0.1092 0.7478 0.3003 % Matriz de coordenadas homognea
0.6284 -0.6284 0.4586 0.4054
0 0 0 1.0000
>> disp('Jacobiano:');

Jacobiano:
>> J = robo.jacob0(q) % comando para gerao da matriz Jacobiana
J =
-0.3003 -0.1396 -0.0825 0
0.1928 -0.2174 -0.1285 0
-0.0000 0.3569 0.2959 0 % Matriz Jacobiana gerada pelo Matlab
-0.0000 0.8415 0.8415 0.4801
0.0000 -0.5403 -0.5403 0.7478
1.0000 0.0000 0.0000 0.4586

111


APNDICE K DATASHEET DO ROB SPIDER

Fsico
Garra
Peso 50g
Peso do acoplamento do pulso com a garra 30g
Dimenso da garra fechada 152mm
Abertura mxima 72mm
Giro mximo do pulso 180
Torque do motor de abertura e fechamento 1,6 kg / cm
Velocidade mxima abertura ou fechamento 60 a cada 0,12 segundos
Velocidade mxima de giro 60 a cada 0,12 segundos

Manipulador
Capacidade de manuseio 150g + - (23g)
Peso do cotovelo 230g
Peso do ombro 420g
Peso da base 500g
Peso total do brao manipulador 1300g
Alcance mximo na horizontal 435mm
Alcance mximo na horizontal ao solo 380mm
Alcance mximo na vertical 604mm
Nmero de eixos 4
Torque do motor de giro, ombro e cotovelo 15 kg / cm
Velocidade mxima do giro, ombro e cotovelo 60 a cada 0,16 segundos
Volume de trabalho 0,1



112



Figura 64 - Volume de trabalho do rob Spider

Desempenho
Repetibilidade da posio Erro mdio de +- 7,0 mm
Repetibilidade do percurso Erro mdio de +- 3,8 mm

Eletrnica
Manipulador Spider
Fonte de alimentao ATX-500 de 220W
Microcontrolador Arduino Duemilanove
Display JHD-162A
Mdulo Bluetooth JY-MCU
Conector para controles analgicos RJ-45
Aplicativo para controle via celular Microcontroller BT
Senha de acesso Bluetooh 1302





113


Requisitos
Sequncia para energizar rob Spider:
o 1 Conectar e ligar fonte de alimentao;
o 2 Conectar cabo USB;
o Para desenergizar seguir a sequencia contrria.

Sequncia para utilizar comunicao via mdulo Bluetooth:
o 1 Ligar chave na base do rob Spider;
o 2 Conectar e ligar fonte de alimentao.

Sequncia caso ocorra desacoplamento do giro do brao:
o Posicionar Rob Spider na posio 180
o Abaixar aba da base onde se encontra o display
o Realizar reaperto do parafuso central

Valores da tabela ASCII para controle autnomo
o Via Arduino Monitor
Alt + 7 = 149
Alt + 21 = 167
Alt + 32 a 126 = (X=X)
Alt + 169 = 174
o Via software X-CTU
FN + Delete = 3
Enter = 13
Alt + 21 = 167
Alt + 32 a 126 = (X=X)
Alt + 169 = 174
114


9 ANEXOS

ANEXO A INTERFACE DE CONFIGURAO DO DISPLAY JHD-162A


Entradas display JHD-162A.












115


ANEXO B ESQUEMTICO DA PLATAFORMA ARDUINO DUEMILANOVE


Esquemtico Arduino.










116


ANEXO C MICROCONTROLADOR ATMEGA 328 - ENTRADAS E SADAS


Microntrolador Atmega 328.















117


ANEXO D - MICROCONTROLADOR ATMEGA 328 DIAGRAMA DE BLOCOS


Diagrama Microcontrolador ATMEGA.