Robôs seguidores de linha: a física e o código

Um robô seguidor de linha lê a luz refletida, converte-a por limiar em sobre a linha ou fora da linha e dirige-se com um ciclo de controlo. Aqui ficam a física, o código e a razão pela qual a afinação é a verdadeira lição.
Um robô seguidor de linha funciona lendo quanta luz é devolvida pelo chão por baixo dele, decidindo se cada sensor está sobre a linha escura ou sobre a superfície clara e, depois, dirigindo-se de modo a manter a linha ao centro. A física é a refletância. O código é um pequeno ciclo de controlo que corre algumas centenas de vezes por segundo. Acerte nos dois e o robô agarra-se a uma curva apertada; erre na afinação e ele oscila até embater na perna de uma mesa. Este guia explica como funciona, os dois métodos de direção mais comuns e por que razão é a afinação que verdadeiramente ensina engenharia.
Como o sensor lê a linha
A peça central é um sensor de refletância por infravermelhos. Junta um pequeno LED infravermelho a um fototransístor que mede quanta dessa luz regressa. Uma linha escura absorve a maior parte do infravermelho, pelo que regressa pouco. Um pavimento claro reflete quase tudo, pelo que regressa muito. O sensor fica a alguns milímetros do chão e devolve um valor analógico, normalmente lido como um número vindo de um conversor analógico-digital (ADC).
A maioria dos robôs para principiantes usa dois ou mais destes sensores lado a lado, ladeando a linha. Quando a linha desliza para debaixo do sensor esquerdo, a leitura da esquerda desce. Quando desliza para a direita, desce a leitura da direita. Essa diferença é toda a base da direção. Há aqui duas verdades práticas que contam: a altura do sensor altera a leitura e a luz ambiente infiltra-se. Um robô testado sob as luzes da sala de aula pode comportar-se de outra forma junto a uma janela soalheira, e é por isso que a calibração vem a seguir.
Transformar uma leitura numa decisão
Um número bruto do ADC não serve por si só, porque varia com a superfície, com a iluminação e até com uma bateria a esgotar-se. A solução é a definição de limiar. Passa-se lentamente com os sensores sobre a linha e sobre o chão, registam-se as leituras mais baixa e mais alta e fixa-se o limiar no ponto médio. Tudo o que fique abaixo do limiar conta como estar sobre a linha e tudo o que fique acima conta como estar sobre o chão — ou o inverso, consoante as ligações.
Este passo de calibração não é opcional. Faça-o na pista real, na sala real, sempre que mudar de sítio. Fita isoladora preta e mate sobre um chão claro dá um contraste limpo; fita brilhante ou um chão de mosaico escuro dá um contraste fraco. Dez minutos de calibração poupam mais tarde uma hora de depuração confusa.
Duas formas de dirigir: bang-bang e proporcional
O controlo mais simples é o bang-bang, também chamado tudo-ou-nada. A lógica é esta: se o sensor esquerdo vê a linha, vira à esquerda; se o sensor direito vê a linha, vira à direita; caso contrário, segue em frente. É fácil de escrever e fácil de perceber, mas dirige aos solavancos. O robô faz ziguezague ao longo de uma reta e tem de andar devagarinho para se aguentar nas curvas, porque só sabe se está dentro ou fora, nunca a que distância está.
O controlo proporcional resolve isso usando as leituras analógicas em vez de um sim ou não. Calcula-se um erro, por exemplo error = left - right, e faz-se a intensidade da curva variar com ele: turn = Kp * error. Um erro pequeno produz uma correção suave; um erro grande produz uma correção forte. Um único número, Kp, o ganho proporcional, decide com que agressividade o robô responde. É a primeira prova a sério de teoria de controlo e chega para fazer um robô deslizar por uma pista que o bang-bang percorreria aos trambolhões. Acrescentar os termos I e D para obter um ciclo PID completo é o passo seguinte natural, assim que o proporcional estiver seguro.
A afinação é a verdadeira lição
O código acima é curto. Quase toda a aprendizagem está em afiná-lo, e isso é uma vantagem, não uma maçada. É na afinação que os alunos encontram o método da engenharia: mudar uma variável, testar, observar, repetir. Avance por esta ordem:
- Calibre na pista real e sob as luzes reais antes de mexer em qualquer outra coisa.
- Defina uma velocidade base suficientemente lenta para conseguir observar o robô e agarrá-lo.
- Comece com um
Kppequeno e vá subindo até o robô seguir a linha em vez de se desviar. - Se começar a oscilar, a serpentear de um lado para o outro, baixe um pouco o
Kpou reduza a velocidade base. - Teste na curva mais apertada da pista, não na reta fácil. A reta mente-lhe.
Mantenha um caderno e mude uma coisa de cada vez. Um aluno que anota que um ganho alto pôs o robô a serpentear aprende mais do que um que mexe nos números ao acaso até a coisa funcionar por sorte.
Falhas comuns e como as depurar
A maioria dos problemas de um seguidor de linha cai num punhado de padrões. Faça corresponder o sintoma à causa provável antes de reescrever seja que código for:
- O robô ignora a linha por completo: o limiar está errado, os sensores estão montados demasiado alto ou a bateria está fraca ao ponto de enfraquecer os LED.
- Ziguezague violento: o
Kpou a velocidade base estão demasiado altos. Reduza um de cada vez. - Sai disparado nas curvas apertadas: vai depressa demais, ou os dois sensores estão demasiado juntos para dar pela curva a tempo.
- Desvia-se para um dos lados numa reta: os dois motores não estão perfeitamente equilibrados. Acrescente uma pequena compensação fixa de um dos lados.
- Funciona de manhã e falha depois do almoço: a luz do sol alterou as leituras. Volte a calibrar para a nova iluminação.
- Todos os sensores dão quase a mesma leitura: verifique as ligações e os números dos pinos e confirme que a fita é mate e não brilhante.
Experimentar na sala de aula
Um seguidor de linha é um dos melhores primeiros projetos de robótica, porque todo o ciclo — detetar, decidir, atuar — é visível numa única passagem pelo chão. A construção do rover na placa sheenbot∞ dá aos alunos os sensores de refletância e o controlo dos motores de que precisam numa só placa, e há kits completos disponíveis na loja. Se preferir que lho ensinem, a academia na Cidade do Cabo dá aulas semanais e workshops de férias em que o seguimento de linha é uma construção habitual.
Em resumo
A deteção por refletância diz ao robô onde está a linha, o limiar transforma isso numa decisão clara e o controlo proporcional transforma a decisão numa direção suave. O código é curto de propósito. A verdadeira competência está na afinação paciente, uma alteração de cada vez, que leva um robô oscilante a aguentar uma curva — e essa competência transita para quase todos os outros projetos. Para mais relatos de construções, veja a sala de imprensa da sheen.bot.
Perguntas frequentes
De quantos sensores precisa um seguidor de linha?
Dois chegam para dirigir, porque a direção só precisa de saber se a linha se desviou para a esquerda ou para a direita. Acrescentar mais sensores, sendo cinco um número comum, permite ao robô avaliar com mais precisão a que distância está e lidar com curvas mais apertadas, o que torna o controlo proporcional mais suave.
Porque é que o meu robô segue a linha numa sala e noutra não?
A luz ambiente e a cor do chão alteram a quantidade de infravermelhos que é devolvida, pelo que o limiar calibrado numa sala está errado noutra. Volte a calibrar na nova superfície e sob a nova iluminação sempre que mudar o robô de sítio.
O controlo proporcional é o mesmo que PID?
O proporcional é o P do PID e é o primeiro e mais importante termo. O PID acrescenta um termo integral para anular o desvio persistente e um termo derivativo para amortecer o sobreimpulso. A maioria dos projetos de adolescentes funciona bem só com o proporcional, acrescentando depois os outros dois como melhoria.



