- Materiais requisitados:
- Conceitos de seguidor de linha
- Diagrama e explicação do circuito do robô seguidor da linha Raspberry Pi:
- Programando seu Raspberry PI:
- Seguidor da linha Raspberry Pi em ação:
Como todos sabemos, Raspberry Pi é uma plataforma de desenvolvimento maravilhosa baseada no microprocessador ARM. Com seu alto poder computacional e opções de desenvolvimento, ele pode fazer maravilhas nas mãos de entusiastas da eletrônica ou estudantes. Para saber mais sobre o Raspberry Pi e como ele funciona, vamos tentar construir um robô seguidor de linha usando o Raspberry Pi.
Se você está interessado em robótica, deve estar bem familiarizado com o nome “ Line Follower Robot ”. Este robô é capaz de seguir uma linha, apenas usando um par de sensores e motores. Pode não parecer eficiente usar um microprocessador poderoso como o Raspberry Pi para construir um robô simples. Mas, este robô oferece espaço para desenvolvimento infinito e robôs como o Kiva (robô de depósito da Amazon) são um exemplo disso. Você também pode verificar nossos outros robôs seguidores de linha:
- Robô seguidor de linha usando o microcontrolador 8051
- Robô seguidor de linha usando Arduino
Materiais requisitados:
- Raspberry Pi 3 (qualquer modelo deve funcionar)
- Sensor IR (2Nos)
- Motor de engrenagem DC (2Nos)
- Motorista L293D
- Chaises (você também pode construir seu próprio usando papelão)
- Banco de energia (qualquer fonte de energia disponível)
Conceitos de seguidor de linha
O Robô seguidor de linha é capaz de rastrear uma linha com a ajuda de um sensor infravermelho. Este sensor possui um transmissor IR e um receptor IR. O transmissor IR (LED IR) transmite a luz e o receptor (fotodiodo) espera que a luz transmitida volte. Uma luz infravermelha retornará somente se for refletida por uma superfície. Enquanto todas as superfícies não refletem uma luz infravermelha, apenas a superfície de cor branca pode refleti-las completamente e a superfície de cor preta irá observá-las completamente como mostrado na figura abaixo. Saiba mais sobre o módulo do sensor IR aqui.
Agora usaremos dois sensores IR para verificar se o robô está em linha com a linha e dois motores para corrigir o robô se ele se mover para fora da linha. Esses motores requerem alta corrente e devem ser bidirecionais; portanto, usamos um módulo de driver de motor como o L293D. Também precisaremos de um dispositivo computacional como o Raspberry Pi para instruir os motores com base nos valores do sensor IR. Um diagrama de blocos simplificado do mesmo é mostrado abaixo.
Esses dois sensores IR serão colocados um em cada lado da linha. Se nenhum dos sensores estiver detectando uma linha preta, o PI instrui os motores a avançar conforme mostrado abaixo
Se o sensor esquerdo aparecer na linha preta, o PI instrui o robô a virar para a esquerda girando apenas a roda direita.
Se o sensor direito vier na linha preta, o PI instrui o robô a virar à direita girando apenas a roda esquerda.
Se os dois sensores estiverem na linha preta, o robô para.
Desta forma, o Robô poderá seguir a linha sem sair da pista. Agora vamos ver como o circuito e o código se parecem.
Diagrama e explicação do circuito do robô seguidor da linha Raspberry Pi:
O diagrama de circuito completo para este Robô Seguidor de Linha Raspberry Pi é mostrado abaixo
Como você pode ver, o circuito envolve dois sensores IR e um par de motores conectados ao Raspberry pi. O circuito completo é alimentado por um banco de energia móvel (representado pela bateria AAA no circuito acima).
Visto que os detalhes dos pinos não são mencionados no Raspberry Pi, precisamos verificar os pinos usando a imagem abaixo
Conforme mostrado na imagem, o pino do canto superior esquerdo do PI é o pino de + 5V, usamos este pino de + 5V para alimentar os sensores IR conforme mostrado no diagrama de circuito (com fio vermelho). Em seguida, conectamos os pinos de aterramento ao aterramento do sensor IR e do módulo Motor Driver usando fio preto. O fio amarelo é usado para conectar o pino de saída do sensor 1 e 2 aos pinos GPIO e 3 respectivamente.
Para acionar os motores, precisamos de quatro pinos (A, B, A, B). Esses quatro pinos são conectados a partir de GPIO14,4,17 e 18, respectivamente. O fio laranja e branco juntos formam a conexão para um motor. Portanto, temos dois desses pares para dois motores.
Os motores são conectados ao módulo Motor Driver L293D conforme mostrado na imagem e o módulo driver é alimentado por um banco de potência. Certifique-se de que o aterramento do banco de potência esteja conectado ao aterramento do Raspberry Pi, só então sua conexão funcionará.
Programando seu Raspberry PI:
Depois de concluir a montagem e as conexões, o robô deve ser parecido com isto.
Agora, é hora de programar nosso bot e colocá-lo em execução. O código completo para este bot pode ser encontrado na parte inferior deste tutorial. Saiba mais sobre o programa e código de execução em Raspberry Pi aqui. As linhas importantes são explicadas abaixo
Vamos importar o arquivo GPIO da biblioteca, a função abaixo nos permite programar os pinos GPIO do PI. Também estamos renomeando “GPIO” para “IO”, portanto, no programa, sempre que quisermos nos referir aos pinos GPIO, usaremos a palavra 'IO'.
importar RPi.GPIO como IO
Às vezes, quando os pinos GPIO, que estamos tentando usar, podem estar executando algumas outras funções. Nesse caso, receberemos avisos durante a execução do programa. O comando abaixo diz ao PI para ignorar os avisos e prosseguir com o programa.
IO.setwarnings (falso)
Podemos referir os pinos GPIO do PI, tanto pelo número do pino a bordo quanto pelo número da função. Como 'PIN 29' na placa é 'GPIO5'. Portanto, dizemos aqui que vamos representar o pino aqui por '29' ou '5'.
IO.setmode (IO.BCM)
Estamos configurando 6 pinos como pinos de entrada / saída. Os primeiros dois pinos são os pinos de entrada para ler o sensor IR. Os próximos quatro são os pinos de saída, dos quais os dois primeiros são usados para controlar o motor direito e os próximos dois para o motor esquerdo.
IO.setup (2, IO.IN) #GPIO 2 -> Saída IR esquerda IO.setup (3, IO.IN) #GPIO 3 -> Saída IR direita IO.setup (4, IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 terminal B IO.setup (17, IO.OUT) #GPIO 17 -> Motor esquerdo terminal A IO.setup (18, IO.OUT) #GPIO 18 -> Terminal B esquerdo do motor
O sensor de IV emite “Verdadeiro” se estiver sobre uma superfície branca. Portanto, desde que ambos os sensores indiquem True, podemos seguir em frente.
if (IO.input (2) == Verdadeiro e IO.input (3) == Verdadeiro): # ambos os brancos avançam IO.output (4, Verdadeiro) # 1A + IO.output (14, Falso) # 1B- IO.output (17, Verdadeiro) # 2A + IO.output (18, Falso) # 2B-
Temos que virar à direita se o primeiro sensor IR ultrapassar uma linha preta. Isso é feito lendo o sensor IR e se a condição for satisfeita, paramos o motor direito e giramos o motor esquerdo sozinho, conforme mostrado no código abaixo
elif (IO.input (2) == False and IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, Verdadeiro) # 2A + IO.output (18, Falso) # 2B-
Temos que virar à esquerda se o segundo sensor IR ultrapassar uma linha preta. Isso é feito lendo o sensor IR e se a condição for satisfeita, paramos o motor esquerdo e giramos o motor direito sozinho, conforme mostrado no código abaixo
elif (IO.input (2) == True and IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Verdadeiro) # 2A + IO.output (18, Verdadeiro) # 2B-
Se ambos os sensores ultrapassarem uma linha preta, significa que o robô deve parar. Isso pode ser feito tornando ambos os terminais do motor verdadeiros, conforme mostrado no código abaixo
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Seguidor da linha Raspberry Pi em ação:
Carregue o código Python para o seguidor de linha em seu Raspberry Pi e execute-o. Precisamos de uma fonte de alimentação portátil, um banco de energia neste caso torna-se útil, portanto, usei o mesmo. O que estou usando vem com duas portas USB, então usei para alimentar o PI e outra para alimentar o driver do motor, conforme mostrado na imagem abaixo.
Agora tudo o que você precisa fazer é configurar sua própria faixa preta e liberar seu bot sobre ela. Usei uma fita isolante preta para criar a trilha. Você pode usar qualquer material de cor preta, mas certifique-se de que a cor de fundo não seja escura.
O funcionamento completo do bot pode ser encontrado no vídeo abaixo. Espero que você tenha entendido o projeto e gostado de construir um. Se você tiver alguma dúvida, poste-as na seção de comentários abaixo.