Você está na página 1de 101

Universidade Federal de Gois

Escola de Engenharia Eltrica e de Computao

DESENVOLVIMENTO DE UM KIT DE ROBTICA


DE BAIXO CUSTO

Arthur Moiss da Costa Borges


Orientador: Prof. Dr. Jos Wilson Lima Nerys
Co-Orientador:Prof. Dr. Ademyr Gonalves de Oliveira

Goinia
2011
Arthur Moiss da Costa Borges

DESENVOLVIMENTO DE UM KIT DE ROBTICA DE BAIXO


CUSTO

Dissertao de Projeto Final apresentada ao


Curso de Graduao em Engenharia Eltrica da
Universidade Federal de Gois, para obteno
Do ttulo de Engenheiro Eletricista.
rea de concentrao: Microcontroladores
Orientador: Prof. Dr. Jos Wilson Lima
Nerys.
Co-Orientador:Prof. Dr. Ademyr Gonalves
de Oliveira

Goinia
2011
Arthur Moiss da Costa Borges

DESENVOLVIMENTO DE UM KIT DE ROBTICA DE BAIXO


CUSTO

Dissertao defendida e aprovada em _____ de _____________ de ________,


pela Banca Examinadora constituda pelos professores.

__________________________________________
Prof. Jos Wilson Lima Nerys, PhD

__________________________________________

__________________________________________

AGRADECIMENTOS

Aos meus pais e familiares, principalmente minha av, por ter cedido um quarto de sua casa
como laboratrio e minha me, para que compreendesse o uso do fogo e ferro de passar
roupas para confeccionar as placas de fenolite.
Ao professor, Jos Wilson Lima Nerys, pelo apoio e entusiasmo ao apoiar o projeto, quando este
ainda era um simples esboo no caderno.
Ao engenheiro eletricista Gustavo, pelas dicas em soldagem/furao de placas e corroso, que
foram muito importantes para a confeco das placas.
Agradeo empresa jnior de engenharia da UFG, ELO Engenharia Jnior, pelo suporte e
investimento no projeto, em sua fase de maturao, e aos meus amigos tila Gracco e Yi Lun Lu
por terem me auxiliado no desenvolvimento e na contribuio com novas idias.
Agradeo tambm ao professor Ademyr Gonalves de Oliveira pela ajuda na montagem
mecnica dos motores, sensores e roda boba do rob seguidor de linha.

SUMRIO
LISTA DE FIGURAS

LISTA DE TABELAS

11

SIGLAS UTILIZADAS

12

RESUMO

14

ABSTRACT

15

Introduo

16

1.1

Contextualizao

16

1.2

Objetivos

17

1.3

Estrutura do trabalho

18

Robtica Educacional

19

2.1

Introduo

19

2.2

Conceitos de Robtica

19

Plataforma Arduino e Computao Fsica

21

3.1

Introduo

21

3.2

Ambiente de Desenvolvimento Integrado

22

3.3

A comunidade Arduino

25

3.4

Computao Fsica

28

Rob seguidor de linha

30

4.1

Introduo

30

4.2

Motores

30

4.3

Sensores

30

4.4

Crebro

31

4.5

Princpio de Funcionamento

31

Desenvolvimento e construo do crebro do rob

34

5.1

Introduo

34

5.2

O microcontrolador ATMega 168/328

34

5.3

Circuito personalizado com ATMega 328

35

5.4

O projeto do circuito do crebro do rob

38

5.5

Processo de confeco da placa

41

5.6

Finalizao da construo do crebro do rob

52

5.7

Mdulo de regulao de tenso

53

Desenvolvimento e construo dos sensores do rob

58

6.1

Introduo

58

6.2

Projeto dos sensores

59

6.3

Programao dos sensores

62

Desenvolvimento e construo do sistema de locomoo do rob

66

7.1

Introduo

66

7.2

O Sistema de Direo Diferencial

66

7.3

Desenvolvimento e construo dos drivers dos motores CC

68

7.4

Programao dos motores

72

Montagem do rob passo a passo

82

8.1

Introduo

82

8.2

Primeiro prottipo da estrutura

82

8.3

Segundo prottipo da estrutura

87

8.4

Custo da estrutura

92

Oramento Geral

93

9.1

Introduo

93

9.2

Custo total de construo do rob

93

10

Concluso

95

REFERNCIAS

96

ANEXO

97

LISTA DE FIGURAS

Cap III:
Fig

3.1

Arduino UNO

21

Fig

3.2

Arduino 1.0 IDE

22

Fig

3.3

Cdigo para piscar um LED

23

Fig

3.4

Resultado do cdigo transferido ao Arduino

23

Fig

3.5

LilyPad Arduino

26

Fig

3.6

Boarduino

27

Fig

3.7

Tatuino

27

Fig

3.8

Shield Ethernet

28

Cap IV:
Fig

4.1

Linha em meio aos sensores

32

Fig

4.2

Curva para a esquerda

32

Cap V:
Fig

5.1

ATMega 328

35

Fig

5.2

Crebro do Rob

35

Fig

5.3

Esquemtico do Crebro

38

Fig

5.4

Layout do Crebro

40

Fig

5.5

Layout do Crebro em PDF

41

Fig

5.6

Circuito do sensor a ser confeccionado

42

Fig

5.7

Corte do papel do circuito com estilete

42

Fig

5.8

Serra Tico-tico

43

Fig

5.9

Corte feito dos dois lados da placa de fenolite cobreado

43

Fig

5.10

Placa partida

44

Fig

5.11

Lixagem da superfcie de cobre

44

Fig

5.12

Processo de transferncia de calor

45

Fig

5.13

Transferncia de calor finalizada

46

Fig

5.14

Imerso da placa e do papel em gua

46

Fig

5.15

Retirando o papel comeando pelas pontas

47

Fig

5.16

Retirada do papel mido da placa de fenolite

48

Fig

5.17

Placa pronta para corroso

48

Fig

5.18

Placa inserida na soluo aquosa de percloreto de ferro

49

Fig

5.19

Placa corroda

49

Fig

5.20

Lavagem da placa com gua corrente

50

Fig

5.21

Placa aps ser lavada

50

Fig

5.22

Lixagem da placa finalizada

51

Fig

5.23

Placa e perfurador de placas

51

Fig

5.24

Soldagem do fotoresistor na placa

52

Fig

5.25

Crebro concludo

53

Fig

5.26

Primeira pgina do datasheet do componente 7805

54

Fig

5.27

Esquemtico do mdulo regulador de tenso

55

Fig

5.28

Layout do mdulo regulador de tenso

56

Fig

5.29

Layout do mdulo regulador de tenso em PDF

56

Fig

5.30

Mdulo Regulador de Tenso finalizado

57

Cap VI:
Fig

6.1

Esquemtico do circuito divisor de tenso e LED acoplado

58

Fig

6.2

Esquemtico do sensor junto ao microcontrolador

60

Fig

6.3

Layout do sensor

61

Fig

6.4

Layout do sensor em PDF

61

Fig

6.5

Sensores concludos

62

Fig

6.6

Primeira parte do cdigo dos sensores

63

Fig

6.7

Segunda parte do cdigo dos sensores

64

Fig

6.8

Terceira parte do cdigo dos sensores

64

Fig

6.9

ltima parte do cdigo dos sensores

65

Cap VII:
Fig

7.1

Direo diferencial - andar para frente

67

Fig

7.2

Direo diferencia - andar para esquerda

67

Fig

7.3

Direo diferencial - andar para direita

68

Fig

7.4

Circuito interno TIP 120

69

Fig

7.5

Esquemtico do drivers dos motores

70

Fig

7.6

Layout do driver do motor

71

Fig

7.7

Layout do driver em PDF

71

Fig

7.8

Drivers dos motores concludos

72

Fig

7.9

Incio da programao dos motores

73

Fig

7.10

Equivalncia entre ATMega 168/328 e Arduino

73

Fig

7.11

Cdigo com a declarao dos Motores

74

Fig

7.12

Declarao das funes para comandar os trs estados do rob

75

Fig

7.13

Funo DoisMotores()

76

Fig

7.14

Funo MotorEsquerda()

76

Fig

7.15

Funo MotorDireita()

77

Fig

7.16

Cdigo para tomada de deciso entre sensores e motores

77

Fig

7.17

Declarao de variveis para calibrao

78

Fig

7.18

Cdigo de calibrao dos sensores

79

Fig

7.19

Cdigo com os sensores e motores sincronizados

80

Cap VIII:
Fig

8.1

Incio da furao das placas de acrlico

83

Fig

8.2

Placa de suporte pro motor

83

Fig

8.3

Furadeira de bancada

84

Fig

8.4

Regulador de tenso amarrado placa de acrlico

84

Fig

8.5

Sensores e mdulo regulador de tenso conectados placa de acrlico

85

Fig

8.6

Acoplagem dos motores placa principal

85

Fig

8.7

Detalhe de conexo do driver placa de acrlico

86

Fig

8.8

Conexo dos drivers placa de acrlico principal

86

Fig

8.9

Todos os mdulos conectados placa de acrlico

87

Fig

8.10

Conexo alinhada dos motores

88

Fig

8.11

Viso de cima do acoplamento dos motores

88

Fig

8.12

Detalhe de encaixe na roda do eixo do motor

89

Fig

8.13

Detalhe da roda boba

89

10

Fig

8.14

Detalhe da nova configurao dos sensores

90

Fig

8.15

Detalhe das hastes dos sensores parafusadas

91

Fig

8.16

Rob finalizado

91

LISTA DE TABELAS

11

Cap V:
Tabela

5.1

Comparao entre ATMega 168 e 328

34

Tabela

5.2

Lista de componentes e custo de construo do crebro do rob

37

Tabela

5.3

Lista de componentes e custo de construo do Regulador de Tenso

55

6.1

Lista de componentes e custo de confeco dos sensores

60

Lista de componentes e custo de construo dos drivers dos motores

69

Cap VIII
Tabela 8.1

Lista de componentes e custo de construo da estrutura do rob

92

Cap IX
Tabela 9.1

Tabela geral de custos do rob

93

Cap VI:
Tabela

Cap VII:
Tabela

7.1

SIGLAS UTILIZADAS

12

LED

Light-Emitting Diode (Diodo Emissor de Luz)

LDR

Light Dependent Resistor (fotoresistor)

IDE

Integrated Development Environment ( Ambiente Integrado de Desenvolvimento)

NiMH

Nickel-metal Hydride (Nquel-metal hidreto)

EAGLE

Easily Applicable Graphical Layout Editor

UFG

Universidade Federal de Gois

EEEC

Escola de Engenharia Eltrica e de Computao

EUA

Estados Unidos da Amrica

USB

Universal Serial Bus

ARM

Advanced RISC Machine

GPS

Global Positioning System

CI

Circuito Integrado

Mega

Hz

Hertz

MIPS

Million Instructions per Second

RAM

Random-access Memory

kilo

Byte

EEPROM

Electrically Erasable Programmable Read-Only Memory

I/O

INPUT/OUTPUT

PWM

Pulse-Width Modulation

pico

Faraday

VCC

Commom-collector voltage (Alimentao, geralmente 5V)

AVCC

Analog VCC

AREF

Analog Reference

SDA

Serial Data Line

SCL

Serial Clock

I2C

Inter-Integrated Circuit

GND

Ground (Terra - Referncia)

13

RESUMO

14

Este projeto trata do desenvolvimento de um kit de robtica de baixo custo a ser usado por
alunos do ensino fundamental e mdio. Este material tambm pode ser usado por alunos e
professores de Engenharia Eltrica que queiram construir seus robs e/ou adentrar o mundo da
computao fsica. O produto final do kit de robtica um rob seguidor de linha e composto
por vrios mdulos, como motores, sensores, rodas, chassi e crebro, que sero montados pelos
alunos em um curso a ser ministrado nestas escolas. Este kit ser desenvolvido tendo como base
a plataforma de Hardware e Software open-source, Arduino. Durante o desenvolvimento do
rob, os alunos tero este trabalho escrito em mos no qual todos os mdulos, princpio de
funcionamento e caractersticas esto apresentados em uma linguagem de fcil compreenso,
facilitando assim o aprendizado em robtica. Para desenvolvimento do sensores, sero usados
LEDs de alto brilho e LDRs (fotoresistor). Para captar as informaes dos sensores e converter
em resposta aos motores, ser usado o microcontrolador ATMega 328, cuja programao ser em
C/C++ usando o ambiente do Arduino (IDE). Os motores sero acionados atravs do transistor
TIP 120, funcionando como driver. A fonte de alimentao ser um bateria de NiMH encontrada
em carrinhos de brinquedo de controle remoto.

ABSTRACT

15

This project is about the development of a low cost robotic kit to be used by middle and high
school students. This work can also be used by Electrical Engineering students and teachers who
want to build its own robots and/or enter the Physical Computing world. The final product of the
robotic kit is a line follower robot, and it's made by the association of many modules, like
motors, sensors, wheels, structure and brain, that will be assembled by students in a class to be
presented to them in schools. This kit will be based in the prototyping open-source and openhardware platform called Arduino. While the robot development, the students will have this
document, so like all modules, working principles, and specifications are presented in a easy
language, making it easier to students learn about robotics. In the development of the sensors,
very bright LEDs will be use and photoresistors(LDRs). To acquire information from the sensors
and to convert them in a response for motors, will be used a ATMega 328 microcontroller, which
programming can be done in C/C++ using Arduino's environment (IDE). The motors will be
activated with TIP 120 transistors, working like a driver. The power source will be a NiMH
battery, which can be found in remote control toy cars.

CAPITULO I

16

1 Introduo
1.1 Contextualizao
Com a crescente evoluo da tecnologia e da informtica, cresce ao mesmo tempo a
necessidade de estar atualizado em relao a estas tecnologias. A formao de profissionais
especializados em reas de alta tecnologia voltada para informatizao e infra-estrutura ocorrem
em geral nos cursos de Exatas.
A escolha pelo curso superior se d geralmente no ensino mdio, porm o gosto por
matrias especficas, sejam elas de Exatas, Humanas ou Biolgicas, comea mias cedo. Em
pases em desenvolvimento como o Brasil, o nmero de alunos que se decidem por prestar cursos
nas reas de Exatas nfimo em relao as outras reas. Parte desta pouca procura devido ao
"medo" de matrias como matemtica, e da incapacidade do professor de contextualizar estas
disciplinas com a prtica.
Existem vrias sadas para corrigir este problema. Uma delas a apresentao dos
contedos de forma interativa, para despertar o gosto e captar a ateno dos alunos. Ministrar
cursos voltados para a rea de robtica e computao, uma estratgia, que infelizmente est
restrita poucas escolas particulares, devido ao alto custo dos kits e da necessidade de
professores qualificados para ministrar corretamente a disciplina.
O desenvolvimento de um Kit de Robtica de Baixo Custo uma tima soluo para
resolver estas questes.
Quanto ao prprio ensino de Engenharia Eltrica na UFG, no existem solues
estruturadas que contextualizem o ensino terico com a prtica logo nos primeiros semestres do
curso. O fato de muitos laboratrios serem fechados ou s abertos aos alunos na poca de cursar
tais disciplinas aliado baixa divulgao dos que j so abertos, contribui para que alunos
fiquem desmotivados ao longo do curso.
Escrever um trabalho como este, ensinando os alunos a construrem seus prprios kits de
robtica, e o melhor, introduzindo-os ao mundo da computao fsica com Arduino, uma tima
soluo para que eles contextualizem o aprendizado terico com o prtico durante todo o curso,

17

independente da disponibilidade dos laboratrios, e com certeza aumente o interesse pelo curso e
a vivncia da Engenharia Eltrica na prtica, ainda dentro da Universidade.
A idia de um kit de robtica de baixo custo surgiu na diretoria de Pesquisa e
Desenvolvimento da ELO Engenharia Jnior, a empresa jnior das Engenharias da Universidade
Federal de Gois (UFG). No incio, a idia era apenas desenvolver um kit para ensinar robtica a
alunos de ensino fundamental e mdio de escolas pblicas e particulares. Com o tempo, o projeto
Engenharia nas escolas, como assim chamado, evoluiu, sendo inseridos outros cursos e
abordagens. Em julho de 2011 a idia deixou de ser um projeto interno da ELO e passou a ser
um projeto de extenso da UFG, passando a colaborar vrios professores, tcnicos e alunos da
Escola de Engenharia Eltrica e de Computao(EEEC).
1.2 Objetivos
O objetivo deste projeto o desenvolvimento e construo de um prottipo de um rob
seguidor de linha, cuja estrutura ser dividida em vrios mdulos, como rodas, motores, sensores
e crebro. Desta forma, o aluno poder montar por si s o rob, e ver a influncia de cada parte
na realizao da tarefa, que aqui ser seguir uma linha em um percurso fechado. As partes do kit
sero customizveis, de forma que seja possvel ter vrios robs diferentes, com o mesmo kit,
usando os mdulos em posies diferentes.
Aliado a construo do prottipo do rob, ser documentado todo o processo, em forma
de uma apostila, cuja funo explicar passo-a-passo o funcionamento de cada etapa do rob e a
importncia delas para o resultado final, que seguir uma linha preta em um fundo branco. O kit
e a apostila podero ser usados para ensinar robtica para alunos do ensino fundamental e mdio.
Alm da abordagem nas escolas, os alunos e professores da Escola de Engenharia
Eltrica e Computao da Universidade Federal de Gois, tambm tero a oportunidade de
construir seus prprios robs ou dispositivos baseados em computao fsica, aps ler este
material. Com certeza a reproduo do produto final desde trabalho ser muito mais fcil
seguindo os passos descritos neste trabalho.
Esses objetivos tambm esto de acordo com a continuao do desenvolvimento do
projeto de extenso Engenharia nas Escolas, que tem o Kit de Robtica de Baixo Custo como

18

base. A idia divulgar o projeto amplamente, comeando pelas Escolas de Engenharia, para que
todos tenham acesso ao material, inclusive com o propsito de aperfeio-lo.
1.3 Estrutura do Trabalho
Para alcanar os objetivos acima citados, o trabalho foi divido em vrios captulos, e esto
listados seguir:
- Captulo II - Apresenta o tema robtica e o ensino dela em escolas de ensino fundamental e
mdio no Brasil.
- Captulo III - Apresenta a plataforma Arduino e ao mundo da Computao Fsica.
- Captulo IV - Apresenta o rob seguidor de linha.
- Captulo V - Descreve o desenvolvimento e construo do crebro do rob e do mdulo de
regulao de tenso.
- Captulo VI - Descreve o desenvolvimento e construo dos sensores do rob
- Captulo VII - Descreve o desenvolvimento e construo do sistema de locomoo do rob
- Captulo VIII - Descreve a montagem do rob passo-a-passo.

19

CAPTULO II
2 Robtica Educacional
2.1 Introduo
A robtica educacional uma poderosa ferramenta para estimular alunos de ensino mdio
e fundamental a desenvolver uma srie de habilidades, como pensamento lgico, resoluo de
problemas, noo espacial, pensamento matemtico e trabalho em equipe. Com ela, alunos
podem ver que o que aprendem na escola tem aplicao prtica, e isso contribui para aumentar o
desempenho escolar e o interesse em matrias antes consideradas apenas "tericas", como
matemtica e fsica.
O atual problema brasileiro se concentra em dois pilares: custos dos kits e materiais para
o ensino de robtica e necessidade de capacitao profissional, de forma que o contedo seja
passado de forma simples aos alunos.
Existem diversos kits de robtica disponveis no Brasil, e amplamente usado em algumas
escolas particulares, como LEGO Mindstorms NXT, por exemplo. Entretanto, o valor destes kits
chegam a custar mais de mil reais.
2.2 Conceitos de Robtica
Um rob trata-se de uma mquina capaz de perceber o meio a sua volta e interagir com
ele, de acordo com uma instruo pr-programada. No campo da robtica educacional, um rob
uma mquina que, ao ser programada, interage com o ambiente realizando alguma tarefa.
Dessa forma, qualquer dispositivo guiado por controle remoto, ou que dependa do controle do
aluno em tempo real no um rob.
Dessa definio, um rob interage com o meio sua volta atravs de sensores, e, a partir
destes, realizam funes atravs de atuadores. Exemplos de sensores so: sensor de luz, som,
imagens, presso, temperatura, umidade, etc.. Exemplos de atuadores so: lmpadas, motores,
etc.. Atuadores sero descritos como dispositivos de sada, enquanto que sensores so

20

dispositivos de entrada. O processamento das informaes recebidas pelos sensores e traduzidas


na resposta dos atuadores feito pelo microcontrolador, que o crebro do rob.
Durante um curso de robtica os alunos so instigados a resolverem problemas usando os
robs. Dessa forma, necessrio entender como os robs interagem com o ambiente, a fim de
propor a melhor soluo para a resoluo da tarefa, estimulando o pensamento lgico e
matemtico dos mesmos.

21

CAPTULO III
3 Plataforma Arduino e Computao Fsica
3.1 Introduo

Arduino uma plataforma open-source e open-hardware de prototipagem de circuitos


eletrnicos microcontrolados desenvolvida pela Arduino Team em 2005 na Itlia. A sintaxe e as
bibliotecas da linguagem de programao foram baseadas na plataforma Wiring, enquanto que o
ambiente integrado de desenvolvimento (IDE - Integrated Development Enviroment) foi baseado
na linguagem Processing.
A grande vantagem do Arduino ser uma plataforma de fcil uso, em que o processo de
projeto e desenvolvimento de aplicaes eletrnicas microcontroladas muito mais rpido e fcil
do que se usado um microcontrolador 8051, por exemplo, em que so necessrios conhecimentos
de programao em Assembly e entendimento de registradores lgicos. Devido a isso, a
plataforma amplamente utilizada por designers e amadores, principalmente nos EUA e Europa,
por demandar pouqussimos conhecimentos em programao e eletrnica.
A figura 3.1 mostra uma foto da placa UNO, em comparao com uma mo humana.
Nesta foto podem ser vistos o microcontrolador, ATMega328, da ATMEL, pinos de entrada e
sada, entrada USB, boto RESET e entrada de energia.

Figura 3.1 Arduino UNO

22

Como mostrado na figura 3.1, uma placa padro Arduino possui tudo que uma pessoa
iniciante no mundo da computao fsica precisa para iniciar seus estudos nessa rea. No
necessrio saber de eletrnica para projetar um sistema de alimentao para a placa, j que ela j
conta com um regulador de tenso interno, e pode ser alimentado at pela energia eltrica que sai
da porta USB.
3.2 Ambiente de Desenvolvimento Integrado
Em relao programao da placa, tambm no necessrio vastos conhecimentos nas
linguagens C/C++(usadas pelo Arduino), j que a IDE (Integrated Development Environment)
vem com vrios exemplos para as mais diversas aplicaes, que podem ser modificados para
resolver um problema especfico do usurio, mas que j foi resolvido de outra forma por outra
pessoa, e transformado em um exemplo. A figura 3.2 mostra a IDE do Arduino 1.0 (Lanada em
01/12/2011).

Figura 3.2 Arduino 1.0 IDE.

23

Sendo assim, o que torna a IDE do Arduino simples de mexer, simplesmente o fato de
ser muito fcil e rpido de comear a utiliz-la. possvel, por exemplo fazer um LED piscar
bastando conectar a placa ao computador por USB, digitar o cdigo mostrado na Figura 3.3 na
IDE do Arduino e clicar no boto Upload. O resultado mostrado na figura 3.4.

Figura 3.3 Cdigo para piscar um LED

Figura 3.4 Resultado do cdigo transferido ao Arduino.

24

Como visto, para ensinar iniciantes ou integrar pessoas ao mundo da computao fsica
muito mais eficaz usar a plataforma Arduino do que ensinar diretamente em Assembly, usando
um microcontrolador como o 8051, por exemplo. A seguir est um cdigo em Assembly para
8051 que faz a mesma coisa que o cdigo para o Arduino (a nica diferena a frequncia com
que o LED pisca, devido rotina de temporizador usada).
org

0000h

loop:
mov

b, #0FFh

acall

delay

clr

p1.0

mov

b, #0FFh

acall

delay

mov

p1, #0FFh

ajmp

loop

djnz

acc, delay

mov

acc, #0FFh

djnz

b, delay

delay:

ret
end

25

Alm do cdigo ser muito maior, so usados mnemnicos no to evidentes para o


pblico novo na rea, alm de ser muito mais complexo determinar a frequncia com que o LED
pisca. No caso do Arduino, basta passar o valor "HIGH" ou "LOW" para o pino 13 (que onde o
LED vermelho da placa est conectado) e escrever a funo delay(1000), em que o valor entre
parnteses o tempo em milisegundos em que o microcontrolador fica sem realizar nenhuma
ao.
Explicando mais a fundo a linguagem Arduino, na figura 3.4 podemos ver duas funes
principais: "void setup()" e "void loop()". A palavra "void" indica que estas funes no retornam
nada aps serem executadas. A tipagem de funes foge do escopo deste trabalho, entretando
pode

ser

aprendida

estudando

um

pouco

sobre

linguagem

C/C++[1].

O mais importante aqui, que tudo o que inserido dentro de "void setup()", delimitado
pelos dois colchetes, executado apenas no incio do programa. Neste exemplo, foi inserido a
funo "pinMode(13,OUTPUT);", que diz ao compilador que o pino 13 ser um pino de sada de
dados. Poderia tambm ser usado "INPUT", em vez de "OUTPUT", caso algum sensor estivesse
conectado ao pino 13. Mais detalhes sobre sensores nos captulos V e VI.
O que inserido dentro de "void loop()", executado continuamente, em loop constante,
at que o microcontrolador seja desligado ou resetado. Dentro desta funo, entre colchetes,
como mostra a figura 3.4, inserido a funo "digitalWrite(13,HIGH);", que seta o valor digital
alto ao pino 13, fazendo com que o LED vermelho integrado placa acenda. Depois, inserida a
funo "delay(1000);", fazendo com que o microcontrolador espere 1000 milisegundos, ou 1
segundo, mantendo o LED aceso por esse tempo.
A funo seguinte "digitalWrite(13,LOW);", setando um valor digital baixo ao pino 13,
fazendo com que o LED apague. Por fim, inserida novamente a funo "delay(1000);", fazendo
com que o LED fique apagado por 1000 milisegundos, ou 1 segundo. Como a funo "void
loop()" roda continuamente, o LED ficar piscando continuamente, em intervalos de 1 segundo.
3.3 A comunidade Arduino
Sem dvidas, uma das maiores vantagens de se usar Arduino como ferramenta de
aprendizado em programao e/ou computao fsica, ou em projetos profissionais a fora de
sua comunidade. Arduino foi inicialmente idealizado por Massimo Banzi, e de acordo com o

26

Arduino Documentary[2], foi criado em uma poca em que o Instituto em que era professor, o
Interaction Design Institute Ivrea, estava prestes a fechar, e para garantir que o projeto no
morresse aps isso, abriu os cdigos tanto de hardware e software do projeto para todos que
quisessem us-lo ou at mesmo modific-lo. Isto com certeza foi uma das melhores decises do
grupo (Massimo se juntou a outros amigos, compondo a Arduino Team), pois a idia se expandiu
no s para designers e hobbistas, que compunham o pblico alvo inicial, mas para qualquer
pessoa interessada em aprender sobre computao fsica ou microcontroladores.
A idia evoluiu tanto, que hoje, em 2011, cerca de 6 anos aps o primeiro lanamento da
placa, a equipe planeja lanar verses mais robustas, como o lanamento da placa Arduino Due,
em que, em vez de um microcontrolador ATMega como crebro, um microprocessador ARM de
90MHz realiza as funes de processamento.
O fato de tanto o hardware como software serem open-source, isto , abertos para quem
quiser modificar e copiar os esquemticos e/ou cdigos, vrias empresas lanaram suas prprias
placas baseadas em Arduino, cujos esquemticos tambm so abertos para outras pessoas
modificarem e melhorarem. O grande exemplo disso a gigante Google, que lanou
recentemente uma forma de conectar os dispositivos Android (smartphones e tablets) placas
Arduino, algumas delas desenvolvidas pela prpria empresa[3].
Entretanto, algumas empresas vieram antes da Google, e que ajudaram significativamente
a expandir a cultura Arduino pelo mundo.Exemplos disso so as empresas SparkFun Electronics,
criadora do

LilyPad, Adafruit Industries, criadora do Boarduino, e a empresa brasileira, Tato

Equipamentos Eletrnicos, criadora do Tatuino. As figuras 3.5, 3.6 e 3.7 mostram as placas
LilyPad, Boarduino e Tatuino, respectivamente.

Figura 3.5 LilyPad Arduino

27

Figura 3.6 Boardunio

Figura 3.7 Tatuino


Da mesma forma que qualquer pessoa pode fazer suas prprias placas derivadas do
Arduino, muitas pessoas e empresa fazem shields, dispositivos com uma funo especfica que
podem ser acoplados em uma placa Arduino, expandindo suas funcionalidades. Existe shield

28

para controle e inverso de motores, shield com capacidade de comunicao por padro Ethernet,
Wifi, ZigBee, Bluetooth, alm de shields de aquisio de dados, como GPS e Acelermetro. A
figura 3.9 mostra um shiled de Ethernet, baseado no CI W5300 da Wiznet.

Figura 3.8 Shield Ethernet

Estas expanses facilitam muito o desenvolvimento de aplicaes, possibilitando a


pessoas leigas no assunto desenvolverem seus prprios projetos. O kit de robtica desenvolvido
neste trabalho no seguir o padro Arduino de placa. Entretanto, ser usada a mesma interface
de desenvolvimento para programar o rob, usando uma placa Arduino Duemilanove como
gravadora do microcontrolador.

3.4 Computao Fsica


Computao Fsica, ou Physical Computing[4] do ingls, um termo muito amplo que
engloba qualquer meio ou dispositivo construdo para se interagir com o mundo analgico
usando hardware e software. De uma maneira geral, Robtica um exemplo de computao
fsica, entretanto, o termo mais usado por pessoas que trabalham diretamente com ferramentas
criativas que as ajudam a perceber como as pessoas interagem com computao fsica.
Resumindo, se uma pessoa cria um dispositivo para captar as interaes de pessoas ou do
ambiente e atribuir uma resposta a isso usando software e hardware, com o objetivo de mensurar

29

e analisar como as pessoas interagem com o mundo digital, com certeza esta pessoa est
adentrando o mundo da computao fsica.
Falar sobre computao fsica em um trabalho como esse essencial, porque, ao utilizar
ferramentas como o Arduino para construir robs, as pessoas estaro diretamente trabalhando
com variveis do meio, e fazendo alguma coisa em resposta a ela. No caso deste trabalho, iremos
construir um rob para seguir uma linha no cho. Entretanto, possvel avanar mais com
computao fsica, usando sensores para perceber como as pessoas transitam em um ambiente, e
como investir em sistemas que melhorem o fluxo delas. Este s um dos vrios exemplos de uso
de computao fsica.
Uma das ferramentas "mes" do Arduino a linguagem Processing[5]. Essa ferramenta
bastante usada por pessoas que trabalham com processamento de imagens e computao visual.
Entretanto, mesclando-a com Arduino possvel captar entradas de sensores e mostr-los em
uma tela, para melhor visualizao. uma tima linguagem para quem est interessado em saber
mais ou at trabalhar com computao fsica.

30

CAPTULO IV
4 Rob Seguidor de Linha
4.1 Introduo
O rob a ser desenvolvido neste trabalho um rob seguidor de linha. Trata-se de um
rob que tem o objetivo de seguir uma linha escura em uma superfcie clara (podendo tambm
seguir uma linha clara em um fundo escuro, dependendo da programao.) Geralmente conta
com duas rodas traseiras ou dianteiras controladas por motores de corrente contnua (podendo
tambm ser usados motores de passo, ou servo motores, apesar de alcanar uma velocidade
menor) e uma roda dianteira para estabiliz-lo. Esta roda chamada de "roda boba", porque ela
simplesmente acompanha o movimento das duas rodas traseiras ou dianteiras, sem ter controle
prprio. Alm das rodas para locomoo, o rob tambm conta com dois sensores, os quais so
responsveis pela deteco da linha, e da diferenciao dela em relao ao resto da superfcie.
4.2 Motores
Geralmente, so usados motores de passo (servo motores) ou motores de corrente
contnua para girarem as rodas. Neste trabalho foram escolhidos motores de corrente contnua,
por serem mais fceis de achar (encontrado em praticamente qualquer carrinho de brinquedo
guiado por controle remoto) e por serem mais rpidos que os motores de passo, podendo ser
usados em competies, como a Olimpada Brasileira de Robtica.
Os motores de corrente contnua so ligados ao microcontrolador atravs de um driver,
responsvel por amplificar a corrente do microcontrolador, que insuficiente para acionar o
motor diretamente.
4.3 Sensores
Os sensores mais usados em robs seguidores de linha so os construdos com
fotoresistor e o com fotodiodo/fototransistor. O primeiro significativamente mais barato e fcil

31

de fazer, enquanto que o segundo mais caro, e mais complexo de ser implementado. Foi
escolhido o primeiro, devido ao custo, e facilidade de se explicar o funcionamento ao aluno.
Apesar de o sensor com fotoresistor ter estas vantagens, ele muito mais impreciso, sendo
necessrio realizar uma calibrao via software ou hardware (com o uso de potencimetros de
ajuste).
Entretanto, no caso de desenvolvimento de outros sistemas referentes computao
fsica, como um medidor de luminosidade de um ambiente, o uso fototransistor invivel
tecnicamente, sendo que este s detecta dois estados de funcionamento(com luz ou sem luz),
sendo necessrio o uso de fotoresistor ou de outro componente que detecta vrias faixas de
luminosidade.
O sensor, alm de ser implementado com fotoresistor ou fotodiodo/fototransistor, tambm
conta com um LED, responsvel por gerar o feixe de luz a ser captado. O sensor posicionado
em paralelo com o LED, e ambos virados para a superfcie que o rob ir percorrer. Caso a
superfcie for refletora (fundo claro/ ausncia da linha), o sensor consegue captar a luz refletida
por ela, enviando uma mensagem ao crebro do rob, indicando a ausncia de linha. Caso a
superfcie no for refletora (fundo escuro/ presena da linha), o sensor no consegue captar a luz,
pois essa foi absorvida pela superfcie, enviando uma mensagem ao crebro do rob, indicando a
presena da linha.
4.4 Crebro
O crebro do rob constitudo por um microcontrolador, responsvel por fazer a leitura
constante dos sensores, calibr-los, caso haja necessidade de fazer isso via software, e tomar uma
deciso baseada nessas entradas dos sensores. Neste caso, o crebro cuidar de fazer o
acionamento dos motores com base na comparao das respostas dos sensores.
4.5 Princpio de Funcionamento
Na construo do rob, so posicionados dois sensores, cuja distncia igual ao tamanho
da linha a ser percorrida(essa linha geralmente construda usando uma fita isolante de cor preta
em uma cartolina branca, por exemplo. Apesar de tambm poder ser usada uma cartolina de cor

32

preta com fita crepe ou fita adesiva de cor branca). Considerando a linha no meio dos sensores,
conforme mostra a figura 4.1, enviado pelo microcontrolador (crebro) um comando para que
os dois motores girem, a fim de que o rob mova-se para frente.

Figura 4.1 Linha em meio aos sensores.


Caso existir uma curva para a esquerda, conforme mostra a figura 4.2, o sensor da
esquerda entrar na linha, e, neste caso, enviado uma mensagem para o motor da esquerda
parar, e o da direita continuar em movimento.

Figura 4.2 Curva para a esquerda.

33

Isso far com que o rob vire para a esquerda. Em caso oposto, com uma curva para a
direita, o rob parar o motor direito e girar o esquerdo, fazendo o rob virar pra direita. Esse
processo chamado de "Sistema de Direo Diferencial"[6].

34

CAPTULO V
5 Desenvolvimento e construo do crebro do rob
5.1 Introduo

O Arduino mais que suficiente para a construo de qualquer rob seguidor de linha.
Pode-se simplesmente ligar os fios correspondentes aos sensores nos pinos analgicos de sua
superfcie e os pinos dos motores tambm as seus respectivos pinos correspondentes. Entretanto,
o objetivo desenvolver um rob seguidor de linha a ser usado em um kit de robtica de baixo
custo, que seja dividido em vrios mdulos, e que os alunos consigam entender o funcionamento
de cada mdulo, ligando uns nos outros, at finalizar o rob.
Assim, este captulo trata do desenvolvimento e da construo do crebro do rob
seguidor de linha, explicando e mostrando todas as etapas necessrias.
5.2 O microcontrolador ATMega 168/328
O corao de qualquer Arduino um microcontrolador da ATMEL. No caso do Arduino
Duemilanove ou UNO, o microcontrolador usado o ATMega, podendo ser 168 ou 328. A tabela
5.1 mostra uma comparao entre ambos.
Tabela 5.1 Comparao entre ATMega 168 e 328
Especificaes /
ATMega 168
ATMega 328
Microcontrolador
Clock
16MHz (1MIPS/MHz)
16MHz(1MIPS/MHz)
Memria RAM
1KB
2KB
Memria Flash
16KB
32KB
Memria EEPROM
512 bytes
1024 bytes (1KB)
Nmero de I/O digitais
14
14
Sadas PWM
6 (8bits)
6 (8bits)
Entradas Analgicas
6 (10 bits)
6 (10 bits)
um microcontrolador bastante verstil, se comparado a outras alternativas da ATMEL,
como a plataforma 8051, pois possui 6 pinos de conversor analgico -digital integrado de 10 bits,

35

sem precisar recorrer a componentes externos. Possui frequncia de clock de 16MHz, j


otimizado com o bootloader nativo do Arduino. Outra vantagem possuir 6 portas PWM (Pulse
Width Modulation - Modulao por largura de pulso) sem contudo comprometer o seu tamanho
(possui 28 pinos contra as verses de 40 pinos do 8051). O mesmo mostrado na figura 5.1.

Figura 5.1 ATMega328.


5.3 Circuito personalizado com ATMega 328

Por se tratar de um projeto de baixo custo, a placa de prototipagem do Arduino no ser


usada. Em vez disso, foi desenvolvida uma verso especfica para o projeto do rob seguidor de
linha, a qual est mostrada na figura 5.2.

Figura 5.2 Crebro do rob

36

Esta placa do crebro do rob conta com um cristal removvel (sem solda) de 16MHz,
dois capacitores de 22pF para estabilizao dos pulsos do cristal, um resistor de 10k para o
RESET (um boto pode ser implementado em futuras verses sem grandes modificaes no
design), 1 resistor de 10k e um capacitor de 22pF para cada entrada do sensor de linha, soquete
torneado de 28 pinos para o microcontrolador ATMega 328, dois conectores parafusveis de 3
pinos para os sensores, dois conectores parafusveis de 3 pinos para os drivers dos motores e 1
conector para o mdulo de energia.
Alm disso, o microcontrolador ATMega 328 no foi comprado avulso. No existe
produo nacional para esse tipo de componente, e todos os que so vendidos tem um alto custo
devido escassez e s taxas de importao. Em mdia, o custo deste componente varia de R$
14,50 a R$ 25,00 sem incluir o frete para Goinia. Caso fosse optado a importao deste
componente, o preo sairia mais em conta, na faixa de R$ 8,00 a R$ 10,00, sujeito a oscilaes
no dlar e sem contar impostos de importao (geralmente mercadorias abaixo de $50 no so
taxadas pela alfndega)
Assim, como seria necessrio um gravador para o microcontrolador de qualquer forma,
preferiu-se importar uma placa Arduino diretamente da China, usando o site de compras
internacionais eBay, como meio. Dessa forma, o conjunto de placa Arduino mais
microcontrolador ATMega 328 que ainda funciona como gravadora, saiu por R$ 32,00.
Outra vantagem de comprar esse "combo" que o microcontrolador ATMega 328 j vem
com o bootloader gravado, que um cdigo que permite a transformao dos programas escritos
na linguagem Arduino para a linguagem de mquina, que o microcontrolador entende. Os valores
da placa Arduino aqui no Brasil variam entre R$ 90,00 a R$ 150,00, sendo ainda muito mais
vantajoso importar da China atravs de sites como eBay[7] e Dealextreme[8]. Ao se comprar um
microcontrolador virgem, necessrio gravar o bootloader do Arduino nele, que no um
processo trivial, e ainda sairia mais caro, pois na maioria das vezes preciso comprar uma
gravadora especfica para isso. A tabela 5.2 mostra a listagem dos componentes e seus
respectivos custos.

37

Tabela 5.2 Lista de componentes e custo da construo do Crebro do Rob.


Componente
Placa Arduino

Quantidade

Local de compra

Custo Unitrio

Custo Total

eBay

R$ 32,00

R$ 32,00

R$ 0,05

R$ 0,20

3
1

R$ 0,05
R$ 1,00

R$ 0,15
R$ 1,00

R$ 1,00

R$ 1,00

R$ 0,90

R$ 0,90

parafusvel de 3

R$ 1,50

R$ 6,00

pinos
Outros
Total Crebro

R$ 12,00
R$53,25

(com
microcontrolador
ATMega 328)
Capacitor
cermico 22pF
Resistor 10k
Cristal 16MHz
Soquete torneado
28 pinos

Dummont, rua 68

Conector
parafusvel de 2

Eletrnica Santos
(Goinia)[9]

pinos
Conector

O valor total gasto para construir ento o crebro do rob foi de aproximadamente R$
53,25. O item da lista denominado de "outros" se refere compra de placas de fenolite cobreado,
em que o valor unitrio de R$ 1,80, de percloreto de ferro para corroso das placas (geralmente
cerca de R$ 8,00) e de gastos com compra de papel couch para impresso dos circuitos e da
impresso laser em si. Esse valor foi estimado em aproximadamente R$ 12,00 porque no se
teve o controle de quantas placas de fenolite cobreado foram compradas nem da quantidade de
folhas que foram gastas (nas etapas iniciais do projeto, muitos insumos foram gastos at que se
pudesse dominar o processo de fabricao).
Entretanto, como as placas de fenolite cobreado, folhas de papel couche e soluo de
percloreto de ferro foram usadas para todos os circuitos do projeto, este valor referente a
"Outros" de R$ 12,00 s ser includa nesta primeira tabela. Alis, com uma soluo nica de

38

percloreto de ferro possvel de se fazer centenas de placas como essa, sem ser necessrio
comprar novamente.
Para se ter uma idia, a soluo de percloreto de ferro do laboratrio de
microprocessadores e Microcontroladores da Escola de Engenharia Eltrica e de Computao
tem mais de quatro anos, e foi usada para corroer alguns prottipos usados nesse trabalho sem
problema algum (contudo, o tempo de corroso aumenta proporcionalmente quantidade de
corroses realizadas com a mesma soluo).
5.4 O projeto do circuito do crebro do rob
O circuito da placa foi projetado e desenhado usando o software EAGLE, o qual j conta
com todos os blocos dos componentes, principalmente do microcontrolador ATMega 168/328. A
figura 5.3 mosta o esquemtico do circuito do crebro do rob.

Figura 5.3 Esquemtico do Crebro


Antes de ter se adotado o EAGLE como software para desenvolver os circuitos, foi usado
o Proteus. A vantagem do EAGLE sobre esse ltimo a disposio dos pinos dos blocos de

39

componentes. No caso do ATMega 328, o EAGLE distribui de forma inteligente os pinos do CI.
Do lado esquerdo, esto os pinos referentes a ligaes pertinentes para o funcionamento do
microcontrolador, como RESET, que ativo baixo, tendo que ser ligado a 5V para que ele no
resete. Tal ligao feita usando a conexo VCC em srie com o resistor de 10k. O pino do
RESET o pino 1.
Ainda do lado esquerdo, foram feitas as conexes de VCC aos pinos AVCC (para
alimentao do conversor analgico-digital interno) e AREF (setando a referncia do pino
analgico em 5V). Tambm foram feitas as conexes dos pinos 22 e 8 ao GND e conectados os
capacitores ao cristal, e este aos pinos 9 e 10 do microcontrolador.
J do lado esquerdo, esto o restante dos pinos de controle do microcontrolador. Os pinos
23 a 28 so as entradas para o conversor analgico-digital, sendo que possvel usar os pinos 27
e 28 para conexes SDA e SCL, a fim de fazer comunicao I2C com outros perifricos e
microcontroladores.
Foram usados os pinos 23 e 28 para conexo dos sensores de linha, sendo que h um
resistor de 10k e um capacitor de 22pF em paralelo, para servir de divisor de tenso com o
fotoresistor e de filtro de rudos, respectivamente.
Para os drivers dos motores, foram usados duas sadas PWM (Pulse Width Modulation Modulao por largura de pulso) do microcontrolador, situadas nos pinos 12 e 16 do ATMega
328. As outras sadas PWM se encontram nos pinos 5, 11, 15 e 17. possvel usar os pinos 2 e 3
para comunicao serial com o microcontrolador.
Acima, do lado esquerdo, podemos ver um conector para VCC e GND. Essa alimentao
j de 5V, sendo entregada pelo mdulo de regulador de tenso, a ser abordado na seo 5.4.
Aps desenvolver o esquemtico do crebro, foi realizado o desenho do circuito a ser
confeccionado. Por se tratar de um trabalho voltado para pessoas sem muito conhecimento na
rea de confeco de placas de circuito impresso, o desenho do circuito foi feito usando apenas
uma camada e poucos jumpers (fios que simulam dupla face), de forma que o rob possa ser
reproduzido e modificado por pessoas com nvel tcnico mnimo.
A figura 5.4 mostra o layout da placa de circuito impresso do crebro do rob.

40

Figura 5.4 Layout do Crebro


De azul esto as trilhas e a malha de terra (GND), usada para facilitar o design. De verde,
esto dos pinos para se soldar os componentes na placa. Os pinos mais ovais representam a
conexo do microcontrolador (Duas fileiras de 14 pinos em sequncia) e os conectores no canto
inferior, da esquerda para a direita, esto o conector do mdulo do regulador de tenso e de um
dos drivers dos motores. No canto esquerdo, de cima para baixo, esto os dois conectores dos
sensores de linha e um conector do driver do segundo motor.
Aps desenhar o circuito no EAGLE, foi realizado a exportao do desenho em escala
1:1 para o formato .PDF, e o desenho do mesmo, agora monocromtico, est mostrado na figura
5.5.

41

Figura 5.5 Layout do Crebro em PDF.


Nesta figura 5.5 possvel perceber um fator interessante. A trilha horizontal mais
inferior toca em 3 pinos de conectores parafusveis logo em cima. Se isso tivesse sido mantido,
no momento de operao do rob, haveria um curto-circuito nessa regio. No se sabe porque
razes ocorreu essa juno, sendo que na figura 5.4 as trilhas esto espaadas dos conectores,
conforme o projeto original. Talvez um problema de converso do prprio programa EAGLE na
hora de converter o layout para PDF. Entretanto, o importante aqui que estas falhas geralmente
ocorrem, e uma maneira de corrigi-las riscando com um material pontudo a conexo entre elas,
antes de corroer a placa.
O processo generalizado de confeco de placas de fenolite ser abordado na prxima
seo, enquanto que a continuao da confeco da placa Crebro do Rob ser retomada na
seo 5.6.
5.5 Processo de confeco da placa
Nesta seo ser explicado com detalhes o processo de confeco de uma placa, tendo
como base o circuito do sensor, a ser abordado no captulo 6. O uso de um circuito diferente do
qual foi abordado nesse captulo no acarreta em nenhum problema para a explicao do
processo, j que este pode ser feito para qualquer circuito.

42

Ser usado ento o circuito do sensor, conforme mostrado na figura 5.6

Figura 5.6 Circuito do sensor a ser confeccionado


A primeira coisa a fazer cortar o papel do tamanho do sensor, como mostra a figura 5.7.
Pode ser usada qualquer ferramenta cortante, como tesoura, estilete, etc. No caso do estilete,
recomenda-se usar uma superfcie protetora (foi usado uma base de alumnio) para no se cortar
a mesa.

Figura 5.7 Corte do papel do circuito com estile


Aps cortado o papel, deve-se cortar a placa de fenolite cobreado. Podem ser usadas
diversas ferramentas para isso. Na maioria das placas usadas neste trabalho, foi usada uma serra
tico-tico, conforme mostra a figura 5.8.

43

Figura 5.8 Serra Tico-tico


Para outras placas, foi usada uma ferramenta cortante pontuda, como um estilete. Esse
ltimo mtodo mais simples, ideal para se cortar placas pequenas e fcil de se utilizar. Para esta
placa de demonstrao foi usado estilete, mas bom cortar dos dois lados (lado fenolite e do lado
do cobre), conforme mostra a figura 5.9. Depois foi s partir a placa com as duas mos, para que
ficasse conforme mostra a figura 5.10.

Figura 5.9 Corte feito dos dois lados da placa de fenolite cobreado

44

Figura 5.10 Placa partida


O prximo procedimento transferir a tinta do papel para a placa de fenolite cobreado. O
circuito foi impresso em papel couch, mas o processo seria muito mais fcil caso fosse usado
papel gloss.
A primeira coisa a se fazer antes de iniciar o processo de transferncia de calor limpar a
placa de fenolite cobreado. Para isso, usado um pedao de palha de ao, que ser aproveitado
posteriormente para lixar a placa novamente, aps o processo de corroso. Dessa forma, o gasto
com palha de ao mnimo, sendo includo na primeira tabela de custos, dentro de "Outros".
O processo de lixagem mostrado na figura 5.11. Deve se lixar a placa at que ela fique
com aspecto reluzente. Isso feito para tirar a ferrugem e facilitar o processo de transferncia de
calor.

Figura 5.11 Lixagem da superfcie de cobre

45

O processo de transferncia de calor realizado nesse trabalho foi feito usando um ferro de
passar roupas comuns, destes que todos temos em casa. Entretanto, totalmente recomendvel
que no seja usado um ferro vapor.
A primeira coisa a se fazer posicionar o papel do circuito recortado sobre a parte do
cobre da placa de fenolite lixada. Deve-se alinhar bem o papel, segurando-o com os dedos
durante a parte inicial desse procedimento. O alinhamento do papel mostrado na primeira parte
da figura 5.12.

Figura 5.12 Processo de transferncia de calor


Depois, deve-se passar o ferro de passar roupas suavemente em um dos cantos do papel.
Aqui importante que o papel no se mexa de maneira alguma! Caso contrrio, a tinta borrar
grande parte do circuito, devendo-se imprimir e recortar outro circuito, alm de ter que lixar a
placa novamente. Para que o processo todo seja bem sucedido, importante nunca passar o ferro
enquanto realiza presso sobre o papel. Deve se fazer presso constante em diversos pontos do
papel, sem arrast-lo.
A terceira parte da figura 5.12 mostra a realizao de presso com o ferro sobre todo o
papel. Deve ser fazer isso uniformemente por aproximadamente 5 minutos. O tempo varia
conforme a prtica, e menor caso seja usado papel gloss.
O processo deve ser realizado at que seja possvel ver as trilhas na parte de cima do
papel, e no h problema se o papel ficar um pouco queimado. O processo finalizado pode ser
visto na figura 5.13.

46

Figura 5.13 Transferncia de calor finalizada


Aps realizar o processo de transferncia de calor, o papel deve ser removido para que
fique s a tinta sobre a placa, preparando-o para corroso. Para retirada do papel, a placa e o
papel devem ser molhados com gua corrente ou imersos em um recipiente com gua, sendo que
esse ltimo processo mais eficiente e gasta-se muito menos gua. A figura 5.14 ilustra esse
procedimento.

Figura 5.14 Imerso da placa e do papel em gua

47

O papel dar sinais de que pode ser removido aps as bordas comearem a escurecer,
como mostra figura 5.14. Isso ocorre porque a tinta que est de baixo do papel comea a aparecer
e este outro indicativo de que o processo de transferncia de calor foi bem sucedido. Quando o
papel estiver bem mido, o papel poder ser retirado. Isso deve ser feito com as pontas dos
dedos, puxando uma pontinha do papel antes, conforme mostra a figura 5.15.

Figura 5.15 Retirando o papel comeando pelas pontas


importante comear pelas pontas, para assegurar que no se remova a tinta junto com o
papel, durante o processo.
possvel que o papel se desfarele durante o procedimento. No tem problema, desde
que a tinta no seja removida junto. Se for usado papel gloss, maior a probabilidade de o papel
sair por inteiro. Entretanto, neste caso foi usado papel couch, e parte do papel saiu inteira,
conforme mostra a figura 5.16.

48

Figura 5.16 Retirada do papel mido da placa de fenolite


Depois de retirar a parte mais significativa do papel, importante retirar com um material
pontudo o restante do papel que fica preso entre as trilhas, porque, caso os mesmos permaneam,
a corroso no atuar corretamente. No final do processo, a placa dever ficar conforme mostra a
figura 5.17.

Figura 5.17 Placa pronta para corroso


Na figura 5.17 tambm foi feito um furo com perfurador de placa na extremidade
superior direita da placa e amarrado um barbante para mergulhar a placa em soluo aquosa de
percloreto de ferro. A Figura 5.18 mostra a placa inserida nesta soluo.

49

Figura 5.18 Placa inserida na soluo aquosa de percloreto de ferro


Fatores como concentrao de percloretor de ferro, temperatura, quantidade de uso e
agitao mecnica influenciam drasticamente no tempo de corroso da placa. Como esta soluo
usada j estava bastante saturada de percloreto de ferro, o tempo de corroso foi de 25 a 30
minutos. A figura 5.19 mostra a grande saturao da placa, percebido pela presena de "sais de
cobre" na placa.

Figura 5.19 Placa corroda


O procedimento seguinte lavar a placa para retirar o restante da soluo de percloreto
de ferro, e nesse caso aconselhvel usar gua corrente, conforme mostra a figura 5.20.

50

Figura 5.20 Lavagem da placa com gua corrente


A figura 5.21 mostra a placa aps lavada. O prximo passo consiste na lixagem da tinta
restante na placa, expondo o cobre. Isto est mostrado na figura 5.22.

Figura 5.21 Placa aps ser lavada

51

Figura 5.22 Lixagem da placa finalizada


Por fim, basta furar a placa na regio dos furos. Pode se usar o perfurador de placa ou
furadeira de bancada. A figura 5.23 mostra a placa e o perfurador de placas.

5.23 Placa e perfurador de placas


Aps esse processo, a placa j est pronta para se soldar os componentes. A soldagem
feita usando ferro de solda especfico para eletrnica e estanho prprio para essa tarefa tambm.
Na hora de soldar os componentes, foi lixada a placa mais uma vez com palha de ao, e usada
pasta de solda para facilitar a soldagem.
Esta seo abordar apenas a soldagem do fotoresistor essa placa, para fins de
demonstrao de como soldar. A placa de sensores finalizada abordada no captulo 6.

52

A recomendao de soldagem de componentes se resume a primeiramente estanhar


bastante a ponta do ferro de solda (isto , derreter um pedao de fio de estanho na sua ponta) e
limpar o excesso com uma esponja umedecia. Aps isso, deve-se conectar o componente placa
e aquecer o conector usando o ferro de solda. Depois, encostar o estanho no conector, e pela
temperatura, o mesmo derreter e ser soldado ao componente e parte de cobre da placa. Esse
processo mostrado na figura 5.24.

Figura 5.24 Soldagem do fotoresistor na placa

5.6 Finalizao da construo do Crebro do Rob


Aps ter esse layout exportado para PDF, o arquivo foi impresso usando uma impressora
laser em um papel fotogrfico (recomenda-se papel gloss ou couch, apesar do gloss ser de
qualidade superior) e o circuito foi recortado. Depois foi transferido para a placa de fenolite
cobreado usando um ferro de passar roupas pelo mtodo da transferncia de calor. O processo
completo de confeco foi comentado na seo anterior.

53

Depois bastou soldar os componentes para que a placa ficasse conforme mostra a figura
5.25.

Figura 5.25 Crebro concludo

5.7 Mdulo de regulao de tenso


O microcontrolador ATMega 168/328 funciona com uma tenso eltrica contnua de 5V e
esta deve ser constante, para que o mesmo no seja danificado. Os motores podem funcionar
com tenses um pouco mais altas e um pouco mais baixas que este valor. Assim, em um rob
comum, podem ser utilizadas duas fontes de tenso diferentes, para atuadores (motores) e para a
parte lgica (microcontrolador). Por este rob ter um tamanho reduzido, e os motores serem de
baixa potncia, foi prefervel usar uma bateria nica, regulando a tenso para o microcontrolador
e para os motores, simultaneamente.
Considerando que ser usada uma bateria acima de 7,2V (destas de carrinhos de
brinquedo comuns), foi ento escolhido um regulador de tenso para 5V (que precisa de tenso
de entrada maior ou igual a 7V para funcionar corretamente e tem sada de at 1A de corrente).
Para o mesmo, foi construdo um mdulo de regulao de tenso, que permite conectar
baterias de entrada com tenso entre 7 e 12V, ligar e desligar o rob usando uma chave, ver se

54

existe tenso eltrica ou no na sada (atravs de um LED azul) e conectar a sada regulada em
5V, usando conectores parafusveis de dois pinos.
O regulador de tenso usado foi o 7805, e a imagem da primeira pgina do datasheet do
mesmo, disponibilizado online pela fabricante Fairchild Semiconductor, est representada na
figura 5.26.Entretanto, pode ser usado qualquer outro componente de qualquer outro fabricante,
desde que o encapsulamento seja TO-220, para se encaixar no layout do circuito projetado.

Figura 5.26 Primeira pgina do datasheet do componente 7805.


Para fins didticos, foi construda uma placa prpria para o mdulo regulador de tenso,
cuja lista de componentes mostrada na tabela 5.3, e o esquemtico da mesma mostrado na
figura 5.27.

55

Tabela 5.3 Lista de componentes e custo de construo do Regulador de Tenso


Componente
Regulador de
Tenso 7805
Capacitor
eletroltico 10uF
Capacitor
eletroltico

Quantidade

Custo Unitrio

Custo Total

R$ 1,00

R$ 1,00

R$ 0,08

R$ 0,08

R$ 0,20

R$ 0,20

R$ 0,90

R$ 1,80

100uF
Conector

Local de compra

Eletrnica Santos
Dummont, rua 68

parafusvel de 2

pinos
Diodo 1N4001
Resistor 10k
LED Alto

1
1

R$ 0,10
R$ 0,05

R$ 0,10
R$ 0,05

brilho(azul)
Switch
Total Regulador

R$ 0,80

R$ 0,80

R$ 1,00

R$ 1,00

(Goinia)

R$ 5,03

de Tenso

Figura 5.27 Esquemtico do Mdulo Regulador de Tenso


Pela figura 5.27 possvel perceber como o circuito est organizado. A entrada de 7 a
12V, sendo um fio para tenso e outro para referncia (GND). Logo em seguida, h uma chave
de duas posies, para ligar e desligar o circuito. Interessante notar que a chave foi posicionada

56

antes do regulador de tenso e no depois. Dessa forma, o circuito no consome energia da


bateria em modo "standby".
Logo depois h um diodo. Ele responsvel por no permitir a passagem de corrente
negativa (sentido inverso) pelo regulador de tenso, pois isso o danifica. Assim, existe essa
preveno para qualquer pessoa que porventura ligue os plos invertidos da bateria no conector
parafusvel de entrada.
Em paralelo com o regulador de tenso 7805 foram colocados dois capacitores
eletrolticos, um de 100uF e outro de 10uF. Eles so responsveis por filtrar rudos eltricos.
Logo aps o capacitor de 100uF, est um resistor de 10k em srie com um LED indicador de
alto brilho, para indicar se o circuito est ou no ligado. Logo aps est a sada do circuito, j
regulada para 5V.
Aps o desenho do esquemtico desse circuito, foi realizado o layout da placa conforme a
figura 5.28.

Figura 5.28 Layout do mdulo Regulador de Tenso.


Posteriormente, o mesmo layout foi exportado para o formato PDF, e monocromtico,
conforme mostra a figura 5.29.

Figura 5.29 Layout do mdulo Regulador de Tenso em PDF.

57

Com este circuito em mos, foi realizada a transferncia da tinta para a placa de fenolite
cobreado, da mesma forma que foi feita com o mdulo Crebro. A placa finalizada pode ser
visualizada na figura 5.30.

Figura 5.30 Mdulo regulador de tenso finalizado.


Conforme mostra a figura 5.11, foram usados fios longos para se ligar a chave de ligadesliga, para que, caso o mdulo fosse includo dentro de uma caixa de acrlico, por exemplo, o
boto pudesse ficar na parte externa da caixa. Foram usados conectores parafusveis de 2 pinos
para poder facilitar a ligao da bateria entrada e do mdulo do Crebro sada, tornando o kit
mais didtico.

CAPTULO VI

58

6 Desenvolvimento e construo dos sensores do rob


6.1 Introduo
Para que o rob responda ao ambiente, antes preciso que ele perceba este ambiente de
alguma maneira. Isto feito usando sensores. Existem vrios tipos diferentes de sensores, cujo
princpio sempre o mesmo: traduzir uma varivel do meio em algo que o rob entenda. No caso
do rob seguidor de linha, o objetivo perceber ausncia ou presena de linha (uma linha de fita
isolante preta em um fundo branco, por exemplo), para que ele responda conforme isso.
O sensor desenvolvido, para fins prticos e econmicos consiste em um divisor de tenso
usando um fotoresistor e um resistor. O fotoresistor varia sua resistncia entre 100 e 65k,
dependendo da luminosidade que incide sobre ele. Porm, no caso deste rob em particular, a luz
ser projetada sobre o plano e a quantidade refletida ser captada pelo fotoresistor. Dessa forma,
posicionado um LED do lado do fotoresistor, e baseado na luz que refletida do plano sobre
ele, a tenso do circuito divisor de tenso varia proporcionalmente.
O circuito geral do princpio de divisor de tenso com fotoresistor e LED acoplado
mostrado na figura 6.1.

Figura 6.1 Esquemtico do circuito divisor de tenso e LED acoplado


O LED ligado em 5V compartilhando a mesma referncia que o restante do circuito
(GND), sendo que um resistor de 220 inserido em srie para limitar a corrente que atravessa
o LED, a fim de que o mesmo no seja danificado. montado ento o circuito divisor de tenso,

59

em que a tenso que aparecer em OUT proporcional aos valores de resistncia do fotoresistor
e do resistor de 10k, segundo a equao 6.1.
V out =

10 k
5 (V )
10 k+Rfotoresistor

(6.1)

Dessa forma, caso a luminosidade for mxima, o valor de


sendo Vout = 4,95V. Caso a luminosidade for mnima, o valor de

Rfotoresistor

ser igual a 100,

Rfotoresistor

ser de 65k,

sendo Vout = 0,67V. Entretanto, esses valores so ideais. Na prtica, ser necessrio criar uma
funo para que o microcontrolador armazene os valores mximos e mnimos de luminosidade
refletida da luz na linha e ausncia de linha, sempre que inicializar. Mais detalhes sero
abordados no captulo 7.
6.2 Projeto dos sensores
Para economizar espao nas placas dos sensores e facilitar a soldagem, o resistor de 10k
do divisor de tenso foi posicionado na placa do crebro do rob, conforme mostrado no captulo
anterior. A nica diferena para o esquemtico do tpico anterior, que nesse circuito foi
inserido um capacitor de 22pF para filtrar oscilaes indesejadas do fotoresistor. O motivo de
no ter sido usado um potencimetro de calibrao em vez do resistor de resistncia fixa de
10k, foi a reduo de custo e complexidade do circuito, alm de se optar por uma estratgia de
calibrao mais precisa que o potencimetro. Dessa forma necessrio calibrar os sensores via
software.
Os dois sensores foram projetados de forma idntica, a fim de deixar o rob o mais
simtrico possvel. Dessa forma, este captulo aborda a construo de um sensor. A tabela 6.1
mostra a lista de componentes usados na construo dos sensores enquanto que a figura 6.2
mostra o esquemtico do sensor, juntamente com a conexo do divisor de tenso junto ao
microcontrolador.
Tabela 6.1 Lista de componentes e custo de construo dos sensores
Componente

Quantidade

Local de compra

Custo Unitrio

Custo Total

60

Fotoresistor
LED alto brilho
(branco)
Resistor 220
Conector
parafusvel de 3

2
2
2
2

Eletrnica Santos
Dummont, rua 68
(Goinia)

R$ 0,50

R$ 1,00

R$ 1,00

R$ 2,00

0,05

R$ 0,10

R$ 1,50

R$ 3,00

pinos
Total Sensores

R$ 6,10

Figura 6.2 Esquemtico do sensor junto ao microcontrolador


Aps ser realizado o projeto do circuito, foi desenhado o circuito a ser impresso na placa
de fenolite cobreado, isto , foi feito o layout. Para o layout dos sensores, foi pensado o mesmo
em relao a o layout do crebro: foi usada apenas uma camada, e nenhum jumper. O circuito
ficou to compacto que a soldagem do mesmo a etapa mais simples de todo o projeto do rob
seguidor de linha. A figura 6.3 mostra o layout do sensor.

61

Figura 6.3 Layout do sensor


Aps essa etapa, o circuito foi exportado para o formato PDF como mostra a figura 6.4.

Figura 6.4 Layout do sensor em PDF.


O mesmo processo realizado para o Crebro do rob, tambm foi usado para o sensor. O
mesmo foi impresso usando uma impressora a laser, recortado, e a tinta do papel foi transferida
para a placa de fenolite cobrado usando um ferro de passar roupas. Aps isso, o cobre da placa
foi corrodo usando uma soluo de percloreto de ferro. Posteriormente foram soldados os
componentes, de forma que os sensores ficassem como mostra a figura 6.5.

Figura 6.5 Sensores concludos

62

Os resistores possuem cores de cermica diferente, mas ambos correspondem a 220.


Foi usado um pedao de cabo termoretrtil para servir de encapsulamento para o fotoresistor.
Isso foi preciso para que a luz ambiente no interferisse na deteco da linha na superfcie,
otimizando o projeto. Os LED usados so de alto brilho e da cor amarela. E foram usados os
mesmo conectores do crebro do rob: conectores parafusveis de 3 pinos, para permitir ao
mesmo tempo que os cabos fiquem bem presos e o kit de robtica fique fcil de montar e
desmontar, bastando uma chave de fenda pequena para desconectar os cabos.
6.3 Programao dos sensores
Para facilitar o entendimento progressivo do que cada parte do rob faz, vrios pedaos
de cdigo sero mostrados nos captulos, conforme a parte de hardware for sendo concluda. A
parte do Crebro do Rob e do Regulador de Tenso no tiveram pedaos de cdigo especfico,
primeiro, porque a parte referente ao crebro ser dividida neste e no prximo captulo, de forma
entrelaada, e segundo, porque a parte do regulador de tenso no precisa de cdigo.
Quanto aos sensores, interessante notar que o sinal de entrada recebido por eles
analgico. Assim, necessrio convert-los para digital. O sensor da esque`rda foi conectado ao
pino 5 do conversor analgico-digital embutido, enquanto que o sensor da direita foi conectado
ao pino 0 do mesmo. Dessa forma, foram criadas duas variveis para receber a entrada destes
dois sensores, "SensorEsq" e "SensorDir". Foi tambm atribuda varivel "SensorEsq" o valor
5, e varivel "SensorDir", o valor 0. Lembrando que essas duas variveis so do tipo inteiro,
portanto foi includa antes da declarao delas a expresso "int".Essa declarao inicial foi feita
para facilitar o entendimento do cdigo, quando tais variveis forem chamadas pela funo
responsvel pela leitura analgica dos sensores. At o momento ento, nosso cdigo est como
mostra a figura 6.6, devidamente comentado (comentrios aparecem aps os caracteres "//").

63

Figura 6.6 Primeira parte do cdigo dos sensores


Como visto na figura 6.6, foram apenas declaradas as variveis responsveis por
captarem os valores dos sensores da esquerda e direita e atribudas os valores referentes aos
pinos do conversor analgico (embutido no ATMega 328) qual esto conectadas. Essas
variveis foram declaradas no incio do programa por serem variveis globais, podendo ser
usadas tanto dentro das funes "void setup()" como "void loop()".
No ser preciso declarar o modo dos pinos do conversor analgico-digital dentro da
funo "void setup()", conforme foi mostrado em relao ao pino 13, no captulo 3, porque estes
pinos so naturalmente de entrada. Entretando, foi escrita a funo "Serial.begin(9600);" para
iniciar a comunicao serial entre a placa Arduino e o computador (na velocidade de 9600 bps).
Isso vantajoso para correo de erros, e aqui foi usado para perceber se a faixa de recepo dos
sensores era equivalente. O cdigo ento fica conforme a figura 6.7.

Figura 6.7 Segunda parte do cdigo dos sensores

64

Agora, feita a leitura dos dois sensores usando as funes "analogRead(SensorEsq);" e


"analogRead(SensorDir);" dentro da funo "void loop()" e atribuindo tais valores s variveis
"esq" e "dir", do tipo inteiro, que agora so escritas no incio do programa, abaixo das variveis
"SensorEsq" e "SensorDir", como mostra a figura 6.8.

Figura 6.8 Terceira parte do cdigo dos sensores


Por fim, apenas para critrio de anlise dos sensores, no sentido de ver se a resposta dos
mesmos equivalente, inserida aps a leitura dos dois pinos analgicos algumas funes
referentes mostrar na tela atravs de comunicao serial, o valor recebido pelos sensores,
conforme mostra a figura 6.9.

65

Figura 6.9 ltima parte do cdigo dos sensores


Assim, essa ltima parte da impresso dos valores na tela realizada a cada dois
segundos, apenas para se ter certeza se os sensores esto calibrados fisicamente. Em uma etapa
posterior do projeto esse pedao de cdigo retirado, sendo inserida uma funo para calibrar os
sensores. Alm disso, a leitura dos sensores processada e enviada aos drivers dos motores.
Maiores detalhes sero abordados nos captulos subseqentes.

66

CAPTULO VII

7 Desenvolvimento e construo do sistema de locomoo do rob


7.1 Introduo
Para que o rob ande sobre uma linha, preciso que ele possua algum sistema de
locomoo. Podem ser usadas pernas com junes de servo motores simulando as articulaes,
motores com ps para que ele se locomova na gua e hlices para que ele se locomova no ar, por
exemplo.
No caso deste rob seguidor de linha, foi usado dois motores de corrente contnua (CC),
duas rodas e dois drivers para compor o sistema de locomoo. Cada um destes itens ser
explicado com detalhes neste captulo, bem como o princpio que rege a locomoo do rob.
7.2 O Sistema de Direo Diferencial
Para este rob seguidor de linha, foi escolhido o sistema de direo diferencial para
projetar a locomoo do rob. Com este princpio, possvel fazer com que o rob se locomova
para frente e para os lados, usando apenas dois motores, duas rodas e uma roda boba (que
acompanha a direo das outras duas). Este rob no consegue andar para trs, porque no foi
projetado um driver especficio para isso, como uma ponte-H por exemplo. Entretanto, no caso
da utilizao desta, o rob pode dar r usando o mesmo princpio da direo diferencial.
Para que o rob se locomova para frente, basta que as duas rodas girem ao mesmo tempo
e com a mesma intensidade, e para que isso ocorresse de forma homognea o rob foi projetado
de forma simtrica: os drivers, motores e rodas de cada lado so idnticos. Essa configurao
est mostrada na figura 7.1.

67

Figura 7.1 Direo diferencial - andar para frente


Para que o rob se locomova para a esquerda, preciso frear e parar a roda da esquerda e
continuar movimentando a da direita, conforme mostra a figura 7.2.

Figura 7.2 Direo diferencial - andar para esquerda


Por fim, para que o rob se locomova para a direita, preciso frear a roda da direita e
continuar movimentando a da direita, conforme mostra a figura 7.3.

68

Figura 7.3 Direo diferencial - andar para direita


Por se tratar de um rob seguidor de linha autnomo, e no de um carrinho de controle
remoto, por exemplo, essa alternao entre os movimentos da roda no aleatria, nem est
sujeita ao controle de ningum, mas sim est sincronizada com a verificao da linha e ausncia
de linha realizada pelos sensores, pelo processamento do microcontrolador e pela resposta dada
por ele aos drivers. Os drivers dos motores CC sero abordados no prximo tpico, enquanto que
a lgica e processamento do microcontrolador sero abordados no tpico logo em seguida a este.

7.3 Desenvolvimento e construo dos drivers dos motores CC


Com apenas a corrente eltrica que sai de cada porta do microcontrolador, seria invivel
controlar os dois motores CC que fazem o rob andar. Ento, a estratgia adotada foi utilizar
drivers, para amplificar a corrente da sada do microcontrolador.
O componente principal desse driver um transistor darlington TIP 120. O circuito
eltrico interno do mesmo mostrado na figura 7.4, que representa a primeira pgina do
datasheet deste, disponvel online pela empresa Fairchild Semiconductor. Porm, possvel usar
qualquer outro componente TIP 120 de qualquer outro fabricante. Ainda poderia ser usado outro
transistor que respondesse as condies dessa placa, como corrente de acionamento dos motores
maior que 40mA, tenso de entrada nos motores de aproximadamente 5V, e corrente de excitao
do transistor de no mximo 40mA.

69

Figura 7.4 Circuito interno TIP 120.


Apesar de este componente ser o principal do driver dos motores, foi desenvolvido um
mdulo especfico para este fim, para facilitar a modularizao do rob e tornar assim o kit de
robtica mais didtico. A tabela 7.1 mostra os custos da construo dos driver enquanto que o
esquemtico dos drivers est mostrado na figura 7.5, lembrando que os dois drivers (um para
cada motor) so idnticos, com o mesmo objetivo para com os sensores: tornar o rob simtrico.

Tabela 7.1 Lista de componentes e custo de construo dos drivers dos motores
Componente
TIP 120
Resistor 1
Diodo 1N4001
Conector

Quantidade
2
2
2

parafusvel 3

pinos
Total Drivers

Custo Unitrio
R$ 1,20
R$ 0,05
R$ 0,10

Custo Total
R$ 2,40
R$ 0,10
R$ 0,20

R$ 1,50

R$ 3,00

R$ 0,90

R$ 1,80

Eletrnica Santos

pinos
Conector
parafusvel 2

Local de compra

Dummont, rua 68
(Goinia)

R$ 7,50

70

Figura 7.5 Esquemtico drivers dos motores.


Embora todas as fontes de compra de componentes se refiram Eletrnica Santos
Dummont, no foi feito com a inteno de gerar nenhum patrocnio para a empresa. O que ocorre
que a mdia de coponentes eletrnicos em Goinia basicamente constante, sendo que alguns
componentes so mais caros em umas lojas e mais baratos em outras. Ento foi feita a referncia
a essa loja por esta possuir uma grande quantidade e variedade de componentes eletrnicos,
sendo uma boa opo para qualquer iniciante em eletrnica que queira comprar componentes em
Goinia. Entretanto, para se encontrar componentes realmente baratos e com variedade muito
superior aos encontrados em Goinia, recomenda-se importar da China, atravs de meios como
Dealextreme e eBay, j mencionados anteriormente.
Assim, os sinais enviados pelo microcontrolador ativaro a base do transistor TIP 120.
(que, apesar de ser um transistor Darlington, est representado como um transistor simples no
esquemtico acima). Dessa forma, ser possvel controlar a corrente que atravessa o motor,
porque a mesma que atravessa o emissor e o coletor do TIP 120. Um diodo foi colocado entre o
coletor e o emissor do transistor para que permitisse a circulao da corrente residual, gerada em
sentido contrrio pelo chaveamento do motor. Um resistor pequeno (1) foi posicionado entre a
a porta do microcontrolador que emitir sinais PWM e a base do transistor apenas para que a
ligao no fosse direta, e com inteno de limitar a corrente, podendo ser substitudo por um
resistor maior, sem alterao significativa do projeto (bastando desoldar este e soldar outro
resistor).
Aps o projeto do esquemtico do circuito, foi desenhado o layout deste usando tambm
o software EAGLE. A figura 7.6 mostra o layout do driver do motor.

71

Figura 7.6 Layout do driver do motor


Este layout foi realizado usando os mesmos princpios dos outros mdulos: Facilitar a
confeco da placa e a soldagem dos componentes. Neste layout no necessrio colocar
nenhum jumper. Aps esse processo, foi realizada a impresso monocromtica do circuito,
usando uma impressora laser. A figura 7.7 mostra o arquivo em PDF deste circuito.

Figura 7.7 Layout do driver em PDF.


Aps a impresso desde layout em papel couch, o mesmo foi recortado e o desenho foi
transferido para a placa de fenolite cobreado, conforme os mdulos anteriores. Depois, foram
soldados os componentes, conforme mostra a figura 7.8.

72

Figura 7.8 Drivers dos motores concludos.


Nesta figura 7.8 possvel ver o resistor e o diodo prximos ao Transistor Darligton TIP
120, no centro da placa. Na extremidade inferior, existe um conector parafusvel de trs pinos,
sendo o primeiro correspondente ao GND (Referncia), o segundo para entrada do sinal PWM
(providenciado por um dos conectores presentes na placa) e o terceiro para alimentao de 5V.
Na extremidade superior, pode ser visto um conector parafusvel de dois pinos, para
conectar o motor CC. Para inverter o sentido de rotao dos motores (em caso de conexo
errada), basta inverter os fios e religar ao conector parafusvel.
7.4 Programao dos motores
Finalmente, para que os drivers funcionem corretamente em relao aos sernsores,
preciso programar o microcontrolador ATMega 328 pensando na integrao entre eles. O cdigo
para a programao dos sensores ser continuado aqui, para a programao dos drivers/motores.
Iniciaremos a partir da figura 6.8, abordada no captulo anterior e transposta para aqui com o
nome de figura 7.9 e chamada de "incio da programao dos motores".

73

Figura 7.9 Incio da programao dos motores


O primeiro passo aqui declarar as variveis que acionaro os dois motores. O detalhe
mais interessante a se notar aqui que a pinagem do Arduino diferente da pinagem do ATMega
328. Isso significa que o pino 13 usado para acender o LED da placa Arduino (e o mesmo usado
na programao) no o pino 13 do microcontrolador ATMega 168/328, e sim o 19. A figura
7.10 mostra as equivalncias entre os pinos do microcontrolador e da programao.

Figura 7.10 Equivalncias entre ATMega168/328 e Arduino

74

Dessa forma, conforme a figura 7.5, os motores esto ligados nos pinos 12 e 16 do
ATMega 328. O motor da esquerda est ligado no pino 12 e o motor da direita est ligado no
pino 16. Porm, segundo a figura 7.10, o pino 12 equivale ao pino digital 6 e o pino 16 equivale
ao pino digital 10 na programao do Arduino. Assim, foram declaradas duas variveis,
MotorEsq e MotorDir, para controlar os motores. Essas duas variveis foram declaradas no incio
do cdigo, para servirem de variveis globais, e dentro da funo "void setup()", foram
declaradas como pinos de sada. A figura 7.11 mostra o cdigo geral com estes procedimentos
inseridos.

Figura 7.11 Cdigo com a declarao dos Motores


Aps a declarao destas variveis, foram criadas trs funes para coordenar o
funcionamento dos motores. Infelizmente no foi possvel controlar os motores por PWM, como
previsto inicialmente. Entretanto, foi criado um "PWM forado", baseado no tempo em que o
motor ficou ligado e no tempo em que ele ficou desligado. Existem apenas 3 estados que o rob
deve executar para que o mesmo ande sobre a linha.

75

O primeiro estado para girar ambas as rodas ao mesmo tempo, caso o rob identifique a
linha,

para

que

mesmo

siga

reto.

Para

essa

situao

foi

criada

funo

"AndarParaFrente()".Caso encontrar uma curva para a esquerda, o motor da direita deve girar e o
motor da esquerda deve ficar esttico. Para isso foi criada a funo "AndarParaEsquerda()". No
ltimo caso, foi criada a funo "AndarParaDireita()", e caso o rob encontre uma curva para a
direita, essa funo deve ser chamada. Esta ltima faz o motor da esquerda girar e o da esquerda
parar.
A figura 7.12 mostra o cdigo das funes "AndarParaFrente()", "AndarParaEsquerda()"
e "AndarParaDireita()".

Figura 7.12 Declarao das funes para comandar os trs estados do rob
Cada uma destas trs funes chama outra. Esta segmentao do cdigo no necessria,
mas foi feita para aumentar a didtica e o entendimento, e tambm para que novas trs funes
pudessem ser criadas, "DoisMotores();", para acionar os dois motores ao mesmo tempo,
"MotorEsquerda();", para acionar somente o motor da esquerda, e "MotorDireita();" para acionar
somente o motor da direita. As funes so do tipo void pois no retornam nada, somente
chamam a funo que est dentro delas.
A funo "DoisMotores();" est mostrada na figura 7.13.

76

Figura 7.13 Funo DoisMotores().


Como a funo "analogWrite()" no estava funcionando para acionar os motores CC, a
sada foi implementar um PWM forado, declarando manualmente o tempo em que os motores
ficariam ligados e desligados. Dessa, forma, na funo DoisMotores(), os Motores Esq e Dir so
ligados, esperado 0,1 segundo, so desligados, e outro 0,1 segundo esperado. Dessa forma, os
motores ficam chaveando com intervalos de 0,1 segundo, sempre que essa funo chamada.
Na figura 7.14 mostrada funo MotorEsquerda().

Figura 7.14 Funco MotorEsquerda().


Essa funo semelhante anterior, em que feito um PWM forado para chavear o
motor da Esquerda em intervalos de 0,1 segundo. A nica diferena que essa funo controla
apenas o motor da esquerda.
Na figura 7.15 mostrada a funo MotorDireita().

77

Figura 7.15 Funo MotorDireita().


Essa funo realiza o mesmo procedimento da funo MotorEsquerda(). A nica
diferena que ela controla o motor da direita.
O cdigo das figuras 7.12 a 7.15 so inseridos aps a funo void loop(), logo na
sequncia do cdigo mostrado na figura 7.11.
O prximo passo agora sincronizar as funes dos Estados do Rob com a resposta dos
sensores. Inicialmente, foi feito uma medio aproximada dos sensores usando a funo serial do
Arduino e a linguagem Processing. Dessa forma, foi visto que os valores dos sensores estavam
desbalanceados, sendo que o sensor da esquerda detectava ausncia de linha para valores digitais
acima de 750 e o sensor da direita detectava ausncia de linha para valores digitais acima de 700.
(valores so referentes ao conversor analgico digital e vo de 0 a 1023). Dessa forma, foi criado
um cdigo para tomada de deciso, e o mesmo mostrado na figura 7.16.

Figura 7.16 Cdigo para tomada de deciso entre sensores e motores

78

Entretanto, esta de longe uma das piores formas de se projetar um rob seguidor de
linha, porque o mesmo s estar programado para operar em um ambiente. Fatores como
refletncia da superfcie, iluminao externa e carga da bateria influenciaro os valores recebidos
pelos sensores, alterando a forma do rob seguir a linha. Para isso, necessrio que o rob se
calibre toda vez que for iniciado, para que ele se adapte a qualquer ambiente. Isso ser mostrado
agora.
Para calibrar os sensores durante o incio do programa, foi usado a funo "millis();".
Toda vez que o microcontrolador inicia, essa funo comea a contar o tempo, em milisegundos.
A mesma ser usada para que o rob se calibre apenas durante alguns poucos segundos, e depois
siga com o cdigo para seguir a linha. Antes, foram criadas as variveis "esqCalib" e "dirCalib",
para armazenar o valor dos sensores esquerdo e direito durante a calibrao. Esse incio est
mostrado na figura 7.17.

Figura 7.17 Declarao das variveis para calibrao


Estas variveis so do tipo inteiro, e foram adcionadas o valor 0 as mesmas, que tem a
ver com a prxima parte do programa.
A prxima etapa do programa a calibrao em si. A calibrao est escrita antes de tudo
na funo loop, pois a primeira coisa que o rob deve fazer antes de iniciar. Na calibrao, foi
previsto um tempo de 5 segundos para o rob armazenar os valores recebidos de cada sensor.
Esses valores sero comparados com as variveis esqCalib e dirCalib, e caso forem maiores,
sero armazenados nessas duas variveis.
Foi por isso que as variveis esqCalib e dirCalib foram declaradas com valor 0, pois os
valores dos sensores (que estaro entre 0 e 1023), sempre sero maiores que estas duas variveis

79

inicialmente, e assim as variveis esqCalib e dirCalib recebero o valor correspondente da


refletncia do papel sem linha. Lembrando que durante a etapa de calibrao, os sensores
devero estar em paralelo com um pedao de linha reta do percurso. Na figura 7.18 est
mostrado o cdigo da calibrao dos sensores.

Figura 7.18 Cdigo de calibrao dos sensores


Conforme mostra a figura 7.18, o cdigo "fora" os valores das variveis esqCalib e
dirCalib a serem sempre iguais a leitura dos sensores da esquerda e direita do rob,
respectivamente. Assim, durante a etapa em que o rob deve seguir a linha, ele sempre agir
baseado no valor destas variveis da calibrao.
Agora, ser apresentado o cdigo referente a tomada de deciso do rob, baseado na
resposta dos sensores, na figura 7.19.

80

Figura 7.19 Cdigo com os sensores e motores sincronizados


Este ltimo pedao de cdigo conclui toda a programao do rob seguidor de linha.
Com os valores de esqCalib e dirCalib, o rob entende que est em cima da linha. Caso o sensor
da esquerda for menor que o valor de esqCalib -50 (para tolerncia), ento o rob deve andar
para a esquerda, visto que o sensor da esquerda est sobre a linha, indicando curva para a
esquerda. Caso o sensor da direita estiver sobre a linha, ou seja, com o valor dir menor que
dirCalib - 50 (para tolerncia tambm), o rob deve virar para a direita. Caso nenhum dos dois
casos se configure, o rob deve andar para frente, pois ele supe que est sobre a linha.
Usando este cdigo, o rob respondeu bem durante o percurso de uma linha fixa no cho,
e com um leve curva para a esquerda. Porm, alguns parmetros com relao velocidade dos
motores tiveram que ser ajustados. Os mesmos no sero alterados aqui, pois o rob tende a se
comportar de formas diferentes, at para terrenos diferentes (implicando um torque maior nas
rodas). O que deve acontecer de fato para que o rob funcione, ajustar os parmetros, at ver
quais variveis esto precisando ser aperfeioadas.
Simulando uma linha com a palma das mos o rob respondeu bem, de acordo com o
cdigo, ento conclui-se que a lgica est correta. O que falta aperfeioar a estrutura como um
todo, para que o rob siga qualquer percurso em qualquer terreno. Pode ser necessrio alterar os

81

motores, usando uma caixa de reduo, por exemplo, e usando tambm uma bateria com maior
carga. O cdigo completo est todo disponvel no ANEXO.

82

CAPTULO VIII
8 Montagem do rob passo a passo
8.1 Introduo
Conforme dito nos primeiros captulos, o objetivo deste trabalho desenvolver um kit de
robtica de baixo custo, a fim de poder ser ministrado na forma de curso para alunos de ensino
mdio. Isso significa que o kit deve ser didtico, e possibilitar que os alunos customizem seus
prprios robs e vejam a diferena que cada customizao possibilita ao resultado final, que
seguir uma linha em uma superfcie.
Dessa forma, foi pensada uma maneira para que os alunos pudessem encaixar os vrios
mdulos descritos nos captulos anteriores da forma que melhor lhes fossem conveniente. Essa
forma de customizao ser discutida nesse captulo, bem como a montagem do rob segundo
uma das vrias formas de montar.
8.2 Primeiro prottipo da estrutura
Para que o aluno confeccionasse os mdulos da maneira que quisesse, seguindo sua
imaginao, foi desenvolvido um sistema de tranar os mdulos em uma placa principal, e para
isso foi feita uma matriz de furos em uma placa de acrlico de 15x15cm e 2mm de espessura para
servir de suporte aos demais mdulos. Foram usadas outras placas menores, de 4x5cmm e 2mm
de espessura, para servirem de suporte aos motores.. A figura 8.1 mostra a furao completa de
uma das placas dos motores e do incio da furao da placa principal.

83

Figura 8.1 Incio da furao das placas de acrlico


Inicialmente a placa de acrlico que d suporte aos motores comeou ser furada primeiro,
porque existia a preocupao maior de como prender o motor cilndrico placa principal, e mais
ainda, como prend-lo em uma das placas de acrlico de suporte. Para que isso fosse possvel,
foram realizados vrios furos nas placas de acrlico que do suporte aos motores, de forma que
ficasse fcil de tranar fios em volta dos motores e d placa, amarrando-os depois, conforme
mostra a figura 8.2.

Figura 8.2. Placa de suporte pro motor


Os furos foram feitos usando uma furadeira de bancada, presente no laboratrio de
Microprocessadores e Microcontroladores da UFG, conforme mostra a figura 8.3.

84

Figura 8.3 Furadeira de bancada


Posteriormente, foram conectados o mdulo de regulao de tenso e os sensores na
placa de acrlico principal. A figura 8.4 ilustra esse procedimento, enquanto que a figura 8.5
mostra a placa de uma forma geral.

Figura 8.4 Regulador de tenso amarrado placa de acrlico

85

Figura 8.5 Sensores e mdulo regulador de tenso conectados placa de acrlico


Aqui j comeam a se notar um dos primeiros problemas: os sensores ficaram com os
conectores parafusveis virados para baixo, dificultando a ligao dos fios. A figura 8.6 mostra a
conexo dos motores placa principal, perto do mdulo regulador de tenso.

Figura 8.6 Acoplagem dos motores placa principal


Aps isso, os drivers dos motores foram tranados na placa principal. A figura 8.7 mostra
como foi tranado, enquanto que a figura 8.8 mostra o resultado da conexo dos drivers placa
de acrlico principal.

86

Figura 8.7 Detalhe da conexo do driver placa de acrlico


No caso deste driver, bastou um fio amarrando de um lado a outro da placa para que o
mesmo ficasse firme.

Figura 8.8 Conexo dos drivers placa de acrlico principal.


O ltimo passo foi conectar o Crebro do rob e a bateria de 7,2V. A figura 8.9 ilustra
esse procedimento.

87

Figura 8.9 Todos os mdulos conectados placa de acrlico


Essa primeira verso ficou mais estvel do que se imaginava inicialmente, devido aos
motores estarem desbalanceados. Entretanto, esse primeiro prottipo no estava otimizado o
bastante para que fosse utilizado para seguir a linha. Foi preciso projetar um sistema que ligasse
os dois motores em um eixo, e que ao mesmo tempo pudesse ser movido pela estrutura de
acrlico. Essas mudanas sero comentadas amplamente na prxima seo.
8.3 Segundo prottipo da estrutura
Para este segundo prottipo, foi aproveitada a idia de amarrar as placas do Crebro,
Regulador de Tenso e drivers dos motores placa de acrlico. Entretanto, os sensores e os
motores foram parafusados, bem como uma roda boba que foi adicionada. A figura 8.10 mostra
como foram conectados os motores.

88

Figura 8.10 Conexo alinhada dos motores


Nessa nova configurao os motores foram soldados em uma tira de metal, usando solda
eletrnica comum. Depois, foram feitos dois furos na tira de metal, para que o eixo dos motores
pudesse ser parafusado na placa de acrlico. Essa nova forma no impede que os alunos
modifiquem o rob, uma vez que basta desparafusar a estrutura dos motores e parafusar em outra
regio da placa. A figura 8.11 mostra uma viso de cima do acoplamento dos motores.

Figura 8.11 Viso de cima do acoplamento dos motores

89

Os motores foram encaixados nas rodas por presso, mas antes foi desenvolvido uma
pequena roda no torno mecnico, para encaixar as rodas do rob ao eixo dos motores. A pequena
roda de alumnio mostrada na figura 8.12.

Figura 8.12 Detalhe de encaixe da roda no eixo do motor


Quanto roda boba, foi feito um sistema bastante interessante. Primeiro, foi feito um furo
em um parafuso, e depois passado por ele um fio de cobre (destes de instalaes eltricas
residenciais). Com esse fio de cobre, dada a sua relativa flexibilidade, foi feito o eixo de uma
roda. O fato de o fio estar dentro de um parafuso, faz com que ele gire tranquilamente no eixo
vertical. A figura 8.13 mostra os detalhes da roda boba.

Figura 8.13 Detalhe da roda boba

90

Por fim, foi projetada e construda uma nova configurao para os sensores. Conforme a
figura 6.5 do captulo 6, o fotoresistor e o LED dos sensores est virado para o mesmo lado da
placa que os conectores parafusveis de 3 pinos. Caso isso fosse mantido, acarretaria em um
problema de facilidade de uso para o usurio final, dado que seria muito difcil passar conectar
os fios entre as placas. Para isso, os fotoresistores e os LEDs dos sensores foram resoldados, do
outro lado da placa (do lado do cobre), conforme mostra a figura 8.14.

Figura 8.14 Detalhe da nova configurao dos sensores


Como mostrado tambm na figura 8.14, foi usada solda eletrnica para soldar o terra das
placas hastes de cobre, tambm feitas com fios de instalaes eltricas residenciais comuns. Foi
feito isso para que fosse possvel parafusar os sensores placa de alumnio atravs de um
suporte, e que ao mesmo tempo possibilitasse o aluno de retirar o sensor e coloc-lo em outro
lugar, para observar os efeitos que isso traria no desempenho final do rob. A figura 8.15 mostra
como foi parafusado as hastes dos sensores placa de acrlico.

91

Figura 8.15 Detalhe das hastes dos sensores parafusadas


Por fim, a figura 8.16 mostra o rob finalizado, com todos os mdulos amarrados na
placa de acrlico, com excesso dos motores e dos sensores, que agora esto parafusados atravs
de suportes, para dar maior estabilidade ao rob.

Figura 8.16 Rob finalizado

92

Como mostra a figura 8.15, os sensores do rob ficaram rebaixados, graas ao suporte
feito especialmente para eles. Isso ajuda bastante na questo de diminuir a interferncia da
iluminao externa dos sensores, alm de otimizar o funcionamento dos mesmos. A figura 8.15
tambm mostra todos os fios conectados entre os mdulos, e isso foi feito utilizando fios da
mesma cor, para funes semelhantes (entrada dos sensores, GND, VCC), para aumentar a
didtica do rob. As ligaes foram feitas conforme os esquemticos dos mdulos, mostrados
nos captulos anteriores.
Porm, juntamente com este trabalho, ser disponibilizado todos os arquivos EAGLE e
PDF, para que seja possvel reproduzir e at modificar o rob construdo aqui, sem precisar fazer
engenharia reversa. Tambm ser disponibilizado a "sketch" do cdigo em Arduino.
8.4 Custo da estrutura
Em relao ao custo da estrutura, pode se contabilizar apenas a placa de acrlico, que foi
realmente comprada. O restante do processo foi realizado dentro da Escola de Engenharia
Eltrica, sem incluir nenhum custo final construo do rob. Entretanto ser adcionado um
valor de aproximadamente R$ 10,00, referente ao valor das rodas, e da sucata utilizada para
construir os suportes. O custo detalhado est mostrado na tabela 8.1.
Tabela 8.1 Lista de componentes e custo de construo da Estrutura do Rob
Componente
Placa acrlico

Quantidade

Local de compra

Custo Unitrio

Custo Total

15x15mm (2mm

Indusplac

R$ 20,00

R$ 20,00

R$ 10,00

R$ 10,00

espessura)
Rodas e sucata
em geral
Total Estrutura

R$ 30,00

CAPTULO IX

93

9 Oramento Geral
9.1 Introduo
Quando o projeto do kit de robtica de baixo custo ainda era uma idia durante uma
reunio de Pesquisa e Desenvolvimento na sede da ELO Engenharia Jnior, fez-se uma mdia de
quanto deveria custar o kit de robtica. Isto , com o baixo oramento destinado a esse projeto,
existia a real preocupao em se gastar o menos possvel para construir cada kit de robtica. A
idia era de que o rob no deveria custar mais de R$ 200,00 para que considerasse realmente
um kit de robtica de baixo custo.
Neste captulo ser apresentado o valor total para se construir esse kit de robtica de
baixo custo, bem como explicaes de como fazer para se gastar menos ainda, com a construo
de uma verso melhorada.
9.2 Custo total de construo do rob
Com base nas tableas apresentadas nos captulos anteriores, e reunindo os valores totais
das mesmas em uma tabela nica, temos a tabela geral de custos do rob, representada na tabela
9.1.
Tabela 9.1 Tabela geral de custos do rob
Mdulo
Crebro
Regulador de tenso
Sensores
Drivers
Estrutura
Custo Total

Custo
R$ 53,25
R$ 5,03
R$ 6,10
R$ 7,50
R$ 30,00
R$ 101,88

Conforme pode ser visto, o oramento est bem abaixo do valor idealizado inicialmente,
sendo que de R$ 200,00 caiu para R$ 101,88. O valor real est ainda mais baixo que este, visto
que foram adcionados alguns valores a mais durante o processo, referentes a compra de placas de

94

fenolite cobreado a mais, porque algumas estragaram durante o processo de aprendizagem e com
a precificao da sucata, que pode ser considerada "de graa", em uma anlise mais prxima da
realidade.
Assim, pode se dizer que o custo total do rob est "por volta de R$ 100,00", que
praticamente a metade do valor pensado inicialmente, e muito mais barato que outros kits iniciais
que se compram no mercado.
Vale salientar, entretanto, que embora o rob construdo nesse trabalho tenha uma
flexibilidade considervel, vrias melhorias precisam ser feitas para que ele seja um kit de
robtica comercial. Porm, podem ser construdos robs que desviam de obstculos e robs que
seguem a luz (fotvoros), apenas trocando os sensores, sem modificar o restante dos mdulos ou
da estrutura.
O custo do projeto aumentaria bastante, caso tivssemos que comprar todas as
ferramentas utilizadas gratuitamente na Universidade, e diminuiria tambm, caso fossem
utilizados outros materiais, como papelo prensado, em fez da placa de acrlico para fazer a
estrutura

9 Concluso

95

O resultado do trabalho foi bastante satisfatrio, provando ser possvel construir kits
didticos de robtica de maneira simples e barata, utilizando a plataforma de prototipagem de
eletrnicos open-source e open-hardware, Arduino. Isso prova tambm que a plataforma Arduino
ideal para realizar projetos de computao fsica, relacionados ou no robtica, pois tem uma
ampla comunidade online que est sempre desenvolvendo projetos e apresentando as solues e
tambm por ser acessvel financeiramente. Espera-se que com este trabalho, outros alunos se
interessem em fazer projetos usando Arduino. Quanto ao kit de robtica de baixo custo, foi
atingida a proposta inicial, que era de construir um rob customizvel, e que fosse acessvel para
se implementar em escolas pblicas de ensino mdio. Devero ser feitos vrios aperfeioamentos
para que o rob fique otimizado para ser apresentado como um kit comercial, porm o passo
inicial j foi dado: a construo do primeiro prottipo funcional. Este trabalho continuar a ser
amplamente melhorado, atravs do projeto de extenso "Engenharia nas Escolas" da UFG.

REFERNCIAS

96

[1]UFMG. Curso de Programao em C, disponvel em


<http://www2.dcc.ufmg.br/disciplinas/pc/source/introducao_c_renatocm_deeufmg.pd
f>. Acesso em 04/12/2011.
[2] Rodrigo Calvos, Raul Alejos. Arduino Documentary disponvel em
<http://vimeo.com/18539129?
utm_campaign=avalon1982&utm_medium=twitter&utm_source=am6_feedtweet >
Acesso em 04/12/2011

[3]Google. Android ADK para Arduino, disponvel em


<http://developer.android.com/guide/topics/usb/adk.html> Acesso em 04/12/2011
[4]Wikipedia. Physical Computing <http://en.wikipedia.org/wiki/Physical_computing>
Acesso em 04/12/2011

[5]Ben Fry, Casey Reas. Processing. <http://www.processing.org/> Acesso em


04/12/2011

[6] Robotica.eng.com.br. Sistema de Direo Diferencial <


http://www.robotica.eng.br/Cinematica.htm> Acesso em 04/12/2011

[7] eBay, disponvel em <http://www.ebay.com/> Acesso em 05/12/2011


[8] DealExtreme, disponvel em < http://www.dealextreme.com/> Acesso em 05/12/2011
[9] Eletrnica Santos Dummont, rua 68 (Goinia), disponvel em <
http://www.apontador.com.br/local/go/goiania/eletroeletronicos/BS8ZGZL3/eletronic
a_santos_dumont_setor_central.html> Acesso em 05/12/2011.

ANEXO

97

Cdigo completo do Rob (Arduino)


int SensorEsq = 5; // Atribui o valor 5 varivel inteira SensorEsq
int SensorDir = 0; // Atribui o valor 0 varivel inteira SensorDir
int esq; // Varivel esq para receber a leitura do sensor da Esquerda
int dir; // Varivel dir para receber a leitura do sensor da Esquerda
int MotorEsq = 6; // Atribui o pino 6 do Arduino varivel MotorEsq (Motor
Esquerda)
int MotorDir = 10; // Atribui o pino 6 do Arduino varivel MotorDir (Motor
Direita)
int esqCalib = 0;
int dirCalib = 0;

void setup()
{
//Serial.begin(9600); // Incio da comunicao serial a 9600bps
pinMode(MotorEsq, OUTPUT); // Declarao do Pino do MotorEsq como sada
pinMode(MotorDir, OUTPUT); // Declarao do Pino do MotorDir como sada
}
void loop()

98

{
if(millis()< 5000)
{
esq = analogRead(SensorEsq); // leitura do SensorEsq e atribuio varivel
esq
dir = analogRead(SensorDir); // leitura do SensorDir e atribuio varivel dir
if (esqCalib < esq)
{
esqCalib = esq;
}
if (dirCalib < dir)
{
dirCalib = dir;
}
}
else
{
esq = analogRead(SensorEsq); // leitura do SensorEsq e atribuio varivel
esq
dir = analogRead(SensorDir); // leitura do SensorDir e atribuio varivel dir

if (esq < (esqCalib - 50))


{
digitalWrite(MotorEsq,LOW);
AndarParaEsquerda(); // Chama a funo AndarPraFrente();

99

}
// Anda pra direita se o sensor esq detectar ausncia de linha e o dir detectar
linha
else if (dir < (dirCalib - 50)) //
{
digitalWrite(MotorDir,LOW);
AndarParaDireita(); // Chama a funo AndarPraDireita();
}
else
{
AndarParaFrente();
}
}
}
// Funes de Controle dos Estados do Rob (Frente, Direita e Esquerda)
void AndarParaFrente() // Faz o rob andar para frente
{
DoisMotores(); // Chama a funo "DoisMotores();"
}
void AndarParaDireita() // Faz o rob andar para Direita
{
MotorEsquerda(); // Chama a funo "MotorEsquerda();"
}

100

void AndarParaEsquerda() // Faz o rob andar para Esquerda


{
MotorDireita(); // Chama a funo "MotorDireita();"
}
// Funes de Controle dos Motores
void DoisMotores() // PWM com 50% de potncia no MotorEsq e MotorDir
{
digitalWrite(MotorEsq,HIGH); // Liga o MotorEsq
digitalWrite(MotorDir,HIGH); // Liga o MotorDir
delay(150); // Espera 0,1 segundo
digitalWrite(MotorEsq,LOW); // Desliga o MotorEsq
digitalWrite(MotorDir,LOW); // Desliga o MotorDir
delay(100);
}
void MotorEsquerda() // PWM com 50% de potncia no MotorEsq
{
digitalWrite(MotorEsq, HIGH); // Liga o MotorEsq (Motor Esquerda)
delay(150); // Espera 0,1 segundo
digitalWrite(MotorEsq,LOW); // Desliga o MotorEsq (Motor Esquerda)
delay(100);
}
void MotorDireita() // PWM com 50% de potncia no MotorDir

101

{
digitalWrite(MotorDir, HIGH); // Liga o MotorDir (Motor Direita)
delay(150); // Espera 0,1 segundo
digitalWrite(MotorDir,LOW); // Desliga o MotorDir (Motor Direita)
delay(100); // Espera 0,1 segundo
}