Criando um robô seguidor de linha com Arduino passo a passo

Este post trata-se de um tutorial que mostra os passos para montagem de um robô seguidor de linha usando a tecnologia Arduino. Apesar de usar vários componentes prontos, em algumas das etapas eu faço algumas improvisações, o que dá um certo toque “hand made” no robô.

Para criação do robô são necessários os seguintes materiais:

  • 1 placa Arduino UNO
  • 1 driver para motor L298N
  • 1 placa de acrílico retangular de 20 cm x 10 cm
  • 2 motores DC com caixa de redução e suas respectivas rodas
  • 1 roda boba ou 1 roda omnidirecional
  • 1 conector de bateria 9V
  • 1 bateria 9V alcalina ou recarregável com boa corrente (mín 320 mAh)
  • jumpers de conexão
  • 2 sensores de linha TCRT5000 ou similar
  • 1 mini protoboard
  • palitos de sorvete ou hashi
  • 2 parafusos M3 x 4 cm com 3 porcas para cada parafuso
  • 2 parafusos M3 x 5 cm com 2 porcas para cada parafuso
  • 6 (ou mais) parafusos M3 (ou M2) x 1,5 cm com porca
  • 1 ferro de solda

Esquema eletrônico:

Para a montagem do robô utilizaremos o esquema eletrônico abaixo. Consulte-o sempre que surgir alguma dúvida quanto às ligações eletrônicas.

Esquema eletrônico do robô seguidor de linha.

Passo 1:

O primeiro passo é soldar (ou emendar) dois fios (ou jumpers) nos terminais dos motores DC (motor acoplado em caixa de redução) e fixar o motor na placa de acrílico. A fixação dos motores na placa pode ser feita através de cola (tipo super bonder).

Motores fixados na placa de acrílico.

Ao fixar os motores, foi respeitada uma distância de aproximadamente 5 cm da caixa de redução (em amarelo) até um das extremidades da placa de acrílico. Também procurou-se deixar os terminais dos motores voltados para a parte interna.

Passo 2:

Uma vez fixos os motores, agora é só acoplar as rodas. Esses motores e rodas costumam ser vendidos em conjunto. Veja as imagens abaixo que mostram a finalização do passo 2:

Rodas acopladas nos motores

Rodas acopladas nos motores

Passo 3: 

O passo 3 consiste da fixação de uma roda boba ou roda omnidirecional no que será a parte traseira do robô. Abaixo você pode ver como é a aparência dessas rodas embora existam variações:

Roda boba à esquerda e roda omnidirecional à direita.

A fixação da roda deve ser feita de maneira que a placa de acrílico fique à mesma altura do chão em ambas extremidades do robô. Para você atingir esse objetivo, você pode utilizar parafusos, espaçadores ou fazer uma pequena estrutura de palitos como calço para a roda. Se sua opção for por usar parafusos ou espaçadores, uma maneira precisa de fazer furos no acrílico é utilizar a ponta de um ferro de solda, conforme mostra a imagem abaixo:

Furando o acrílico com o ferro de solda.

Nesta montagem, usei parafusos M3 para fazer a fixação de uma roda omnidirecional. Veja nas imagens abaixo a conclusão desta etapa e também um exemplo de uso de palitos como calço para fixação de uma roda boba (uma alternativa):

Passo 4:

No passo 4 faremos a montagem de um suporte para bateria 9V usandos alguns palitos (sorvete e hashi). Não costumo ter um padrão para este suporte. Neste caso irei aproveitar as sobras do parafuso da roda como parte da estrutura para o suporte. O importante é que a bateria tenha um local no qual ela fique presa. Se você quiser optar por algo mais fácil, poderá simplesmente colar a bateria com fita adesiva.

Passo 5:

Neste passo farei a fixação da placa Arduino e da placa do driver L298N no acrílico. Para isto, realizarei pequenas furações no acrílico usando o ferro de solda e usarei parafusos M3 (ou M2) por 1,5 cm para fixar ambas placas. Farei a fixação de forma que a placa do driver L298N fique sob o acrílico (embaixo) e a placa Arduino fique fixada acima do acrílico. Desta forma aproveitando melhor o espaço.

Primeiramente eu posiciono as placas de modo a calcular seu posicionamento, conforme ilustra as imagens abaixo:

A placa do driver ficará logo abaixo da placa Arduino. Eu sugiro que ela esteja centraliza, próximo aos motores, confira as posições sugeridas nas imagens anteriores.

Uma vez calculadas as posições, eu faço algumas furações no acrílico usando a ponta de um ferro de solda para possibilitar a fixação das placas através de parafusos, conforme ilustra a imagem abaixo:

Furando o acrílico para fixar placas

Então, eu fixo primeiramente a placa do driver L298N, conforme ilustra a figura abaixo:

Fixando o driver L298N

Na sequência, eu uso um pequeno isolante para evitar o contato da cabeça de um dos parafusos que prendem o driver com a placa Arduino que será fixada acima. Este tipo de cuidado é importante para evitar curto-circuitos na placa. Veja a próxima figura:

Isolando parafuso.

A seguir, faço a fixação das placas Arduino e driver L298N, conforme mostra a sequência de imagens a seguir:

Passo 6:

Neste passo conectaremos os terminais dos motores ao driver L298N através dos fios já soltados ou presos nos motores (passo 1) . Na imagem abaixo podemos identificar os terminais motor A e motor B da placa do driver:

Driver L298N

 

Considerando os terminais do motor A, conectaremos em sua primeira entrada o terminal do motor mais próximo do acrílico e na segunda entrada conectaremos o terminal do motor que fica mais distante do acrílico.

Considerando os terminais do motor B, conectaremos em sua primeira entrada o terminal do motor que fica mais distante do acrílico e na segunda entrada conectaremos o terminal do motor mais próximo do acrílico.

As imagens abaixo ilustram a conclusão desta etapa:

Passo 7

Nesta etapa fiz a fixação de um interruptor na lateral do acrílico usando cola. Fixei de modo que o interruptor ficou sob o acrílico. Veja nas imagens abaixo:

Passo 8

Neste passo eu fiz a fixação de uma mini-protoboard posicionada na parte superior do acrílico, centralizada entre os motos. Veja a imagem:

Fixação da protoboard

Passo 9

Nesta etapa conectaremos um conector de bateria de 9V ao interruptor e à alimentação da placa driver L298N. O conector de bateria 9V tem dois fios: vermelho para positivo e preto para negativo. O fio preto (negativo) será conectado diretamente ao GND do driver (veja esquema no passo 6). Já o fio vermelhor (positivo) será conectado ao interruptor, e o segundo terminal do interruptor será conectado ao pino 6-35V do driver (veja esquema no passo 6). Qualquer dúvida sobre as conexões, consulte o esquema apresentado no início deste tutorial. Abaixo, veja uma ilustração desta conexão:

Conexões para alimentação do driver

Passo 10

Dos mesmos pinos do driver (pino 6-35V e pino GND) devemos usar jumpers para ligar alimentação da placa Arduino Uno, que se encontra no lado oposto do acrílico. Desta forma, primeiramente farei um furo no acrílico (entre a protoboard e a placa Arduino) e depois usarei dois jumpers para conectar o GND do driver ao GND do Arduino e o pino 6-35V do driver ao Vin do Arduino. Veja nas imagens abaixo, o resultado dessas conexões:

Passo 11

Agora finalizaremos a parte dos motores, conectando 4 pinos do Arduino aos pinos de entrada do driver L298N. Conectaremos o pino 7 do Arduino na entrada IN1, o pino 6 na IN2, pino 5 na IN3 e pino 4 na IN4. A imagem a abaixo mostra o esquema de ligações a serem realizadas:

Conectando os pinos de controle dos motores

Os terminais do driver IN1 e IN2 controlam o motor A, os terminais IN3 e IN4 controlam o motor B. Para essa ligação é indicado o uso de jumpers macho-fêmea. Veja abaixo a finalização desta etapa:

Passo 12

Estamos quase lá. Agora faremos a fixação dos sensores. Para fixação dos sensores, é necessário fazer duas perfurações na parte da frente do acrílico, sugiro uma distância de aproximadamente 3,5 cm entre os dois furos. Abaixo mostro as furações que fiz utilizando ferro de solda:

Criando dois furos para fixação dos sensores de linha.

Depois disso, utilizo 2 parafusos M3 com 4 cm de comprimento para fixar os sensores de linha. Uso fita isolante para prender os sensores no parafuso M3. Veja na imagem:

Usando fita isolante para posicionar os sensores no parafuso.

A seguir, utilizo 2 porcas em cada parafuso para prender os parafusos no acrílico. O resultado pode ser visto nas imagens abaixo:

Após isso eu ainda faço uma nova furação no acrílico, entre a placa Arduino e a protoboard para passar as conexões dos sensores. Esta nova furação é mais ampla devido a quantidade de jumpers, veja na imagem:

Espaço furado para passar jumpers

Passo 13

Nesta etapa finalizamos nossa montagem. Para isso precisamos conectar os pinos GND dos sensores ao GND do Arduino, os pinos VCC dos sensores ao pino 5V do Arduino e os pinos de sinal dos sensores nas entras A0 e A1 do Arduino. Para isso será necessário também usar a protoboard. As ligações eletrônicas realizadas nesta etapa são ilustradas pela imagem abaixo:

Conectando os sensores

Primeiramente eu conecto o pino 5V e o pino GND do Arduino em duas colunas distintas da protoboard. Conforme imagem abaixo:

5V e GND do Arduino conectados na protoborad

Então conectamos o pino de sinal do sensor da esquerda ao pino A0 do Arduino e o pino de sinal do sensor da direita ao pino A1 do Arduino. Também conectamos os terminais GND dos sensores na coluna da protoboard a qual conectamos o GND do Arduino. Depois conectamos os terminais VCC dos sensores na coluna da protoboard a qual conectamos o terminal 5V do Arduino. Veja o resultado dessa etapa nas imagens abaixo:

Passo 14

Conecte o cabo USB à placa Arduino e ao computador, então use o editor do Arduino para transmitir o código abaixo:


#define RightMotorForward 7
#define RightMotorBackward 6
#define LeftMotorForward 5
#define LeftMotorBackward 4
#define sensorL A0
#define sensorR A1
#define FW 55
#define TR 70
#define PAUSE 100

void setup(){
pinMode(RightMotorForward, OUTPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(LeftMotorBackward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);
pinMode(sensorL,INPUT);
pinMode(sensorR,INPUT);
Serial.begin(9600);
}

void loop(){
int left = analogRead(sensorL);
int right = analogRead(sensorR);
Serial.print("Leitura de luminosidade sensor L: ");
Serial.println(left);
Serial.print("Leitura de luminosidade sensor R: ");
Serial.println(right);
if (left > 100 && right > 100){
moveForward();
}
else if (left < 100){
turnLeft();
}
else if (right < 100){
turnRight();
}
delay(PAUSE);
}

void moveForward(){
motorLForward();
motorRForward();
delay(FW);
moveStop();
}

void turnRight(){
Serial.println("Vira à direita");
motorLForward();
delay(TR);
moveStop();
}

void turnLeft(){
Serial.println("Vira à esquerda");
motorRForward();
delay(TR);
moveStop();
}

void moveStop(){
digitalWrite(RightMotorForward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorBackward, LOW);
}

void motorRForward(){
digitalWrite(RightMotorForward, HIGH);
digitalWrite(RightMotorBackward, LOW);
}

void motorRBackward(){
digitalWrite(RightMotorForward, LOW);
digitalWrite(RightMotorBackward, HIGH);
}

void motorLForward(){
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
}

void motorLBackward(){
digitalWrite(LeftMotorForward, LOW);
digitalWrite(LeftMotorBackward, HIGH);
}

Passo 15

Agora é só testar e aproveitar o seu robô seguidor de linha:

Resultado final

Veja abaixo um pequeno vídeo dele em funcionamento. Para outros vídeos, confira outras postagens deste site. Espero que este tutorial seja útil.

Robô com Arduino – Robô de Fuga Que Verifica os Lados

O terceiro projeto que desenvolvi neste ano trata-se de um robô de fuga (evita obstáculos) autônomo. Porém o diferencial deste projeto é que existe um servo-motor que movimenta o sensor ultrassônico para que os lados sejam verificados. Desta forma, ao encontrar um obstáculo, o robô procura o lado mais livre para virar. Este projeto também utiliza uma placa sensor shield, que tem facilidades para conexão de sensores ao Arduino. Abaixo podemos ver um vídeo do robô em funcionamento:

Abaixo também podemos ver algumas fotos deste projeto:

Projetos de Programação Web – Técnico em Informática

Lista de Projetos Desenvolvidos com HTML e CSS‏ pelas turmas 2015 do curso Técnico em Informática Integrado.

Projetos 2º A:

http://ladyegentleman.esy.es – Alexandra, Bianca, Isabela, Maria Luiza
http://holaamericalatina.pe.hu – Bárbara, Laís
http://amplitudefotos.esy.es – Edgar, Mariana, Vitoria, Gabriele
http://travelhelp.esy.es – Flávio, Paola, Carolina
http://callofduty.esy.es – Gabriel Kozlowski e João Vitor
http://guiadeviagens.esy.es – Gabriel Reis, Júlia, Thaís
http://grcod4luiz.esy.es – Gustavo, Luiz
http://supremacyroyale.esy.es – Israel
http://girlsinthehouse.esy.es – Jannyfer, Karina, Lyvia
http://sitenebula.pe.hu – Luciano
http://cinematica.esy.es – Maira e Caio

Projetos 2º B:

http://www.askelam.com – Álvaro, Augusto, Michel
http://cinebim.hol.es – Beatriz, Isabela e Mariana Fernandes
http://turistando.esy.es – Brenda e João
http://omelhordokpop.hol.es – Gabriel, Julia, Pedro Henrique
http://lovedance.16mb.com – Giovana, Jackeline e Laís
http://hpbrasil.esy.es – Juliano
http://workiing.esy.es – Leandro, Lydia e Lucas
http://kpopdiario.pe.hu – Heidy, Luiz Gustavo e Vinícius
http://the0riginals.esy.es – Gustavo, Júlia Junho
http://jonathanhairstyle.16mb.com – Jonathan, Rafael e Pedro
http://marianvictorie.esy.es – Mariana Vasconcelos, Victoria

Projetos Usando HTML e CSS – Técnico em Informática

Lista dos Projetos Desenvolvidos com HTML e CSS‏ pelas turmas 2014 do curso Técnico em Informática Integrado.

Projetos 2º A:
http://musiccore.esy.es – Amanda Cristina, Ana Marcella, André Fillipi
http://flubarooseries.zz.mu – Luiz Guilherme, Lucas e Gustavo
http://readtrip.besaba.com – Eduarda Perrone, Mariana Mendes e Rafael Funchal
http://cinemando.esy.es – Caroline, Luana e Izabela
http://dremsturismo.esy.es – Rafael Mamede, Ana Elisy e Gabriela Conde
http://batataz.pe.hu – Flávio, Daniel, João
http://nematoide.esy.es – Reinaldo Heitor, Jordino Pereira, Thales Cobra
http://mydreams.esy.es – Lara Martines, Nathalya Pereira e Vanessa Oliveira
http://lacosdeamor.esy.es – Bruna, Joanne e Thaís

Projetos 2º B:
http://scout.16mb.com – Giulia Pereira dos Santo
http://sonsofleaders.esy.es – Henrique, André, Jonathan
http://biology.hol.es – Isabella e Palloma
http://bestgames.pe.hu – João Gustavo, Fernanda Bittencourt
http://desorientado.esy.es – Rebecca, Amanda e Thamíres
http://topdoces.esy.es – Ana Flávia, Gabriel e Júlia
http://onlyniggasclothes.16mb.com – Jennifer, Maria Gabriela e Thaís
http://styleshair.esy.es – Daniel de Souza, Mateus, Rafael
http://eclipsante.esy.es – Leandro, Carolina e Andressa
http://academiagods.16mb.com – Lucas Braselino, João Marcos, Daniel R.

Trabalhos de Introdução à Programação Web – Subsequente

Segue abaixo links para os projetos desenvolvidos pela turma subsequente 2014 do Curso Técnico em Informática do IFSULDEMINAS Câmpus Pouso Alegre:

http://conhecendosaothome.esy.es – Leonel e Luziane
http://balalaika.zz.mu – Marçal, Diego e Bruno
http://varejao.esy.es – Elias, João Paulo e Aline
http://rolenanet.besaba.com – André, Reginaldo e Luis Alberto
http://infotecnow.pe.hu – Alberto, Marciano e André Cardoso
http://softcarfast.890m.com – Eric, Mateus e Everton
http://olimpiadasrio2016.16mb.com – Letícia e Lívia

Trabalhos da Disciplina Introdução a Programação Web

Veja a seguir alguns web sites desenvolvidos e/ou customizados pelos alunos do Curso Técnico em Informática do IFSULDEMINAS câmpus Pouso Alegre. As tecnologias usadas foram principalmente HTML e CSS.

Links dos trabalhos da turma Integrado 2013:

http://meuspesames.dx.am – Renata e Marcelo
http://gameofgoats.dx.am – Andre, Lauro, Orlando
http://salva-eles.dx.am – Rômulo, Ana Cecília
http://cafe-e-tv.dx.am – Gustavo, Sarah e Stella
http://exploringthecosmos.dx.am – Júlia, Layná, Heloisa
http://biaecarol.dx.am – Caroline, Bianca
http://ifwebpet.dx.am – Alice, Amanda e Tainá
http://modalidadesesportivasmothafuck.dx.am – Vinícius, Jonathas e Mateus
http://ifections.dx.am – Breno, Marco e Gabriel
http://desenhosanimados.dx.am – Beatriz, Nayara e Rogério
http://modait.dx.am – Gabriela, Gleize e Valéria
http://carreiracerta.dx.am – Milena, Ana Luísa, Larissa

Links dos trabalhos da turma Subsequente 2013:

http://mimimusicas.netne.net – Camila e Mírian
http://www.lugaresdomundo.host22.com – Carlos, Joelson, Ronan e Oribatã
http://copabrasil.comyr.com – Priscila, Daiane e Simone
http://www.lswebandroid.netne.net – Ewerton, Eric, Kalleo e Luis Paulo
http://www.portrasdascameras.xpg.com.br – Ingrid, Gesse, Rodrigo, Lívia
http://buscar.herobo.com – Alex e Luiz Fernando

Parabéns a todos!

I Semana da Ciência, Tecnologia e Cultura do IFSULDEMINAS Pouso Alegre

Nos dias 19, 20 e 21 de novembro de 2012, o Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais – Câmpus Pouso Alegre promoveu a I Semana da Ciência, Tecnologia e Cultura, com palestras ministradas para os vários cursos do instituto.

Os palestrantes de informática foram: Prof. Durval Teixeira, Hugo Saporetti Jr. (INATEL), Rodrigo Barbosa (Pax Consultoria), André Ruschel (MVP Microsoft) e Cláudio di Capua.

Segue abaixo algumas fotos dos palestrantes, alunos e professores de informática:

Turma da Tarde

Palestra com André Ruschel

Turma da Noite

Camerata de Cordas

Camerata de Cordas

Prof. Durval Teixeira

Palestra Software Embarcado

Rodrigo Barbosa

André Ruschel

Cartaz do evento: http://goo.gl/fNqZ6
Programação completa do evento: http://goo.gl/F04Tt

Trabalhos da Disciplina Introdução a Programação Web

Veja a seguir alguns web sites desenvolvidos e/ou customizados pelos alunos do Curso Técnico em Informática do IFSULDEMINAS câmpus Pouso Alegre. As tecnologias usadas foram principalmente HTML e CSS.

1 – Ewerton, José Auguto, Marceille e Pedro (Noite): http://quarteto.netai.net

Trabalho 1

2 – Tomaz, William Pinheiro, Matheus, Davi, Lucas (Tarde): http://theblackwill.net16.net

Trabalho 2

3 – André e José Toiti (Noite): http://andresilv.hostei.com

Trabalho 3

4 – Acassio e Michel (Noite): http://softwareembarcado.comule.com

Trabalho 4

5 – Wellington (Tarde): http://www.wellingtonmachado.net16.net

Trabalho 5

6 – Danielle, Mariana e Gustavo Moreira (Tarde): http://bananinha.netne.net

Trabalho 6

7 – Ana Cláudia, Caroline, Elis, Leonardo, Osmani, Sergio (Noite): http://sh000.comlu.com

Trabalho 7

8 – Peterson (Noite): http://peter7.netne.net

Trabalho 8

9 – Ana Flávia, Êndulla, Sara, Raquel (Tarde): http://raquelnunes.uphero.com

Trabalho 9

10 – Jefferson, Cleidiane e Márcia (Noite): http://www.jlp.netau.net

Trabalho 10

11 – Ithallo, Renan, Maria e Cleudina (Noite): http://ithalloricardoira.wix.com/software-embarcado (Criado pelo serviço: http://wix.com)

Trabalho 11

Trabalho 11

Terceira Edição do Informativo do IFSULDEMINAS

Leia a terceira edição do Informativo do Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas. O Informativo está sendo construído pelos bolsistas PIBIC/Júnior do Campus Pouso Alegre. A seção do curso técnico em informática desta edição foi elaborada por Caroline Jambasse e Jefferson Leon Pereira sob orientação minha e do professor Ismael David de Oliveira Muro.

Confira o Informativo acessando o link:
Informativo IFSULDEMINAS Pouso Alegre – Edição 3

Copyright © 2018 Luis Tavares. Todos os direitos reservados