Universidade Federal do Rio de Janeiro Escola Polit...
Transcript of Universidade Federal do Rio de Janeiro Escola Polit...
Universidade Federal do Rio de Janeiro
Escola Politecnica
Departamento de Eletronica e de Computacao
Projeto da Eletronica Embarcada para um Robo Movel
Aplicado a Atividades de Terapia Ocupacional
Autor:
Rafael dos Santos de Oliveira
Orientador:
Ramon Romankevicius Costa, D.Sc.
Coorientador:
Rodrigo Fonseca Carneiro
Examinador:
Fernando Cesar Lizarralde, D.Sc.
Examinador:
Alessandro Jacoud Peixoto, D.Sc.
DEL
Marco de 2014
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Escola Politecnica - Departamento de Eletronica e de Computacao
Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria
Rio de Janeiro - RJ CEP 21949-900
Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que
podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar
qualquer forma de arquivamento.
E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-
otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja
ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que
sem finalidade comercial e que seja feita a referencia bibliografica completa.
Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es).
ii
DEDICATORIA
Dedico este trabalho ao povo brasileiro que contribuiu de forma significativa a
minha formacao e estada nesta Universidade. Este projeto e uma pequena forma de
retribuir o investimento e confianca em mim depositados.
iii
AGRADECIMENTO
Agradeco em primeiro lugar a Deus. Sem sua Graca, eu nada poderia ter feito.
Agradeco a minha famılia, que sempre me apoiou e me incentivou a estudar e a
nao desistir dos meus sonhos. Sem seu apoio, nao teria conseguido trilhar o caminho
que me fez chegar ate o fim deste curso.
Agradeco a meus professores. Cada um deles teve um papel essencial, ensinando
importantes licoes que vao muito alem do conteudo do curso.
Agradeco a meus amigos e a meus colegas. As amizades formadas dentro e fora
deste curso facilitam essa caminhada e tornam prazeroso o dia-a-dia em meio a aulas
e provas.
iv
RESUMO
O presente trabalho trata do desenvolvimento da eletronica embarcada ne-
cessaria para controlar um robo movel a ser utilizado em atividades de Terapia Ocu-
pacional. Nessas atividades, o robo recebera comandos de um usuario via rede Wi-Fi
para realizar pinturas sobre uma tela de papel seguindo uma trajetoria aleatoria.
A velocidade de deslocamento do robo e a cor da tinta sendo utilizada serao sele-
cionaveis pelo usuario a distancia a partir de um computador, funcionando como
console de comando. Dentre as varias partes desse projeto, envolvendo areas de
eletronica, mecanica e software, este trabalho apresenta o desenvolvimento da parte
principal da eletronica embarcada: seu modulo de controle. Tal modulo e responsavel
por receber os comandos do usuario via Wi-Fi e gerar os sinais eletricos correspon-
dentes para o controle dos motores. Alem disso, o modulo de controle e responsavel
pela navegacao do robo. Visto que o usuario nao guiara o robo, este devera ter um
mınimo grau de autonomia para navegar em seu ambiente de trabalho desviando
de obstaculos detectados atraves de sensores. Portanto, o trabalho tambem inclui
o desenvolvimento de uma parte computacional que guiara o robo em seu trajeto
atraves de sua eletronica embarcada. Por fim, os desafios da implementacao do
trabalho e seus resultados serao apresentados.
Palavras-Chave: robotica, Wi-Fi, TCP, teleoperacao, controle, acionamento de
motores DC, pintura
v
ABSTRACT
The present work deals with the development of the embedded electronics
required to control a mobile robot to be utilized in Occupational Therapy activities.
In such activities, the robot will receive commands from a user via Wi-Fi network
to perform paintings on a paper screen following a random trajectory. The user
will be able to select the robot’s speed and the ink color in use from a remote com-
puter. Among the various parts of this project, involving electronics, mechanics,
and software areas, this work presents the development of the embedded electronics’
main part: its control module. This module is responsible for receiving the user
commands via Wi-Fi and for generating the corresponding electric signals to control
the robot’s motors. Besides that, the control module is responsible for the robot’s
navigation. The user will not guide the robot. This way, it should have a minimum
degree of autonomy in order to navigate its work environment avoiding obstacles
detected by sensors. Therefore, this work also includes the development of a com-
putational component that will guide the robot on its path through its embedded
electronics. Finally, this work’s implementation challenges and its results will be
presented.
Keywords: robotics, Wi-Fi, TCP, teleoperation, control, DC motor driving, pain-
ting
vi
SIGLAS
ASCII - do ingles, American Standard Code for Information Interchange
BJT - do ingles, Bipolar Junction Transistor (Transistor Bipolar de Juncao)
BSS - Basic Service Set (Conjunto Basico de Servicos)
COPPE - Instituto Alberto Luiz Coimbra de Pos-Graduacao e Pesquisa em En-
genharia
CPU - do ingles, Central Processing Unit (Unidade de Processamento Central)
DC - do ingles, Direct Current (Corrente Contınua)
DHCP - do ingles, Dynamic Host Configuration Protocol
EEPROM - do ingles, Electrically Erasable Programmable Read-Only Memory
IGBT - do ingles, Insulated-Gate Bipolar Transistor (Transistor Bipolar de Porta-
Isolada)
IP - do ingles, Internet Protocol
LABCON - Laboratorio de Controle do Programa de Engenharia Eletrica da
COPPE/UFRJ.
MOSFET - do ingles, Metal-Oxide-Semiconductor Field-Effect Transistor (Tran-
sistor de Efeito de Campo de Metal-Oxido-Semicondutor)
PC - do ingles, Personal Computer (Computador Pessoal)
PWM - do ingles, Pulse Width Modulation (Modulacao por Largura de Pulso).
RAM - do ingles, Random Access Memory (Memoria de Acesso Aleatorio)
vii
SSID - do ingles, Service Set IDentifier
TCP - do ingles, Transmission Control Protocol
UART - do ingles, Universal Assynchronous Receiver Transmitter
UFRJ - Universidade Federal do Rio de Janeiro
USART - do ingles, Universal Synchronous Assynchronous Receiver Transmitter
WLAN - do ingles, Wireless Local Area Network (Rede de Area Local sem Fio)
viii
Sumario
1 Introducao 1
1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Delimitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Organizacao do Sistema . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 As Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Descricao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Especificacoes do Projeto 8
2.1 Comunicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Navegacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Pintura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Componentes Principais 11
3.1 Modulo Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1 Modulo RN-XV . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Sistema de Tracao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1 Motores DC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2 Modelo do Motor . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.3 Torque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.4 Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.5 Circuito Integrado L298N . . . . . . . . . . . . . . . . . . . . 18
3.3 Driver dos Motores das Bombas . . . . . . . . . . . . . . . . . . . . . 19
ix
3.3.1 Bombas Peristalticas . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.2 Circuito Integrado L293D . . . . . . . . . . . . . . . . . . . . 19
3.4 Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Arquitetura Basica de um Microcontrolador . . . . . . . . . . 20
3.4.2 ATmega32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Desenvolvimento 24
4.1 Desenvolvimento do Hardware . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1 Projeto da Placa de Controle Central . . . . . . . . . . . . . . 25
4.1.2 Projeto da Placa de Drivers . . . . . . . . . . . . . . . . . . . 28
4.2 Desenvolvimento Computacional . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.2 Comunicacao a partir do PC . . . . . . . . . . . . . . . . . . . 36
5 Implementacao do Projeto 37
5.1 Configuracao do Modulo Wi-Fi . . . . . . . . . . . . . . . . . . . . . 37
5.2 Implementacao do Firmware . . . . . . . . . . . . . . . . . . . . . . . 39
5.3 Implementacao do Hardware . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 Dificuldades Encontradas . . . . . . . . . . . . . . . . . . . . . . . . . 45
6 Conclusoes e Trabalhos Futuros 47
A Redes Locais Sem Fio 49
B Protocolo IP 51
C Protocolo TCP 55
D Controle de Velocidade via PWM 57
Bibliografia 59
x
Lista de Figuras
1.1 Diagrama de blocos geral do sistema em que o trabalho esta envolvido . . 2
1.2 Exemplos de acionadores (PELOSI, 2011). . . . . . . . . . . . . . . . . . 3
1.3 Esquema de uma area de trabalho . . . . . . . . . . . . . . . . . . . . . 4
3.1 Topologia de uma ponte H (Fonte: http://en.wikipedia.org/wiki/H-bridge). 18
3.2 Arquitetura basica de um microcontrolador . . . . . . . . . . . . . . . . 20
4.1 Diagrama esquematico da placa de controle central . . . . . . . . . . . . 26
4.2 Diagrama esquematico da placa dos drivers . . . . . . . . . . . . . . . . 29
4.3 Fluxograma principal do firmware . . . . . . . . . . . . . . . . . . . . . 31
4.4 Diagrama de transicao de estados da Maquina 1 . . . . . . . . . . . . . . 32
4.5 Diagrama de transicao de estados da Maquina 2 . . . . . . . . . . . . . . 33
4.6 Disposicao dos sensores de colisao . . . . . . . . . . . . . . . . . . . . . 36
5.1 Modulo Wi-Fi RN-XV (Fonte: https://www.sparkfun.com/products/10822) 38
5.2 Adaptador USB para o Modulo Wi-Fi (ROGERCOM, 2014) . . . . . . . 38
5.3 Programador para microcontroladores PIC utilizado no projeto (Fonte:
Manual do fabricante, fornecido com o produto) . . . . . . . . . . . . . . 40
5.4 Plataforma robotica utilizada para testes . . . . . . . . . . . . . . . . . 41
5.5 Diagrama esquematico do circuito de testes . . . . . . . . . . . . . . . . 42
5.6 Conjunto de baterias de 2500 mAh . . . . . . . . . . . . . . . . . . . . . 43
5.7 Conjunto de baterias de 2300 mAh . . . . . . . . . . . . . . . . . . . . . 43
5.8 Robo de testes montado . . . . . . . . . . . . . . . . . . . . . . . . . . 44
B.1 Camadas da suıte de protocolos da Internet (STRABELLO, 2010). . . . . 51
D.1 Exemplos de sinais PWM (OLSON, 2013)). . . . . . . . . . . . . . . . . 58
xi
Lista de Tabelas
3.1 Estimativas da parte mecanica do robo . . . . . . . . . . . . . . . . . 17
3.2 Especificacoes de um motor que atende as estimativas de torque do
projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
B.1 Exemplo de endereco IP . . . . . . . . . . . . . . . . . . . . . . . . . 52
xii
Capıtulo 1
Introducao
1.1 Tema
Este trabalho trata do projeto de sistemas de controle. No presente caso, a
enfase se da no controle digital de dispositivos roboticos semiautonomos telecoman-
dados por meio de uma infraestrutura de rede sem fio.
1.2 Delimitacao
Pessoas portadores de deficiencia fısica ou mental tem sua capacidade de
expressao limitada devido a perda de movimentos ou a limitacoes na capacidade de
raciocınio. A Terapia Ocupacional visa cuidar da melhoria da qualidade de vida
dessas pessoas utilizando recursos variados, tais como atividades de entretenimento.
Com esse fim, professoras do curso de Terapia Ocupacional da UFRJ encomendaram
a empresa junior Fluxo Consultoria desta universidade o projeto de um robo para
ser utilizado em atividades de expressao artıstica envolvendo pintura.
A Fluxo e o Laboratorio de Controle (LABCON) do Programa de Engenharia
Eletrica (PEE) da COPPE estao desenvolvendo este projeto em conjunto e com o
auxılio de alunos, cada um destes encarregado de uma das tres partes principais:
eletronica embarcada, software e mecanica. O presente projeto visa a desenvolver a
parte principal da eletronica embarcada: o modulo de controle do robo.
Um projeto de graduacao anterior (STRACHAN, 2012) ja havia sido reali-
zado a esse respeito. Nesse trabalho, no entanto, foram utilizados motores de passo
1
para a tracao do robo e um modulo Bluetooth para a comunicacao com o PC do
usuario. O trabalho atual apresenta uma solucao utilizando motores DC do tipo
brushed para tracao e um modulo Wi-Fi para a comunicacao.
1.2.1 Organizacao do Sistema
A Figura 1.1 apresenta o diagrama de blocos geral do sistema em que este
trabalho esta envolvido. A equipe de software e responsavel pelos programas que
estarao em execucao no computador do usuario. Contudo, o driver de comunicacao,
que implementa a troca de dados com o robo atraves de protocolos especıficos,
constitui parte das responsabilidades da equipe da eletronica. Esta tambem desen-
volvera a parte relacionada aos sensores, modulo de controle, bateria e driver de
acionamento. A equipe da mecanica e responsavel pela especificacao dos motores e
das bombas de tinta, alem de toda a parte estrutural do robo.
Figura 1.1: Diagrama de blocos geral do sistema em que o trabalho esta envolvido
Neste trabalho, sera abordado o projeto do modulo de controle e dos drivers
de acionamento do do robo.
2
1.2.2 As Atividades
As atividades de Terapia Ocupacional em que o robo estara envolvido con-
sistirao de um usuario acionar comandos de selecao de velocidade e cor e envia-los
para o robo atraves de uma interface grafica num computador pessoal. O robo,
entao, executara uma trajetoria aleatoria liberando a tinta sobre a tela que portara
a pintura. Ao longo do trajeto, a velocidade e a cor da tinta poderao ser mudadas
atraves dos controles na interface. Esses comandos serao enviados do computador
do usuario para o robo via rede Wi-Fi.
Como os usuarios em que se foca esse trabalho serao pessoas portando as
mais diversas deficiencias fısicas e motoras, os controles da interface deverao ser
simples. Por isso, as professoras pretendem utilizar dispositivos de tecnologia assis-
tiva chamados acionadores (PELOSI, 2011). Na Figura 1.2, sao mostrados alguns
exemplos de acionadores que poderao ser usados no projeto. Estes dispositivos sao
basicamente diferentes especies de botoes adaptados a diversos tipos de deficiencias
fısicas e motoras. Desse modo, os controles serao apenas comandos de selecao, sem
envolver controles de direcao e de velocidade lineares e iterativos, como joysticks.
Embora existam alguns modelos de joysticks utilizados em tecnologia assistiva, es-
tes nao serao utilizados neste projeto. Com isso, para gerar uma certa forma de
expressao artıstica, o robo devera mover-se por si proprio sem necessitar de um
usuario indicando cada direcao para onde ir. Tal aspecto requer um nıvel mınimo
de autonomia do robo para que ele nao seja danificado ou acabe ficando preso num
canto apos uma colisao.
Figura 1.2: Exemplos de acionadores (PELOSI, 2011).
3
Nas atividades de Terapia Ocupacional, o robo atuara, a princıpio, dentro
de uma area retangular delimitada (ver Figura 1.3). Pequenas tabuas podem ser
dispostas no entorno, formando paredes, para impedir que o robo saia de sua area
de trabalho e acabe derramando tinta em local indesejado.
Figura 1.3: Esquema de uma area de trabalho
1.3 Justificativa
Com o desenvolvimento e a reducao de custos da tecnologia computacional,
robos moveis hoje em dia sao capazes de integrar uma grande quantidade de pe-
rifericos para auxilia-los em sua navegacao e controle. Dentre estes, dispositivos de
comunicacao via redes sem fio vem ganhando destaque nos ultimos anos, como e o
caso dos dispositivos Zigbee (BARONTI et al., 2007), por exemplo, que se tornaram
bastante populares nessa area. Alem deles, entretanto, o emprego de dispositivos que
fazem uso de padroes de rede ja existentes, como Bluetooth e Wi-Fi, vem crescendo,
devido ao barateamento dessas tecnologias e a sua popularidade. Com isso, tornou-
se possıvel a construcao, a relativo baixo custo, de robos teleoperados por meio de
rede sem fio. Inclusive, alguns modelos comerciais ja se encontram disponıveis no
mercado ha alguns anos (BONA; PRENTICE, 2009).
Empregando a tecnologia de rede Wi-Fi para comunicacao, um robo pode
ser controlado a distancia a partir de computadores pessoais e dispositivos moveis,
como smartphones, sem a necessidade de hardware adicional por parte do operador
remoto, devido a presenca dessa tecnologia ja integrada nesses dispositivos. Para
4
isso, contudo, varios desafios tem de ser superados, de modo a poder oferecer um
produto final funcional e utilizavel para usuarios leigos quanto a area de redes.
Alem dos desafios por parte da comunicacao, a interface com dispositivos
mecanicos encontrados em sistemas roboticos utilizando motores eletricos tambem
envolve desafios relacionados a eletronica de potencia. Esta area lida com o acio-
namento e o controle de dispositivos de potencia elevada em relacao ao dispositivo
controlador. Cuidados com o interfaceamento e a possibilidade de interferencias
dificultam os projetos nessa area. Estas questoes tambem serao abordadas neste
trabalho.
Por fim, o algoritmo necessario para prover o robo com certo grau de auto-
nomia durante a execucao de suas tarefas tambem sera abordado no trabalho. Isto
requerera o emprego de algumas tecnicas simples de navegacao autonoma.
Desse modo, o estudo apresentado neste trabalho envolvera diversas areas da
Engenharia Eletronica e sua integracao num unico projeto.
1.4 Objetivos
Este trabalho objetiva desenvolver um circuito eletronico capaz de receber
comandos via rede Wi-Fi e decodifica-los em sinais eletricos para o acionamento de
motores de tracao e de bombas de tinta e controlar a navegacao empregando sistemas
de deteccao de colisao. A unidade de controle central deste circuito tambem devera
ser capaz de gerar os movimentos que o robo executara durante seu deslocamento.
1.5 Metodologia
Para cumprir os objetivos especificados, a seguinte sequencia de tarefas foi
planejada para o projeto da eletronica embarcada do robo como um todo.
Especificacao das funcionalidades
Primeiramente serao levantadas as especificacoes quanto as funcionalidades do
projeto com base nas exigencias das atividades de terapia ocupacional em que
o robo estara envolvido.
5
Especificacao de hardware
Com base nas funcoes esperadas da parte eletronica do projeto, um hardware
eletronico mınimo podera ser especificado. Dentre essas especificacoes, pode-
mos ter as caracterısticas necessarias da unidade de controle central do robo,
do modulo de comunicacao, dos drivers dos motores, das baterias etc.
Projeto do hardware
Nesta fase, temos o projeto e construcao dos circuitos principais do hardware
eletronico com base nas especificacoes levantadas anteriormente.
Desenvolvimento do firmware
Com a unidade de controle central e seus circuitos de interface construıdos, o
trabalho prosseguira para o desenvolvimento e teste das rotinas de codigo que
serao executadas na unidade de controle central. Tais rotinas serao desenvolvi-
das para controlar os motores e outros atuadores que vierem a ser incluıdos no
robo, detectar obstaculos, comunicar-se com o PC do usuario e decodificar os
comandos recebidos. Com os testes, novas especificacoes podem ser levantadas
para o hardware.
Finalizacao do hardware
Tendo sido testadas e desenvolvidas as rotinas, especificacoes resultantes para
o hardware serao levantadas a partir de testes com a parte mecanica do robo,
que ja devera estar pronta a esse ponto. A bateria e os circuitos de alimentacao
serao desenvolvidos. Com isso, o trabalho prosseguira para ajustes no projeto
do hardware e a implementacao de um sistema final.
Desenvolvimento de biblioteca para comunicacao com o robo pelo o software do PC
Uma biblioteca com funcoes para a comunicacao entre o computador do usuario
do robo sera desenvolvida em uma ultima fase para que as funcionalidades do
robo possam ser acessadas pela programa que contem a interface grafica.
Testes finais
Apos o desenvolvimento do prototipo, testes gerais serao realizados para avaliar
a integracao das partes mecanica e de software com a eletronica embarcada
6
do robo. Com esses testes, ajustes poderao ser feitos no hardware para a
finalizacao e entrega de um dispositivo funcional e utilizavel.
Neste trabalho, entretanto, serao abordadas apenas as tarefas descritas ate o item
Desenvolvimento do firmware. As outras tarefas sao dependentes da conclusao dos
trabalhos das outras equipes do projeto, responsaveis pela mecanica e pelo software,
para ajustes e integracao.
1.6 Descricao
No capıtulo 2, serao apresentadas as especificacoes do projeto, descrevendo
suas partes principais e os requisitos necessarios. O capıtulo 3 apresenta os compo-
nentes principais da parte de controle da eletronica embarcada e aspectos teoricos
de seu funcionamento. Ja o desenvolvimento do projeto a partir das especificacoes,
fazendo uso dos componentes principais, e apresentado no capıtulo 4. A seguir, o
capıtulo 5 descreve como se deu a implementacao do trabalho realizado e os tes-
tes. Por fim, a conclusao e feita no capıtulo 6 com recomendacoes para trabalhos
futuros.
7
Capıtulo 2
Especificacoes do Projeto
Estes capıtulo descreve as especificacoes basicas do projeto com base nas
exigencias das atividades em que o robo estara envolvido.
2.1 Comunicacao
Para que haja troca de dados entre o robo e o computador do usuario, o robo
devera estar conectado a uma rede Wi-Fi. Para que isso ocorra, existem basicamente
duas possibilidades:
1. O robo se conecta a uma rede Wi-Fi pre-existente.
2. O usuario conecta seu computador a uma rede Wi-Fi em que o robo e o ponto
de acesso.
Ambas as opcoes possuem vantagens e desvantagens.
Na opcao 1, o usuario poderia fazer uso de sua rede Wi-Fi ja existente ou criar
uma nova. O robo, no entanto, teria que ter as informacoes de acesso da rede, como,
por exemplo, o nome da rede e a senha, armazenadas em sua memoria. Portanto,
de alguma forma transferir esses dados teriam que ser previamente transferidos para
o robo. Ou, no caso de ser criada uma rede nova, o robo poderia ser programado
a se conectar sempre a uma rede com nome e senha ja pre-programados em sua
memoria. O usuario, entao, quando quisesse se conectar ao robo, criaria essa rede
com informacoes de acesso predeterminadas.
8
Na opcao 2, o robo lancaria sua propria rede e o computador do usuario
seria conectado a esta. Com isso, o usuario teria que desconectar seu computador
de qualquer rede a que ja estivesse conectado. Algo que poderia acontecer seria o
usuario perder sua conexao com a Internet, caso estivesse tendo este acesso por meio
de uma conexao compartilhada proveniente de um roteador, por exemplo.
Existem problemas tambem relacionados ao endereco IP que o robo estaria
utilizando. Contudo, uma analise mais detalhada dessas opcoes e mais detalhes sobre
redes Wi-Fi, envolvendo suas caracterısticas e sua arquitetura, serao apresentados
na Secao 3.1.
Os comandos a serem enviados ao robo serao numeros correspondentes a
velocidade de deslocamento do robo e a cor da tinta utilizada. Estes comandos
serao enviados para o robo por meio da rede Wi-Fi utilizando estruturas de dados
com formato padronizado de modo que o robo saiba identificar os pacotes de dados
certos e extrair as informacoes que precisa. Mais detalhes sobre os comandos e sua
implementacao serao discutidos na Secao 4.2.
2.2 Navegacao
O robo devera ser capaz de calcular seus proprios movimentos, mantendo uma
velocidade de deslocamento determinada pelo usuario. Para isso, o robo poderia se-
guir formas geometricas pre-definidas, como cırculos, retangulos e outros polıgonos,
ou gerar movimentos aleatorios, sem seguir um padrao em particular. Segundo as
exigencias feitas pelas clientes, no entanto, a forma escolhida seria a de gerar movi-
mentos aleatorios. Por outro lado, para qualquer uma das opcoes de movimentacao,
o robo necessitaria de um certo grau de autonomia para detectar colisoes e corrigir
sua trajetoria.
A deteccao de colisoes, ou possıveis colisoes, com obstaculos pode se dar de
varias maneiras. Todavia, para este trabalho foram consideradas algumas das mais
simples, utilizando sensores de toque ou sensores de proximidade e a deteccao sem
sensores (DOISY, 2012), que baseia-se no monitoramento do torque exercido pelos
motores da tracao.
9
2.3 Pintura
Para realizar a pintura, pretende-se que o robo utilize bombas peristalticas.
Elas apresentam mecanismos simples e relativamente compactos para serem in-
cluıdos no robo, alem de geralmente serem controladas por motores DC.
Devem ser utilizadas quatro cores para a pintura. O usuario selecionara a cor
pela interface, e o computador enviara o comando correspondente via Wi-Fi para o
robo. Este, a partir da decodificacao do comando, acionara a bomba correspondente.
Cada bomba funcionara como um injetor independente. O controle das mesmas sera
feito a partir da velocidade de rotacao de seu motor. Deste modo, podera ser feito
um controle de dosagem de cada tinta.
Existe tambem a possibilidade de se oferecer uma gama maior de cores para
o usuario a partir do acionamento simultaneo de mais de uma bomba de tinta e o
controle da vazao de cada uma. Tendo quatro cores basicas, como ciano, magenta,
amarelo e preto, do modelo CMYK (Cyan Magenta Yellow blacK ), seria possıvel,
a princıpio oferecer qualquer cor de pigmentacao ao usuario (GALER; HORVAT,
2003). Embora o foco deste trabalho nao esteja na arte visual em si, o hardware do
robo pode ser preparado para ter essa opcao futuramente implementada a nıvel de
firmware, isto e, a nıvel de programacao do microcontrolador.
10
Capıtulo 3
Componentes Principais
Neste capıtulo serao apresentados os componentes principais da eletronica
embarcada do robo e alguns dos princıpios teoricos que regem seu funcionamento.
3.1 Modulo Wi-Fi
Redes Wi-FiTM estao amplamente presentes em uma diversidade de ambi-
entes modernos, envolvendo desde casas a empresas de grande porte, por si so ou
sendo parte de uma rede maior. Isto inclui a conexao a Internet, que acaba sendo
um grande fator motivador para o emprego dessa tecnologia. Devido a essa popula-
rizacao, tem-se facilitado a implementacao de redes Wi-Fi pela reducao de custos e
a diversificacao de produtos capazes de se comunicar via Wi-Fi.
O acesso a Internet permite monitorar e controlar dispositivos a distancia. O
termo Internet das Coisas identifica as tecnologias que tem sido desenvolvidas com
o fim de formar redes envolvendo dispositivos do mundo real de todos os tipos, tais
como eletrodomesticos, redes de sensores, televisores etc., conectados a Internet,
acessıveis de qualquer lugar (BRECH et al., 2013). Com isso, tem ocorrido um
aumento no numero e na diversidade de ferramentas de desenvolvimento disponıveis
para a criacao de produtos capazes de se conectar a rede. Uma delas e o modulo
Wi-Fi utilizado neste projeto.
Em comparacao com o Bluetooth R©, a capacidade de se conectar via Wi-Fi
e mais facilmente encontrada em laptops, por estes serem dispositivos portateis e
muito utilizados para acesso a Internet. Redes Wi-Fi sao inerentemente expansıveis,
11
enquanto o Bluetooth e voltado para a comunicacao ponto-a-ponto. A troca de
dados em redes Wi-Fi pode ser feita utilizando os ja bem estabelecidos protocolos
para comunicacao via Internet em redes cabeadas. Estes e outros aspectos estao
mais detalhados nos apendices A, B e C deste documento. Alem disso, dispositivos
Wi-Fi apresentam maior alcance via radio e menor consumo de energia quando nao
estao trocando dados (FRIEDMAN; KOGAN; KRIVOLAPOV, 2013).
3.1.1 Modulo RN-XV
O modulo de radio RN-XV (ROVING NETWORKS, 2012) e um dispositivo
de acesso a redes locais sem fio . Algumas caracterısticas desse modulo sao listadas
abaixo.
• Suporta os padroes IEEE 802.11b/g
• Implementa pilha TCP/IP completa internamente;
• Possui baixo consumo de potencia;
• Possui sistema de gerenciamento de consumo inteligente;
• Faz interface de hardware via TTL UART;
• Pode ser configurado via Wi-Fi ou UART usando comandos ASCII simples;
• Conecta-se a redes operando em modo ad hoc ou infraestrutura.
• Suporta mecanismos de autenticacao: WEP, WPA-PSK (TKIP) e WPA2-
PSK.
• Suporta operar como Ponto de Acesso;
• Possui varias aplicacoes de rede embutidas: TCP, UDP, cliente HTTP, Telnet,
cliente e servidor (no modo Ponto de Acesso) DHCP, entre outras.
Este modulo foi escolhido para o projeto por:
• suportar os padroes Wi-Fi 802.11b/g, largamente empregados por computa-
dores pessoais, celulares e tablets ;
12
• ter uma interface de hardware simples de utilizar via UART (Universal As-
synchronous Receiver Transmitter);
• implementar a pilha TCP/IP por completo internamente;
• possuir uma interface de comandos ASCII simples de utilizar; e
• por ter um custo de aquisicao relativamente baixo.
Os padroes IEEE 802.11b e 802.11g sao emendas ao padrao IEEE 802.11 origi-
nal que estabelecem especificacoes para a comunicacao via Wi-Fi utilizando tecnicas
de modulacao diferentes para a transmissao dos sinais. A principal diferenca, no en-
tanto, esta na taxa de transmissao de dados que cada padrao consegue atingir. O
802.11b alcanca um taxa de dados bruta de 11 Mbits/s, enquanto o 802.11g chega
a 54 Mbits/s. Contudo, ambos os padroes utilizam sinais de portadora na banda de
frequencia de 2.4 GHz, que e compartilhada por outros sistemas de comunicacao sem
fio a curta distancia, tais como o Bluetooth, telefones sem fio etc. Deste modo, os
padroes 802.11b/g estao sujeitos a interferencia de dispositivos operando em sistemas
totalmente diferentes. Por outro lado, ha menores exigencias quanto ao hardware
do que em outros padroes, como 802.11n, que operam em frequencias mais altas.
A capacidade de comunicacao via UART e facilmente encontrada pela maioria
dos microcontroladores para uso em sistemas eletronicos embarcados atualmente.
Estes, geralmente, oferecem perifericos internos que lidam com essa comunicacao
para o firmware do usuario de maneira automatica, sem serem necessarios muitas
configuracoes, e utilizando poucos pinos do microcontrolador.
3.2 Sistema de Tracao
Os motores de tracao formarao um sistema de direcao diferencial (RIBEIRO;
LIMA, 2012). Neste tipo de sistema, duas rodas motrizes independentes produzem
a tracao para mover o robo. A direcao que o robo segue e controlada pela diferenca
entre as velocidades de rotacao das rodas. Por exemplo, se a roda da esquerda esta
girando a uma velocidade menor que a da direita, o robo tendera a virar para a
esquerda. Semelhantemente, o robo pode girar em torno de seu eixo vertical, sem
13
se deslocar, ao fazer as duas rodas girarem na mesma velocidade, mas em sentidos
de rotacao opostos em relacao ao eixo horizontal que as une.
3.2.1 Motores DC
Motores DC sao motores eletricos operando a base de corrente contınua. Eles
podem ser encontrados em diferentes tipos, dentre eles, temos alguns principais:
motores com escova (brushed) e motores sem escova (brushless).
Os motores brushed sao constituıdos por um eixo girante contendo um ou
mais enrolamentos de fios conectados a comutadores acionados por escovas em meio
a um campo magnetico fixo (CONDIT, 2010). Tal conjunto de enrolamentos e cha-
mado armadura. A corrente eletrica flui por um enrolamento quando os contatos
dos comutadores fecham circuito com as escovas, que sao fixas e estao ligadas aos
terminais do motor. Nisto, um campo magnetico desalinhado com o campo fixo e
gerado, forcando o rotor a se mover. Logo que um enrolamento perde contato, outro
e acionado. Este ciclo se repete, e o motor segue girando.
Motores brushless utilizam na verdade corrente alternada para produzir um
campo magnetico girante em enrolamentos fixos que propulsiona um rotor de ımas
permanentes (YEDAMALE, 2003). Estas correntes sao geradas, no entanto, a partir
de circuitos inversores alimentados por tensoes eletricas DC.
A perda de contato momentanea nos motores brushed varias vezes seguidas
a cada segundo acabam produzindo ruıdo na corrente do motor que pode passar
para as linhas de alimentacao ou se propagar por ondas eletromagneticas (WONG,
2012) e interferir em outras partes do circuito, que podem ser sensıveis a ruıdo. Isto
os torna menos vantajosos para operacoes com circuitos de comunicacao em relacao
aos motores brushless. Estes possuem comutacao eletronica, gerando muito menos
ruıdo (YEDAMALE, 2003). No entanto, este tipo de comutacao exige drivers de
hardware muito mais complexos, o que proporciona aos motores brushless um custo
maior que os do tipo brushed em geral.
Motores de passo tambem podem ser classificados como um tipo especial de
motores DC do tipo brushless, por operarem a base de corrente contınua em suas
bobinas e por nao apresentarem escovas para o contato eletrico. Este tipo de motor
e encontrado em tipos diferentes no mercado (CONDIT; JONES, 2004). Contudo,
14
como caracterıstica geral, eles rotacionam em passos discretos. Seus estatores sao
constituıdos por um numero de bobinas responsaveis por gerar o campo magnetico
que ira impulsionar o rotor. Para que haja rotacao, e necessario que haja um
acionamento em sequencia dessas bobinas para que o rotor entre em rotacao um
passo apos o outro. Deste modo, e possıvel conhecer a posicao e a velocidade de
rotacao do rotor, mesmo em sistemas de malha aberta, a partir da contagem e da
frequencia dos pulsos, respectivamente, o que seria vantajoso em diversas aplicacoes.
Motores de passo apresentam algumas desvantagens em relacao aos outros
tipos de motores apresentados (NI, 2011). Dentre elas, esse tipo de motor consomem
corrente independentemente da carga, visto que suas bobinas precisam estar sendo
sempre chaveadas para este girar. Portanto, mesmo a uma carga mecanica redu-
zida, o motor continuara consumindo uma corrente elevada para se manter parado
ou girando. Eles tambem necessitam de uma eletronica de chaveamento e sequenci-
amento, mesmo no controle em malha aberta, que e mais complexa que a necessaria
para os motores DC do tipo brushed.
Para este trabalho, foram escolhidos motores DC do tipo brushed por seu
custo relativamente baixo, sua eletronica de controle simples e por seu relativamente
baixo consumo de energia. Alem disso, neste trabalho, nao sera necessario um
monitoramento preciso da posicao e da velocidade de rotacao dos motores de tracao,
tirando as vantagens em se utilizar motores de passo.
3.2.2 Modelo do Motor
O torque e a velocidade angular de um motor DC do tipo brushed podem ser
calculados em funcao da corrente de armadura e da intensidade do fluxo magnetico
atravessando a mesma. Num motor cujo estator e composto por ımas permanen-
tes, a intensidade do fluxo magnetico do estator e constante. Para este trabalho,
assumiremos o motor operando em regime permanente, ou seja, desprezaremos os
transitorios dinamicos e eletromagneticos. Em sistemas com reducao mecanica, o
torque devido a carga a ser girada pelo motor tambem e consideravelmente redu-
zido. No caso do robo em questao, este pode ser desprezado para fins de eletronica de
controle. Portanto, a partir das formulacoes de RASHID (2011), com as condicoes
assumidas, os motores de tracao podem ter uma modelagem simplificada em funcao
15
da corrente de armadura ia pelas seguintes equacoes:
τ = kτIa (3.1)
ω = kωIa (3.2)
onde τ corresponde a quantidade de torque eletromagnetico, ω a velocidade angular
do rotor, e kτ e kω sao constantes de proporcionalidade dependentes de diversos
fatores inerentes ao motor, mas que podem ser medidas experimentalmente. Alem
disso, em regime permanente, a tensao de armadura pode ser modelada como:
Va = RaIa + Ea (3.3)
onde Ra corresponde a resistencia eletrica da armadura e Ea e a forca contra-
eletromotriz produzida pelo motor em rotacao. Esta e dada por:
Ea = kvω (3.4)
onde kv e uma constante que depende, dentre outros fatores, da quantidade de fluxo
magnetico atravessando a armadura.
3.2.3 Torque
O torque maximo necessario e um valor importante de ser estimado para
levantar as especificacoes do driver dos motores de tracao. Na Tabela 3.1, se encon-
tram as estimativas da parte mecanica do robo elaboradas por seu projetista. De
acordo com essas estimativas, o torque requerido foi calculado em 8,3 kg-cm. Este
valor de torque pode ser considerado como o torque maximo que o motor devera
exercer para tirar o veıculo da inercia e acelera-lo ate a velocidade maxima desejada
dentro do tempo de aceleracao esperado.
Para o valor de torque estimado foram encontrados alguns modelos de mo-
tor DC disponıveis no mercado, inclusive modelos com caixa de reducao acoplada.
Uma caixa de reducao e necessaria para aumentar a capacidade de torque do motor,
ao custo de reducao da velocidade de rotacao. Um dos motores encontrados (RO-
BOTSHOP, 2013b) com reducao acoplada possui as especificacoes encontradas na
16
Peso bruto do veıculo 6,5 lb (3 kg)Peso em cada roda 3,25 lb (1,5 kg)Raio da roda 10 in (25 cm)Velocidade maxima desejada 4 ft/s (10 cm/s)Tempo de aceleracao desejado 1 s
Angulo maximo de inclinacao do piso 2 grausPior superfıcie de trabalho ConcretoFator de resistencia do motor 1,1Coeficiente de atrito com o solo 0,5
Tabela 3.1: Estimativas da parte mecanica do robo
Tabela 3.2.
Tensao de operacao 6V 12VVelocidade de rotacao livre 50 rpm 100 rpmCorrente em rotacao livre 250 mA 300 mATorque maximo 110 oz-in (7,93 kg-cm) 220 oz-in (15,8 kg-cm)Corrente maxima 2,5 A 5,0 A
Tabela 3.2: Especificacoes de um motor que atende as estimativas de torque doprojeto
3.2.4 Drivers
O acionamento de motores DC do tipo brushed pode ser feito de algumas
formas diferentes. No entanto, para um controle de velocidade e sentido de rotacao,
a forma mais utilizada e o acionamento atraves de circuitos de chaveamento em
ponte H (CONDIT, 2010).
Uma ponte H e constituıda de quatro elementos de chaveamento dispostos
como no circuito da Figura 3.1. Fechando chaves em posicoes diametralmente opos-
tas (S1:S4 ou S2:S3) na ponte H, o motor gira em sentido horario ou anti-horario,
dependendo do par de chaves ligadas. As outras chaves sao mantidas abertas, nesse
caso. Por outro lado, fechando chaves paralelas (S1:S3 ou S2:S4), o motor tem uma
parada forcada. Enquanto que, se todas as chaves forem abertas, o motor tem uma
parada gradual em movimento livre.
Os elementos de chaveamento sao em geral de estado solido. Dependendo
principalmente da potencia da carga a ser acionada, podem ser utilizados transistores
17
Figura 3.1: Topologia de uma ponte H (Fonte: http://en.wikipedia.org/wiki/H-bridge).
BJT, MOSFETs ou IGBTs. Ha tambem alguns tipos de drivers integrados no
mercado (TEXAS INSTRUMENTS, 2014). No caso de chaveamento a MOSFET,
por exemplo, encontram-se circuitos integrados chamados gate drivers, que geram os
nıveis de tensao necessarios para ativar os gates dos MOSFETs, tanto do lado inferior
quanto do lado superior da ponte. Por outro lado, para nıveis baixos de potencia,
isto e, ate algumas poucas dezenas de watts, podem ser encontrados drivers na forma
de um unico circuito integrado contendo a ponte e circuitos de interface de baixa
tensao para a logica de controle do motor.
Quando comparadas as pontes feitas com componentes discretos, pontes H
integradas, alem do tamanho reduzido, tem a vantagem de ja virem balanceadas de
fabrica. Isto significa que seus transistores internos sao dimensionados e polarizados
de maneira que haja uma simetria praticamente perfeita entre os dois lados da ponte.
Com isso, a ponte pode fornecer ao motor o mesmo nıvel de potencia em ambos os
sentidos rotacao.
3.2.5 Circuito Integrado L298N
O circuito integrado L298N (ST MICROELECTRONICS, 2000) e um exem-
plo de driver para motores DC com a ponte H e uma interface para a logica de
controle do motor integradas. Ele foi escolhido para este projeto pelas seguintes
caracterısticas:
• Popularidade no mercado, sendo facil de encontrar nos principais distribuidores
de componentes eletronicos;
18
• Baixo custo;
• Possui duas pontes H completas integradas;
• Capaz de fornecer ate 2A de corrente contınua, suportando ate 3A de pico nao
repetitivo.
Neste integrado, cada ponte H tem uma entrada de controle para habilita-la.
Com a ponte desabilitada, todas as suas chaves sao abertas. O motor entra, entao,
em movimento livre, podendo parar, se essa condicao se manter. Desta forma, pode
ser implementado um controle de velocidade via PWM. Maiores detalhes quanto a
tecnica de controle de velocidade por PWM sao descritos no Apendice D.
3.3 Driver dos Motores das Bombas
3.3.1 Bombas Peristalticas
Para ejetar tinta sobre a superfıcie que o robo ira pintar, foram escolhidas
bombas peristalticas (VERDERFLEX, 2014). Tais dispositivos possuem mecanis-
mos relativamente simples, sendo movidos por motores DC do tipo brushed (RO-
BOTSHOP, 2013a), geralmente, assim como os motores de tracao. Portanto, foi
utilizado o mesmo tipo de driver que o dos motores de tracao.
3.3.2 Circuito Integrado L293D
O integrado L293D (ST MICROELECTRONICS, 1996) possui quatro drivers
do tipo push-pull que podem ser acionados individualmente. Cada um destes e
capaz de entregar ate 1A de corrente na saıda. Alem disso, este circuito integrado
ja possui em si diodos para protecao contra sobretensao devido a forca contra-
eletromotriz. Pelo motor ser constituıdo de enrolamentos de fios condutores, este
apresenta caracterısticas de uma carga indutiva. Portanto, quando sua corrente e
interrompida, e gerada uma forca contra-eletromotriz, que pode danificar o circuito
do driver caso nao haja uma protecao.
Este integrado foi escolhido para o projeto devido as caracterısticas descritas
acima e a sua disponibilidade no mercado. Cada um de seus drivers internos sera
usada para acionar uma das quatro bombas de tinta que o robo ira comportar.
19
3.4 Microcontrolador
Microcontroladores sao dispositivos que integram um nucleo de processa-
mento, memorias e os mais diversos perifericos num unico chip (BRAIN, 2013). Eles
sao encontrados em uma diversidade de aparelhos e sistemas eletronicos embarca-
dos, como os presentes em automoveis. Alem disso, microcontroladores tambem sao
largamente utilizados em projetos na area de robotica, devido a sua versatilidade e
grau de miniaturizacao.
3.4.1 Arquitetura Basica de um Microcontrolador
A Figura 3.2 apresenta o diagrama de blocos da arquitetura basica de um
microcontrolador. Esta varia principalmente quanto as conexoes, podendo alguns
perifericos terem acesso direto as portas ou a memoria de dados, por exemplo. Alem
disso, pode estar presente mais uma memoria para dados, dessa vez, nao volatil,
sendo, geralmente, uma EEPROM (do ingles, Electrically Erasable Programmable
Read-Only Memory).
Figura 3.2: Arquitetura basica de um microcontrolador
20
As portas de entrada/saıda sao a conexao entre o microcontrolador e o mundo
exterior. Elas sao conectadas aos pinos do circuito integrado designados para funcoes
de entrada/saıda. Contudo, elas podem ter suas funcoes multiplexadas internamente
com diversos perifericos(MICROCHIP, 2008), podendo funcionar como entradas
analogicas para um conversor A/D, por exemplo, ou como terminais de comunicacao
via protocolo I2C (do ingles, Inter-Integrated Circuit) (NXP, 2012).
A memoria de dados e, geralmente, do tipo RAM (do ingles, Random Access
Memory). Ela guarda os dados do microcontrolador de forma temporaria, sendo
estes perdidos apos a alimentacao ser desligada. Dentre esses dados podem estar
variaveis do programa sendo executado pela CPU e registradores de controle internos
que guardam configuracoes da CPU e de seus perifericos.
A CPU (do ingles, Central Processing Unit), ou unidade de processamento
central, compreende os componentes centrais do microcontrolador responsaveis pela
execucao do programa armazenado na memoria. Dentre eles, podemos encontrar a
unidade de logica e aritmetica, o registrador de instrucao, sistemas de interrupcao,
circuitos para geracao de sinal de clock etc..
Os perifericos podem ser desde temporizadores a conversores analogico-digital
(A/D) de varios bits de precisao, incluindo modulos de comunicacao implementando
os mais diversos protocolos para troca de dados entre dispositivos, como o I2C, men-
cionado anteriormente. Essa diversidade de perifericos e um dos principais fatores
motivadores para o uso de microcontroladores. A possibilidade de ter um sistema
completo para amostragem, processamento e armazenamento de dados, alem da
implementacao de protocolos de comunicacao variados, em um unico chip reduz
consideravelmente a necessidade de componentes externos nos projetos envolvendo
microcontroladores.
A memoria de programa e responsavel por armazenar de forma persistente as
instrucoes de maquina que formam o programa a ser executado pelo microcontrola-
dor. No entanto, alguns microcontroladores oferecem a opcao de se escrever nessas
memorias em tempo de execucao a partir do proprio programa (MICROCHIP, 2008).
Isto torna possıvel a utilizacao da memoria de programa para armazenar valores de
variaveis temporarias durante a execucao do programa. No entanto, isso nao e uma
pratica comum, visto que as mesmas tem quantidades de ciclos de escrita e apa-
21
gamento limitada, as escritas e apagamentos sao feitas em blocos, alem de serem
muito mais lentas que numa memoria do tipo SRAM. Um uso mais eficaz para essa
funcionalidade torna-se armazenar variaveis que precisam ter seus valores armazena-
dos persistentemente quando nao ha uma memoria de dados nao-volatil disponıvel
(NXP, 2011). O uso mais comum para a escrita em tempo de execucao, entretanto,
e para a criacao de bootloaders. Estes sao programas executados logo apos o reset do
microcontrolador que permitem que este seja programado por meio de perifericos,
como modulos de comunicacao UART, por exemplo (BENINGO, 2012).
3.4.2 ATmega32
Para este trabalho, o microcontrolador deveria apresentar as seguintes carac-
terısticas mınimas:
• 3 canais PWM independentes para controle dos motores das rodas e das bom-
bas;
• 1 UART para comunicacao com o modulo Wi-Fi;
• Encapsulamento DIP para montagem em placa de circuito impresso artesanal,
sem a necessidade de equipamento especial para montagem em superfıcie;
• Memoria de programa de tamanho suficiente para conter o firmware necessario.
• Quantidade de pinos de entrada/saıda suficiente para controle dos drivers, do
modulo Wi-Fi, interface com sensores de colisao e LEDs para indicacao de
status.
Uma infinidade de modelos de microcontroladores no mercado atenderia a
essas especificacoes. No entanto, havia disponıvel o microcontrolador ATmega32-
16pu da Atmel (ATMEL, 2011) no LABCON. Portanto, este foi escolhido para
controlar a eletronica embarcada do robo.
Dentre as principais caracterısticas deste microcontrolador(ATMEL, 2011),
podemos citar as seguintes:
• Execucao de ate 16 milhoes de instrucoes por segundo (MIPS);
• 32 KB de memoria de programa do tipo Flash;
22
• 1024 B de memoria de dados nao-volatil do tipo EEPROM;
• 2 KB de memoria de dados do tipo RAM estatica (SRAM);
• 2 temporizadores/contadores de 8 bits;
• 1 temporizador/contador de 16 bits;
• 4 canais PWM;
• Conversor A/D de 10 bits com 8 canais;
• 1 Modulo USART;
• Encapsulamento PDIP de 40 pinos.
23
Capıtulo 4
Desenvolvimento
Este capıtulo descreve o hardware projetado para atender as especificacoes
do projeto e o firmware necessario para exercer essas funcionalidades.
4.1 Desenvolvimento do Hardware
O hardware para a eletronica embarcada do robo foi projetado de acordo com
as seguintes especificacoes:
• ser controlavel via rede Wi-Fi;
• controlar 2 motores DC brushed de tracao em modo de direcao diferencial;
• controlar 4 motores DC brushed em bombas de tinta;
• detectar colisoes em sua navegacao utilizando sensores de colisao.
Para implementar tais especificacoes, foram elaboradas duas placas: uma
para fornecer controle a um nıvel central e outra dedicada ao controle dos motores.
A primeira contem o microcontrolador e se comunica com o computador do usuario
utilizando o Wi-Fi. A segunda recebe os comandos da placa central e aciona os
motores. Separar o projeto do modulo de controle do robo em duas placas, estando
a placa dos dispositivos de potencia separada, evita interferencias geradas por ruıdo
na corrente dos motores.
24
4.1.1 Projeto da Placa de Controle Central
O projeto da placa de controle central foi centrado em torno dos seus com-
ponentes principais: o modulo Wi-Fi e o microcontrolador. O esquematico final do
circuito e apresentado na Figura 4.1.
Para controlar o modulo Wi-Fi, foram utilizados seu pino de reset e os pinos
TX (transmissor) e RX (receptor) de seu periferico UART. Utilizando o reset, seria
possıvel reiniciar o modulo sempre que o microcontrolador fosse reiniciado. Deste
modo, pode haver sincronismo entre a operacao dos dois sistemas.
4.1.1.1 Conversao de Nıveis Logicos
Uma das primeiras dificuldades encontradas e o fato do modulo Wi-Fi tra-
balhar a um nıvel de tensao de alimentacao mais baixo que o do microcontrolador.
O primeiro trabalha com uma logica de 3,3V, enquanto o segundo utiliza o padrao
de 5V. Consequentemente, ligar os terminais de comunicacao dos dois diretamente
poderia causar problemas na interpretacao dos nıveis logicos de tensao pelos circui-
tos de entrada de suas portas. Por isso, foram utilizados circuitos a diodo entre o
microcontrolador e o modulo Wi-Fi para adaptar os nıveis de tensao gerados por
ambos.
4.1.1.2 Controle das Bombas de Tinta
Para controlar as quatro bombas de tinta via PWM, o que permitiria regular
o fluxo de cada uma, seria necessario compartilhar um dos canais PWM do micro-
controlador. Este possui apenas quatro canais com essa funcao. Dois destes ja estao
reservados para controlar os motores de tracao. Portanto, restariam apenas dois, o
que nao e suficiente para controlar diretamente quatro bombas.
A solucao para esse problema foi multiplexar o controle das bombas de tinta
utilizando um demultiplexador (comumente abreviado como demux ) digital. A en-
trada deste foi ligada ao pino PWM do microcontrolador e as saıdas ligadas aos
drivers das bombas. O circuito integrado que atendia minimamente a essas especi-
ficacoes foi o CD4555.
O CD4555 e composto por dois demultiplexadores de uma entrada e quatro
saıdas. Apenas um dos demux foi utilizado no projeto.
25
Figura 4.1: Diagrama esquematico da placa de controle central
26
Cada demux do CD4555 tem uma entrada enable (E) que habilita a selecao de
suas saıdas. Isto e, quando um dos demux esta desabilitado (E=1), todas as saıdas
sao mantidas desativadas. Neste caso, com o integrado em questao, elas apresentam
nıvel logico ’0’. Por outro lado, quando o demux utilizado esta habilitado (E=0), a
saıda selecionada pelos pinos A e B e ativada, apresentando nıvel logico ’1’, enquanto
as demais permanecem em ’0’. Deste modo, pode-se transmitir um sinal chaveado
em logica inversa para a saıda selecionada atraves do pino enable.
Para implementar o controle das bombas, entao, um dos canais de PWM
do microcontrolador (OC0) gera o sinal de entrada para o demux no seu terminal
enable (E). Outros dois pinos do microcontrolador, funcionando como saıdas digitais,
selecionam uma das saıdas do demux atraves de suas entradas de enderecamento (A
e B). Cada uma das saıdas do demux (Q0 a Q3) esta ligada a uma das quatro
bombas de tinta, atraves de seu driver correspondente, na outra placa.
4.1.1.3 Controle do Sistema de Tracao
Os sinais para o controle do sistema de tracao diferencial sao transmitidos
diretamente ao circuito integrado L298N na placa dos drivers. Dois canais de PWM
do microcontrolador (OC1A e OC1B) geram os sinais para os pinos de enable de
cada ponte H do driver, provendo o controle de velocidade conforme discutido no
item 3.2.5. Outros dois pares de saıdas digitais do microcontrolador geram os sinais
para as entradas que controlam o sentido de rotacao do motor em cada ponte H.
4.1.1.4 Sensores
Nao foram incluıdos circuitos para sensores na placa para garantir certa fle-
xibilidade ao projeto. No entanto, para se conectar a sensores externos, foram dis-
ponibilizados conectores compartilhando vias de alimentacao e canais de conversao
analogico-digital do microcontrolador. Isso permitiria uma certa flexibilidade ao
sistema para se conectar a sensores que tem uma saıda de tensao analogica, como
alguns sensores de proximidade por reflexao de sinais de luz infravermelha.
27
4.1.1.5 Indicacao de Estado
Por ultimo, foram disponibilizados tres LEDs para indicacao de estado do
sistema pelo microcontrolador. Cada um foi escolhido com uma cor diferente, para
indicar um tipo de informacao, tais como, estado da conexao, recepcao de dados,
transmissao de dados etc.
4.1.2 Projeto da Placa de Drivers
O projeto da placa dos drivers foi relativamente simples, e se baseou nas
especificacoes dadas pelo manual do fabricante de cada circuito integrado desta. O
diagrama esquematico da placa e apresentado na Figura 4.2.
Cada um dos drivers push-pull do L293D e conectado a um dos terminais
de cada motor das bombas de tinta. O outro terminal de cada motor e conectado
ao 0V do sistema. Dessa forma, quando um dos drivers tem sua entrada em nıvel
logico alto (’1’), o motor em sua saıda e ligado. Caso contrario, o motor permanece
desligado.
Como o sinal PWM gerado pelo microcontrolador na placa de controle central
e transmitido aos drivers pelo pino de enable do demux, pino este que e ativo em
’0’, este sera implementado em logica inversa pelo firmware do microcontrolador.
Os dois motores de tracao sao ligados as saıdas das pontes H do integrado
L298N. De acordo com o manual do fabricante, cada uma destas precisa ser ligada a
uma ponte de diodos quando uma cargas indutivas sao acionadas. Isso evita danos
aos circuitos internos do driver causados pela forca contra-eletromotriz do motor
quando este e desligado subitamente, como no caso de chaveamento via PWM.
Portanto, o projeto teve de incluir pontes de diodos de protecao associados a cada
motor do sistema de tracao. No caso do L293D, utilizado para acionar as bombas,
isto nao foi necessario por este ja incluir diodos de protecao internamente na saıda
de cada driver.
4.2 Desenvolvimento Computacional
O sistema computacional deste projeto e composto de duas partes: o firmware
do microcontrolador e o software para o PC do usuario. Quanto a este ultimo, no
28
Figura 4.2: Diagrama esquematico da placa dos drivers
entanto, a parte da interface esta sendo desenvolvida por outra equipe. A equipe
da eletronica esta encarregada apenas do software necessario para a comunicacao da
interface com o robo.
4.2.1 Firmware
O firmware corresponde ao codigo fixo presente na memoria de programa
do microcontrolador. Tal codigo implementa a inteligencia do robo, o controle dos
motores e a codificacao e decodificacao dos dados para a comunicacao via modulo
29
Wi-Fi.
O fluxograma principal do programa a ser executado pelo microcontrolador
e apresentado na Figura 4.3.
Quando o microcontrolador inicia sua operacao, o programa inicializa suas
variaveis e os perifericos que serao utilizados. As velocidades iniciais sao zeradas.
Paralelamente, o modulo Wi-Fi, previamente configurado, e inicializado e lanca um
ponto de acesso Wi-Fi automaticamente. O robo entra, entao, em modo de espera
por uma conexao TCP de um computador remoto com o modulo Wi-Fi.
Apos uma conexao via TCP ser estabelecida, o robo entra num ciclo central
do programa. Primeiramente, este checa as leituras dos sensores de colisao para
verificar se o robo colidiu com algum obstaculo antes de enviar qualquer comando
aos motores de tracao. Deste modo, o robo pode desviar do obstaculo antes de dar
prosseguimento a sua operacao.
Logo apos a verificacao e a abordagem de colisoes, o programa verifica se
algum novo comando foi recebido via Wi-Fi atraves de rotinas proprias para recepcao
de comandos via serial. Dentre os comandos possıveis, estao os de atualizacao de
configuracao, cor e velocidade do robo. Caso o comando recebido nao tenha sido
nenhum desses, ou nao esteja no formato ou faixa de valores correto, um erro e
registrado e sinalizado ao usuario.
4.2.1.1 Comunicacao
A recepcao de dados via UART pelo microcontrolador foi desenvolvida na
forma de maquinas de estados. Estas verificam os dados recebidos byte a byte,
comparando com as strings que notificam abertura ou fechamento de conexao, ou
verificando se e um comando de velocidade ou de cor atraves do formato.
Ha uma maquina de estados responsavel pelo monitoramento da conexao
TCP com dois estados possıveis:
1. Aguardando Conexao
2. Conexao Estabelecida
Chamaremos esta de Maquina 1.
30
Figura 4.3: Fluxograma principal do firmware
31
No ultimo estado desta, e executada outra maquina de estados com tres
possıveis estados:
1. Aguardando Comando
2. Recebendo velocidade
3. Recebendo Cor
Esta chamaremos de Maquina 2.
Quando uma conexao TCP com o modulo Wi-Fi e aberta, este notifica
o microcontrolador via porta serial enviando a sequencia de caracteres (string)
”*OPEN*”. Do mesmo modo, quando a conexao e fechada, a string ”*CLOS*”e
enviada. Com isso, o microcontrolador foi programado para identificar essas strings
na sua rotina de recepcao de dados via UART para detectar uma mudanca de estado
da conexao. Ao ser detectada essa mudanca de estados, a rotina principal do pro-
grama, detalhada no fluxograma da Figura 4.3, e avisada atraves de uma variavel
que funciona como um flag de sinalizacao.
Figura 4.4: Diagrama de transicao de estados da Maquina 1
A Maquina 1 funciona conforme o diagrama apresentado na Figura 4.4. Inici-
almente, a maquina e inicializada no estado Aguardando Conexao. Quando a string
”*OPEN*”e recebida, o estado da Maquina 1 passa para Conexao Estabelecida.
Nesse momento, um flag e setado de modo que o loop principal do programa possa
32
detectar a mudanca. A partir daı, a Maquina 2 entra em execucao conjunta, sendo
inicializada em Aguardando Comando, conforme o diagrama na Figura 4.5.
Figura 4.5: Diagrama de transicao de estados da Maquina 2
Ao receber um comando de velocidade ou de selecao de cor da tinta, a
Maquina 2 passa para o estado correspondente e aguarda a recepcao por inteiro
de um desses comandos. Apos isso, ou caso a recepcao falhe, por receber uma string
em formato diferente, a Maquina 2 volta ao seu estado inicial. Pode ocorrer tambem
que a string ”*CLOS*”seja recebida. Neste caso, o estado da Maquina 1 e alterado
para o inicial, e a Maquina 2 deixa de ser executada.
Os comandos de velocidade sao strings da forma ”vXX”, onde ”XX”e um
numero decimal de dois dıgitos em caracteres ASCII que pode valer de ”00”a ”10”.
Por exemplo, ”v05”, indica que o robo deve mudar sua velocidade para o valor 5,
que significa 50% do maximo atingıvel.
Quanto a selecao das cores, os comandos sao da forma ”cX”, onde ”X”e um
dıgito decimal de 0 a 4. O comando ”c0”indica que nenhuma bomba de tinta deve ser
acionado. Ja os comandos ”c1”a ”c4”indicam que a bomba de tinta correspondente,
dentre uma das quatro bombas disponıveis, deve ser acionada. Estes comandos sao
mutuamente exclusivos. Ou seja, se a bomba 3 estiver acionada, e o robo receber o
comando ”c2”, a bomba 3 e desligada e a bomba 2 e ligada.
33
4.2.1.2 Geracao de Movimentos Aleatorios
Foi adotado para o robo o modelo cinematico do uniciclo(CARONA; AGUIAR;
GASPAR, 2008), dado por:
x
y
θ
=
cos(θ) 0
sin(θ) 0
0 1
· v
ω
(4.1)
onde v corresponde a velocidade de deslocamento linear, θ, ao angulo de orientacao,
ω, a velocidade de deslocamento angular em relacao ao mesmo eixo da orientacao,
e x e y sao as coordenadas da posicao do robo no plano.
A velocidade a ser mudada pelos comandos e a velocidade de deslocamento
linear do robo. A velocidade angular foi tornada a parcela aleatoria do sistema.
A intervalos de tempo de duracao pre-determinada, um novo valor de veloci-
dade angular e gerado para o robo. Dessa forma, este pode descrever uma trajetoria
curva e relativamente suave.
4.2.1.3 Controle dos Motores de Tracao por PWM
Adaptando o modelo do uniciclo ao caso de um robo com direcao diferencial,
podemos encontrar a relacao entre as entradas (v e ω) e as velocidades de cada roda
(v1 e v2), que serao nesse caso as saıdas. No caso do programa a ser executado pelo
microcontrolador, o que importa saber, no entanto, e o calculo do duty cycle de cada
PWM a ser transmitido aos motores do sistema de tracao.
Assumindo um robo de duas rodas simetricas e com um referencial posicio-
nado no centro do eixo entre as duas rodas, podemos deduzir as seguintes equacoes:
v =v1 + v2
2(4.2)
ω =v2 − v1RA
(4.3)
onde v1 e v2 sao as velocidades lineares da roda a esquerda e da roda a direita do
referencial. RA corresponde a distancia entre o centro do eixo das rodas e cada roda,
que e simetrica. Precisamos, no entanto, das relacoes envolvendo as velocidades de
34
rotacao de cada roda (ω1 e ω2), que sao diretamente proporcionais ao duty cycle de
cada sinal PWM dos motores de tracao.
Sabemos que v1 = Rwω1
v2 = Rwω2
(4.4)
onde Rw corresponde ao raio das rodas. Substituindo 4.4 em 4.2 e 4.3, obtemos o
seguinte sistema v
ω
= Rw ·
12
12
− 1RA
1RA
·ω1
ω2
(4.5)
de onde podemos obter a inversaω1
ω2
=RA
Rw
·
1RA−1
2
1RA
12
· v
ω
(4.6)
A partir deste sistema, podemos ver queω1 = av − bω
ω2 = av + bω
(4.7)
onde a e b sao constantes que dependem das dimensoes fısicas do robo. Entre-
tanto, como o intuito e apenas desenvolver um algoritmo capaz de gerar movimentos
aleatorios, os valores de a e b podem ser arbitrados. Dessa forma, sabendo que o
duty cycle do PWM e proporcional a velocidade angular da roda, podemos adotar
as seguintes equacoes: n1 = a1v + b1ω
n2 = a2v + b2ω
(4.8)
onde n1 e n2 correspondem aos valores de duty cycle de cada PWM, e a1, a2, b1
e b2 sao constantes que dependem, neste caso, da potencia de cada motor. Estes
podem ter pequenas diferencas quanto a capacidade de torque e a velocidade maxima
atingıvel, fazendo com que respondam de maneira diferente a variacoes no valor do
duty cycle do PWM. Portanto, o sistema permite esse ajuste para compensacao, de
modo que o movimento do robo nao tenda para o lado do motor mais potente.
35
4.2.1.4 Navegacao
A logica de navegacao do robo consistiu do emprego de uma tecnica simples
reativa. A cada iteracao do loop principal do programa, o robo checa o estado de
seus sensores de colisao. Foram considerados dois sensores de toque, ambos frontais,
estando um no canto esquerdo e outro no direito, como na Figura 4.6. Caso estes
indiquem uma colisao, o robo inicia uma sequencia de movimentos para se desviar
do obstaculo que atingiu. A sequencia e simplesmente recuar, e virar o veıculo em
direcao oposta a do obstaculo. Apos isso, o robo volta a sequencia de movimentos
aleatorios.
Figura 4.6: Disposicao dos sensores de colisao
4.2.2 Comunicacao a partir do PC
O desenvolvimento do driver para o PC do usuario foi deixado para um
trabalho futuro. Para testes, no entanto, foi utilizado o protocolo Telnet para a
comunicacao entre o computador e o robo atraves do software PuTTY.
Com o Telnet, e possıvel abrir um canal de comunicacao entre dois hosts
numa rede TCP/IP para troca bidirecional direta de dados entre terminais (POS-
TEL; REYNOLDS, 1983). O software PuTTY oferece um terminal para que dados
codificados em texto ASCII possam ser enviados e recebidos do modulo Wi-Fi. Isso
possibilitou testar o protocolo de comunicacao elaborado para a transmissao de co-
mandos ao robo.
36
Capıtulo 5
Implementacao do Projeto
A implementacao do projeto foi gradativa, iniciando pelo teste e configuracao
do modulo Wi-Fi, e seguindo ate a montagem de um prototipo para testes da
eletronica a ser embarcada no produto final. Nao foi possıvel, entretanto, obter
o hardware mecanico completo do robo para implementar e testar o projeto. Este
ainda nao estava concluıdo pela equipe responsavel pela parte mecanica. Por isso, foi
utilizada uma plataforma robotica desenvolvida pelo aluno para projetos pessoais.
5.1 Configuracao do Modulo Wi-Fi
O modulo RN-XV da Roving Networks (ver Figura 5.1) que foi utilizado
no projeto apresenta formato fısico e pinagem semelhante(ROVING NETWORKS,
2012) ao dos modulos XBee R© da Digi International (DIGI, 2014). Deste modo,
o RN-XV torna-se compatıvel com a maioria das ferramentas de desenvolvimento
disponıveis para os modulos XBee. Dentre elas, temos os adaptadores USB, dos
quais o modelo oferecido por (ROGERCOM, 2014) foi utilizado (ver Figura 5.2).
Um dos primeiros procedimentos a fazer antes de comecar a utilizar as fun-
cionalidades oferecidas pelo modulo e atualizar seu firmware. Para fazer isto, e
necessario acessar o modulo em modo de comando e enviar-lhe uma determinada
sequencia de comandos (ROVING NETWORKS, 2013).
O acesso ao modulo, por sua vez, pode ser realizado atraves da porta serial
ou de uma conexao TCP. A porta serial pode ser acessada atraves de uma conexao
USB com o adaptador mencionado anteriormente. Quanto ao acesso via TCP, no
37
Figura 5.1: Modulo Wi-Fi RN-XV (Fonte: https://www.sparkfun.com/products/10822)
Figura 5.2: Adaptador USB para o Modulo Wi-Fi (ROGERCOM, 2014)
entanto, o modulo ainda nao esta configurado para se conectar a alguma rede Wi-
Fi em particular no primeiro uso. Portanto, para acessa-lo via TCP e necessario
inicializa-lo em modo Soft AP, que o faz funcionar como ponto de acesso, ou Ad Hoc,
dependendo da versao do firmware presente originalmente (ROVING NETWORKS,
2013). Isto pode ser feito via hardware utilizando pinos especıficos do modulo, o
que torna possıvel essa configuracao no primeiro uso.
O firmware do modulo foi atualizado para a versao 4.0 neste trabalho, que
era a mais recente na epoca em que se iniciou o uso do dispositivo. No momento,
ja existe uma versao mais nova. Esta, no entanto, apresentou problemas no modo
Soft AP que desencorajaram seu uso.
Para que um computador remoto se conecte ao robo, existem algumas ma-
neiras possıveis, como descrito na Secao 2.1. Utilizar o modulo em modo Soft AP
corresponde a opcao 2 descrita, em que o robo lanca sua propria rede. Neste caso,
o modulo Wi-Fi pode utilizar um endereco IP fixo sem conflitos, ja que o proprio
38
modulo distribui os enderecos IP via DHCP as estacoes clientes da rede. Com isso,
o modulo atua como um servidor, e o computador do usuario, como cliente. Esta
opcao se mostrou a mais conveniente para o projeto. A unica desvantagem seria a
possıvel perda do acesso a Internet pelo computador do usuario. Todavia, durante
as atividades em questao, este deve ser reservado somente para o controle do robo.
5.2 Implementacao do Firmware
Para desenvolver o firmware, este foi implementado utilizando um microcon-
trolador PIC18F4620 da Microchip que o aluno possuıa em casa. Desta forma, foi
possıvel dedicar mais horas a esta etapa do projeto do que seria possıvel no labo-
ratorio. O ATmega32-16pu sera utilizado para a implementacao final do produto
que sera entregue as clientes do projeto.
Tanto o PIC (MICROCHIP, 2008) quanto o ATmega (ATMEL, 2011) sao
programaveis em linguagem C. Ambos os modelos utilizados sao microcontrolado-
res de 8 bits e com caracterısticas semelhantes. Dentre as principais diferencas,
no entanto, temos que o PIC18F4620 tem o dobro da quantidade de memoria de
programa do ATmega32-16pu e quase o dobro tambem de memoria SRAM (3968 B
contra 2048 B), tendo, contudo, apenas dois canais PWM independentes e veloci-
dade de operacao maxima de 10 MIPS a um clock de 40 MHz.
Para contornar essas diferencas, podemos manter o tamanho do programa em
termos de instrucoes e de dados dentro do compatıvel entre os dois microcontrola-
dores. Outra medida necessaria foi a mudanca do controle das bombas de tinta para
um do tipo on/off (liga/desliga), em vez de PWM, ja que o PIC utilizado possuıa
apenas dois canais PWM.
O ambiente de desenvolvimento integrado MPLAB X da Microchip, fabri-
cante do PIC, foi utilizado para o desenvolvimento do firmware. Ele oferece ferra-
mentas para o gerenciamento de projetos de firmware, a edicao e a compilacao de
codigo e a programacao de microcontroladores PIC. Dentre essas, o compilador XC8,
tambem da Microchip, proveu os meios para utilizar a linguagem C na programacao
do microcontrolador. Ambas as ferramentas sao disponibilizadas em versoes gratui-
tas e pagas. As diferencas entre as versoes estao basicamente no nıvel de otimizacao
39
do codigo de maquina gerado. Na versao gratuita, utilizada no presente projeto, a
otimizacao e mınima. No entanto, isso nao veio a atrapalhar o desenvolvimento do
firmware neste trabalho.
Para programar o microcontrolador, foi utilizada a ferramenta PKBurner (ver
Figura 5.3), fabricado pela Carelle. Este e um programador e debugger para PICs
que utiliza o firmware PICKit2 da Microchip. Ele permite programacao via ICSP,
sigla, em ingles, para In-Circuit Serial Programming (MICROCHIP, 2003). Com
isso, e possıvel programar o microcontrolador, sem retira-lo do circuito, atraves de
um cabo proprio.
Figura 5.3: Programador para microcontroladores PIC utilizado no projeto (Fonte: Ma-nual do fabricante, fornecido com o produto)
5.3 Implementacao do Hardware
Foi utilizada uma plataforma robotica experimental, apresentada na Figura
5.4, para testes. Esta e constituıda de dois motores com caixa de reducao originarios
de servomotores de aeromodelismo para tracao. Ha uma roda de livre do tipo castor
para apoiar o robo. Chaves de fim-de-curso sao utilizadas como sensores de colisao.
O chassis e feito de alumınio.
O software Eagle da Cadsoft foi utilizado na diagramacao dos circuitos eletronicos
40
Figura 5.4: Plataforma robotica utilizada para testes
projetados. Este software e fornecido em versoes gratuitas e pagas por sua empresa.
A versao gratuita, que foi utilizada, nao ofereceu limitacoes que viessem a interferir
negativamente no desenvolvimento do projeto.
Para testar o projeto, nao foi montado o circuito da Figura 4.1 em conjunto
com o da Figura 4.2, mas sim o da Figura 5.5, em uma protoboard. Os motivos para
tal alteracao foi a utilizacao de outro microcontrolador, a inclusao de um adaptador
para o modulo Wi-Fi, que o torna utilizavel em protoboard, e a ausencia de mo-
tores de bombas peristalticas para testes. Contudo, o circuito montado mostrou-se
suficiente para provar os conceitos a serem implementados no produto final e fazer
os ajustes necessarios no firmware, que tambem sera adaptado para a versao de
entrega.
Os LEDs indicam o estado do programa. O LED1 se mantem piscando
durante a execucao do loop principal. o LED2 acende quando uma conexao TCP e
estabelecida pelo modulo e reconhecida pelo microcontrolador. Este LED se mantem
aceso ate que a conexao venha a se fechar.
Nao foi empregado o integrado L293D, ja que nao estavam disponıveis os
motores das bombas peristalticas ou outros motores que se pudessem utilizar para
testes. Contudo, a parte responsavel pelo acionamento dessas cargas foi implemen-
tada no firmware.
A alimentacao do circuito foi providenciada por dois conjuntos de baterias
de nıquel metal-hidreto (NiMH) em serie, cada um fornecendo uma tensao de 4,8V.
O conjunto inferior, com baterias de 2500mAh (ver Figura 5.6), fornece alimentacao
diretamente para os motores, que demandam maior capacidade de corrente. Indire-
41
Figura 5.5: Diagrama esquematico do circuito de testes
42
tamente, este conjunto se soma ao conjunto superior, com baterias de 2300mAh (ver
Figura 5.7), para fornecer alimentacao para a parte logica do circuito. Um conjunto
nao seria suficiente para este fim, pois a tensao das baterias pode variar ao longo
de seu ciclo de descarga. Dentre essas variacoes, ela pode estar bastante acima dos
valores maximos suportados pelo integrados, o que seria danoso para os mesmos.
Portanto, a melhor solucao foi elevar essa tensao, de modo a poder regula-la com
um regulador de tensao, mantendo-a estabilizada em um valor aceitavel ao longo da
descarga das baterias.
Figura 5.6: Conjunto de baterias de 2500 mAh
Figura 5.7: Conjunto de baterias de 2300 mAh
O conjunto completo montado, envolvendo a plataforma, as baterias e o cir-
cuito montado na protoboard, e mostrado na Figura 5.8. Este robo experimental
foi utilizado para testar as rotinas de navegacao e geracao de movimento aleatorio.
Com o proprio ajuste das constantes na Equacao 4.8, o robo pode apresentar uma
movimentacao satisfatoria. Contudo, um melhor sistema de equacoes para determi-
nar os valores de duty cycle para o PWM de cada motor de tracao em funcao da
43
velocidade linear v foi determinado durante os testes comon1 = (a1 + k)v
n2 = (a2 + k)v
(5.1)
onde a1 e a2 sao constantes que dependem da resposta dos motores ao PWM e k
e um valor gerado aleatoriamente a intervalos regulares de tempo. Neste sistema,
podemos dizer que o termo de velocidade angular (ω) e uma funcao de v, sendo
ω = kv (5.2)
Portanto, este novo sistema gera um movimento aleatorio cuja intensidade acompa-
nha o valor da velocidade linear. Ou seja, se o valor de velocidade linear for pequeno,
as mudancas de velocidade angular tambem serao pequenas. No sistema anterior,
isto nao acontecia, gerando alguns movimentos bruscos quando o robo estava em
baixa velocidade.
Figura 5.8: Robo de testes montado
44
5.4 Dificuldades Encontradas
Com o modulo Wi-Fi funcionando como ponto de acesso, ele cria uma rede a
qual o computador do usuario pode se conectar. Ao conectar-se, atraves do DHCP, o
modulo associa um endereco IP ao computador. Com o IP corretamente associado,
o computador pode passar a usufruir dos servicos da rede. Entretanto, houveram
problemas nesse processo. O modulo teve dificuldades em reconhecer pedidos de
conexao feitos pelo PC rodando o sistema operacional Windows R© 7, da Microsoft.
Algumas vezes, era necessario tentar novamente o processo para que a associacao do
IP fosse feita. O mesmo nao acontecia com smartphones Android R©, que conseguiam
se conectar na primeira tentativa.
Para contornar o problema descrito acima uma possıvel solucao seria o modulo
associar-se a uma rede preexistente. Neste caso, ele receberia um endereco IP dado
pelo ponto de acesso da rede. Como este processo e automatico e o endereco IP
associado e desconhecido a princıpio, o modulo precisaria informar seu endereco ao
console de comando do usuario. Isto pode ser feito atraves de mensagens de broad-
cast via UDP (POSTEL, 1980), outro protocolo da camada de transporte da suıte
TCP/IP. Contudo, esta solucao foi deixada para uma implementacao futura.
Na implementacao do firmware, houveram dificuldades relacionadas ao con-
trole dos motores. Dependendo da frequencia do PWM, pulsos de largura pequena
poderiam nao ser suficientes para tirar o motor da inercia. Isso poderia causar um
ruıdo audıvel em algumas situacoes, caso a frequencia estivesse dentro da faixa de
audio.
Observacoes demonstraram que frequencias mais baixas obtinham melhores
resultados com pulsos pequenos. Outro fator, entretanto, que influencia nesse caso
e que a resolucao do PWM tambem e dependente da frequencia do mesmo e da
frequencia de clock do microcontrolador (MICROCHIP, 2008). Dependendo desses
valores, uma resolucao de 10 bits, a maxima fornecida pelo PIC, nao seria possıvel.
Com isso, pequenos valores de duty cycle nao surtiriam efeito por estarem abaixo
do limites da resolucao. Frequencias baixas funcionariam melhor, porem um ruıdo
audıvel poderia ser gerado, mesmo com o motor em rotacao. Portanto, foi necessario
encontrar um equilıbrio entre a frequencia do PWM e a resolucao do mesmo. De
qualquer forma, uma zona morta, faixa de valores que nao surtiam efeito no motor,
45
do duty cycle do PWM nao teve como nao ser evitada, e limites mınimos foram
incluıdos na rotina de geracao de movimentos aleatorios.
Um ultimo problema que ocorreu durante testes com o robo foi o modulo Wi-
Fi deixar de funcionar como havia sido configurado. Sua rede nao estava mais sendo
lancada. Isto pode ter sido causado por ruıdos causados pelos motores que foram
transmitidos atraves das linhas de alimentacao. Uma investigacao mais profunda
sera necessaria para confirmar essa possibilidade. Todavia, uma maneira de evitar
esse problema seria colocar o modulo em uma placa separada da dos drivers, como
a projetada na Secao 4.1.1, com linhas de alimentacao melhor filtradas.
46
Capıtulo 6
Conclusoes e Trabalhos Futuros
O trabalho apresentado consistiu em elaborar o projeto do modulo de con-
trole e dos drivers de acionamento dos motores de um robo controlado via Wi-Fi a
ser utilizado em atividades de Terapia Ocupacional envolvendo pintura. As placas
correspondentes foram projetadas. Um circuito eletronico de testes pos a prova o
firmware desenvolvido e a parte principal do hardware do robo. Por fim, uma plata-
forma robotica experimental foi utilizada para verificar o funcionamento do trabalho
desenvolvido. Este cumpriu com o esperado.
O projeto do robo como um todo ainda esta em fase de desenvolvimento. Por
isso, nao foi possıvel utilizar o hardware mecanico final do robo alvo deste projeto
para realizar testes e prosseguir com o desenvolvimento. Isto, contudo, sera feito a
medida que o projeto prosseguir.
Como trabalhos futuros, ainda e necessario melhorar a parte de deteccao de
colisao. Pretende-se trocar os sensores de toque por sensores de corrente eletrica
e utilizar o monitoramento da corrente passando pelo motor como indicador de
colisao quando o robo estiver em deslocamento. Ao colidir, o motor necessitara fazer
um esforco maior que o usual para girar o roda, a qual sera forcada a parar pelo
obstaculo. Com isso, a demanda por torque exigira uma corrente de armadura maior
para o motor, situacao que podera, entao, ser detectada pelo modulo de controle.
Isso oferece uma solucao mais compacta e robusta para a deteccao de obstaculos,
por nao depender da area de abrangencia dos sensores de toque.
Alem dos sensores, o driver de comunicacao para o PC tambem deve ser
desenvolvido para que haja a conexao entre o robo e a interface grafica. O driver
47
implementara a comunicacao via TCP/IP com o robo e metodos para a interface
acessar as funcionalidades do mesmo sem ter que implementar o encapsulamento
dos dados e o uso dos protocolos necessarios.
48
Apendice A
Redes Locais Sem Fio
Redes locais sem fio, ou WLANs (Wireless Local Area Networks), sao redes
formadas por dispositivos interconectados por meio de links de radio, que utilizam,
em sua maioria, os padroes IEEE 802.11 (IEEE STANDARDS ASSOCIATION,
2012) e sua famılia de padroes, conhecidos pela marca Wi-FiTM. Hoje em dia,
alem dos dispositivos conhecidamente capazes de se comunicar via Wi-Fi, tais como
computadores, roteadores, celulares e tablets, encontramos impressoras, webcams,
brinquedos, televisores, geladeiras e cada vez mais dispositivos conectados em rede
via Wi-Fi (MOREAU, 2014).
Cada dispositivo acessıvel dentro de uma rede Wi-Fi e referido como uma
estacao. O bloco basico de toda rede Wi-Fi, no entanto, e o conjunto basico de
servicos (IEEE STANDARDS ASSOCIATION, 2012), expresso em ingles como Ba-
sic Service Set (BSS). Cada BSS e formado por um grupo de estacoes associadas
em rede dentro de uma area de cobertura determinada, dentre outros fatores, pelo
alcance das estacoes e do ponto de acesso.
Uma rede Wi-Fi pode ser formada por varios BSSs conectados entre si por
um sistema de distribuicao, que tambem e um componente arquitetural de redes
IEEE 802.11. O sistema de distribuicao nao necessariamente e composto de por
um meio de propagacao via radio, podendo, por exemplo, utilizar-se de uma rede
cabeada, operando, neste caso, em outro padrao. Esse e o caso de redes que cobrem
locais amplos como shoppings, campi universitarios, bibliotecas etc. Neste caso, por
exemplo, uma estacao pode ser movel e sair da area de cobertura de um BSS e entrar
na area de outro, mantendo-se, no entanto, associada a mesma rede. Os multiplos
49
BSSs junto ao sistema de distribuicao formam um conjunto de servicos estendido,
em ingles, extended service set (ESS).
Quanto ao modo de operacao, cada BSS pode operar de duas maneiras dife-
rentes: ad hoc e infraestrutura. O modo ad hoc constitui o mais simples. Nele,
duas estacoes podem se comunicar diretamente, formando um BSS independente
(IBSS), sem a utilizacao de um ponto de acesso a redes externas, como a Internet.
Entretanto, esse modo so e possıvel quando as estacoes tem essa capacidade. Este
nao e o caso de alguns smartphones, por exemplo.
O segundo modo de operacao, infraestrutura, consiste o modo mais utilizado.
Nele pode ocorrer a presenca de varias BSSs interligadas por um sistema de distri-
buicao, como descrito acima. Neste modo, as estacoes podem ser classificadas em
dois tipos basicos: clientes e pontos de acesso. Pontos de acesso sao estacoes que
dao acesso a rede, ou seja, que permitem que dados e servicos sejam compartilhados
entre suas estacoes associadas e o restante da rede ou redes externas. Clientes sao
as estacoes que se utilizam dos pontos de acesso para se conectar.
Toda rede Wi-Fi, seja ela ad hoc ou infraestrutura, e identificada por uma
SSID (Service Set IDentifier), que pode ser entendido como o nome da rede. Este
nome e o que aparece, geralmente, na listagem de redes Wi-Fi disponıveis no menu
de conexoes num PC ou num celular. No entanto, uma rede pode ser secreta, e nao
ter sua SSID divulgada. Neste caso, para se conectar a rede, um dispositivo precisa
ter esse nome previamente informado.
Quanto a seguranca, redes Wi-Fi podem ter suas conexoes criptografadas
atraves de alguns protocolos. Os mais comuns sao o WPA (Wi-Fi Protected Access)
e o WPA2 (BENTON, 2010).
Numa rede Wi-Fi, assim como numa rede cabeada, os nos da rede, no caso,
as estacoes, podem ser acessados por seu endereco IP atraves da rede. Este esquema
de enderecamento e discutido no Apendice B.
50
Apendice B
Protocolo IP
O IP (Internet Protocol) e o principal protocolo de comunicacao utilizado na
Internet atualmente. Ele estabelece meios para a transmissao de pacotes de dados
entre os nos da rede, onde cada no e identificado por um endereco de comprimento
fixo (POSTEL, 1981a). Nele tambem sao providos metodos para fragmentacao e
remontagem de pacotes de dados.
Na suıte de protocolos da Internet, que pode ser dividida num modelo de 4
camadas, o IP faz parte da camada de interligacao de redes, em ingles, chamada de
internet layer, que nao deve ser confundido com a rede Internet global. A camada de
interligacao possibilita a interconexao de diversas redes locais em uma unica grande
rede, como e a Internet. Na Figura B.1 sao apresentadas as camadas e os principais
protocolos e padroes utilizados em cada uma atualmente.
Figura B.1: Camadas da suıte de protocolos da Internet (STRABELLO, 2010).
51
O IP, por si so, nao fornece metodos para o transporte dos pacotes de da-
dos de um ponto a outro. Estes sao fornecidos pela camada acima, a camada de
transporte. Esta camada, por sua vez, utiliza metodos do IP para que seus dados
cheguem ao destino desejado. A camada de interligacao, entao, recebe os pacotes e
os repassa pela camada de rede fısica. Nesta ultima, temos a distincao entre as redes
cabeadas e as redes sem fio Wi-Fi. Acima dela, no entanto, pode-se utilizar todos
os protocolos das outras camadas da mesma maneira, tanto numa rede cabeada (via
Ethernet, por exemplo) como numa rede Wi-Fi. Desta forma, no desenvolvimento
de uma aplicacao para controle via rede Wi-Fi, torna-se possıvel a utilizacao dos
principais protocolos utilizados atualmente na Internet e em redes locais cabeadas
sem diferenca a nıvel de interligacao, transporte ou aplicacao.
Enderecos IP identificam cada host (dispositivo conectado a rede) numa
rede IP. Na versao 4 do IP, a principal utilizada atualmente, embora existam mais
recentes, constitui o endereco IP por um numero binario de 32 bits separados em
octetos. Estes sao geralmente visualizados com cada octeto binario separado por
pontos e convertido para um numero decimal, como na Tabela B.1.
Endereco IP (binario): 1100000 10101000 00000001 00000001Endereco IP (decimal): 192 168 1 1Forma de apresentacao: 192.168.1.1
Tabela B.1: Exemplo de endereco IP
Os primeiros bits de um endereco IP indicam o numero da rede a qual ele per-
tence, enquanto os bits restantes indicam o endereco local. Para essa divisao, existem
tres formatos, divididos em classes, principais de endereco (POSTEL, 1981a):
• Classe A: O bit mais significativo e ”0”, os proximos 7 bits sao o numero da
rede e os 24 bits restantes formam o endereco local.
• Classe B: Os 2 bits mais significativos sao ”10”, os proximos 14 bits sao o
numero da rede e os 16 bits restantes formam o endereco local.
• Classe C: Os 3 bits mais significativos sao ”110”, os proximos 21 bits sao o
numero da rede e os 8 bits restantes formam o endereco local.
Alem destas, existem ainda classes de enderecos para propositos especiais
que sao reservadas. Alguns exemplos sao listados abaixo (COTTON et al., 2013)
52
na notacao CIDR (FULLER et al., 1993). Nesta notacao, o numero apos a barra
indica quantos dos bits mais significativos pertencem ao numero da rede, sendo os
restantes reservados para enderecos locais.
• Localhost (acesso do host a si proprio internamente): 127.0.0.0/8;
• Redes privadas: 10.0.0.0/8, 172.16.0.0/12, 169.254.0.0/16, 192.168.0.0/16;
• Broadcast (destinado a todos os hosts): 255.255.255.255.
Enderecos locais podem tambem ser agrupados em sub-redes dentro de uma
rede maior. Tais agrupamentos sao definidos pela mascara de sub-rede, tambem
muitas vezes chamada apenas de mascara de rede.
Uma mascara de sub-rede determina quais bits pertencem ao numero de rede,
tambem chamado prefixo de rede. Ela tem o formato de um endereco IP, sendo que,
em binario, seus 1’s indicam os bits pertencentes ao numero da rede e seus 0’s, os
que pertencem ao endereco do host. Como exemplo, podemos utilizar a configuracao
abaixo:
Numero de rede : 192.168.1.0
Mascara de sub-rede : 255.255.255.0
Neste caso, os ultimos 8 bits do endereco IP sao reservados para os hosts. Com
isso, estes tem disponıveis os enderecos de 192.168.1.1 a 192.168.1.254. O endereco
192.168.1.0 identifica a rede, e nao e utilizado para hosts. 192.168.1.255 e o endereco
de broadcast da rede.
Quanto a atribuicao, enderecos IP podem ser estaticos ou dinamicos. En-
derecos estaticos sao atribuıdos manualmente pelo administrador da rede a um
host. Enderecos dinamicos sao atribuıdos a um host por um perıodo de tempo
pre-determinado. Uma das maneiras de se fazer isso e atraves do protocolo DHCP
(Dynamic Host Configuration Protocol).
O DHCP (DROMS, 1997) fornece metodos para configurar um host dentro
de uma rede automaticamente. Ao conectar-se a uma rede, um host cliente envia um
pacote especial de broadcast, que e destinado a todos os nos da rede. Este pacote
e capturado pelo servidor DHCP, que numa rede domestica trata-se do roteador.
53
Este servidor, entao, responde ao cliente com com a configuracao que este devera
ter, contendo endereco IP associado ao cliente, mascara de sub-rede, endereco do
gateway padrao e o tempo de emprestimo desse endereco IP, alem de outros dados
possıveis.
Um gateway (termo da lıngua inglesa que pode ser traduzido como portal)
e o no da rede local responsavel por rotear dados enviados de um no local a um no
de uma rede externa. Ou seja, dados enviados a um endereco IP que nao pertenca
a rede sao encaminhados para o gateway No caso de redes domesticas, o gateway
padrao e o roteador.
Apos o tempo de emprestimo ser esgotado, o cliente devera solicitar nova-
mente a configuracao. Quando o cliente se desconecta ou seu tempo de emprestimo
se esgota, seu endereco IP volta a uma lista de enderecos disponıveis no servidor
DHCP.
Utilizando o DHCP, portanto, dispositivos podem se conectar a uma rede
automaticamente, sem haver a possibilidade de conflitos de enderecos IP entre eles.
54
Apendice C
Protocolo TCP
O TCP (Transmission Control Protocol) (POSTEL, 1981b) e um dos proto-
colos mais utilizados para transmissao de dados na Internet e em redes locais. Ele e
um dos protocolos principais da suıte de protocolos da Internet, a ponto desta suıte
ser tambem chamada TCP/IP.
Uma das caracterısticas centrais na concepcao do TCP e a confiabilidade.
Este protocolo lida com a segmentacao e o ordenamento dos dados enviados pela
aplicacao do usuario remetente e o reagrupamento destes na sequencia correta na
aplicacao do destinatario. O protocolo tambem oferece mecanismos de controle de
fluxo para garantir que cada uma das partes seja capaz de enviar e receber os dados
trocados integralmente. Todos esses aspectos, no entanto, ficam, em sua maioria,
invisıveis para a aplicacao do usuario.
O TCP permite que multiplos processos dentro de um mesmo host (um
dispositivo conectado a rede) se comuniquem simultaneamente com os processos de
outros hosts. Isto e possibilitado atraves de um sistema de enderecamento por pontos
de entrada e saıda de dados chamados portas. Cada porta pode ser conectada a um
processo diferente dentro de um mesmo host, e, atraves dela, um processo a outro
num host remoto.
O TCP e um protocolo orientado a conexoes. No TCP, conexoes sao forma-
das a partir da interligacao de soquetes. Estes sao identificadores constituıdos do
endereco IP de um host seguido de um de numero de porta. Dados sao trocados
entre pares de soquetes formados por uma origem e um destino. Uma conexao,
por sua vez, e formada por esse par de soquetes em conjunto com informacoes de
55
controle de fluxo e o fluxo de dados em si.
Em sua interface, o TCP fornece a camada de aplicacao metodos para a
abertura, o fechamento e o monitoramento de conexoes, alem dos metodos para
envio e recebimento de dados. Isto e feito de maneira semelhante a interface para
manipulacao de arquivos num sistema operacional. Desta forma, uma aplicacao
pode enviar e receber dados via TCP como se estivesse escrevendo ou lendo um
arquivo, respectivamente, sem ter que lidar com detalhes relativos a maneira como
isso e implementado.
56
Apendice D
Controle de Velocidade via PWM
Conforme visto na equacao 3.2, a velocidade de rotacao de motores DC do
tipo brushed pode ser controlada atraves da intensidade da corrente eletrica fluindo
pela armadura do motor. Esta, por sua vez, pode ser controlada analogicamente
ou digitalmente. Neste ultimo caso, a tecnica de controle geralmente utilizada e
a modulacao por largura de pulso, ou, em ingles, pulse width modulation (PWM)
(CONDIT, 2010).
No controle via PWM, a grandeza a ser controlada e chaveada a uma frequencia
constante, mas com pulsos de largura variavel, como na Figura D.1. Como con-
sequencia, o valor medio da variavel torna-se controlavel digitalmente, sendo dire-
tamente proporcional ao ciclo de trabalho (em ingles, duty cycle). Este e a razao
entre o tempo de duracao do pulso e o perıodo do sinal, sendo geralmente expresso
por uma porcentagem.
No caso de um motor DC brushed nas condicoes assumidas neste projeto, a
corrente de armadura e proporcional a tensao, conforme se deduz pelas equacoes 3.3
e 3.4. Com isso, a tensao de armadura pode ser chaveada via PWM atraves de um
driver em ponte H para se obter um controle de corrente, e, consequentemente, de
velocidade de rotacao do motor.
57
Figura D.1: Exemplos de sinais PWM (OLSON, 2013)).
58
Referencias Bibliograficas
ATMEL. 8-bit Microcontroller with 32KBytes In-System Programmable Flash:Atmega32 atmega32l. [S.l.], 2011. paginas 22, 39
BARONTI, P. et al. Wireless sensor networks: A survey on the state of the artand the 802.15. 4 and zigbee standards. Computer communications, Elsevier, v. 30,n. 7, p. 1655–1695, 2007. paginas 4
BENINGO, J. Bootloader design for microcontrollers in embedded systems.In: Embedded Systems Conference - East 2012. Beningo Engineering, 2012.Disponıvel em: 〈http://beningo.com/images/Papers/bootloader\ design\ for\microcontrollers\ in\ embedded\ systems\%20.pdf〉. Acesso em: 11 Mar. 2014.
paginas 22
BENTON, K. Report, The Evolution of 802.11 Wireless Security. Identity Theftand Financial Fraud Research and Operations Center, 2010. Disponıvel em:〈http://itffroc.org/pubs/benton\ wireless.pdf〉. paginas 50
BONA, J.; PRENTICE, M. Pyrovio: Python api for wowwee rovio. New York,p. 1–9, 2009. paginas 4
BRAIN, M. How microcontrollers work. HowStuffWorks. Np, nd Web, v. 10,2013. Disponıvel em: 〈http://electronics.howstuffworks.com/microcontroller.htm〉.Acesso em: 9 Mar. 2014. paginas 20
BRECH, B. et al. The Interconnecting of Everything. IBM Academy of Technology,2013. Disponıvel em: 〈http://www.redbooks.ibm.com/redpapers/pdfs/redp4975.pdf〉. Acesso em: 9 Mar. 2014. paginas 11
CARONA, R.; AGUIAR, A. P.; GASPAR, J. Control of unicycle type robots:Tracking, path following and point stabilization. In: Proc. of IV Jornadas deEngenharia Electronica e Telecomunicacoes e de Computadores. Lisboa, Portugal:Instituto Superior Tecnico, 2008. p. 180–185. paginas 34
CONDIT, R. AN905: Brushed DC Motor Fundamentals. 2010. Disponıvel em:〈http://ww1.microchip.com/downloads/en/AppNotes/00905B.pdf〉. Acesso em: 12Mar. 2014. paginas 14, 17, 57
CONDIT, R.; JONES, D. W. AN907: Stepping Motors Fundamentals. 2004.Disponıvel em: 〈http://ww1.microchip.com/downloads/en/AppNotes/00907a.pdf〉.Acesso em: 14 Mar. 2014. paginas 14
59
COTTON, M. et al. (Ed.). RFC 6890 Special-Purpose IP Address Registries. InternetEngineering Task Force, 2013. Disponıvel em: 〈http://tools.ietf.org/html/rfc6890〉.paginas 52
DIGI. Need Wireless? Choose XBee. 2014. Disponıvel em: 〈http://www.digi.com/xbee/〉. Acesso em: 12 Mar. 2014. paginas 37
DOISY, G. Sensorless collision detection and control by physical interactionfor wheeled mobile robots. In: Proceedings of the Seventh Annual ACM/IEEEInternational Conference on Human-Robot Interaction. New York, NY, USA:ACM, 2012. (HRI ’12), p. 121–122. ISBN 978-1-4503-1063-5. Disponıvel em:〈http://doi.acm.org/10.1145/2157689.2157715〉. paginas 9
DROMS, R. (Ed.). RFC 2131 Dynamic Host Configuration Protocol. InternetEngineering Task Force, 1997. Disponıvel em: 〈http://tools.ietf.org/html/rfc2131〉.Acesso em: 16 Fev. 2014. paginas 53
FRIEDMAN, R.; KOGAN, A.; KRIVOLAPOV, Y. On power and throughputtradeoffs of wifi and bluetooth in smartphones. Mobile Computing, IEEETransactions on, v. 12, n. 7, p. 1363–1376, July 2013. ISSN 1536-1233. paginas 12
FULLER, V. et al. (Ed.). RFC 1519 Classless Inter-Domain Routing (CIDR): anAddress Assignment and Aggregation Strategy. Internet Engineering Task Force,1993. Disponıvel em: 〈http://www.ietf.org/rfc/rfc1519.txt?number=1519〉. paginas53
GALER, M.; HORVAT, L. Cmyk colour. In: . Digital Imaging: EssentialSkills. [S.l.]: Taylor & Francis, 2003. (Photography Essential Skills Series), cap.Colour Management, p. 74. paginas 10
IEEE STANDARDS ASSOCIATION. Part 11: Wireless LAN Medium AccessControl(MAC) and Physical Layer (PHY) Specifications. New York, NY, USA,2012. (IEEE Standard for Information technology - Telecommunications andinformation exchange between systems, Local and metropolitan area networks -Specific requirements). paginas 49
MICROCHIP. In-Circuit Serial Programming (ICSP) Guide. [S.l.], 2003. Disponıvelem: 〈http://ww1.microchip.com/downloads/en/devicedoc/30277d.pdf〉. Acessoem: 18 Mar. 2014. paginas 40
MICROCHIP. PIC18F2525/2620/4525/4620 Data Sheet : 28/40/44-pin enhancedflash microcontrollers with 10-bit a/d and nanowatt technology. [S.l.], 2008. paginas21, 39, 45
MOREAU, E. 10 Everyday Household Appliances Now with Wi-Fi. 2014. Disponıvelem: 〈http://webtrends.about.com/od/Mobile-Web-Beginner/tp/Wi-fi-Appliances.htm〉. Acesso em: 15 Fev. 2014. paginas 49
NI. Motor Fundamentals. [S.l.], 2011. Disponıvel em: 〈http://www.ni.com/white-paper/3656/en/〉. Acesso em: 14 Mar. 2014. paginas 15
60
NXP. AN11008 - Flash based non-volatile storage: Application note. 2011. Dis-ponıvel em: 〈http://www.digikey.com/Web\%20Export/techzone/microcontroller/nxp-an11008.pdf〉. Acesso em: 11 Mar. 2014. paginas 22
NXP. I2C-bus specification and user manual. [S.l.], 2012. paginas 21
OLSON, D. Tutorial 21: Timer Tricks (PWM). 2013. Disponıvel em:〈http://mspsci.blogspot.com.br/2013/04/tutorial-21-timer-tricks-pwm.html〉.Acesso em: 10 Mar. 2014. paginas xi, 58
PELOSI, M. Profa. Dra. Miryam Pelosi Tecnologia Assistiva. 2011.Http://miryampelosi.blogspot.com.br/2011/03/acionadores.html. (Acessoem 14 Fevereiro 2014). paginas xi, 3
POSTEL, J. User Datagram Protocol. 1980. Disponıvel em: 〈https://www.ietf.org/rfc/rfc768.txt〉. Acesso em: 16 Mar. 2014. paginas 45
POSTEL, J. RFC 791 Internet Protocol - DARPA Internet Program,Protocol Specification. Internet Engineering Task Force, 1981. Disponıvel em:〈http://tools.ietf.org/html/rfc791〉. paginas 51, 52
POSTEL, J. RFC 793 Transmission Control Protocol - DARPA Internet Program,Protocol Specification. Internet Engineering Task Force, 1981. Disponıvel em:〈http://tools.ietf.org/html/rfc793〉. paginas 55
POSTEL, J.; REYNOLDS, J. TELNET PROTOCOL SPECIFICATION. 1983.Disponıvel em: 〈https://tools.ietf.org/html/rfc854〉. Acesso em: 16 Mar. 2014.paginas 36
RASHID, M. H. Basic characteristics of dc motors. In: . Power Electronics :Circuits, devices, and applications. 3. ed. New Delhi, India: Pearson, 2011. cap. 15,p. 641–645. ISBN 978-81-317-0246-8. paginas 15
RIBEIRO, M. I.; LIMA, P. Kinematics Models of Mobile Robots. 2012. Disponıvelem: 〈http://users.isr.ist.utl.pt/∼mir/cadeiras/robmovel/Kinematics.pdf〉. Acessoem: 12 Mar. 2014. paginas 13
ROBOTSHOP. Peristaltic Liquid Pump with Silicone Tubing. 2013. Disponıvel em:〈http://www.robotshop.com/en/peristaltic-liquid-pump-w-silicone-tubing.html〉.Acesso em: 15 Mar. 2014. paginas 19
ROBOTSHOP. Pololu 12V, 100:1 Gear Motor w/Encoder. 2013. Disponıvelem: 〈http://www.robotshop.com/en/pololu-12v-100-1-gear-motor-encoder.html〉.Acesso em: 18 Fev. 2014. paginas 16
ROGERCOM. Xbee Adaptador Usb + Cabo Usb. 2014.Disponıvel em: 〈http://produto.mercadolivre.com.br/MLB-537801968-xbee-adaptador-usb-cabo-usb-pro-digi-n-rogercomexplore-\ JM〉.Acesso em: 12 Mar. 2014. paginas xi, 37, 38
ROVING NETWORKS. RN-171-XV 802.11 b/g Wireless LAN Module. [S.l.], 2012.paginas 12, 37
61
ROVING NETWORKS. WiFly Command Reference, Advanced Features &Applications User?s Guide. [S.l.], 2013. paginas 37, 38
ST MICROELECTRONICS. L293D, L293DD: Push-pull Four Channel Driver withDiodes. [S.l.], 1996. Disponıvel em: 〈http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/1330.pdf〉. Acesso em: 12 Mar. 2014. paginas 19
ST MICROELECTRONICS. L298 Dual Full-bridge Driver. [S.l.], 2000. paginas 18
STRABELLO, V. Os modelos OSI e TCP/IP. 2010. Disponıvel em: 〈http://vstrabello.blogspot.com.br/2010/10/os-modelos-osi-e-tcpip.html〉. Acesso em: 12Mar. 2014. paginas xi, 51
STRACHAN, G. C. Projeto e Construcao de um Prototipo para a EletronicaEmbarcada de um Robo Movel Aplicado a Terapia Ocupacional. Rio de Janeiro,RJ: Universidade Federal do Rio de Janeiro, 2012. paginas 1
TEXAS INSTRUMENTS. Motor Control: Brushed DC : Block diagram (sbd)for brushed dc motor system featuring microcontrollers, gate drivers, isolation,industrial interface and power management. [S.l.], 2014. Disponıvel em:〈http://www.ti.com/solution/motor-control-brushed-dc-diagram〉. Acesso em: 12Mar. 2014. paginas 18
VERDERFLEX (Ed.). How do peristaltic dosing pumps work? 2014. Disponıvelem: 〈http://www.verderflex.com/how-do-peristaltic-pumps-work/〉. Acesso em: 15Mar. 2014. paginas 19
WONG, K. D. A Short Guide On Motor Electrical Noise Reduc-tion. 2012. Disponıvel em: 〈http://www.kerrywong.com/2012/01/26/a-short-guide-on-motor-electrical-noise-reduction/〉. Acesso em: 12 Mar.2014. paginas 14
YEDAMALE, P. Brushless DC (BLDC) Motor Fundamentals. 2003. Disponıvelem: 〈http://educypedia.karadimov.info/library/00885a.pdf〉. Acesso em: 12 Mar.2014. paginas 14
62