FORTALEZA
2015
FORTALEZA-2015
TERMO DE APROVAO
AGRADECIMENTOS
A todos aqueles que contriburam para que eu pudesse realizar esta obra,
familiares, primeiramente, e amigos. Em especial Natanael e Davi.
2 Timteo 1:7
RESUMO
Nos ltimos anos, um forte incentivo tem sido dado ao desenvolvimento de mquinas
para realizar atividades em ambientes hostis aos seres humanos ou em locais de difcil
acesso. Como possvel fazer inspeo, reconhecimento ou levar equipamentos a esses
locais e ainda desempenhar tarefas por longos perodos de tempo e retornar sem riscos?
O presente trabalho apresenta a construo de um rob hexpode biologicamente
inspirado, modelo tipo Phoenix, e de baixo custo para uso como plataforma de
desenvolvimento de arquiteturas de controle a fim de operar em ambientes no
estruturados, desconhecidos, ou hostis, pois, sendo um dos que se locomove por meio
de seis patas, apresenta vantagens para superar obstculos em relao s outras
configuraes de robs mveis rotacionais, atendendo a necessidade de acesso a
ambientes de relevo acidentado ou com inclinao. O processo de manufatura de um
rob desse tipo apresentado neste trabalho, contendo um desenho 3D no software
SOLID EDGE, um modelo utilizando acrlico como material de estrutura, servosmotores
de 9g e torque de aproximadamente 1,8 kg.cm como atuadores das patas, com trs
graus de liberdade cada uma, e uma placa de desenvolvimento contendo um mdulo de
controle da TIERTEX, com um microcontrolador da famlia PIC (o PIC 18F4550),
utilizando-se de interface USB para bootloader e linguagem C, com cdigo escrito no
ambiente MPLAB X. Este projeto permitiu a construo do prottipo proposto, bem como
um firmware desenvolvido para acionamento inicial das patas, com o recurso de criar
sinais PWM variados para mltiplos servomotores, fazendo o rob deixar a posio de
repouso para uma posio elevada de espera para locomoo segura.
ABSTRACT
In recent years, a strong incentive has been given to the development of machines to
carry out activities in hostile environments to humans or hard to reach places. How you
can make inspection, recognition or take equipment to these places and still perform tasks
for long periods of time and return them safely? This paper presents the construction of a
biologically inspired hexapod robot, type model Phoenix, and low cost for use as a
development platform control architectures to operate in unstructured environments,
unknown, or hostile of them, being a robot that can walk with six legs, has advantages to
overcome obstacles in relation to other rotational mobile robot configurations, given the
need for access to rugged or tilted environments. The manufacturing method of a robot of
this type is presented in this paper, containing a 3D design in software SOLID EDGE,
using a model structure as acrylic material, 9g micro servos, with torque of approximately
1,8 Kg.cm how actuators of the legs, with three degrees of freedom each, and a
development board containing a control module TIERTEX with a PIC family
microcontroller (PIC 18F4550), using USB interface for bootloader and C language with
code written in MPLAB X environment. This project allowed the construction of the
proposed prototype, and firmware designed for initial activation of the legs, with ability to
create various PWM signals for multiple servos, making the robot let the rest position to a
raised position waiting for secure mobility.
Keywords: Mobile Robots Biologically Inspired. Robots with legs. Hexapod. Phoenix
Hexapod.
LISTA DE FIGURAS
LISTA DE SIGLAS
SUMRIO
1 INTRODUO .......................................................................................... 13
1.1 Contextualizao do Problema ............................................................... 13
1.2 Objetivos .................................................................................................. 14
1.2.1 Objetivos Gerais ...................................................................................... 14
1.2.2 Objetivos Especficos.............................................................................. 14
1.3 Justificativa .............................................................................................. 14
1.4 Metodologia.............................................................................................. 15
1.5 Escopo ...................................................................................................... 15
1.6 Estrutura do trabalho .............................................................................. 15
2 FUNDAMENTAO TERICA ................................................................ 17
2.1 Contexto histrico ................................................................................... 17
2.2 Definies de Rob ................................................................................. 24
2.2.1 O que e o que no um rob .............................................................. 24
2.3 Robtica Mvel ........................................................................................ 28
2.4 Classificao de Robs........................................................................... 31
2.4.1 Segundo a Anatomia ............................................................................... 32
2.4.2 Segundo o Tipo de Controle ................................................................... 37
2.4.3 Segundo a Funcionalidade ..................................................................... 38
2.5 Aplicaes para a Robtica Mvel ......................................................... 40
2.6 Desafios de Implementao em Robtica Mvel .................................. 43
2.7 Componentes de um Rob Mvel .......................................................... 45
2.7.1 Estrutura Mecnica .................................................................................. 45
2.7.2 Atuadores ................................................................................................. 45
2.7.3 Sensores................................................................................................... 49
2.7.4 Controladores .......................................................................................... 53
2.7.5 Baterias..................................................................................................... 53
2.8 Locomoo............................................................................................... 54
2.9 Sistemas Robticos de Locomoo por Patas ..................................... 56
2.9.1 Contexto Histrico e Primeiros Estudos ............................................... 57
2.9.2 Tipos de Robs com patas ..................................................................... 60
2.9.3 Robs Hexpodes ................................................................................... 65
1 INTRODUO
1.2 Objetivos
Este trabalho visa construir um rob de custo vivel para estudo, do tipo
hexpode, tendo o design voltado inspeo de locais de difcil acesso humano,
locais insalubres e/ou perigosos. Alm de iniciar o controle primrio dos
atuadores, que consiste em acionar as seis patas para locomoo.
1.3 Justificativa
1.4 Metodologia
1.5 Escopo
2 FUNDAMENTAO TERICA
Figura 3 - Acima o pato mecnico de Jacques de Vaucanson, abaixo os trs bonecos autmatos
dos irmos Droz e ao lado foto do mecanismo de um dos bonecos.
(Fonte: http://pinterest.com)
Lei n 1: Um rob jamais deve causar danos a um ser humano nem, por
inao, permitir que isso acontea.
Lei n 2: Um rob deve sempre obedecer ordem do ser humano, a menos
que isso entre em conflito com a primeira Lei.
Lei n 3: Um rob deve proteger sua prpria existncia a menos que isto
entre em conflito com a primeira ou a segunda lei.
Posteriormente foi formulada a Lei Zero, baseada nas outras trs, que diz:
um rob no pode prejudicar a humanidade ou, por meio de sua falta de ao,
permitir que a humanidade sofra algum mal.
Essas leis devem dirigir o comportamento que um rob deve ter, mesmo
estando um pouco longe da aplicabilidade tecnolgica atual, como robs de uso
militar ou pelo fato da complexidade de criar robs autnomos que ajam conforme
seres humanos. Entretanto, o contedo dessas leis pode servir de guia para
formular uma linha de diretrizes a serem aplicadas durante a concepo,
desenvolvimento, teste, implementao, utilizao e manuteno de sistemas
robticos (CLARKE, 1994).
Em 1948, aps a inveno do transistor, os robs puderam ser controlados
por computador e, em 1954, a primeira patente para um rob industrial controlado
por computador, chamado Programmed Article Transfer (Mquina de
Transferncia Programada), foi criada e registrada por George Devol (1912-2011),
sendo sua principal funo a de transferncia de objetos de um ponto a outro.
Devol criou uma memria computadorizada, assim como um sistema de controle
com o nome de Universal Automation. Juntamente com Joseph F. Engelberger,
ambos desenvolvem o primeiro rob industrial pela Unimation Inc., primeira
empresa de robs industriais, formada por eles em 1956. J em 1961, o primeiro
rob UNIMATE, capaz de desempenhar vrias tarefas automaticamente e
podendo ser reprogramado com custos pequenos, foi produzido e instalado na
General Motors, em Trenton, New Jersey. (BIANCHI, 2011; PIERE, 2002;
ROSRIO, 2005).
O primeiro sistema para viso de robs surge em 1963 e o primeiro rob de
pintura, que podia ter sua trajetria treinada e armazenada, em 1966. Em meados
desta dcada, a confiabilidade, a qualidade e a produtividade oferecida por vrios
21
1921 O dramaturgo Karel Kapek usa pela primeira vez a palavra robot na
pea teatral Rossums Universal Robots (R.U.R.), que retrata a criao
de robs para substituir o homem nos trabalhos pesados. O rob
comea a ser visto como uma mquina humana com inteligncia e
personalidade.
1969 O homem pisa no solo lunar pela primeira vez. Nessa poca j se
utilizam manipuladores para recolher amostras e executar pequenas
tarefas em resposta ao comando de um controle remoto. O modo de
teleoperao serve para efetuar escavaes e outras tarefas de
complexidade reduzida.
Sistemas de controle;
Sistema de percepo (sensoriamento);
Sistema de ao mecnica (manipulao ou locomoo);
Sistema de inteligncia (processamento, representao, decises, troca de
informaes).
OPERADOR
DEFINIO DASTAREFAS
COMUNICAO/INTELIGNCIA
CONTROLE/ACIONAMENTO
ESTRUTURAMECNICA
EXECUO
SENSORESINTERNOS DAS
TAREFAS
O ser humano, que visto pelo mbito mecnico, frgil, pois no pode
trabalhar em ambientes txicos ou contaminados, nem suporta
temperaturas extremas, executa nmero limitado de operaes por perodo
de tempo. Contudo, ele imensamente verstil, uma vez que a polivalncia
de seu brao, com 7 graus de liberdade, e a adaptabilidade gerada por
meio de sua percepo e inteligncia so imensurveis.
26
Dessa forma, robs podem ser definidos como mquinas que conjugam a
polivalncia de telemanipuladores, o alto grau de automatismo de mquinas a
controle numrico e a adaptabilidade para que seja capaz de atuar em ambientes
desconhecidos (FERREIRA, 1991).
Segundo a AFRI (Association Franaise de Robotique Industrialle),
manipuladores modestos que executam automaticamente sequncias, variveis
ou fixas, de tarefas recebem denominao de robs, mas no somente isso, pois
a Robtica deve englobar, com base na utilizao de tcnicas modernas de
controle, da informtica e de novos sensores, todas as adaptaes em mquinas
conhecidas ou desenvolvidas. Contudo, o R.I.A (Robotics Institute of America),
Instituto de Robtica da Amrica, apresenta uma definio mais abrangente,
enfatizando a funo de reprogramao ao invs da de adaptao: Rob um
manipulador multifuncional, reprogramvel, projetado para mover materiais,
peas, ferramentas ou dispositivos especficos, por meio de movimentos
programveis variveis a fim de executar vrias tarefas (FERREIRA, 1991;
BIANCHI, 2011).
De mesma forma, Mittal e Nagrath (2007) citam as categorias que a
Associao Japonesa de Robs Industriais (Japanese Industrial Robot
Association JIRA), juntamente com o Comit de Padres Industriais Japons,
definiu para os robs industriais:
(a) (b)
Fonte: Bombled(2011)
32
Robs Mveis
Rodas
Esteiras
Pernas
Figura 10 - (a) UAV MQ-9 Reaper, no Afeganisto, 4 de novembro de 2007; (b) MQ-8B
helicptero autnomo, 8 de maio de 2009.
(a) (b)
Fontes: http://www.olive-drab.com-drones
(a) (d)
Figura 12 - (a) Rob Nereus; (b) AUV MT-88, j usado em salvamentos, na Rssia.
(a) (b)
Fonte: http://www.inovacaotecnologica.com.br-Nereus; Souza (2005)
(c)
Fonte: http://news.seadiscovery.com
Figura 14 - Os quatro tipos bsicos de roda: (a) roda comum com rotao em torno do eixo
motorizado; (b) roda com rotao na junta; (c) roda de trs graus de liberdade com pequenos rolos
livres em volta; (d) roda esfrica.
(a) (b) (c) (d)
Figura 15 - (a) Rezero, rob com roda esfrica; (b) rob omnidirecional.
(a) (b)
(a) (b)
(a) (b)
De acordo com cada tipo de controle, os robs podem ser classificados nas
seguintes categorias:
38
Figura 19 Robs Mveis: (a) Rob SILO-6, (b) Rob AIBO, (c) Rob Curiosity, (d) Rob AGV
(a) (b)
(c) (d)
Cognio
Localizao Posio
Mapa Global Planejamento da
no Mapa
Trajetria
Extrao e Execuo da
Interpretao das Trajetria
Informaes
Comandos aos
Dado Bruto Atuadores
Sensoriamento Ao
Mundo Real
Estrutura Mecnica;
Atuadores;
Sensores;
Controladores;
Baterias.
2.7.2 Atuadores
Figura 21 - Tipos de Atuadores: (a) Pistes Pneumticos e Hidrulicos, (b) Pistes Pneumticos,
(c) Motor AC, (d) Motor DC, (e) Motor de Passo, (f) Servo.
(a) (b)
(d)
(c)
(e)
(f)
2.7.3 Sensores
Podem ser classificados ainda de acordo com Marchi (2001), que cita dois
grupos de sensores principais usados em robtica, os sensores de coliso
(fazendo referncia aos sensores externos), usados para deteco de obstculos
e mapear o ambiente externo, e os de posicionamento (internos), utilizados para
determinar a posio do rob.
So exemplos de Sensores Externos (MARCHI, 2001; SECCHI, 2012):
Sensor Infravermelho
Sendo um dos mais utilizados, com baixo custo e funcionamento simples,
este sensor emite luz infravermelha que, caso seja refletida por um objeto,
captada por um receptor, permitindo ao controlador calcular a distncia por
meio de incidncia refletida.
Sonar
Sensor de baixo custo que se baseia pela emisso de um sinal ultrassnico
(alta frequncia) que, ao atingir o obstculo, refletido e captado pelo
receptor (transdutor). O controlador obtm a distncia calculando o tempo
entre incio da emisso e recebimento da onda. Embora precise de pouco
processamento, pode haver falha no recebimento da onda, no caso de
objetos com superfcie plana ou quando o receptor capta outra informao de
outro objeto, tornando a leitura imprecisa.
Laser
Apropriados para ambientes onde h mudanas na iluminao,
necessitando de circuitos para detectar de forma correta a alta velocidade do
feixe de luz, que emitido em sequncia rpida de perodo curto. O tipo mais
simples semelhante aos infravermelhos, tendo um emissor e um receptor.
52
Cmeras
Utilizadas como sensores de viso para o rob, onde as imagens obtidas
so processadas por meio de reconhecimento de padres, embora haja
sensibilidade luz e complexidade envolvendo tal processamento.
Sensor de Contato
So representados por botes que so acionados em contato com algum
obstculo.
Odmetro
Dispositivos que medem o estado interno e a dinmica do rob, por meio
do clculo da distncia percorrida, sendo possvel obter a posio estimada.
Os mais usados so os encoders, que um transdutor no formato de um
disco com espaos radiais, que converte movimento angular dos motores em
pulsos digitais que so contabilizados.
Bssolas e Giroscpios
Tem como objetivo transmitir o ngulo do rob em relao ao ambiente,
embora sejam facilmente afetados por rudos devido sensibilidade do metal
usado. Compensam o maior problema nos sistemas odomtricos, onde um
mtodo de posicionamento baseado unicamente em odometria submetido a
um erro de orientao ou variao. J um giroscpio baseia-se no princpio da
inrcia, independente de coordenadas geogrficas, ao contrrio da bssola,
acoplados numa barra estabilizadora estrutura do rob, no sendo afetado
por magnetismo, servindo como referncia de direo.
GPS
Utilizado para determinar latitude e longitude em robs por meio da
transmisso de dados com satlites em rbita no planeta, sendo mais
53
Triangulao e Trilaterizao
Desenvolvida na Segunda Guerra Mundial, tendo a implementao original
conhecida como LORAN (Long Range Navigation), Navegao de Longo
Alcance, um mtodo de navegao passiva, onde o sistema faz uma
comparao dos tempos de chegada de dois sinais iguais gerados por
transmissores de coordenadas j determinadas. A diferena de tempo entre a
obteno dos sinais diretamente proporcional distncia entre os
transmissores e o rob. J a Trilaterizao um sistema ativo que mede o
atraso de propagao de um sinal s estaes conhecidas.
2.7.4 Controladores
O controlador a parte do rob que opera outras partes que fazem parte
do prprio rob. Tal controle depende de atuadores, de sensores, de um algoritmo
de controle no software e de um hardware, tendo um retorno (feedback) de
informaes para que atualize os comandos (velocidade do motor, posio,
localizao do rob) (BRUNL, 2008).
2.7.5 Baterias
O fornecimento de energia est relacionado diretamente autonomia do
rob, sendo necessrio alimentar todos os sistemas que fazem parte dele, como
motores, sensores, controladores, comunicaes, podendo ser por meio de
baterias de Chumbo, LI-Ion, NiCD, LiMH, entre outras, como energia alternativa
obtida de painis solares (RIBEIRO, 2004).
54
2.8 Locomoo
Fora gravitacional
Fluxo e hidrodinmica
Onda
Fora gravitacional
Rastejamento e frico
Vibrao longitudinal
Fora gravitacional
e frico
Deslizamento Vibrao transversal
Fora gravitacional Movimento
e atrito oscilatrio
Corrida pendular
Movimento
Fora gravitacional oscilatrio
e atrito pendular -
Caminhada rolamento
(a) (b)
(a) (b)
Fontes: Bombled (2011); Demasi (2012)
60
Robs com uma pata: o nmero mnimo de patas que um rob pode ter,
onde no necessrio coordenar movimentos com outras patas. Um rob nesta
configurao ser bem sucedido somente se for dinamicamente estvel, uma vez
que, para manter o equilbrio ativo estvel, deve mudar seu centro de gravidade e
transmitir foras para correo angular, movimento esse propcio em terrenos
mais speros. Alm disso, esses robs podem ultrapassar orifcios no solo com
largura bem maior do que o passo deles, enquanto robs com vrias patas tem
que executar uma sequncia de passos para locomoo limitada ao intervalo do
alcance. Robs bpedes quando desempenham movimentos de corrida seguem o
mesmo modelo de estabilidade dinmica de um rob com uma pata. A Figura 25
mostra o rob de salto de Raibert hopper, um dos mais conhecidos, fazendo
correes contnuas em salto, ajustando o ngulo da pata (dotada de mola e
conectada a uma bomba hidrulica) em relao ao corpo.
Figura 26 Bpedes: (a) Rob WAP-1, (b) rob Asimo da Honda, (c) rob Sony Dream.
Robs com quatro patas ou mais: a maioria dos robs articulados por patas
j desenvolvidos enquadra-se nesta configurao. Embora com um nmero maior
de patas o rob fique passivelmente estvel, a locomoo ainda continua um
desafio, pois, para manter essa estabilidade, o centro de gravidade deve se
deslocar durante a marcha. Contudo, Vieira (2010) fala sobre os fatores
estruturais, explicando que a construo de sistemas com quatro patas implicam
economia e simplificao do mecanismo, uma vez que o movimento mais
simples e, consequentemente, a estrutura tambm, embora a desvantagem seja a
dificuldade em obter equilbrio na locomoo, pois h menos pontos de contato
com o solo quando comparados aos de sistemas com seis patas.
Figura 27 Robs com patas: (a) Big Dog (2008), (b) Ajax hexapod (2005).
(a) (b)
(a) (b)
Fonte: Bombled (2011)
64
Figura 29 - Robs com Arquitetura Subsumption: (a) Rob Genghis, (b) Rob Hannibal.
(a) (b)
Fonte: http://www.ai.mit.edu/projects/hannibal
67
Hexpode TUM (1991) Desenvolvido na Universidade Tcnica de
Munique, tinha design e marcha inspirados em
estudos do inseto graveto, tendo cada pata trs
graus de liberdade, sendo operadas por um
sistema de rede neural, ajustando a altura da
estrutura conforme o tamanho dos obstculos
encontrados.
caso ocorre em robs com seis ou oito patas. A desvantagem que para manter
a estabilidade, a locomoo se torna mais lenta. J no caso de dinamicamente
estvel, a locomoo mais rpida devido ao fato de o rob est em movimento
em todos os passos da marcha, pois a projeo do centro de gravidade no se
encontra sempre dentro do polgono formado pelas patas de suporte,
impossibilitando o equilbrio esttico do sistema. Isso ocorre com robs bpedes
ou quadrpedes (ERDEN, 2006).
Dentre os padres de locomoo existentes, h trs mais utilizados por
robs com patas: wave gait, ripple gait e tripod gait. Uma conveno de
numerao das patas adotada para melhor visualizao, conforme indicado
na Figura 30. A Figura 31 mostra o diagrama com os trs padres, onde a cor
branca indica a pata em contato com o solo e a cor preta, a pata suspensa.
No padro wave, Figura 31 (a), o rob mantm cinco patas em contato com
o solo durante a locomoo, todas as patas de um lado movem-se
sucessivamente, comeando com a pata traseira, e posteriormente isso repetido
pelo lado oposto. o mais lento, porm mais estvel. No padro ripple, Figura 31
(b), o rob alterna entre quatro e cinco patas no cho em determinado momento.
J no caso do padro tripod, Figura 31 (c), o rob faz uso de dois conjuntos de
trs patas durante a locomoo, um conjunto serve de suporte, enquanto o outro
realiza o passo, sendo o mais rpido e mais comum. No caso de um rob
hexpode, pode haver mais um quarto tipo de padro, chamado livre, onde o rob
escolhe qual modo de locomoo mais adequado por meio de percepo do
ambiente, sobretudo o tipo de terreno (TEDESCHI; CARBONE, 2014).
L1
L2 R1
L3
R2
R3
Figura 31 - Diagramas de Marcha de um hexpode: (a) wave gait, (b) ripple gait, (c) tripod gait.
Os seis eventos so: retrair perna direita, liberar perna direita, retrair perna
esquerda, liberar perna esquerda, retrair ambas as pernas juntas e liberar ambas
as pernas juntas. Um rob de seis patas pode ter 39.916.800 possveis eventos,
tornando o controle muito mais complexo.
Figura 33 - (a) pata do bio-sistema inspirado, (b) tipos de patas com trs graus de liberdade.
(b)
Fontes: Machado (2001); Ridderstrm (2003); Kingsley (2005); Siegwart; Nourbakhsh (2004)
(3)
81
(4)
(5)
Refinamentos
Validao do OK
De Design
Modelo
Cinemtico
OK
Arranjo de atuadores e configurar modelo
dinmico
OK Validao do
Modelo
Dinmico
OK
Design ideal
OK
Arquitetura de
controle e validao
do gait
OK
END
Tipos de Patas
3.5 Atuador
Larguradepulso1ms2ms
Registrador
Duty Cycle 1
Registrador
Duty Cycle 2
Laranja (Sinal)
Vermelho (+)
Marrom (-)
(6)
4 . . 65535
Tamanho da placa
(Boto)
(Cristal)
(Boto bootloader)
3.6.1 Bootloader
4 TRATAMENTO METODOLGICO
102
Como cada servomotor consome at 0.8 A em carga, e cada pata tem trs
deles, a corrente que o sistema de seis patas pode vir a consumir de 14,4 A.
Dessa forma, foi necessrio o uso de reguladores de tenso e corrente, a fim de
fornecer a energia requerida. Alm disso, a bateria utilizada foi uma Firefox de
Ltio-Polmero, com 7,4 V, 1,6 Ah e 20 C, o que requer um regulador para que a
tenso de entrada nos servomotores seja a de operao, no caso, 5 V.
O regulador escolhido foi o LM317, onde se pode ajustar a tenso de
sada, como mostra a Figura 57, por meio da utilizao de dois resistores (R1 e
R2), conforme clculo apresentado no datasheet do componente:
2 (7)
1 2
1
106
2 (8)
1
1
2
5 1,25 1
520
2 1,5. 10
(M2), uma vez que cada nvel corresponde a uma porta do controlador (porta A, B
e D, respectivamente).
Conforme Equao 6, o perodo do PWM controlado por um contador,
incrementado a cada interrupo. Sempre a cada incio de interrupo, os pinos
de sada correspondentes a um nvel de servomotores so colocados em nvel
lgico alto. Posteriormente, o processo de contagem e comparao do valor de
contagem do Timer com o valor desejado de pulso so iniciados. Quando o valor
de contagem for maior ou igual ao valor desejado de pulso, a sada referente
quele pino volta a nvel lgico baixo, voltando ao nvel lgico alto no incio de um
novo perodo. No osciloscpio virtual do Proteus o perfil das ondas para os
motores dos trs nveis demonstrado na Figura 60. Os valores que
correspondem a 1 ms, 1,5 ms e 2 ms, para o posicionamento dos servomotores,
so respectivamente 35, 75 e 130.
Como acionamento primrio, o programa aciona todos os servos de forma
que o rob saia da posio de repouso e entre em posio de espera, a uma
altura satisfatria do solo, esperando o comando.
5 TESTES E RESULTADOS
(9)
4 . . 65535
111
20000000
2000
4 . 4. 65535
Temos que o TMR inicial ser de 64911, o que equivale a FD8F em valor
hexadecimal a ser carregado no registrador.
inserindo um novo limite de onda dente de serra para comparao com os valores
de referncia para determinar os ngulos:
(10)
4 . . 255
20000000
50
4 . 2. 255
que uma das patas simulasse um ciclo de passo completo, conforme mostrado no
Apndice C. A alimentao da placa foi por fonte externa, fornecendo 5 V e 3,4
mA. O resultado foi satisfatrio e os motores no apresentaram vibrao, pois foi
utilizada uma porta PWM especificada na placa para essa funo.
A fundamentao terica apresentada no Captulo 2 e a metodologia
aplicada na construo do prottipo proposto mostraram-se eficientes como
alternativa dos problemas encontrados no decorrer do trabalho, como por
exemplo: como construir um rob de baixo custo aplicado a ambientes no
estruturados e como resolver a complexidade de controle de dezoito atuadores?
A modelagem por meio de uma ferramenta CAD possibilitou ver o prottipo
montado e previamente ver a viabilidade de construo, visualizar problemas de
conflitos mecnicos, ver a rea de trabalho das patas e descrever
detalhadamente um plano de produo baseado das dimenses e posio das
peas, a fim de garantir reprodutibilidade do modelo proposto, iterao e tomadas
de decises e ou modificaes.
Embora o maquinrio disponvel fosse apenas furadeira de bancada com
fresa e micro retfica, o processo resultou peas com dimenses muito prximas
do modelo desenhado, facilitando o processo de acabamento. No foi preciso
realinhar furos, pois o acrlico estava marcado em sua superfcie com as devidas
posies.
Quanto ao prottipo da placa de circuito, esta se mostrou eficiente para os
testes de acionamento, mas pode ser reavaliada para uma placa definitiva por um
processo de placa de circuito impresso. Todos os conectores foram compatveis
com os furos e o processo de soldagem no apresentou conflitos entre contatos.
116
REFERNCIAS
BRUNL, Thomas. Embedded Robotics: Mobile Robot Design and Applications with
Embedded Systems. Springer Science & Business Media. 2 ed. 2008
KURFESS, Thomas R. Robotics and Automation Handbook. CRC Press LLC, 2005.
NAGRATH, I. J.; MITTAL, R. K. Robotics and Control. 6. ed. Nova Deli: Tata McGraw-
Hill, 2007.
PIERI, Edson Roberto de. Curso de Robtica Mvel. UFSCUniversidade Federal de
Santa Catarina, 2002. Disponvel em:
<http://www.adororobotica.com/CURSO_DE_ROBOTICA_MOVEL.pdf>, acesso em
04.09.2012.
PRAA, Paulo. PWM - Modulao por Largura de Pulso. Prtica 05. Universidade
Federal do Cear. Tcnicas Avanadas em Eletrnica Digital. Departamento de
Engenharia Eltrica. 2012.
RAIBERT, Marc H. Legged robots. Communications of the ACM, Volume 29, nmero
6:499514. 1986. Disponvel em:
<http://www.sci.brooklyn.cuny.edu/~sklar/teaching/f06/air/papers/p499-raibert.pdf>,
acesso em 03.06.2014.
RIBEIRO, Maria Isabel. Uma Viagem ao Mundo dos Robots. Ciclo Colquios
Despertar para a Cincia. Universidade do Porto, p.1. 2004. Disponvel em:
<http://users.isr.ist.utl.pt/~mir/pub/ViagemRobots-IsabelRibeiro05.pdf>, acesso em
28.10.2012.
APNDICE A
APNDICE B
CDIGO PIC
//HEXAPODE
#include<p18cxxx.h>
#include<delays.h>
voidYourHighPriorityISRCode();
voidYourLowPriorityISRCode();
//variveis
//configuraodoPWM
longintp_alta=0xFF,
p_baixa=0x37,
limite=1820;//4ciclosde20ms/quenotrememosmotores
shortintflag=0;
longintserra=0;
longintref[]={35,75,130};//1ms,1,5mse2msemnvelalto;valoresquenovibram
intmotor[]={243,//0b11110011,setatodaaportaD(BASE)
251,//0b11111011,setatodaaportaB(ART2)
63//0b00111111,setatodaaportaA(ART1)
};
#defineBOOTVERSION //UsingaPICKIT?commentthislineoutforanon
bootloadedversion
#if!definedBOOTVERSION //Bootloadedcodecannotsetconfigurationregister.
124
#pragmaconfigPLLDIV=5//(20MHzcrystal)
#pragmaconfigCPUDIV=OSC1_PLL2
#pragmaconfigUSBDIV=2//Clocksourcefrom96MHzPLL/2
#pragmaconfigFOSC=HSPLL_HS //48Mhzoperation
#pragmaconfigFCMEN=OFF
#pragmaconfigIESO=OFF
#pragmaconfigPWRT=OFF
#pragmaconfigBOR=ON
#pragmaconfigBORV=3
#pragmaconfigVREGEN=ON//USBVoltageRegulator
#pragmaconfigWDT=OFF
#pragmaconfigWDTPS=32768
#pragmaconfigMCLRE=ON
#pragmaconfigLPT1OSC=OFF
#pragmaconfigPBADEN=OFF
#pragmaconfigSTVREN=ON
#pragmaconfigLVP=OFF
#pragmaconfigXINST=OFF//ExtendedInstructionSet
#pragmaconfigCP0=OFF
#pragmaconfigCP1=OFF
#pragmaconfigCPB=OFF
#pragmaconfigWRT0=OFF
#pragmaconfigWRT1=OFF
#pragmaconfigWRTB=OFF//BootBlockWriteProtection
#pragmaconfigWRTC=OFF
#pragmaconfigEBTR0=OFF
#pragmaconfigEBTR1=OFF
125
#pragmaconfigEBTRB=OFF
#endif
//setaddressesofreset,highintandlowint.
#ifdefinedBOOTVERSION
#defineREMAPPED_RESET_VECTOR_ADDRESS 0x1000
#defineREMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS 0x1008
#defineREMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS 0x1018
#else
#defineREMAPPED_RESET_VECTOR_ADDRESS 0x00
#defineREMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS 0x08
#defineREMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS 0x18
#endif
//Ifbootloadedaresetvectorneedstobeaddedat0x1000topointto'c'startupcode.
//It'sdoneautomaticallyfornonbootloadedcode.
#ifdefined(BOOTVERSION)
externvoid_startup(void);//Thisrunnsthe'c'statudroutinesinc018i.c(system'c'
file)
#pragmacodeREMAPPED_RESET_VECTOR=REMAPPED_RESET_VECTOR_ADDRESS
void_reset(void)
_asmgoto_startup_endasm
#endif
//Insertactualinterruptvectors
#pragmacodeREMAPPED_HIGH_INTERRUPT_VECTOR=
REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS
voidRemapped_High_ISR(void)
126
_asmgotoYourHighPriorityISRCode_endasm
#pragmacodeREMAPPED_LOW_INTERRUPT_VECTOR=
REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS
voidRemapped_Low_ISR(void)
_asmgotoYourLowPriorityISRCode_endasm
//Thisbitofcodeisforsafety,butnotalwaysneeded.Itputsinteruuptvectorsat0x8and0x18in
caseyouprogramabootversion
//ofthiscodeonasystemnotusingthebootloader.Thebootloaderignoresallcodebelow
0x1000sowillnotprogramthis.
#ifdefined(BOOTVERSION)
#pragmacodeHIGH_INTERRUPT_VECTOR=0x08
voidHigh_ISR(void)
_asmgotoREMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS_endasm
#pragmacodeLOW_INTERRUPT_VECTOR=0x18
voidLow_ISR(void)
_asmgotoREMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS_endasm
#endif
#pragmacode
//Theseareyouractualinterrupthandlingroutines.
//
127
#pragmainterruptYourHighPriorityISRCode
voidYourHighPriorityISRCode()
//forthisdemowewilluseatimerinterrupttotoggletheLEDRE0(RD2TDS4550MINI)
if(INTCONbits.TMR0IF==1) //isitatimer0interrupt?
INTCONbits.TMR0IF=0; //yes,soresetthe
interruptflag.
TMR0L=p_baixa;
TMR0H=p_alta;
serra++;
flag=1;
} //Thisreturnwillbea"retfiefast",sincethisisina#pragmainterruptsection
#pragmainterruptlowYourLowPriorityISRCode
voidYourLowPriorityISRCode()
//Checkwhichinterruptflagcausedtheinterrupt.
//Servicetheinterrupt
//Cleartheinterruptflag
//Etc.
voidpwm_base();
voidpwm_art1();
voidpwm_art2();
voidrepouso();
128
voidmain()
ADCON1=0x0F; //Defaultallpinsto
digital
//setupthePortI/Odirections
TRISD=0;//Pinosutilizados:0b00000000,masD2eD3soLEDS
TRISB=0b00000100;//Pinosutilizados:0b00000100.poisB3umboto
TRISA=0;//Pinosutilizados:0b00000000
//setuptheTimer0interrupt.
T0CON=0x88; //16bittimer,1prescaler.(
interruptevery20000000/4*1*65536)
TMR0L=p_baixa;
TMR0H=p_alta;
INTCON2bits.TMR0IP=1; //MaketheTimer0interrupta
highpriorityinterrupt
INTCONbits.TMR0IE=1; //EnabletheTimer0interrupt
INTCONbits.GIE=1; //Globalinterruptson
while(1)
PORTDbits.RD2=1;//Paraledmostrarqueosistemaestligado
if(serra==limite)serra=0;//perodoaproximadode20msnecessrioparaserra
repouso();
}
129
//FUNESDOPROGRAMA
/*FunoPWMpossuicomoprimeirovalorarefernciaesegundovalorospinosativadosno
PWM*/
//voidpwm_base(referenciadetempo,pinossetados)
voidpwm_base(intaux,intaux2)//{35,75,130};//1ms,1,5mse2msemnvelalto
{if(serra<=aux)
LATD=aux2;//pinosdaportasetadosemnvelalto
elseLATD=0;//pulsobaixonorestodotempo
voidpwm_art1(intaux,intaux2)
{if(serra<=aux)
LATA=aux2;
elseLATA=0;//pulsobaixonorestodotempo
voidpwm_art2(intaux,intaux2)
{if(serra<=aux)
LATB=aux2;
elseLATB=0;//pulsobaixonorestodotempo
voidrepouso()//Faltaumtimerpragarantiraposiodorob
pwm_base(ref[1],motor[0]);//voidpwm_XXX(referenciadetempo,pinossetados)
pwm_art1(ref[1],motor[2]);//{35,75,130};//1ms,1,5mse2msemnvelalto
pwm_art2(ref[1],motor[1]);
}
130
#include <p18cxxx.h>
#include <delays.h>
void YourHighPriorityISRCode();
void YourLowPriorityISRCode();
//variveis
//configurao do PWM
int p_alta = 0xFF,
p_baixa = 0x9B;//155 no timer
int function = 0;//Funco para swtich que muda conforme aperta o boto B2
{
_asm goto YourHighPriorityISRCode _endasm
}
#pragma code REMAPPED_LOW_INTERRUPT_VECTOR =
REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS
void Remapped_Low_ISR (void)
{
_asm goto YourLowPriorityISRCode _endasm
}
// This bit of code is for safety, but not always needed. It puts interuupt vectors at
0x8 and 0x18 in case you program a bootversion
// of this code on a system not using the bootloader. The bootloader ignores all
code below 0x1000 so will not program this.
#if defined(BOOTVERSION)
#pragma code HIGH_INTERRUPT_VECTOR = 0x08
void High_ISR (void)
{
_asm goto REMAPPED_HIGH_INTERRUPT_VECTOR_ADDRESS
_endasm
}
#pragma code LOW_INTERRUPT_VECTOR = 0x18
void Low_ISR (void)
{
_asm goto REMAPPED_LOW_INTERRUPT_VECTOR_ADDRESS
_endasm
}
#endif
#pragma code
134
}
} //This return will be a "retfie fast", since this is in a #pragma interrupt
section
void pwm_base();
void pwm_art1();
void pwm_art2();
void acordar();
void main()
{
while(1)
136
{
PORTDbits.RD2 = 1;//Para led mostrar que o sistema est ligado
switch (function)
{
case 0:// acordar(); //Essa funo coloca todos as articulaes em
pouco mais de 90
if (serra<=ref[0]) LATB=art2; else LATB=0;
if (serra<=ref[1])
{
LATA=art1;
LATD=base;
}
else {LATA=0;LATD=0;}
break;
case 1://Rob se retrai
if (serra<=ref_b)
LATD = motor[0]; else LATD=0;
if (ref_b>=150) ref_b=150;
if (serra<= ref_1){LATA = motor[1]; LATB=motor[2];} else
{LATA=0;LATB=0;}
if (ref_1<=50) ref_1=50;
break;
case 2://acionamento de patas
break;
}
if (serra==limite){serra=0;ref_b++;ref_1--;}
}
}
137
//FUNES DO PROGRAMA
/*Funo PWM possui como primeiro valor a referncia e segundo valor os pinos
ativados no PWM*/
//void pwm_base(referencia de tempo, pinos setados)
void pwm_base(int aux, int aux2)//{35,75,130};//1ms,1,5ms e 2ms em nvel alto
{ if (serra<=aux)
LATD = aux2;//pinos da porta setados em nvel alto
else LATD = 0;//pulso baixo no resto do tempo
}
void acordar()
{
if (serra<=ref[1])
{
LATA=art1;
LATD=base;
}
else {LATA=0;LATD=0;}
if (serra<=ref[0]) LATB=art2; else LATB=0;
}
138
APNDICE C
//Sweep
//byBARRAGAN<http://barraganstudio.com>
//Thisexamplecodeisinthepublicdomain.
#include<Servo.h>
Servobase;
Servoart1;
Servoart2;//createservoobjecttocontrolaservo
//amaximumofeightservoobjectscanbecreated
//variabletostoretheservoposition
voidsetup()
base.attach(11);
art1.attach(12);
art2.attach(13);//attachestheservoonpin9totheservoobject
voidloop()
art2.write(90);
intc=90;
for(inti=110;i>0;i)
art1.write(i);
base.write(i);
139
delay(30);
if(c>30)
art2.write(c);
delay(30);
c=c1;
for(inti=0;i<110;i++)
art1.write(i);
delay(30);
if(c<90)
art2.write(c);
delay(30);
c=c+1;
for(inti=0;i<110;i++)
base.write(i);
delay(30);
delay(30);
140
APNDICE D