Você está na página 1de 40

SeTAI 2015

Carro Seguidor de Linha


Alexsandro Ferreira Coelho
IFCE Campus Juazeiro do Norte

Pgina 1

O que um carro seguidor de linha?


Rob de locomoo autnoma , que percorre uma
trajetria predeterminada , onde o rob segui uma linha
de cor preta em um fundo branco.

IFCE Campus Juazeiro do Norte

Pgina 2

Como funciona?
Basicamente consiste de um sistema de emisso e
deteco da luz refletida no solo atravs dos sensores
reflexivos e a partir da intensidade do sinal captado,
realiza o controle de dois motores de corrente continua
atravs de um circuito o Motor Shield L293D.

IFCE Campus Juazeiro do Norte

Pgina 3

Componentes
01-Placa Arduino Uno
01-Placa Motor Shield L293D
01-Kit Chassi com Motor DC 3-6V com Caixa de Reduo
e Eixo Duplo
02-Sensores Reflexivo tico Ir Tcrt 5000
01-Suporte para 4 pilhas 1,5V
01-Bateria 9V

IFCE Campus Juazeiro do Norte

Pgina 4

Componentes

IFCE Campus Juazeiro do Norte

Pgina 5

O que Arduino?
Arduino uma plataforma open-source de prottipos
eletrnicos baseados em hardware e software flexvel e
fcil de usar. destinado a artistas, designers, hobbyistas,
e qualquer pessoa interessada em criar objetos ou
ambientes interativos.

IFCE Campus Juazeiro do Norte

Pgina 6

O que Arduino?
O Arduino pode sentir o ambiente recebendo entradas
de uma variedade de sensores e pode modificar seu
arredor controlando luzes, motores e outros atuadores.
Linguagem de programao prpria;
Ambiente de desenvolvimento prprio;
Fabricado manualmente ou comprado;

IFCE Campus Juazeiro do Norte

Pgina 7

IFCE Campus Juazeiro do Norte

Pgina 8

Origem
O projeto iniciou-se na cidade de Ivrea, Itlia, em
2005,com o intuito de interagir em projetos escolares de
forma a ter um oramento menor que outros sistemas de
prototipagem disponveis naquela poca.
Os seu criadores foram:
Massimo Banzi
David Cuartielles
Tom Igoe
Gianluca Martino
David Mellis

IFCE Campus Juazeiro do Norte

Pgina 9

Origem

IFCE Campus Juazeiro do Norte

Pgina 10

Origem
Meno honrosa na categoria Comunidades Digitais em
2006, pela Prix Ars Electronica (Prmio de Artes
Eletrnicas). Foram vendidas 50.000 placas at outubro de
2008.
Alguns fatores que levaram o Arduino ao sucesso imediato:
Ambiente;
Linguagem;
Compilador;
Pessoas de vrias partes do mundo;

IFCE Campus Juazeiro do Norte

Pgina 11

Comunidades
Forum:
http://www.arduino.cc/forum/
Blog:
http://arduino.cc/blog/
Twitter:
http://twitter.com/arduinoteam
Laboratrio:
http://labs.arduino.cc/

IFCE Campus Juazeiro do Norte

Pgina 12

Por Que Arduino?


Cafeteira avisar atravs do Twitter que o caf est
pronto?
Rob que brinca com o cachorro?
Monitor de frequncia cardaca que grava o log em um
carto SD?
Receber SMS no celular ao receber um e-mail?
Fantasia que interage atravs de som e luzes?
Soluo: ARDUINO
IFCE Campus Juazeiro do Norte

Pgina 13

Por Que Arduino?


Descomplicado
No foi feito por Engenheiros para Engenheiros;
IDE roda em Windows, Mac e Linux;
Drivers rodam em Windows, Mac e Linux;
Bibliotecas
coisas simples;
coisas complexas;

IFCE Campus Juazeiro do Norte

Pgina 14

Por Que Arduino?


Baixo custo.
Open-source:
Freeduino;
Seeeduino;
Pinguino;
Paperduino;

IFCE Campus Juazeiro do Norte

Pgina 15

Hardware
Portas Digitais

Portas Analgicas

uC Atmel
Alimentao
Conexo USB

IFCE Campus Juazeiro do Norte

Conexo p/
Fonte Externa

Pgina 16

IFCE Campus Juazeiro do Norte

Pgina 17

Caractersticas do Uno
O Arduino UNO R3 uma placa de desenvolvimento
microcontrolada baseada no ATmega328P (datasheet).Ela
possui 14 pinos de entrada/sada digital (dos quais 6
podem ser usados como sadas analgicas PWM), 6
entradas analgicas, um cristal oscilador de 16 MHz, uma
conexo USB, uma entrada para alimentao, um
cabealho ICSP e um boto de reset. Ele contm tudo que
necessrio para que o microcontrolador funcione. Para
comear, apenas faa a conexo com um computador
atravs de um cabo USB ou use uma fonte de alimentao
de corrente contnua ou uma bateria.
IFCE Campus Juazeiro do Norte

Pgina 18

Microcontrolador

ATmega328P

Voltagem operacional

5V

Voltagem de alimentao (recomendada) 7-12V


Voltagem de alimentao (limites)

6-20V

Pinos I/O digitais

14 (dos quais 6 podem ser sadas PWM)

Pinos de entrada analgica


Corrente contnua por pino I/O

6
40 mA

Corrente contnua para o pino 3.3V

50 mA

Memria flash

32 KB (2KB usados para o bootloader)

SRAM
EEPROM
Velocidade de clock

2 KB
1 KB
16 MHz

IFCE Campus Juazeiro do Norte

Pgina 19

Motor Shield L293D


Motor Shield uma placa baseado no chip L293D e
com ele possvel controlar at 4 Motores DC, 2 Servos ou
2 Motores de Passo.

IFCE Campus Juazeiro do Norte

Pgina 20

Especificaes:
- Chip: 293D
- Permite o controle 4 Motores DC, 2 Motores de Passo ou 2 Servos.
- Tenso de sada: 4,5~36V
- Corrente de sada: 600mA por canal
- At 4 motores DC bidirecional com seleo individual de
velocidades de 8 bits (cerca de 0,5% de resoluo).
- At 2 Motores de Passo (Unipolar ou Bipolar) com bobina nica,
dupla ou passos interlaados.
- 4 Pontes H: 0,6A por Ponte (1,2A de pico) com proteo trmica e
diodos de proteo contra retroalimentao.
- Resistores Pull-Down que mantem os motores desativados durante
a entrada de alimentao.
- Boto de Reset Arduino disponvel no topo da placa.
- Terminais em bloco de 2 pinos e jumper para conexo de
alimentao externa.
IFCE Campus Juazeiro do Norte

Pgina 21

Sensor Reflexivo tico Ir Tcrt 5000


Por menos de 5 reais, ou seja, por menos do que voc
pagaria por duas xcaras de caf, voc tem um sensor
ptico reflexivo que voc pode usar em sensores de
movimento, interruptores, alarmes, contadores e robs,
apenas para citar alguns exemplos.
"- Ah, mas eu no sei o que um sensor ptico reflexivo"
Tudo bem, eu tambm no sabia, pelo menos no com esse
nome. Para entender como ele funciona, vamos dar uma
olhada na estrutura do sensor.

IFCE Campus Juazeiro do Norte

Pgina 22

Sensor Reflexivo tico Ir Tcrt 5000


Esse sensor tem 2 componentes no mesmo suporte:
um led infravermelho (cor azul) e um transistor IR (foto
transistor - cor preta), separados por uma pequena
"parede". Quando algum objeto se aproxima do sensor, a
luz infravermelha refletida no objeto, "passa" para o
outro lado e ativa o transistor:

IFCE Campus Juazeiro do Norte

Pgina 23

Sensor Reflexivo tico Ir Tcrt 5000


O tipo de objeto que voc quer detectar vai influenciar
diretamente na operao do sensor, j que, quanto mais
reflexivo o material, maior a distncia que o sensor vai
alcanar. Como exemplo, fiz um teste (sem preciso), onde
o sensor foi acionado com um pedao de papel (branco)
23 mm, uma rgua de metal foi detectada 30 mm e, com
um pedao de madeira escura, o sensor nem foi acionado.

IFCE Campus Juazeiro do Norte

Pgina 24

Motor DC 3-6V com Caixa de Reduo e Eixo


Duplo
O Motor DC 6V se diferencia dos demais motores por
possuir caixa de reduo e eixo duplo, tornando-se assim,
um produto de extrema funcionalidade utilizado por
hobistas e projetistas para o desenvolvimento de projetos
robticos e de automao residencial.
O Motor DC facilmente
aplicado em projetos robticos,
incluindo carrinhos e pequenos
robs, entre outros. Enfim, suas
utilidades so diversas, bastando
usar a criatividade.
IFCE Campus Juazeiro do Norte

Pgina 25

Motor DC 3-6V com Caixa de Reduo e Eixo


Duplo
Atravs dos dois plos existentes na ponta do Motor DC
6V, possvel fazer a inverso de polaridade, o que
possibilita ao motor girar tanto no sentido horrio quanto
anti-horrio.
Com sua exclusiva caixa de reduo com eixo duplo,
o Motor DC 6V apresenta um torque/fora de trabalho
considervel, porm se destaca no quesito torque,
alcanando uma carga sobre si relativamente elevada.

IFCE Campus Juazeiro do Norte

Pgina 26

IFCE Campus Juazeiro do Norte

Pgina 27

Software

IFCE Campus Juazeiro do Norte

Pgina 28

Ambiente de Desenvolvimento Integrado-IDE

IFCE Campus Juazeiro do Norte

Pgina 29

IFCE Campus Juazeiro do Norte

Pgina 30

Cdigo (sketch)
#include <Wire.h>
#include <AFMotor.h>
const int SensorDireito = 0;
const int SensorEsquerdo = 1;
AF_DCMotor motor1 (1);
AF_DCMotor motor4 (4 );
void setup()
{
motor1.setSpeed (70);
motor4.setSpeed (70);
delay (50);

}
IFCE Campus Juazeiro do Norte

Pgina 31

void loop()
{
int sLadoDireito = analogRead (SensorDireito);
int sLadoEsquerdo = analogRead(SensorEsquerdo);
if (sLadoDireito >= 200 && sLadoEsquerdo <= 200)
{
motor1.run (RELEASE);
motor4.run (FORWARD);
}
IFCE Campus Juazeiro do Norte

Pgina 32

else if (sLadoDireito <= 200 && sLadoEsquerdo >= 200)


{
motor1.run (FORWARD);
motor4.run (RELEASE);
}
else
{
motor1.run (FORWARD);
motor4.run (FORWARD);
motor1.setSpeed (70);
motor4.setSpeed (70);
}
}
IFCE Campus Juazeiro do Norte

Pgina 33

Cdigo Comentado
#include <AFMotor.h>
Incluir a biblioteca do motor shield.
const int SensorDireito = 0;
Defini como inteiro a varivel (Sensor Direito) e atribui ao pino A0 o
sensor do lado direito.
const int SensorEsquerdo = 1;
Defini como inteiro a varivel (Sensor Esquerdo) e atribui ao pino
A1 o sensor do lado esquerdo.
AF_DCMotor motor1(1);
Declara o motor direito como motor 1 (borne 1 do motor shield)
AF_DCMotor motor4(4);
Declara o motor esquerdo como motor 4 (borne 4 do motor shield)

IFCE Campus Juazeiro do Norte

Pgina 34

Cdigo Comentado
void setup()
Configuraes inicias, nessa parte o cdigo
executado uma nica vez
{
motor1.setSpeed(70);
Defini a velocidade do motor em 27%
motor4.setSpeed(70);
Defini a velocidade do motor em 27%
delay(50);
Aguarda 50 ms
}
IFCE Campus Juazeiro do Norte

Pgina 35

Cdigo Comentado
void loop()
Loop infinito, equivale o Main do C/C++
{
int sLadoDireito = analogRead (SensorDireito);
Declara como inteira a varivel sLadoDireito e atribui o valor
lido pelo sensor direito. (faixa 0 a 1023)
int sLadoEsquerdo = analogRead(SensorEsquerdo);
Declara como inteira a varivel sLadoDireito e atribui o valor
lido pelo sensor direito.
if (sLadoDireito >= 200 && sLadoEsquerdo <= 200)
Lao Se, compara a leitura dos dois sensores pticos, caso o lado
direito seja maior ou igual a 200 e o esquerdo menor ou igual a 200
ele executa a prxima linha
IFCE Campus Juazeiro do Norte

Pgina 36

Cdigo Comentado
{
motor1.run(RELEASE);
Motor direito traciona para trs (zig-zag)
motor4.run(FORWARD);
Motor esquerdo traciona para frente (zig-zag)
}
else if (sLadoDireito <= 200 && sLadoEsquerdo >= 200)
Lao Se Seno, compara a leitura dos dois sensores pticos, caso
o lado esquerdo seja maior ou igual a 200 e o direito menor ou
igual a 200 ele executa a prxima linha.

IFCE Campus Juazeiro do Norte

Pgina 37

Cdigo Comentado
{
motor1.run(FORWARD);
Motor direito traciona para frente (zig-zag).
motor4.run(RELEASE);
Motor esquerdo traciona para trs (zig-zag).
}
else
Lao seno

IFCE Campus Juazeiro do Norte

Pgina 38

Cdigo Comentado
{
motor1.run(FORWARD); Motor direito traciona para frente.
motor4.run(FORWARD); Motor esquerdo traciona para
frente.
motor1.setSpeed(70);
Defini a velocidade do motor em 27% .
motor4.setSpeed(70);
Defini a velocidade do motor em 27% .
}
}

IFCE Campus Juazeiro do Norte

Pgina 39

OBRIGADO PELA
ATENO

IFCE Campus Juazeiro do Norte

Pgina 40