Sensor de Linha com Arduino

Acessado 53782 vezes.
Como citar esse artigo: VERTULO, Rodrigo Cesar. Sensor de Linha com Arduino. Disponível em: <http://labdeeletronica.com.br/sensor-de-linha-arduino/>. Acessado em: 11/09/2024.


A utilização de robôs para a exploração de locais inseguros para seres humanos vem sendo cada vez mais frequente. Estes equipamentos são criados para se comportarem de forma autônoma e responderem de acordo com o ambiente em que se localizam sem qualquer intervenção de um operador humano. A tecnologia utilizada nestes robôs é, geralmente, bastante complexa e de difícil compreensão para pessoas leigas. Para que seja possível construir estas máquinas é preciso conhecer diversos blocos funcionais que se comunicam a fim de fazer o robô realizar uma determinada tarefa. Os sensores de presença fazem parte de um desses blocos e podem ser utilizados para que os robôs desviem de obstáculos ou persigam determinados padrões encontrados nos terrenos a serem explorados.

Os sensores seguidores de linha são um tipo de sensor de presença e podem ser utilizados para a construção de carrinhos seguidores de linha (robôs seguidores de linha). Normalmente utilizados em competições de robôs seguidores de linha criadas por estudantes de engenharia, sua função é fazer com que o robô seja capaz de identificar uma linha desenhada no chão (normalmente uma linha preta sobre um piso branco), seguindo-a até completar um circuito previamente desenhado. O mesmo princípio de funcionamento poderia ser utilizado em robôs de inspeção que precisam se deslocar de forma autônoma em terrenos que possuem padrões em seu piso. Neste caso, bastaria programar o robô para que o padrão existente fosse reconhecido a partir dos sinais entregues pelo sensor seguidor de linha.

Existem muitas formas de se criar sensores desse tipo e neste artigo abordaremos uma delas que é utilizando um fototransistor e deds infra Vermelhos para a construção de um sensor infrared (sensor infravermelho). Um fototransistor funciona de forma semelhante a um transistor bipolar (falamos sobre transistores bipolares neste link), contudo, ao invés de sua base ser formada por um terminal tradicional ela possui um material foto sensível. De acordo com a intensidade da luz que incide na base, surge uma corrente entre seu coletor e emissor. Neste artigo utilizaremos um tipo de fototransistor que é sensível à luz infra vermelha para construir um sensor infrared e para que ele funcione é necessário que tenhamos uma fonte deste tipo de luz. É por este motivo que também utilizaremos um led infra vermelho. Seu funcionamento é praticamente idêntico ao dos leds tradicionais sendo que sua única diferença é o fato de emitirem luz no spectro infra vermelho (IR), ou seja, não visível a não ser que utilizemos algum tipo de equipamento para isso. A figura a seguir apresenta o aspecto físico do fototransistor TIL78 e de um led IR, iguais aos que utilizaremos no projeto do sensor infrared.

sensorLinha

Figura 1 – Aspecto físico e símbolo do fototransistor e Led Infra Vermelho.

Para que possamos utilizar estes componentes como sensores de linha, nos aproveitaremos do fato de que a Luz Infra Vermelha é refletida quando atinge uma superfície. A intensidade de luz refletida depende do material que a mesma atinge. De modo geral, quanto mais lisa for a superfície, maior será a reflexão. Outro fator que pode influenciar na reflexão é a cor da superfície, sendo que superfícies lisas e de cor clara possuem melhor índice de reflexão. Como não é nosso objetivo nos aprofundarmos na teoria física da reflexão, este artigo poderá ser utilizado pelos mais curiosos para um maior aprofundamento no assunto.

As características construtivas do sensor que criaremos é mostrada na imagem abaixo.

construcao

Figura 2 – Características construtivas do sensor de linha.

Na Figura 2 podemos notar que a Luz Infra Vermelha emitida pelo Led reflete na superfície, assim uma parte do feixe luminoso incide no Fototransistor, acionando sua base e gerando uma corrente entre seu coletor e emissor. Ajustando-se o ângulo de incidência da Luz IR na superfície, podemos aumentar ou diminuir a quantidade de luz que atinge o Fototransistor. A razão pela qual estamos utilizando Luz IR é que desejamos minimizar a influência que a luminosidade do ambiente terá sobre o sensor.

Conforme estudado na série de artigos sobre transistores, mais especificamente quando falamos sobre a utilização dos transistores como chave, quando o mesmo encontra-se em corte a tensão existente em seu coletor é a mesma da fonte de alimentação. Portanto, se o transistor estiver sendo alimentado com 5V será esta a tensão que encontraremos em seu coletor quando o mesmo estiver em corte. Por outro lado, quando o transistor esta em condução, a tensão em seu coletor é de “zero volt”. Utilizaremos esta característica no sensor de linha, de modo que no momento que a Luz IR atingir o Fototransistor e o mesmo entrar em condução, teremos “zero volt” em seu coletor. Quando a incidência de Luz IR cessar-se, teremos a tensão de alimentação no coletor. Utilizando essa configuração e considerando que desejamos identificar uma linha na cor preta e com baixo índice de reflexão sobre uma superfície clara (próxima da cor branca) e lisa, poderemos ligá-lo ao Arduino para fazer a identificação da linha.

Do lado do Arduino faremos uso de seu conversor analógico digital, onde será injetada a tensão proveniente do coletor do Fototransistor e será criado um programa (sketch) para identificar quando há tensão no conversor analógico digital (portanto o sensor estará identificando a linha – transistor em corte) ou quando o nível de tensão for correspondente ao sensor fora da linha (transistor conduzindo).

Agora que já vimos a teoria relacionada a esse projeto, vamos à sua concretização.

OBJETIVO: Desenvolver um circuito sensor de linha conectado ao Arduino que seja capaz de identificar uma linha preta, de largura maior ou igual a 2cm, sobre um fundo branco liso.

MATERIAIS: Para a realização deste projeto serão utilizados os seguintes materiais:

  • 1 Arduino Uno
  • 1 Protoboard
  • 1 Fototransistor TIL78
  • 1 Led IR
  • 1 Resistor de 200 Ohms
  • 1 Resistor de 5 kOhms
  • 1 Folha de Sulfite Branca
  • 1 Rolo de Fita Isolante

PROCEDIMENTOS: Montar o circuito conforme apresentado na Figura 3.

sensorIR_bb

Figura 3 – Montagem em Protoboard do Sensor de Linha.

O resistor de 100 Ohms conectado em série com o Led IR foi utilizado para limitar sua corrente em 20mA. Da mesma forma, utilizou-se um resistor de 5 kOhm no coletor do Fototransistor para limitar a sua corrente em 0.1mA, consequentemente limitando sua potência em 50mW conforme sugere o Datasheet do componente. É importante frisar que o posicionamento do Fototransistor e do Led IR do protoboard deverá ser feito experimentalmente até que se atinja a posição ótima que faz com que a Luz IR emitida atinja o Fototransistor quando o fundo branco for identificado (em outras palavras, tentativa e erro). Para testar o circuito deverá ser fixada uma tira de fita isolante preta sobre uma folha de papel sulfite branca. Esta folha deverá ser “passada” por cima do sensor, para verificar se a linha (fita isolante preta) esta sendo corretamente identificada.

 

PSEUDO-CÓDIGO PARA ARDUINO:

definir pino A0 como pinoSensor
valorSensor = obter valor de pinoSensor
valorCorrigido = (valorSensor * 5) / 1024
 
se valorSensor > 0:
    imprimir "Linha Detectada!!!"
 
    aguardar 1 segundo

 

SKETCH PARA ARDUINO:

int pinoSensor = A0;
int valorSensor = 0;
 
void setup(){
    Serial.begin(9600);
}
 
void loop(){
    valorSensor = analogRead(pinoSensor);
    int valorCorrigido = (valorSensor * 5) / 1024;
 
    if(valorCorrigido > 0)
        Serial.println("Linha Detectada!!!");
 
    delay(1000);
}

 

Apesar do código ser bastante simples, vale a pena fazer algumas considerações. Primeiro, note que na rotina “setup” a porta serial foi inicializada para que posteriormente possamos imprimir a frase “Linha Detectada!!!” no monitor serial da interface de desenvolvimento do Arduino, permitindo o teste do circuito. É importante também observar que foi criada uma variável chamada “valorCorrigido”, para a qual foi atribuído o resultado de uma equação. Esta equação é simplesmente uma regra de três para transformar os valores lidos pela porta analógica do Arduino em valores de tensão entre 0 e 5V. A porta analógica do Arduino é de 16 Bits, resultando em 1024 valores diferentes para cada nível de tensão lido pela mesma. Deste modo, foi utilizada a regra de três para realizar a devida conversão. Logo em seguida verifica-se se o valor da variável “valorCorrigido” é maior do que zero. Quando nesta variável existir o valor zero, significa que o Fototransistor esta conduzindo, consequentemente a linha preta não foi identificada. No momento em que o valor da variável passa a ser diferente de zero, ou seja, quando existe uma tensão positiva no “pinoSensor” (pino A0), o  Fototransistor entrou em corte indicando a identificação da linha preta; neste momento a frase “Linha Detectada!!!” é impressa no monitor serial. Portanto, para testar o circuito, assim que o sketch for gravado no Arduino é preciso abrir o monitor serial para verificar o andamento da execução do programa. A última instrução do programa é apenas um “delay” de um segundo para que seja possível ler as mensagens no monitor serial pausadamente.

Depois que o sketch for gravado no Arduino é necessário colar uma tira de fita isolante em uma folha de papel sulfite. Ao passar essa folha sobre o sensor, no momento que a fita preta estiver sobre o mesmo a frase “Linha Detectada!!!” será exibida. Pode ser que a sensibilidade do circuito fique muito baixa fazendo com que a frase seja impressa mesmo com a linha preta sobre o sensor. Se isso ocorrer pode ser que aumentando um pouco o valor da comparação utilizada no “if(valorCorrigido >0)” resolva o problema. Isso ocorreu em nossos testes e mudando o valor da comparação para 2 surtiu efeito. Outro ajuste que pode ser feito é reposicionando o Fototransistor e o Led IR até que seja encontrada a posição ideal.

Veja a seguir um vídeo mostrando o funcionamento do sensor de linha.


 

Se você gostou deste artigo e deseja que o Laboratório de Eletrônica continue existindo, por favor compartilhe este post clicando no botão “Compartilhar” abaixo. Obrigado e até a próxima.

 

[wpb-social-share text=”Compartilhar”]

 

Eletrônica Simples Para Projetos Complexos
Deixe de ser alguém que fica copiando e colando circuitos da Internet e passe a ser um projetista capaz de criar soluções inovadoras com esse poderoso componente.

Comentários

  • Joao marcos Veronenzai
    Responder

    Ola me tirem uma duvida, oque devo fazer si no caso a linha a ser seguida for branca ? Des di ja obrigado…

    • CLAIDSON

      OLÁ, DESCULPA O ATRASO PARA RESPONDER!. É SO INVERTER O SINAL RECEBIDO!.

  • BeatrizBGomes
    Responder

    Estou tentando fazer esse circuito com IR LED SFH409 e com o fototransistor SFH309 FA4/5, mas não funciona! Estou usando resistor de 220 ohms para o LED e um de 10K para o fototransitor. Poderia me ajudar?

  • fjfhjfhj
    Responder

    pare de minerar no pc dos outros

    • rvertulo

      Se você tivesse lido a mensagem existente na barra lateral à direita do site não teria colocado esse comentário.

  • Matheus
    Responder

    Boa noite, tem como fazer um sensor de linha para identificar linhas finas, como a escrita de um lápis?

    • rvertulo

      Em princípio sim. 😉