How to Create a Line-Following Robot Using Infrared Sensors
Table of Contents
Construir um robô que segue linhas é um projeto clássico, mas altamente instrutivo, para qualquer pessoa que mergulha em robótica, sistemas incorporados e controle baseado em sensores. Ao combinar um microcontrolador simples, sensores infravermelhos e um driver de motores, você pode criar uma máquina que segue autonomamente uma linha escura ou de luz em um fundo contrastante. Este guia expande-se em todos os aspectos da construção – da física dos sensores IR para ajuste avançado e solução de problemas. Quer você seja estudante, hobbyista ou educador, os passos abaixo irão ajudá-lo a construir um seguidor de linhas confiável que pode servir de base para robôs autônomos mais complexos.
Compreendendo sensores infravermelhos para detecção de linhas
Os sensores infravermelhos (IR) são os olhos do seu robô. Eles funcionam emitindo luz infravermelha de um LED e medindo a quantidade refletida de volta para um fotodetector. Quando o robô viaja sobre uma superfície, a refletividade muda: uma superfície branca ou luz reflete mais luz de infravermelho, enquanto uma superfície preta ou escura absorve-a. O sensor produz uma tensão analógica ou um sinal digital de ALTO/LOW, dependendo do limite definido no módulo.
A maioria dos sensores de linha de IR de hobby usam um chip comparador (como o LM393) para converter a leitura analógica em um sinal digital limpo. A sensibilidade é ajustável através de um pequeno potenciômetro no módulo. Para seguir a linha, você normalmente usa dois ou mais sensores colocados lado a lado na frente do robô. Quando o robô está centrado sobre a linha, ambos os sensores vêem a linha (ou ambos vêem o fundo). Quando ele se desliza para a esquerda, o sensor esquerdo perde a linha enquanto o sensor direito ainda o vê, e vice- versa.
Selecionando os módulos sensores certos
As escolhas comuns incluem o TCRT5000 e o KY-033. TCRT5000 módulo é amplamente disponível, barato, e funciona bem na maioria das superfícies com contraste suficiente. KY-033 O tabuleiro tem o mesmo chip mas um layout diferente do pino. Verifique sempre a compatibilidade com o nível lógico do seu microcontrolador (3,3 V ou 5 V). Para um Arduino Uno (5 V), qualquer módulo tolerante de 5-volts funcionará. Se estiver usando uma placa de 3,3 V como uma ESP32, escolha módulos que possam operar nessa tensão ou adicione um metamorfo de nível.
Para um robô mais robusto, considere usar três ou até quatro sensores. Um conjunto de três sensores dá-lhe uma condição “perdida” que pode desencadear uma rotina de busca, enquanto quatro sensores permitem correções tipo PID. No entanto, uma configuração de dois sensores é perfeitamente adequada para aprender os fundamentos.
Materiais e Ferramentas
Abaixo está uma lista completa do hardware que você vai precisar. A maioria dos itens estão disponíveis em varejistas eletrônicos on-line ou lojas de fabricantes locais.
- Microcontrolador== Ver também ==* Arduino Uno, Nano, ou compatível (por exemplo, Elegoo, SparkFun RedBoard).
- Módulos de sensores IR: Dois módulos TCRT5000 ou KY-033 (ajustável).
- Módulo do condutor do motor: L298N ou L293D baseado em H-bridge. O L298N é muito comum e pode conduzir dois motores DC independentemente.
- Motores de corrente contínua com rodas: Dois motores com motor de 3-6 V, preferencialmente com codificadores (opcional para controle de velocidade).
- Chassis: Kit de chassis de carro robô (acrílica ou metal, com furos de montagem para motores e rodas).
- Fonte de alimentação: Bateria (6 V / 4×AA ou 7,4 V Li-Po). O Arduino pode ser alimentado através do seu pino VIN ou USB, mas conduzir motores da mesma fonte pode causar ruído. Uma bateria separada para os motores é recomendado para iniciantes.
- Fios de tábuas de pão e de jumper: Uma pequena tábua de solda simplifica a prototipagem; use fios macho-femininos e macho-para-macho.
- Multimetro: Para verificar tensões e continuidade.
- Ferramentas: strippers de fio, chave de fenda, pistola de cola quente (para proteger sensores).
- Materiais de via: fita elétrica preta em placa de cartaz branco, ou uma faixa impressa em papel mate. Certifique-se de bom contraste.
Construindo o robô: montagem mecânica
Chassis e montagem de motores
Comece por ligar os dois motores DC ao chassis de acordo com as instruções do kit. A maioria dos kits fornece suportes ou uma placa de parafuso. Certifique-se de que as rodas giram livremente e estão alinhadas paralelas umas às outras. Anexe uma roda de roda ou um rolamento de esferas na frente ou na retaguarda para manter o robô estável. Os sensores IR serão montados na frente, de modo que a rodízio deve ser colocado em frente ao lado do sensor para evitar interferência.
Montando os sensores de IR
Coloque os dois módulos de sensores de IR na parte frontal do chassis, espaçados entre 3 e 5 cm de distância. O espaçamento exato depende da largura da linha que pretende seguir (normalmente 15 e 20 mm). Uma boa regra de polegar é posicionar os sensores de modo que, quando o robô estiver centrado, o sensor esquerdo esteja apenas dentro da borda esquerda da linha e o sensor direito esteja dentro da borda direita. Use cola quente ou fita de espuma dupla face para os proteger. Os módulos devem ficar virados para baixo, cerca de 1 a 2 cm acima do solo.
Muito alto e a reflexão enfraquece; muito baixo e o robô pode colidir com obstáculos.
A ligar os componentes
Agora para as conexões elétricas. Use uma placa de apoio para distribuir energia e sinais a menos que você esteja soldando diretamente. O seguinte mapa de fiação assume um Arduino Uno e um driver L298N. Verifique duas vezes o pinout do módulo sensor: a maioria tem VCC, GND e OUT (digital). Alguns também têm um pino de habilitação ou uma saída analógica – vamos usar a saída digital para simplicidade.
- Potência: Ligar o terminal positivo da bateria à entrada +12 V do condutor do motor (ou entrada de energia) e ao GND do condutor a uma bateria negativa. Se as suas baterias forem 6 V (4×AA), a saída 5 V do condutor pode ligar o Arduino e os sensores através do seu pino 5 V. Caso contrário, ligar o Arduino separadamente da USB ou de uma segunda bateria.
- Motorista:
- Ligar os dois motores ao motor do condutor OUT1/OUT2 e OUT3/OUT4.
- Ligar os pinos ENA e ENV do condutor (activados) aos pinos digitais Arduino 5 e 6 (com capacidade PWM).
- Conecte IN1, IN2, IN3, IN4 aos pinos digitais Arduino 7, 8, 9, 10.
- Ligue a saída de 5 V do condutor ao pino de 5 V do Arduino (se utilizar a mesma bateria) ou deixe desligado se ligar o Arduino separadamente.
- Sensores IR:
- Sensor esquerdo VCC → Arduino 5 V, GND → GND, OUT → Pino digital Arduino 2.
- Sensor direito VCC → 5 V, GND → GND, OUT → Pino digital Arduino 3.
- Terreno comum: Conecte todos os GNDs (Arduino, motorista de motor, sensores, bateria).
Após a fiação, verifique duas vezes as conexões antes de ligar. Use um multímetro para verificar se o trilho de 5 V é de fato 5 V e que não existem shorts.
Programando a Lógica
O programa lê continuamente as duas saídas do sensor e decide as ações motoras. Abaixo está um esboço completo do Arduino que implementa um controlador bang-bang básico. O robô irá virar à esquerda ou à direita dependendo de qual sensor vê a linha, e ele irá parar se nenhum sensor detectar a linha (condição perdida).
Nota sobre a lógica do sensor: O código acima assume que os módulos do sensor saem LOW quando detectam a linha (linha preta no fundo branco). Muitos módulos têm um LED indicador ativo-low. Se o seu sensor sair HIGH na detecção, inverta as condições (altere ] para nos estados if, ou ajuste o potenciômetro do módulo).
Calibrando os sensores
Antes de executar o código, coloque o robô sobre a linha e ajuste o potenciômetro de cada sensor para que ele produza baixo quando na linha e alto quando no fundo. Use o Monitor Serial Arduino para ler os valores do pino:
Ajustar os potes até obter leituras consistentes. Os sensores devem ser sensíveis o suficiente para detectar a linha de uma distância de 10-15 mm.
Testes e solução de problemas
Coloque o robô em uma seção reta da faixa e ligue-o. Se o robô não se mover como esperado, verifique o seguinte:
- Potência: Os motores recebem tensão suficiente? O L298N precisa de pelo menos 7 V para a operação adequada, mas muitos trabalham até 6 V com torque reduzido. Se o robô se move lentamente ou não em tudo, tente uma bateria mais fresca ou aumentar o ciclo de serviço PWM.
- Alinhamento do sensor: Ambos os sensores são equidistantes da linha quando o robô está centrado? Ajuste a posição de montagem.
- Conexões motoras: Verifique se os motores esquerdo e direito estão corretamente ligados. Se o robô gira no lugar quando ele deve ir para a frente, troque os fios do motor em um canal.
- Inversão lógica: Se o robô virar para o lado errado (por exemplo, ele dirige para a direita quando o sensor esquerdo vê a linha), troque os pinos de direção do motor no código ou troque as conexões do sensor.
Para problemas persistentes, crie um esboço de teste simples que move cada motor independentemente para confirmar a integridade do hardware. Verifique também se os módulos do sensor não estão montados em um ângulo que cria um ponto cego.
Ajustes de desempenho e melhorias
Ajuste de velocidade e raios de giro
O controlador bang-bang funciona bem em velocidades lentas (valores PWM em torno de 150–200). Em velocidades mais elevadas, o robô pode ultrapassar a linha. Você pode implementar um controle proporcional lendo a saída analógica dos sensores (se disponível) e ajustando as velocidades do motor de acordo. Uma abordagem simples “PID-like” usa a diferença entre os valores do sensor esquerdo e direito para variar continuamente as velocidades do motor.
Adicionando um Terceiro ou Quarto Sensor
Com três sensores, você pode detectar quando o robô está completamente fora da linha e implementar um padrão de “pesquisa” - por exemplo, girando no lugar até que qualquer sensor pegue a linha novamente. Quatro sensores permitem direcionamento diferencial que imita um bot real competição seguidor de linha. Biblioteca de seguidores de linhas ROBOTIS, fornecer algoritmos avançados.
Usando um Módulo LCD ou Bluetooth
Para depuração e ajuste, conecte um LCD I2C (16×2) para exibir os valores do sensor e o estado atual. Em alternativa, use um módulo Bluetooth HC-05 para enviar telemetria para um aplicativo de smartphone. Isto é especialmente útil quando o robô está se movendo.
Gestão de Energia
Se o seu robô funcionar com baterias, considere adicionar um regulador de tensão para fornecer 5 V estável para o Arduino e sensores. Uma bateria Li-Po de 7,4 V separada para os motores e uma UBEC de 5 V para a placa lógica pode melhorar drasticamente o desempenho. Além disso, adicione um grande capacitor (470 μF ou mais) através da entrada de energia do motor para picos de tensão suaves.
Expandindo o Projeto: Além do Seguidor de Linhas Básicas
Uma vez que o seu robô segue uma linha preta simples, você pode estendê-lo de muitas maneiras:
- Evitar obstáculos: Adicione um sensor ultrassônico (HC-SR04) e programe o robô para parar ou contornar objetos que aparecem na linha.
- Junções de linhas e intersecções: Use mais sensores para detectar ligações T e curvas de ângulo direito. Isto permite que o robô navegue por um labirinto.
- Controlo sem fios: Integrar um módulo Wi-Fi (ESP8266/ESP32) para receber comandos de um computador ou telefone, útil para a telepresença ou coordenação multi-robô.
- Registo de dados: Use um módulo de cartão SD para registrar dados de registro do sensor para análise do desempenho do robô.
Para inspiração e apoio comunitário, confira os seguintes recursos:
- Tutoriais Oficiais Arduino – especialmente os exemplos de “Input Analog” e “Motor Knob”.
- Como Mecatrônica L298N Tutorial – cabeamento detalhado e controle PWM.
- Ficha de dados TCRT5000 – especificações técnicas para o sensor reflexivo.
Conclusão
Construir um robô que segue linhas com sensores infravermelhos é uma combinação perfeita de montagem de hardware e lógica de software. Ele ensina a implementação prática de feedback de sensores, controle motor e algoritmos de tomada de decisão. Seguindo este guia, você terá construído um robô totalmente funcional que pode navegar autonomamente uma pista. Mais importante, você terá adquirido as habilidades para solucionar problemas, iterar e melhorar o design. Se você pretende entrar em uma competição de robótica, ensinar uma classe STEM, ou simplesmente satisfazer sua curiosidade, este projeto fornece uma base sólida para sistemas robóticos mais ambiciosos.