View
217
Download
0
Category
Preview:
Citation preview
UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANA
DEPARTAMENTO ACADEMICO DE INFORMATICA
DEPARTAMENTO ACADEMICO DE ELETRONICA
CURSO DE ENGENHARIA DE COMPUTACAO
CAIO ARCE NISHIBE
JOHN THEO SIERPINSKI DE SOUZA
RENATO GIRARDI GASOTO
THIAGO AVELINO DA SILVA
TUI ALEXANDRE ONO BARANIUK
DESENVOLVIMENTO DE SISTEMA DECONTROLE SEM FIO PARA ROBO
OMNIDIRECIONAL
RELATORIO DE CONCLUSAO
CURITIBA
2010
CAIO ARCE NISHIBE
JOHN THEO SIERPINSKI DE SOUZA
RENATO GIRARDI GASOTO
THIAGO AVELINO DA SILVA
TUI ALEXANDRE ONO BARANIUK
DESENVOLVIMENTO DE SISTEMA DECONTROLE SEM FIO PARA ROBO
OMNIDIRECIONAL
Relatorio apresentado a Disciplina deOficina de Integracao 3, do DepartamentoAcademico de Informatica - DAINF - e doDepartamento Academico de Eletronica -DAELN - do Curso Superior de Engenhariade Computacao da Universidade TecnologicaFederal do Parana - UTFPR, como requisitoparcial para finalizacao da disciplina.
Prof. Dr. Joao Alberto FabroProf. Dr. Heitor Silverio Lopes
CURITIBA
2010
RESUMO
Este relatorio apresenta uma abordagem pratica do desenvolvimento de um sistema decontrole para um robo omnidirecional. Futuramente este robo sera empregado como basepara o desenvolvimento de um sistema de navegacao e mapeamento de ambientes comobstaculos, atraves de sensores, e principalmente a miniaturizacao deste robo para con-strucao de um time de futebol de robos totalmente desenvolvidos e construıdos na Univer-sidade Tecnologica Federal do Parana. Aliando recursos de software e de hardware paracomunicacao, processamento, controle e visualizacao, o sistema aqui apresentado possi-bilita o controle de um robo omnidirecional remotamente e a visualizacao de velocidade,angulacao (desvio da orientacao Norte) e nıvel de baterias.
Palavras-chave: Robo Omnidirecional. Sistema de Controle. Software de Controle eVisualizacao. Controle de Robo Remotamente.
LISTA DE FIGURAS
1 Primeira plataforma evidenciando a disposicao das rodas . . . . . . . . p. 13
2 Sistema de encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13
3 Segunda Plataforma evidenciando os suportes para as baterias . . . . . p. 14
4 Primeiro Prototipo do Software de Interfaceamento . . . . . . . . . . . p. 20
5 Estado da Arte do Software de Interfaceamento . . . . . . . . . . . . . p. 21
6 Transwheel 2051KX unica (KORNYLAK CORPORATION, 2010). . . . . . p. 22
7 Bussola Analogica Dinsmore 1650. . . . . . . . . . . . . . . . . . . . . . p. 24
8 Diagrama Esquematico do Circuito Impresso da Placa V1 . . . . . . . . p. 25
9 Esquema da Placa V1 . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
10 Diagrama Esquematico do Circuito Impresso da Placa V2 . . . . . . . . p. 27
11 Esquema da Placa V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
12 Placa V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
13 Placa V2 - Vista Superior . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
14 Placa V2 - Vista Lateral . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
LISTA DE TABELAS
1 Comparacao entre ER400RTS e MRF24J40MA . . . . . . . . . . . . . p. 35
LISTA DE ABREVIATURAS E SIGLAS
ERS Especificacao de Requisitos de SoftwarePMBOK Project Management Body of KnowledgePMI Project Management InstituteSVN Subversion
SUMARIO
1 INTRODUCAO p. 8
1.1 Escopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 8
1.2 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
1.3 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
1.4 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10
1.6 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
2 Levantamento Teorico p. 12
2.1 O robo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12
2.2 O microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
2.2.1 Microchip PIC R© . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
2.2.1.1 dsPic30F3010 . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.3 Comunicacao sem Fio . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2.4 Sistema de Controle de Versao . . . . . . . . . . . . . . . . . . . . . . . p. 16
3 Conclusao e Resultados p. 19
3.1 O Software de Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
3.1.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
3.1.2 Comunicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.2 Controle de Movimentacao do Robo e Perifericos . . . . . . . . . . . . . p. 22
3.3 Placa de Circuito Impresso . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
3.4 Configuracao do Microcontrolador . . . . . . . . . . . . . . . . . . . . . p. 30
3.4.0.1 Microprocessador . . . . . . . . . . . . . . . . . . . . . p. 30
3.5 Dificuldades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
3.5.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
3.5.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
3.6 Controle de Versoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
3.7 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
Referencias p. 37
8
1 INTRODUCAO
A algumas decadas atras, os robos faziam parte apenas da imaginacao do homem. No
comeco da decada de 1960, os primeiros robos comecaram a ser empregados para substituir
o homem em tarefas que tipicamente envolviam riscos como: altos nıveis de calor, ruıdo,
gases toxicos, grande esforco fısico e atividades repetitivas (FRANCHIN, 2005).
Atualmente, robos moveis estao, cada vez mais, sendo utilizados em aplicacoes tecnicas
e industriais como: vigilancia, inspecao, transporte e ate mesmo entretenimento (DO-
ROFTEI; GROSU; SPINU, 2009).
A robotica movel possui diversas areas de pesquisa, que vao desde a modelagem e
estrategias de controle, ate os tipos de sistemas de locomocao e tecnicas de inteligencia
artificial. (SCHROEDER et al., 2005).
Este projeto engloba o controle em baixo nıvel, para que futuramente o robo aqui
desenvolvido possa ser empregado em diversas aplicacoes, principalmente navegacao em
ambientes com obstaculos e futebol de robos.
1.1 Escopo
A estrutura mecanica a qual este projeto utiliza, e proveniente de outro projetos
desenvolvidos dentro da mesma universidade e que visaram a Robocup mas focados no
desenvolvimento do que chamou-se de carcaca(estrutura metalica, motores, rodas).
Este robo possui um sistema de propulsao capaz de atingir a velocidade de 2m/s para
qualquer direcao, fazendo com que ele possa atravessar em diagonal um campo padrao da
liga F180 em aproximadamente 3s em linha reta.
Para o funcionamento deste robo alguns pontos devem ser observados:
(a) Deve possuir sistema de comunicacao sem fio em um computador para envio e rece-
bimento de comandos.
1.2 Objetivo Geral 9
(b) Deve possuir sistema de controle da potencia de tres motores a fim de definir para
que direcao este se movimentara e com que velocidade, respeitando o limite maximo
de 2m/s.
(c) Deve possuir sistemas de analise de movimento para sistema em malha fechada de
correcao de rota definida, envolvendo controle de encoders e bussola.
(d) Deve possuir sistema de gerenciamento de energia para alcancar um bom desempenho
de bateria.
Para agrupar estes requisitos em um unico sistema foi decidido utilizar um sistema
microcontrolado capaz de realizar o controle de potencia dos motores, comunicar-se com
outros dispositivos atraves de um protocolo sem fio, possuir sistema de gerenciamento de
energia, coletar dados de sensores analogicos e utilizar estes dados em uma realimentacao
via firmware para correcao de rota.
Os problemas que nao serao resolvidos neste projeto sao: controle de um time de fute-
bol de robos; implementacao de inteligencia artificial; realimentacao via camera; acopla-
mento e tratamento de sensores que nao sejam a bussola analogica e os encoders;
1.2 Objetivo Geral
O objetivo geral deste projeto e auxiliar a Universidade Tecnologica a ingressar na
RoboCupTM
.
1.3 Objetivos Especıficos
• Controlar um robo omnidirecional remotamente.
• Implementar sensoriamento de feedback.
• Implementar um software que auxilie no controle do robo.
1.4 Justificativa
O desenvolvimento da eletronica de controle do robo bem como as funcoes que de-
sempenham esta tarefa e os protocolos envolvidos na mesma, e o passo inicial e basico
1.5 Metodologia 10
para a producao de um time futebol de robos e precede o desenvolvimento do software
de inteligencia artificial. Tendo conhecimento das exigencias feitas pela categoria Middle
Size da RobocupTM1 adequou-se o projeto para que futuramente atendesse essas especi-
ficacoes. Sendo assim, a execucao deste projeto e justificada pelo engajamento neste ideal
maior.
1.5 Metodologia
Como metodologia de gerenciamento de projetos, seguir-se-a o PMI/PMBOK. Para
maiores informacoes consulte o Material de Apoio fornecido com este.
Para alcancar os objetivos descritos anteriormente, o projeto se desenvolvera nas eta-
pas a saber:
• revisao da literatura: a pesquisa se iniciara pelo levantamento teorico necessario.
Topicos sobre eletronica de controle, programacao de microcontroladores, dinamica
(estudo de vetores e forca), padroes de desenvolvimento de software, deverao ser
abordados.
• construcao do hardware: a partir da revisao da literatura e seguindo um plano de
trabalho, sera iniciada a construcao do hardware de controle do robo omnidirecional,
que envolve a montagem e desenvolvimento das ferramentas de suporte para os
circuitos de controle dos motores, leitura dos encoders e bussola, comunicacao sem
fio e logica de movimentacao.
• implementacao do software: o mesmo sera implementado em Java, comunicando
com o robo atraves de uma interface sem fio. Alem de efetivamente controlar o
robo, mostrara velocidade, angulacao e nıveis do conjunto de baterias do mesmo.
• testes de software e hardware: etapa em que serao realizados testes, calibracoes e
ajustes finais, para um bom funcionamento do robo.
• analise dos resultados e conclusoes: etapa onde sera redigida a monografia em sua
versao final, englobando todos os resultados obtidos bem como o desenvolvimento e
as dificuldades encontradas durante o projeto.
1Robocup (2010)
1.6 Estrutura 11
1.6 Estrutura
Este documento abordara os seguintes topicos:
(a) Levantamento Teorico - este capıtulo e complementado com os demais documentos
do projeto e o Material de Apoio.
(b) Conclusao e Resultados - este capıtulo descreve todas as conclusoes e resultados obti-
dos.
12
2 LEVANTAMENTO TEORICO
2.1 O robo
Segundo J.A.M. (2005), a muitos seculos o homem vem buscando maneiras de melho-
rar diversos processos produtivos. Somente a partir do seculo XX, com o desenvolvimento
da tecnologia, foi possıvel automatizar esses processos. Assim surgiram os conceitos de
robo e inteligencia artificial.
Os primeiros robos foram produzidos no final da decada de 1950 e inıcio da decada
de 1960, impulsionados pelo desenvolvimento dos transistores e dos circuitos integrados
(J.A.M., 2005, p. 6).
Conforme J.A.M. (2005), o termo robo vem da palavra tcheca robota, que significa
“trabalhos forcados”. Este termo foi criado pelo escritor tcheco Karel Capek em seu
romance publicado em 1921 chamado “R.U.R.” (Robos Universais de Rossum). Posteri-
ormente o termo robo foi adaptado para significar um mecanismo automatico que realiza
trabalhos e movimentos humanos.
Para a Robotics Industries Association (apud J.A.M., 2005) um robo e “um dispositivo
mecanico articulado reprogramavel, que consegue, de forma autonoma e recorrendo a sua
capacidade de processamento obter informacao do meio envolvente utilizando sensores,
tomar decisoes sobre o que deve fazer com base nessa informacao e manipular objetos do
meio envolvente utilizando atuadores”.
Para que um robo efetivamente funcione, os engenheiros que o projetaram devem con-
hecer diversos ramos da ciencia, como: matematica, fısica, economia, mecanica, eletronica,
teoria de controle de sistemas, automacao industrial, visao computacional, comunicacoes,
processamento de sinais, computacao, energia, entre outras (J.A.M., 2005).
As pecas mecanicas do robo aqui utilizado sao feitas de aco inoxidavel, alumınio e
latao. Esta, definida por “carcaca” possui tres rodas dispostas a 120o, controladas por
tres motores DC, com um sistema de encoders acoplados em cada eixo bem como redutores
2.1 O robo 13
(Figuras 1 e 2). E composto de tres plataformas, sendo que na primeira encontram-se
os motores, na segunda as baterias (Figura 3) e na terceira o sistema de controle. Tal
diposicao foi adotada pois proporciona uma agregacao de peso ao robo abaixando o seu
centro de gravidade e deixa a bussola em uma posicao melhor do que se estivesse na
segunda plataforma, onde estaria mais sujeita a intereferencia.
Figura 1: Primeira plataforma evidenciando a disposicao das rodas
Figura 2: Sistema de encoders
2.2 O microcontrolador 14
Figura 3: Segunda Plataforma evidenciando os suportes para as baterias
2.2 O microcontrolador
Segundo Martins (2005), para uma melhor eficiencia no processamento de dados, na
decada de 70 comecaram a ser utilizados microprocessadores em computadores. A partir
do microprocessador precursor da Intel, a corrida em busca de uma melhora no sistema
de processamento de dados desses componente ficou mais acirrada. Assim, com base na
arquitetura de um microprocessador e seus perifericos, surgiu o microcontrolador. Com o
passar dos anos e por meio da abordagem dos aspectos teoricos e praticos dos microcontro-
ladores, foi possıvel desenvolver projetos e implementacoes de sistemas microcontrolados
de pequeno, medio e grande portes com melhor relacao custo/benefıcio, custo de hardware
reduzido e pequena necessidade de espaco fısico.
2.2.1 Microchip PIC R©
A Microchip e uma fabricante de microcontroladores e semicondutores com foco em
sistemas embarcados, com liderancade mercado em microcontroladores de 8 bits (MI-
CROCHIP, 2003) de proposito geral e possuem tambem boa aceitacao na area de Proces-
sadores Digitais de Sinais, com a familia dsPic30f, que sao microcontroladores de 16 bits
e que possuem integrados rotinas de controle digital de sinal.
Assim como todos os microcontroladores, a famılia dsPic30F possui em seus micro-
controladores alguns perifericos associados a sua unidade de processamento, que sao
2.2 O microcontrolador 15
• Timers (32 ou 16 bits)
• Input Capture
• Output Compare
• Motor Control PWM
• Quadrature Encoder Interface (QUEI)
• Conversores A/D de 12 e 10 bits
• UART
• I2C
• SPI
• Data Converter Interface
• Modulo CAN
Dependendo do microcontrolador escolhido algumas funcoes podem nao estar disponıveis.
2.2.1.1 dsPic30F3010
O dsPic30F3010 e uma CPU de arquitetura RISC modificada de alta performance e
84 instrucoes base de 24 bits e dados de 16 bits. possui 1KB de RAM e 1KB de memoria
EEPROM nao volatil.
Este microconrolador pode operar em ate 30 MIPS, utilizando uma fonte externa de
clock de 0 a 40MHz, ou um oscilador de 4 a 10Mhz com PLL de 4x,8x ou 16x.
Uma grande vantagem deste microcontrolador e que para atender as necessidades de
um processador digital de sinais este possui multiplicacao por hardware em ciclo unico de
maquina, agilizando calculos mais pesados, como por exemplo um filtro PID.
As caracterısticas deste microcontrolador desejadas para o projeto sao os conversores
A/D de 10 bits e 500ksps, as ate 6 saıdas de controle de PWM para controle de mo-
tores, a interface UART, tres interrupcoes externas com fonte em pinos, multiplicacao
por hardware, Timer de 16 bits.
2.3 Comunicacao sem Fio 16
2.3 Comunicacao sem Fio
A aplicacao de radiofrequencia(RF) ou WiFi concentra-se no envio de sinais de con-
trole para o robo movel, bem como a recepcao de sinais pelo computador que controla
esse. Esta tecnologia e aplicada nestes projeto visando a mobilidade do robo, o que, um
vez com fios, tornaria-se inviavel (BIANCHINI; MENESES; MARCHI, 2009).
O radiofrequencia e um sistema de comunicacao utilizado para fins diversos como
televisao, radio, aviacao, controle de dispositivos, onde ondas eletromagneticas sao propa-
gadas no espaco. Os sitesmas de comunicacao basicos sao formados por dois elementos:
o transmissor e o receptor (FEPLAM, 1977). O trasmissor e composto por um circuito os-
cilador, um transdutor e um modulador. O circuito oscilador converte a corrente eletrica
em oscilacoes de uma determinada frequencia de radio. Fica a cargo do transdutor con-
verter a infrormacao a ser transmitida em impulsos eletricos equivalentes a cada valor.
O modulador controla as variacoes na intensidade de oscilacao ou na frequencia da onda
portadora. Ha a presenca de uma antena no tramissor para que ele possa enviar os sinais.
O receptor e basicamente composto por uma atena receptora acoplada a um circuito que
converte as ondas eletromagneticas captadas em oscilacoes eletricas e um demodulador
(FEPLAM, 1977).
A tecnologia de Wifi diferencia-se da RF principalemente por trabalharem em frequencias
mais altas (2,4 Ghz ou 5Ghz), por utilizarem padroes de rede 802.11 por poder transmitir
em quaisquer das faixas de frequencia, chaveando rapidamente entre elas. Comutar en-
tre as frequencias ajuda a reduzir a interferencia e permite que varios dispositivos usem
a mesma conexao sem fio, simultaneamente (BRAIN; WILSON, ). A adocao da tecnolo-
gia de RF ou WiFi, e escolhida de acordo com a realidade do projeto em que se aplica
sendo avaliados quesitos como: performace, custo, consumo, facilidade de implementacao,
alcance entre outro que podem tornar-se pertinentes.
2.4 Sistema de Controle de Versao
Na funcao pratica de Ciencia da Computacao, Engenharia da Computacao e Engen-
haria de Software, comumente utilizado no desenvolvimento de softaware, um Sistema de
Controle de Versao (ou versionamento) desempenha o gerenciamento de diferentes versoes
do que se esta desenvolvendo. No caso de software, versiona os codigos fonte, bem como
a documentacao (CRISTIANO, 2004). Esse tipo de sistema e muito presente em empresas
2.4 Sistema de Controle de Versao 17
e instituicoes de tecnologia e desenvolvimento de software. E tambem muito comum no
desenvolvimento de software livre. E util, em diversos aspectos, tanto para projetos pes-
soais pequenos e simples como tambem para grandes projetos comerciais (MIKKELSEN;
PHERIGO, 1997).
Entre os mais comuns encontram-se as solucoes livres: CVS, Git e SVN; e as comerci-
ais: SourceSafe e ClearCase. A eficacia do controle de versao de software e comprovada por
fazer parte das exigencias para melhorias do processo de desenvolvimento de certificacoes
tais como CMMI e SPICE (DIAS, 2009)
As principais vantagens de se utilizar um sistema de controle de versao para rastrear
as alteracoes feitas durante o desenvolvimento de software ou o desenvolvimento de um
documento de texto qualquer sao: controle do historico, trabalho em equipe, resgate e
marcacao de versoes estaveis, ramificacao do projeto/citemolinari.
A maior parte das informacoes - com todo o historico - ficam guardadas num repositorio
alojado em um servidor qualquer. Geralmente o acesso e feito por um cliente pela rede
(via socket) e pode ser feito localmente quando o cliente esta na mesma maquina do servi-
dor. Pode-se criar nıveis hierarquico para os utiliadores do repositorio. E possıvel que
o armazenamento seja feito em outros dispositivos capazes de fazer persistir e resgatar
facilmente a informacao.Cada desenvolvedor possui em sua maquina uma copia local so-
mente da ultima versao de cada documento. A cada alteracao relevante do desenvolvedor
e necessario ”atualizar”as informacoes do servidor submetendo (commit) as alteracoes.
O servidor entao guarda a nova alteracao junto de todo o historico mais antigo. Se o
desenvolvedor quer atualizar sua copia local e necessario atualizar as informacoes locais,
e para isso e necessario baixar novidades do servidor (update) (MOLINARI, 2007).
Uma sequencia de passos demostrativa para uma mesclagem poderia ser da seguinte
forma:
1. Atualizacao: desenvolvedor atualiza sua versao local
2. Desenvolvimento: cada desenvolvedor trabalha em sua copia. Esta tarefa de desen-
volvedores ocrre simulataneamente
3. Submissao: desenvolvedor submete sua alteracao
4. Necessidade de atualizacao: este fluxo ocorre quando dois desenvolvedores estiveram
trabalhando sobre o mesmo arquivo e um deles submeteu sua versao antes do outro.
Assim esse Segundo precisa atualizar sua pasta antes de submeter.
2.4 Sistema de Controle de Versao 18
5. Mescla: as alteracoes feitas pelos usuarios que estiveram trabalhando sobre o mesmo
arquivo sao mescladas.
6. Submissao: mais uma vez ocorre a submissao, mas dessa vez e da versao final
19
3 CONCLUSAO E RESULTADOS
3.1 O Software de Interface
No intuito de prover uma interface de controle para o robo idealizou-se um software
que permitisse tal tarefa. Este software serviria, a princıpio, como um centralizador de
possıveis comandos que o robo executaria e leituras que poderiam ser feitas, criando assim
um conjunto de funcoes alto nıvel para controle e monitoramento do robo. O desenvolvi-
mento desse software de interfaceamento deu-se atraves da linguagem de programacao
Java.
3.1.1 Interface
A interface inicialmente idealizada continha as funcoes basicas que desejava-se execu-
tar e mensurar com o robo (Figura 4). Ao longo do desenvolvimento do projeto, notou-se
que essa interface inicial fugia do escopo definido para o robo: movimentacao omnidire-
cional. A interface inicial provia os movimentos definidos como: “Movimento Angular”
pois ao clicar na seta para que aponta para o lado direito, ou para a seta que aponta para
o lado esquerdo, o robo iria girar. Ao clicar na seta que aponta para frente ou na seta
que aponta para tras, o mesmo se deslocaria linearmente no sentido acionado. Para que a
interface estivesse em conformidade com o o que foi proposto, incluiu-se o que foi definido
como “Movimento Linear” que permite o software enviar comandos para o robo mover-se
em conformidade com o o comportamento omnidirecional, bem como a inclusao de out-
ras funcionalidades que se mostraram pertinentes e tambem fez-se uma reformulacao na
mesma com modificacoes no que diz respeito a identidade visual do programa (CLIFTON,
2004).
O estado da arte do software e mostrado na Figura 5. Na parte superior encontram-se
os campos de monitoramento do robo. Periodicamente, o software envia comandos de
monitoramento ao robo, ou seja, solicita ao robo algumas informacoes para sua utilizacao.
3.1 O Software de Interface 20
Figura 4: Primeiro Prototipo do Software de Interfaceamento
Tais informacoes sao: velocidade, angulo do robo e nıvel da bateria e servem para que o
utilizador mantenha-se ciente sobre estes parametros.
Abaixo encontra-se o que definiu-se por “Historico de Comandos”,onde tem-se uma
lista de comandos enviados e uma lista de comandos recebidos. De acordo com o proto-
colo de comunicacao implementado, ao receber a confirmacao de um comando enviado, e
retirado da lista de comandos enviados definida como “Buffer de Envio” tal ocorrencia.
Na sequencia, sao apresentados dois paineis para controle do robo. Sao estes o “Movi-
mento Angular” e o “Movimento Linear”, tais como descritos anteriormente, sendo que o
segundo permite que o utilizador, a partir de um espaco dedicado com o desenho do robo
inserido no meio, clique em uma posicao deste espaco fazendo com que o robo se desloque
de acordo com acao executada, ou seja, tendo como referencia o robo, o utlizador clica
em um lugar da janela. Tal evento gera como saıda um modulo (distancia da posicao do
clique ao robo) e um angulo (referente ao robo centrado em um cırculo trigonometrico).
Essa interface permite, tambem, a escolha de uma entre as portas seriais listadas, a
ser utilizada, e estabelece a conexao somente apos definido este para5metro. Tais portas
sao apresentadas em uma ComboBox na parte mais inferior da janela do programa e sao
listadas de acordo com a disponibilidade das mesmas na maquina onde o software esta
em execucao.
3.1.2 Comunicacao
Atraves de um circuito RF conectado ao computador, e possıvel enviar comandos
para o robo. Tal circuito esta conectado em uma serial emulada. Sendo assim, os dados
3.1 O Software de Interface 21
Figura 5: Estado da Arte do Software de Interfaceamento
enviados do computador deverao sair por esta porta serial emulada e diante da realidade
da linguagem de programacao Java, duas API’s para comunicacao serial foram estudadas:
JavaComm e RxTx.
A JavaComm e uma API que teve sua divulgacao inicial em 1997, e que facilita o de-
senvolvimento aplicacoes que envolvam plataformas de comunicacao independentes para
tecnologias diversas, e atualmente a implementacao desta API esta disponıvel para Solaris
SPARC e X86 e Linux86 (SUN MICROSYSTEMS - ORACLE, 2010). No inıcio do estudo das
possibilidades de se fazer comunicacao serial com Java, foi abordada a utilizacao da API
JavaComm sem saber da sua limitacao e por haver alguns exemplos de implementacoes
em outras fontes. Tais exemplos, quando implementados resultaram em falhas demasiadas
e pelo grande tempo despendido nesta atividade, resolveu-se partir para uma nova abor-
dargem. Este novo rumo foi a bibliotexa RxTx que e uma biblioteca nativa, ou seja, uma
biblioteca desenvolvida em linguagem C e portada para Java, e que prove comunicacao
serial e paralela para o JDK (JARVI, 2006). Tal solucao pode ser implementada em tempo
muito inferior que a anterior e com sucesso. Utilizou-se um modelo de codigo para estab-
elecimento da comunicacao serial postado ao site DevMedia por Petter Rafael Villa Real
Silva (SILVA, 2007).Para o teste das funcionalidades utilizou-se um virtualizador de portas
seriais [colocar nome do programa] e a partir do software RealTerm e do software Java
3.2 Controle de Movimentacao do Robo e Perifericos 22
com comunicacao serial implementada, realizar testes de recepcao e envio de informacoes
de forma serial.
Visto que o codigo estava funcional, portou-se este para o codigo ja existente da inter-
face resultando assim no software de interfaceamento que aos pouco foi sendo aprimorado
com as novas funcionalidades a medida que os testes eram feitos.
3.2 Controle de Movimentacao do Robo e Perifericos
Para o controle da movimentacao do robo foram levados em conta o formato da
carcaca, o tipo e numero de rodas disponıveis, e as respostas dos sensores utilizados: uma
bussola analogica e encoders.
A roda omnidirecional e uma roda com 2 angulos de liberdade, e nao possui as
limitacoes de movimentacao presentes nas rodas bidirecionais, permitindo uma movi-
mentacao rapida. Com tres rodas o controle e simples e as possibilidades de movimentacao
sao amplas, o robo consegue se mover livremente para qualquer direcao, assim como re-
alizar rotacoes.
As rodas omnidirecionais utilizadas sao do modelo 2051KX cat-trak transwheels, col-
una unica, da Kornylak. No robo elas sao separadas de modo que seus eixos de rotacao
apontam para o centro e formam entre eles um angulo de 120 graus.
Figura 6: Transwheel 2051KX unica (KORNYLAK CORPORATION, 2010).
A velocidade linear de cada roda dependera de um vetor velocidade, com modulo e
direcao, relativo a frente do robo, e cujo inicio e o centro da carcaca, no mesmo ponto em
que os eixos de rotacao se encontram.
Velocidade Linear Roda A = Velocidade.cos(0 graus - Angulo);
Velocidade Linear Roda B = Velocidade.cos(-120 graus - Angulo);
Velocidade Linear Roda C = Velocidade.cos(120 graus - Angulo);
Sendo velocidade e angulo os atributos do vetor velocidade.
3.2 Controle de Movimentacao do Robo e Perifericos 23
A velocidade final de cada roda e a velocidade linear mais a angular, que e uma variavel
de mesma velocidade e direcao para todas as rodas. Se esta soma ultrapassar o limite de
velocidade suportada pela roda, entao o conjunto e proporcionalmente decrementado.
Foi tambem implementado um sistema de distancias, cujo calculo e semelhante ao
da velocidade. No movimento linear, alem da velocidade e direcao, pode ser dada uma
distancia a percorrer, sendo que com esta distancia vencida o robo termina o movimento.
Distancia a ser percorrida pela roda A = Distancia.cos(0graus - Angulo);
Distancia a ser percorrida pela roda B = Distancia.cos(-120graus - Angulo);
Distancia a ser percorrida pela roda C = Distancia.cos(120graus - Angulo);
Ja no movimento angular alem da velocidade de entrada pode ser dado um angulo
limite para a rotacao, quando este angulo for vencido o giro para.
A velocidade calculada e direcao sao enviadas pelo micro-controlador a 3 microchips
L298, que possuem 2 pontes H cada um. Como o motor utilizado (modelo MN37-5655, da
Inmepe Maia) e de corrente direta, DC, as velocidades podem ser controladas por meio
de modulacao de largura de pulso, PWM, gerado pelo micro-controlador.
Para verificacao da velocidade real de cada roda e distancias percorridas por cada uma,
e utilizado um encoder em cada roda, implementados com foto interruptores GP1A51HRJ00F
da Sharp Microeletronics e encoders circulares feitos com impressao a laser em papel para
transparencia. Com os dados do encoder conseguimos comparar se a velocidade e distancia
percorrida por cada roda correspondem aos resultados dos calculos previos, possibilitando
tomada de acoes como re-ajuste de velocidade de uma roda, ou parar o robo quando certa
distancia for percorrida.
Para verificar a direcao apontada pela dianteira do robo, assim como variacoes da
mesma, e utilizada uma bussola analogica Dismore 1650. Na deteccao de uma variacao
de angulo durante um movimento linear - sem estar ocorrendo um movimento angular ao
mesmo tempo -consegue-se verificar a ocorrencia de um erro na rota e corrigi-la. Tambem
conseguimos saber quanto o robo girou em um movimento angular e podemos mandar
para-lo se houver um angulo limite para a rotacao e esta for ultrapassada.
3.3 Placa de Circuito Impresso 24
Figura 7: Bussola Analogica Dinsmore 1650.
3.3 Placa de Circuito Impresso
A primeira versao da placa e apresentada nas Figuras 8 e 9. Nesta versao utilizou-se
apenas dois L298 (Pontes H) para controlar os tres motores - um dos CIs controlava dois
motores e o outro controlava o motor restante. Isso acabou ocasionando o aquecimento
exagerado e ate danos as Pontes H devido a corrente que circulava pelo circuito.
A segunda versao da placa e apresentado na Figuras 10, 11, 12, 13 e 14. Nesta versao
utilizou-se duas pontes H para controlar cada motor, diminuindo assim a corrente que
circula pelo circuito, consequentemente houve drecrescimo do aquecimento dos L298.
3.3 Placa de Circuito Impresso 25
11
22
33
44
55
66
77
88
DD
CC
BB
AA
Title
Num
ber
Rev
ision
Size A3
Dat
e:26
/05/
2010
Shee
t o
fFi
le:
V:\R
enat
o\D
arw
in\O
mni
-Sch
\Om
ni_1
.Sch
DocD
raw
n B
y:
MC
LR1
EMU
D3/
AN
0/V
REF
+/C
N2/
RB
02
EMU
C3/
AN
1/V
REF
-/CN
3/R
B1
3
AN
2/SS
1/C
N4/
RB
24
AN
3/IN
DX
/CN
5/R
B3
5
AN
4/Q
EA/IC
7/C
N6/
RB
46
AN
5/Q
EB/IC
8/C
N7/
RB
57
VSS
8
OSC
1/C
LKI
9
OSC
2/C
LKO
/RC
1510
EMU
D1/
SOSC
I/T2C
K/U
1ATX
/CN
1/R
C13
11
EMU
C1/
SOSC
O/T
1CK
/U1A
RX
/CN
0/R
C14
12
VD
D13
EMU
D2/
OC
2/IC
2/IN
T2/R
D1
14EM
UC
2/O
C1/
IC1/
INT1
/RD
015
FLTA
/INT0
/SC
K1/
OC
FA/R
E816
PGD
/EM
UD
/U1T
X/S
DO
1/SC
L/R
F317
PGC
/EM
UC
/U1R
X/S
DI1
/SD
A/R
F218
VSS
19
VD
D20
PWM
3H/R
E521
PWM
3L/R
E422
PWM
2H/R
E323
PWM
2L/R
E224
PWM
1H/R
E125
PWM
1L/R
E026
AV
SS27
AV
DD
28
U4
DSP
IC30
F301
0-20
I/SP
EN A
6
EN B
11
IN1
5
IN2
7
IN3
10
IN4
12O
UT1
2
OU
T23
OU
T313
OU
T414
ISEN
A1
ISEN
B15
VS
4V
SS9
GN
D8
U5
L298
N
EN A
6
EN B
11
IN1
5
IN2
7
IN3
10
IN4
12O
UT1
2
OU
T23
OU
T313
OU
T414
ISEN
A1
ISEN
B15
VS
4V
SS9
GN
D8
U3
L298
N
+19.
2VC
C
+5V
CC
GN
D
12
Y1
XTA
L 10
MH
z
GN
DG
ND
27pF
C6
27pF
C8
GN
D
NV
cc1
2
GN
D3
Vcc
45
GN
D6
BS1
Din
smor
e166
5
CW
100K
R1
CW
100K
R2
+5V
CC
GN
DG
ND
12
34
56
78
910
P1 Enco
der 1
+5V
CC
GN
D
+5V
CC
47uF
C1
GN
D
IN1
2
OU
T3
GN
D
U1
GN
D
47uF
C2
GN
D
100n
FC
410
0nF
C3
GN
DG
ND
GN
D
4,7K
R5
+5V
CC
270K
R6
GN
D
GN
D
12
34
56
JP1
MC
LRPG
C
PGD
+5V
CC
1 2 3 4 65
CN
2
GN
D
+19.
2VC
C
123C
N1
KR
E-3
GN
D
+19.
2VC
C+9
.6V
CC
+9.6
VC
C+5
VC
C
+5V
CC
CW 100K
R7
1mH
L1
+5V
CC
GN
D
i1
i2 i
2
i1
i1
i1
i1
i1
i2
100n
FC
9
GN
D
100n
FC
10
GN
D
100n
FC
11
GN
D
GN
D
TVS1
TVS2
TVS3
AN
T1
GN
D2
RSS
I3
BU
SY4
D O
UT
5
D IN
6
RD
Y7
VC
C8
GN
D9
U2
Easy
Rad
io
PIBS101
PIBS102
PIBS103
PIBS104
PIBS105
PIBS106CO
BS1
PIC101 PIC102COC
1PIC201 PIC202
COC2
PIC301PIC302COC
3PIC401PIC402
COC4
PIC601PIC602COC
6PIC801PIC802
COC8
PIC901PIC902COC
9PIC1001PIC1002
COC1
0
PIC1101PIC1102CO
C11
PICN
101
PICN
102
PICN
103
COCN
1
PICN
201
PICN
202
PICN
203
PICN
204
PICN20
5PI
CN20
6 COCN
2
PIFX
101 CO
FX1
PIJP101
PIJP102
PIJP103
PIJP104
PIJP105
PIJP106CO
JP1
PIL1
01PI
L102
COL1
PIP101
PIP102
PIP103
PIP104
PIP105
PIP106
PIP107
PIP108
PIP109
PIP1010COP
1
PIR1
01
PIR102PI
R103
COR1
PIR2
01
PIR202PI
R203
COR2
PIR501PIR502 COR5
PIR601PIR602COR
6
PIR701PI
R702
PIR703COR
7
PITVS101PITVS102COTVS1
PITVS201PITVS202COTVS2
PITVS301PITVS302COTVS3
PIU101
PIU102
PIU103
COU1
PIU201
PIU202
PIU203
PIU204
PIU205
PIU206
PIU207
PIU208
PIU209COU
2
PIU301
PIU302
PIU303
PIU304
PIU305
PIU306
PIU307
PIU308
PIU309
PIU3010
PIU3011
PIU3012
PIU3013
PIU3014
PIU3015
COU3
PIU401
PIU402
PIU403
PIU404
PIU405
PIU406
PIU407
PIU408
PIU409
PIU4010
PIU4011
PIU4012
PIU4013
PIU4014
PIU4015
PIU4016
PIU4017
PIU4018
PIU4019
PIU4020
PIU4021
PIU4022
PIU4023
PIU4024
PIU4025
PIU4026
PIU4027
PIU4028CO
U4
PIU501
PIU502
PIU503
PIU504
PIU505
PIU506
PIU507
PIU508
PIU509
PIU5010
PIU5011
PIU5012
PIU5013
PIU5014
PIU5015
COU5
PIY101
PIY102
COY1
PIBS101
PIBS104
PIC201PIC402
PIJP103
PIP101
PIP104
PIP107
PIR1
03PI
R203
PIR502
PIU103
PIU208
PIU309
PIU4013
PIU4020
PIU4028
PIU509
NL05VCC
PICN
102
PIL1
01
PICN
103
PIR602
PIU304
PIU504
PIJP106
PIR501
PIU401
NL\M\C
\L\R
PIBS103
PIBS106
PIC102PIC202
PIC301PIC401
PIC601PIC801
PIC901PIC1001
PIC1101
PICN
101
PIJP102
PIP103
PIP106
PIP109
PIR1
01PI
R201
PIR701
PIU102
PIU202
PIU207
PIU209
PIU301
PIU308
PIU3015
PIU408
PIU4019
PIU4027
PIU501
PIU508
PIU5010
PIU5011
PIU5012
PIU5015
PIBS102
PIU404
PIBS105
PIU405
PIC101PIC302
PIL1
02PIU101
PIC602PIU409
PIY102
PIC802
PIU4010
PIY101
PIC902
PIR102
PIU402
PIC1002
PIR202
PIU403
PIC1102
PIR601 PIR703PI
CN20
1
PITVS102
PIU302
PICN
202
PITVS101
PIU303
PICN
203
PITVS202
PIU3013
PICN
204
PITVS201
PIU3014
PICN20
5
PITVS302
PIU502
PICN
206
PITVS301
PIU503
PIFX
101
PIU201
PIJP101
PIP102
PIU4015
PIP105
PIU4014
PIP108
PIU4016
PIP1010
PIR7
02
PIU406
PIU203
PIU204
PIU205
PIU4012
PIU206
PIU4011
PIU305
PIU4026
PIU307
PIU4025
PIU3010
PIU4024
PIU3012
PIU4023
PIU407
PIU4021
PIU507
PIU4022
PIU505
PIU5013
PIU5014
PIJP104
PIU306
PIU3011
PIU4018
PIU506
NLPG
C
PIJP105
PIU4017
NLPG
D
Figura 8: Diagrama Esquematico do Circuito Impresso da Placa V1
3.3 Placa de Circuito Impresso 26
PABS106PABS105PABS104
PABS103PABS102PABS101COBS1
PAC102
PAC101COC1
PAC202
PAC201COC2
PAC302
PAC301COC3
PAC402
PAC401
COC4
PAC602 PAC601
COC6
PAC802PAC801
COC8
PAC902PAC901 COC9
PAC1002PAC1001 COC10PAC1102PAC1101 COC11
PACN101 PACN102 PACN103
COCN1
PACN206PACN205PACN204PACN203PACN202PACN201
COCN2
PAFX101COFX1
PAJP106 PAJP105PAJP104 PAJP103PAJP102 PAJP101
COJP1
PAL101
PAL102
COL1
PAP101PAP102
PAP103PAP104
PAP105PAP106
PAP107PAP108
PAP109PAP1010
COP1 PAR103PAR102PAR101
COR1PAR203PAR202PAR201
COR2
PAR502PAR501 COR5
PAR602PAR601COR6
PAR703PAR702PAR701
COR7
PATVS102
PATVS101
COTVS1PATVS202
PATVS201
COTVS2PATVS302
PATVS301
COTVS3PAU103PAU102PAU101
COU1
PAU201
PAU203PAU204PAU205PAU206PAU207PAU208PAU209
PAU202 COU2
PAU301
PAU308PAU309
PAU3010PAU3011
PAU302PAU303
PAU304PAU305
PAU306PAU307
PAU3012PAU3013
PAU3014PAU3015
COU3
PAU4015 PAU4016 PAU4017 PAU4018 PAU4019 PAU4020 PAU4021 PAU4022 PAU4023 PAU4024 PAU4025 PAU4026 PAU4027 PAU4028
PAU4014 PAU4013 PAU4012 PAU4011 PAU4010 PAU409 PAU408 PAU407 PAU406 PAU405 PAU404 PAU403 PAU402 PAU401 COU4
PAU501
PAU508PAU509
PAU5010PAU5011
PAU502PAU503
PAU504PAU505PAU506
PAU507
PAU5012PAU5013 PAU5014PAU5015
COU5
PAY101 PAY102COY1
PABS101PABS104
PAC201 PAC402
PAJP103
PAP101PAP104
PAP107 PAR103PAR203
PAR501
PAU103
PAU208
PAU309
PAU4013
PAU4020 PAU4028
PAU509
PACN102
PAL101
PACN103
PAR602
PAU304
PAU504
PAJP106
PAR502
PAU401
PABS103
PABS106
PAC102
PAC202PAC301
PAC401
PAC601PAC801PAC901
PAC1001PAC1101
PACN101
PAJP102
PAP103PAP106
PAP109
PAR101PAR201 PAR701
PAU102
PAU202
PAU207
PAU209
PAU301
PAU308
PAU3015
PAU408
PAU4019 PAU4027
PAU501
PAU508PAU5010
PAU5011PAU5012
PAU5015
PABS102
PAU404
PABS105
PAU405
PAC101
PAC302
PAL102PAU101
PAC602
PAU409
PAY102
PAC802
PAU4010
PAY101
PAC902
PAR102
PAU402
PAC1002
PAR202
PAU403
PAC1102
PAR601
PAR703
PACN201
PATVS102
PAU302
PACN202
PATVS101
PAU303
PACN203
PATVS202
PAU3013
PACN204
PATVS201PAU3014
PACN205
PATVS302
PAU502
PACN206
PATVS301
PAU503
PAFX101PAU201 PAP102
PAU4015
PAP105
PAU4014
PAP108
PAU4016
PAR702
PAU406PAU205
PAU4012
PAU206
PAU4011
PAU305
PAU4026
PAU307
PAU4025
PAU3010
PAU4024
PAU3012
PAU4023PAU4021
PAU507
PAU4022
PAU505
PAJP104
PAU306
PAU3011
PAU4018
PAU506
PAJP105
PAU4017
Figura 9: Esquema da Placa V1
3.3 Placa de Circuito Impresso 27
11
22
33
44
55
66
77
88
DD
CC
BB
AA
Title
Num
ber
Rev
isio
nSi
ze A3
Dat
e:10
/06/
2010
Shee
t o
fFi
le:
\\..\O
mni
_1.S
chD
ocD
raw
n By
:
MC
LR1
EMU
D3/
AN
0/V
REF
+/C
N2/
RB
02
EMU
C3/
AN
1/V
REF
-/CN
3/R
B1
3
AN
2/SS
1/C
N4/
RB
24
AN
3/IN
DX
/CN
5/R
B3
5
AN
4/Q
EA/IC
7/C
N6/
RB
46
AN
5/Q
EB/IC
8/C
N7/
RB
57
VSS
8
OSC
1/C
LKI
9
OSC
2/C
LKO
/RC
1510
EMU
D1/
SOSC
I/T2C
K/U
1ATX
/CN
1/R
C13
11
EMU
C1/
SOSC
O/T
1CK
/U1A
RX
/CN
0/R
C14
12
VD
D13
EMU
D2/
OC
2/IC
2/IN
T2/R
D1
14EM
UC
2/O
C1/
IC1/
INT1
/RD
015
FLTA
/INT0
/SC
K1/
OC
FA/R
E816
PGD
/EM
UD
/U1T
X/S
DO
1/SC
L/R
F317
PGC
/EM
UC
/U1R
X/S
DI1
/SD
A/R
F218
VSS
19
VD
D20
PWM
3H/R
E521
PWM
3L/R
E422
PWM
2H/R
E323
PWM
2L/R
E224
PWM
1H/R
E125
PWM
1L/R
E026
AV
SS27
AV
DD
28
U4
DSP
IC30
F301
0-20
I/SP
EN A
6
EN B
11
IN1
5
IN2
7
IN3
10
IN4
12O
UT1
2
OU
T23
OU
T313
OU
T414
ISEN
A1
ISEN
B15
VS
4V
SS9
GN
D8
U5
L298
N
EN A
6
EN B
11
IN1
5
IN2
7
IN3
10
IN4
12O
UT1
2
OU
T23
OU
T313
OU
T414
ISEN
A1
ISEN
B15
VS
4V
SS9
GN
D8
U3
L298
N+1
9.2V
CC
+5V
CC
GN
D
12
Y1
XTA
L 10
MH
z
GN
DG
ND
27pF
C6
27pF
C8
GN
D
CW
100K
R1
CW
100K
R2
+5V
CC
GN
DG
ND
12
34
56
78
910
P1 Enco
der 1
+5V
CC
GN
D
+5V
CC
47uF
C1
GN
D
IN1
2
OU
T3
GN
D
U1
GN
D
47uF
C2
GN
D
100n
FC
410
0nF
C3
GN
DG
ND
GN
D
4,7K
R5
+5V
CC
270K
R6
GN
D
GN
D
12
34
56
JP1
MC
LRPG
C
PGD
+5V
CC
1 2 3 4 65
CN2
GN
D
+19.
2VC
C
123CN
1
KRE
-3 GN
D
+19.
2VC
C
+9.6
VC
C
+9.6
VC
C+5
VC
C
+5V
CC
CW 100K
R7
1mH
L1
+5V
CC
GN
D
i1
i2
i2
i1
i1
i1
i1
i1
i2
100n
FC
9
GN
D
100n
FC
10
GN
D
100n
FC
11
GN
D
GN
D
TVS1
TVS2
TVS3
AN
T1
GN
D2
RSS
I3
BUSY
4
D O
UT
5
D IN
6
RDY
7
VCC
8
GN
D9
U2
Easy
Rad
ioEN
A6
EN B
11
IN1
5
IN2
7
IN3
10
IN4
12O
UT1
2
OU
T23
OU
T313
OU
T414
ISEN
A1
ISEN
B15
VS
4V
SS9
GN
D8
U6
L298
N
GN
D
GN
D
+5V
CC
+19.
2VC
C
+5V
CC
+19.
2VC
C
+5V
CC
1KR8
1KR9
1KR10
+5V
CC
+5V
CC
+5V
CC
100n
FC
15
100n
FC
16
100n
FC
17
GN
D
GN
D
GN
D
100n
FC
18
GN
D
100n
FC
1910
0nF
C20
GN
DG
ND
1mH
L2
i2
470u
FC
21
GN
D
4K7
R13
Q3
GN
D
GN
D
+5V
CC 4K
7R
11
Q2
GN
D
GN
D
+5V
CC 4K
7R
3
Q1
GN
D
4K7
R4 4K
7
R12 4K
7
R14
100u
FC
5
100u
FC
7
100u
FC
14
100u
FC
1310
0uF
C12
100u
FC
22
N
Vcc
1 3
GN
D2
Vcc
4 6
GN
D5
* Din
smor
e166
5
Figura 10: Diagrama Esquematico do Circuito Impresso da Placa V2
3.3 Placa de Circuito Impresso 28
PABS106PABS105PABS104
PABS103PABS102PABS101COBS1
PAC102PAC101
COC1
PAC202PAC201COC2
PAC302
PAC301COC3
PAC402
PAC401
COC4
PAC502PAC501
COC5
PAC602 PAC601COC6
PAC702PAC701COC7
PAC802PAC801COC8
PAC902PAC901 COC9
PAC1002PAC1001 COC10
PAC1102PAC1101 COC11
PAC1202PAC1201
COC12
PAC1302PAC1301
COC13
PAC1402PAC1401
COC14
PAC1501PAC1502COC15
PAC1601PAC1602 COC16
PAC1701PAC1702COC17
PAC1801
PAC1802COC18
PAC1901
PAC1902
COC19
PAC2001 PAC2002COC20
PAC2102
PAC2101
COC21
PAC2202PAC2201
COC22
PACN101 PACN102 PACN103
COCN1
PACN206PACN205PACN204PACN203PACN202PACN201
COCN2
PAFX101COFX1
PAJP106PAJP105
PAJP104PAJP103
PAJP102PAJP101COJP1
PAL101
PAL102
COL1
PAL202
PAL201
COL2
PAP101PAP102
PAP103PAP104
PAP105PAP106
PAP107PAP108
PAP109PAP1010
COP1
PAQ101PAQ102
PAQ103
COQ1
PAQ201PAQ202
PAQ203
COQ2
PAQ301PAQ302
PAQ303
COQ3
PAR103PAR102PAR101
COR1PAR203PAR202PAR201
COR2
PAR301
PAR302COR3
PAR401
PAR402COR4
PAR502
PAR501
COR5PAR602
PAR601COR6
PAR703PAR702PAR701
COR7
PAR801 PAR802COR8
PAR901 PAR902COR9PAR1001 PAR1002COR10
PAR1101
PAR1102COR11
PAR1201
PAR1202COR12
PAR1301
PAR1302COR13
PAR1401
PAR1402COR14
PATVS102
PATVS101
COTVS1PATVS202
PATVS201
COTVS2PATVS302
PATVS301
COTVS3
PAU103PAU102PAU101
COU1
PAU201
PAU203PAU204PAU205PAU206PAU207PAU208PAU209
PAU202 COU2PAU301
PAU308PAU309
PAU3010PAU3011
PAU302PAU303 PAU304PAU305
PAU306PAU307
PAU3012PAU3013
PAU3014PAU3015
COU3
PAU4015 PAU4016 PAU4017 PAU4018 PAU4019 PAU4020 PAU4021 PAU4022 PAU4023 PAU4024 PAU4025 PAU4026 PAU4027 PAU4028
PAU4014 PAU4013 PAU4012 PAU4011 PAU4010 PAU409 PAU408 PAU407 PAU406 PAU405 PAU404 PAU403 PAU402 PAU401 COU4
PAU501
PAU508PAU509PAU5010
PAU5011
PAU502PAU503
PAU504PAU505 PAU506PAU507
PAU5012PAU5013PAU5014
PAU5015
COU5
PAU6015 PAU6014PAU6013
PAU6012
PAU607PAU606
PAU605PAU604PAU603PAU602
PAU6011PAU6010
PAU609PAU608
PAU601COU6
PAY101 PAY102COY1
Figura 11: Esquema da Placa V2
Figura 12: Placa V2
3.3 Placa de Circuito Impresso 29
Figura 13: Placa V2 - Vista Superior
Figura 14: Placa V2 - Vista Lateral
3.4 Configuracao do Microcontrolador 30
3.4 Configuracao do Microcontrolador
Para ajustar o microcontrolador para operar com o hardware especificado devem ser
feitos alguns ajustes em seus registradores de modo que o microprocessador opere na
frequencia correta e todos os seus perifericos em seguida respondam da maneira como
desejado.
3.4.0.1 Microprocessador
Para configurar os detalhes da unidade de microprocessamento no compilador uti-
lizado para o codigo (HITEC ANSI C Compiler for pic24 and dsPics) ha uma macro
chamada CONFIG que ativa os bits do registro de configuracao do processador. Em
nosso sistema ficou:
__CONFIG(FOSC, HS2PLL16 & CLKSWDIS & FSCMDIS);
// Ajusta frequencia de oscilac~ao para fonte externa dividida
//por 2 com PLL16
__CONFIG(FWDT, WDTDIS);
//Desabilita Watchdog Timer
__CONFIG(FBORPOR, MCLREN & BORDIS & PWRTDIS & PWMPIN);
//Desativa Brownout Reset e Power on Reset, pinos de PWM como PW
//habilita uso do pino MCLR para manter o dsPic em Reset
__CONFIG(FGS, GCPU & GWRU);
//Code & Write protect desabilitado
__CONFIG(FICD, PGEMU);
//Ativa Emulac~ao usando pinos padr~ao para emular
O restante das configuracoes sao ajustadas dentro da funcao principal do sistema,
comecando pela selecao do oscilador principal e o setup das Entradas e Saıdas do PIC
(ajustado pelo parametro TRISx, onde 1 e Input e 0 e Output):
OSCCON=0x3300;
//Seleciona Oscilador Primario
//Setup das IOs
3.4 Configuracao do Microcontrolador 31
TRISB = 0xFFDF;
TRISC = 0xFFFF;
TRISD = 0xFFFF;
TRISE = 0x0100;
TRISF = 0xFFFF;
LATB = 0x0000;
//portas de saıda com nıvel de saıda em zero
LATE = 0x0000;
//portas de saıda com nıvel de saıda em zero
PDC1 = 0;
//Valor do pwm 1 em zero
PDC2 = 0;
//Valor do pwm 2 em zero
PDC3 = 0;
//Valor do pwm 3 em zero
O proximo passo e configurar os perifericos a serem utilizados, de acordo com o funciona-
mento esperado. O primeiro a ser configurado sao os conversores A/D:
//Setup ADC
ADCON2 = 0x643C;
//0b0110 0100 0011 1100
//VrefG = pino Vref+(ad0), VrefL = pino Vref-(ad1)
//Convers~ao dos canais CH0, CH1, CH2 e CH3
//Interrupt a cada 8 sequencias sample/convert
//buffer de 16 bits, sempre no MUX A
ADCON3 = 0x003F;
//0b0000 0000 0011 1111
//AutoSample time delay = 0
//clock base do sistema
//Perıodo do A/D clock : 32*TCY
ADCHS = 0x2222;
3.4 Configuracao do Microcontrolador 32
//0b0010 0010 0010 0010
//valor positivo para CH0, CH1, CH2 e CH3
//Respectivamente para AN2, AN3, AN4 e AN5
//Valor Negativo para todos os canais em Vref-
ADPCFG = 0x0000;
//todos os pinos de A/D como A/D
ADCSSL = 0xFFFF;
//scan de todos os A/D’s
ADCON1 = 0x80EC;
//1000 0000 1110 1100
//A/D on, n~ao para no IDLE
//Formato de saıda como inteiro n~ao sinalizado
//auto convert
//Medida dos quatro canais simultaneamente
//auto start( mantem continuamente convertendo)
ADIE = 1;
//Habilita interrupc~ao de fim de convers~ao
O funcionamento dos encoders baseia-se em contar a largura do pulso gerado. Para
isto foi colocado cada encoder em uma interrupcao externa que ira medir o numero de
vezes em que entra em um timer de tempo fixo desde a ultima vez em que se entrou na
interrupcao. Para isto e habilitada a interrupcao externa e configurado o timer:
INT0IE = 1;
//Interrupt enable para os enconders
INT1IE = 1;
INT2IE = 1;
//Setup Timer para medir Velocidade dos Encoders
PR4 = 0x1388;
// 0x1388/20MHz = 250us T4IF = 0;
T4IE = 1; /
/interrupt enable
T4CON = 0xA000;
3.4 Configuracao do Microcontrolador 33
//0b1010 0000 0000 0000(TON + TSIDL) -> Timer enable, Stop in IDLE mode,
//no Prescale, internal clock source (Fosc/4 = 5MHz)
Para a comunicacao sem fio e utilizado um modulo transceiver que comunica-se com
o microcontrolador atraves da uart a 19200bps, com 8 bits de dados, um de parada e
nenhum de paridade:
//Setup UART
U1BRG = 64;
//19200Baud for 20MIP (See FRM Tables)
U1MODE=0x8000;
//Enable, 8data, no parity, 1 stop
U1STA =0x8400;
//Enable TX
U1_ALTIO = 1;
//I/O alternativa para uart (para permitir debug nos pinos padr~ao
U1RXIE = 1;
//Interrupt de recebimento ativa
Por Fim, a configuracao do PWM para obter o tipo de onda esperado pelas Pontes
H:
//Setup PWM
PTCON = 0xA00A;
//0b1010 0000 0000 0110 (Time base Enable, Stop in Idle mode, No PostScale,
//64 Prescale, Continuous up/down mode)
PTMR = 0x03E8; /
/(0b0111 1010 0001 0010) - Periodo do timer base do PWM
PTPER = 0x07FF;
//Contagem do pwm ate 0x7FF - aproximadamente 50us
SEVTCMP = 0x0000;
// special event ocorre quando o timer base do pwm conta pra cima,
//quando atinge zero(logo no comeco)
PWMCON1 = 0x0707;
//0b0000 0111 0000 0111 PWM modo indep., com as 3 saidas L ligadas como pwm
3.5 Dificuldades 34
PWMCON2 = 0x0000;
//0b0000 0000 0000 0000
//Sem postscale no PWM special Event Trigger
//Updates ao PDC sincronizados com a base de tempo do pwm, habilitados updates nos dutycicles;
FLTACON = 0x3F00;
//0b0011 1111 1000 0000 Desabilitado FAULT para os 3 motores
OVDCON = 0x1500;
//0b0001 0101 0000 0000 PWMxH I/O e controlada pelo gerador PWM
DTCON1 = 0x0000;
// 0b0000 0000 0000 0000 dead time de 0us
Para aproveitar recursos, na mesma interrupcao gerada pelo timer de contagem do
perıodo dos encoders foi introduzida a rotina de calculo do PID, oned a cada vez que e
gerada a interrupcao e realizado o calculo de correcao de um dos motores circularmente
3.5 Dificuldades
3.5.1 Hardware
Na primeira semana de execucao do projeto, foi constatado que os encoders fornecidos
(produzidos em material plastico) juntamente com o robo apresentavam problemas. A
especificacao do diametro do furo central para encaixe nos eixos dos motores estava errada.
O furo central estava 1mm menor que o diametro do eixo. Apesar dos encoders serem
projetados para fixacao nos eixos por pressao, o furo central estava muito apertado para
o devido encaixe no eixo. Foi entao necessaria a utilizacao de uma morca para que os
encorders fossem posicionados corretamente. Um dos exemplares acabou sendo danificado
neste processo. Quando iniciou-se os testes de funcionamento dos mesmos, verificou-se
que estavam tortos, o que acabava ocasionando a colisao destes com os fotointerruptores.
Partiu-se entao para a construcao de outros exemplares de encoders em transparencia.
Inicialmente foi proposto a utilizacao do transciever MRF24J40 para comunicacao sem
fio, utilizando o protocolo MiWi, pois segundo o fabricante o microcontrolador escolhido
para o projeto teria suporte ao protocolo. Porem quando iniciou-se a implementacao da
comunicacao sem fio, verificou-se que este nao estava devidamente testado, apresentando
diversos erros. Decidiu-se entao, abandonar o transciever MRF24J40 e migrar para o tran-
sciever de radio frequencia Easy-Radio ER400TRS. Apos algumas comparacoes (Tabela
1) verificou-se que esta troca nao afetaria o escopo do projeto.
3.5 Dificuldades 35
ER400RTS MRF24J40MAFrequencia de Operacao 433MHz 2.405-2.48 GHzTensao de Operacao 3.3-5.5V 2.4-3.6VRX mode: 12.5mA 19 mATX mode: <23mA 23 mAVelocidade de Transmissao 19200 bps 250 kbpsAntena Integrada Nao SimAlcance ate 250m ate 100mInterface de comunicacao Serial (uart) SPIBibliotecas necessarias parao uso
– Miwi ou ZigBee
Tabela 1: Comparacao entre ER400RTS e MRF24J40MA
O sistema de leitura dos encoders tambem apresentou problemas. Este estava fixado
junto ao eixo do motor com um parafuso nao isolado, o que acabou ocasionando um
curto-circuito na carcaca do robo.
Outro problema registrado foi que a bussola em certos momentos salta valores, o que
acaba gerando grande imprecisao no movimento angular.
3.5.2 Software
Para desenvolvimento do software teve-se como guia os requisitos estabelecidos no
ERS. Por falta de experiencia dos membros envolvidos no desenvolvimento desse com
os padroes e requisitos estabelecidos para o mesmo, nao foi raro haver desenvolvimento
de codigo fora das conformidades previstas. Outro fator que colaborou com para esse
desenvolvimento foi a elaboracao de codigo conforme as dificuldades surgiam, resultando
no acrescimo de novas funcionalidades para sanarem tais problematicas. Tais fatores
resultaram em um codigo documentado, mas que por vezes foge da conformidade, mas
nao prejudicando o entendimento e continuidade do mesmo.
As dificuldades encontradas no que diz respeito a implementacao do software podem
ser desconsideradas ao passo que a complexidade deu-se apenas em estabelecer a forma
da interacao do software com o robo. Problemas de se usar uma linguagem interpretada e
uma biblioteca portada para a mesma nao apresentaram caracterısticas mensuraveis que
pudessem interferir no projeto ou mesmo ter relevancia no mesmo.
O controle de versoes do software apresentou alguns empecilhos no tratamento da
compatibilidade de arquivos, o que resultou na adocao da pratica de desenvolvimento
serializada ou modularizada e nao paralela, fazendo com que cada classe do codigo fosse
3.6 Controle de Versoes 36
editada por apenas uma pessoa por vez.
3.6 Controle de Versoes
Para um melhor gerenciamento do codigo fonte, utilizou-se o SVN para controle de
versoes. O repositorio pode ser acessado em:
https://subversion.assembla.com/svn/darwinomni
3.7 Trabalhos Futuros
Como sugestao para trabalhos futuros fica a utilizacao deste robo como base para o
desenvolvimento de robos capazes de navegar em ambientes com obstaculos estaticos e
dinamicos, faltando apenas incluir alguns sensores ao redor da carcaca do robo e utilizar
estes dados para desviar dos obstaculos. Outra sugestao e adaptar este robo para competir
na liga F180 da RoboCupTM
, para tanto e necessaria a implementacao de inteligencia
artificial atraves de processamento de imagens, onde um computador servidor captura a
imagem do campo, faz os calculos necessarios e envia os comandos para os robos.
37
REFERENCIAS
BIANCHINI, D.; MENESES, M. B.; MARCHI, V. L. de. 2009. Disponıvel em:<http://www.mecatronicaatual.com.br/secoes/leitura/582/>.
BRAIN, M.; WILSON, T. Como funciona a rede WiFi. Disponıvel em:<http://informatica.hsw.uol.com.br/rede-wifi.htm>.
CLIFTON, R. O mundo das marcas. Lisboa: [s.n.], 2004.
CRISTIANO, C. CVS: Controle de Versoes e Desenvolvimento Colaborativo de Software.[S.l.]: Novatec, 2004.
DIAS, A. F. Conceitos Basicos de Controle de Versao deSoftware Centralizado e Distribuıdo. 2009. Disponıvel em:<http://www.pronus.eng.br/artigos tutoriais/gerencia configuracao/conceitos basicos controle versao centralizado e distribuido.php>.
DOROFTEI, I.; GROSU, V.; SPINU, V. Omnidirectional Mobile Robot - Design andImplementation. 2009. Disponıvel em: <intechweb.org/downloadpdf.php?id=465>.
FEPLAM. O homem que apertou o botao da comunicacao. 2. ed. Porto Alegre: FEPLAM,1977.
FRANCHIN, M. N. Elementos de Robotica. Dezembro 2005. Disponıvel em:<http://www.dee.feb.unesp.br/ marcelo/robotica/conteudo.html>.
J.A.M., F. de S. Robotica. 2005. Disponıvel em: <http://webx.ubi.pt/ fe-lippe/main pgs/mat didp.htm>.
JARVI, T. 2006. Disponıvel em: <http://users.frii.com/jarvi/rxtx/>.
KORNYLAK CORPORATION. 2010. Disponıvel em:<http://www.kornylak.com/images/wheel/transwheel/fxa110-s.jpg>.
MARTINS, N. A. Sistemas Microcontrolados. Sao Paulo: Novatec, 2005.
MICROCHIP. dsPIC30F Family Reference Manual. [S.l.], 2003.
MIKKELSEN, T.; PHERIGO, S. Parctical Software Configuration Management: TheLatenight Developer’s Handbook. Upper Saddle River, NJ, EUA: Prentice Hall, 1997.
MOLINARI, L. Gerencia de Configuracao - Tecnicas e Praticas no Desenvolvimento doSoftware. Florianopolis: Visual Books, 2007.
ROBOCUP. Small Size Robot League. 2010. Disponıvel em: <http://small-size.informatik.uni-bremen.de/rules:main>.
Referencias 38
ROBOTICS INDUSTRIES ASSOCIATION. 2005. Disponıvel em:<http://www.robotics.org/>.
SCHROEDER, G. N. et al. Simulador Grafico para Cont-role de Robos Moveis Omnidirecionais. 2005. Disponıvel em:<http://www.dcc.ufla.br/infocomp/artigos/v4.4/art05.pdf>.
SILVA, P. R. V. R. 2007. Disponıvel em: <http://www.devmedia.com.br/post-6722-Utilizando-a-API-RXTX-para-manipulacao-da-serial-Parte-I.html>.
SUN MICROSYSTEMS - ORACLE. 2010. Disponıvel em:<http://java.sun.com/products/javacomm/>.
Recommended