Você está na página 1de 10

SEGUIDOR DE LINHA

Alexander Rosa da Silva RA - C98BEH2 Turma EA7P


Anderson Lima da Rocha RA - D07JAC0 Turma EA7P
Diana Ferreira dos Santos RA - D077EC3 Turma EA7P
Raiane Soares dos Santos RA - C801976 Turma EA7P

São José dos Campos - SP


2019
SUMÁRIO

1 OBJETIVO 2

2 INTRODUÇÃO 3

3 MATERIAIS E METODOS 4
3.1 CÓDIGO 5
4 RESULTADOS 6

5 CONCLUSÂO 7
REFERÊNCIAS BIBLIOGRÁFICAS 8

APÊNDICE 9

1
1 OBJETIVO

Construir um robô totalmente autônomo e com todos os componentes embarcados,


utilizando como elemento de controle uma placa Arduino.

2
2 INTRODUÇÃO

Por que utilizar a placa Arduino?


O Arduino tem sido usado em milhares de diferentes projetos e aplicações devido à
sua experiência de usuário simples e acessível. O software Arduino é fácil de usar para
iniciantes, mas flexível para usuários avançados.
Existem muitos outros microcontroladores e plataformas de microcontroladores
disponíveis para computação física. O Parallax Basic Stamp, o BX-24 da Netmedia, o
Phidgets, o Handyboard do MIT e muitos outros oferecem funcionalidade semelhante. Todas
essas ferramentas pegam os detalhes confusos da programação do microcontrolador e a
envolvem em um pacote fácil de usar. O Arduino também simplifica o processo de trabalho
com microcontroladores, mas oferece algumas vantagens:
Baixo custo de compra da placa. As placas Arduino são relativamente baratas
comparadas a outras plataformas de microcontroladores. Podendo ser montada manualmente,
e até mesmo os módulos pré-montados do Arduino custam menos de 50,00 dolares;
Ambiente de programação simples e claro. O Arduino Software (IDE) é fácil de usar
para iniciantes, mas flexível o suficiente para os usuários avançados aproveitarem também;
Compatível com diferentes sistemas operacionais. Com a sua plataforma cruzada o
software Arduino (IDE) é executado nos sistemas operacionais Windows, Macintosh OSX e
Linux. A maioria dos sistemas de microcontroladores são limitados ao Windows;
Software de código aberto e extensível. O software Arduino é publicado como uma
ferramenta de código aberto, disponível para extensão por programadores experientes. A
linguagem pode ser expandida através de bibliotecas C ++, e as pessoas que querem entender
os detalhes técnicos podem dar o salto do Arduino para a linguagem de programação AVR-C
na qual ele se baseia. Da mesma forma, é possível adicionar o código AVR-C diretamente nos
programas do Arduino.

3
3 MATERIAIS E MÉTODOS

• 1 Placa Arduino Uno;


• 1 Ponte H;
• 1 Chassi de acrílico 200mm x 150mm;
• 1 Protoboard;
• 1 Roda giratória de Ø 4mm;
• 2 Bateria 9 Volts;
• 2 Rodas de Ø 6mm;
• 2 Motores elétricos de 9 Volts;
• 2 Sensores infravermelho;
• 18 Jumps.

4
3.1 CÓDIGO

int dirA = 2; //Direção do motor A


int velA = 3; //Velocidade do motor A
int dirB = 4; //Direção do motor B
int velB = 5; //Velocidade motor B
int sensorA = A0;// Seleciona a entrada pro sensor A
int sensorB = A1;// Seleciona a entrada pro sensor B
int valorA;// Armazena o valor do sensor A
int valorB;// Armazena o valor do sensor B

void setup(){
pinMode(dirA, OUTPUT);// Configura a dirA como saída
pinMode(dirB, OUTPUT);// Configura a dirB como saída
digitalWrite(dirA, HIGH);// Ativa a dirA
digitalWrite(dirB, HIGH);// Ativa a dirB
Serial.begin(9600);
}

void loop(){
valorA = analogRead(sensorA);//Lê o sensor A
valorB = analogRead(sensorB);// Lê o sensor B
if(valorA<=300 && valorB<=300){
analogWrite(velA, 0);
analogWrite(velB, 0);
}// Se o valor lido for menor ou igual a 300 o carro para

if(valorA<=300 && valorB>=300){


analogWrite(velA, 0);
analogWrite(velB, 190);
}// Se o valorA for menor ou igual 300 e valorB maior ou igual 300, apenas a velocidade B é
acionada

if(valorA>=300 && valorB<=300){


analogWrite(velA, 190);
analogWrite(velB, 0);
}// Se o valorA for maior ou igual 300 e valorB menor ou igual 300, apenas a valocidade A é
acionada

if(valorA>=300 && valorB>=300){


analogWrite(velA, 190);
analogWrite(velB, 190);
}// Se valorA e valorB forem maior ou igual a 300, ambas as velocidades são acionadas
}
5
4 RESULTADOS

Teste 1: Após montagem de todos os componentes e a transferência do código para a placa


Arduino através da porta USB, o robô não respondeu quando posicionado seus sensores sobre
a faixa.

Teste 2: Verificou-se que a montagem do circuito estava incorreta, após efetuar as correções,
o robô passou a funcionar, porém apenas a roda traseira direita respondia ao sensor, que em
contato com a faixa demarcada, não efetuou movimentos.

Teste 3: Efetuou-se diversas alterações no código, com isso os motores passaram a responder,
porém quando em contato com a faixa demarcada, não efetuou movimentos.

Teste 4: Verificou-se que a ponte H necessitava de alimentação dedicada para um bom


funcionamento, pois a bateria de 9 volts estava alimentando a placa Arduino e a ponte H foi
ligada na mesma, porém como o Arduino não tem corrente para alimentar outros
componentes, a ponte H não estava funcionando corretamente.

Teste 5: Com duas baterias de 9 volts, o seguidor de faixa passou a funcionar porém não
estava fazendo o trajeto esperado.

Teste 6: Foram feitas diversas alterações no código para achar um valor que o robô andasse
na faixa branca e parasse na faixa preta, porém o mesmo não correspondeu.

Teste 7: Abaixamos os valores dos sensores, porém o robô não reconhecia e andava sem
sentido.

Teste 8: Foi realizado outros testes até achar um valor com que ele andasse sobre a faixa
branca, porém quando não está sobre a faixa branca o robô para, sem fazer as curvas do
circuito.

6
5 CONCLUSÃO
Após diversos teste e modificações no projeto inicial, os resultados obtidos não foram
os esperados. O seguidor de faixa não conseguiu concluir todo o percurso.
Analisando os resultados foi possível identificar alguns fatores que podem ser os
responsáveis pelas falhas na execução do projeto.
A utilização de apenas 2 sensores infravermelhos, pois a velocidade dos motores
estava muito alta, ocasionando o robô sair da faixa com facilidade. E ao diminuir a velocidade
a leitura dos sensores não se mostraram eficientes, não executando a leitura correta das faixas
delimitadas no percurso. E com a utilização de apenas dois sensores, não foi possível corrigir
tais falhas.
Não foi possível adicionar outro sensor ao projeto, ou substituir os sensores instalados,
para verificar se estavam em perfeito funcionamento. Levantou-se a hipótese de que a
utilização de três sensores poderia proporcionar uma identificação melhor do percurso. Não
podendo ser comprovada experimentalmente.
Os motores também não apresentaram bom funcionamento, em alguns momentos os
movimentos eram muito lentos ou incapaz de movimentar o robô, a substituição por motores
de melhor qualidade poderia proporcionar melhores resultados, porém não foi possível
substituí-los.
Entretanto, as ligações estavam corretas, os sensores conseguiram distinguir as partes
pretas e brancas no percurso e executar o proposto. Foi possível colocar em prática os
conceitos aprendidos em aula, entender as dificuldades do projeto e análise de falhas,
tornando a experiência positiva.

7
REFERÊNCIAS BIBLIOGRAFICAS

ARDUINO - INTRODUCTION. Disponível em:


<https://www.arduino.cc/en/Guide/Introduction>. Acesso em 24 maio 2019.

8
APÊNDICE A – IMAGENS

Figura 1: Robô Segue Faixa – visão lateral

Fonte: Do autor, 2019.

Figura 2: Robô Segue Faixa – visão superior

Fonte: Do Autor, 2019.