ROBÔ RASTREADOR II



Esse é mais um artigo recuperado das minhas velhas HD's! Eu projetei esse robô no ano de 2004 e o publiquei na Revista Mecatrônica Fácil da saudosa Editora Saber quando fui colaborador dessa editora (bons tempos!!!). As imagens e vídeos presentes neste artigo foram feitos por mim, em minha antiga bancada/laboratório e já peço desculpas pela qualidade desse material. Naquela época eu usei uma câmera que tinha menos de 3MP de resolução e o local não estava muito bem ilumidado! Ai já viu né?! Então considere esse material como "histórico"! ;)

Atenção!!! Esse projeto usa um Basic Step 1 OEM e ao que parece o mesmo não é mais fabricado pela Tato Equipamentos Eletrônicos! Sendo assim, caso queira montar esse circuito, sugiro que você adapte o mesmo para um Arduino ou um outro microcontrolador como o PIC, AVR, STM8, etc, a sua escolha! A leitura desse artigo servira mais como guia ou ainda como dito anteriormente, para saber um pouco mais sobre como as coisas eram feitas nos idos de 2004/2005!


INTRODUÇÂO

Na edição da revista Mecatrônica Fácil nr16 (maio/junho 2004) publiquei um pequeno robô, capaz de “seguir uma linha” no chão. Este robô não possuía qualquer tipo de processamento e sua operação era feita através de uma lógica muito simples implementada com transistores. Após a publicação, muitos leitores enviaram e-mails perguntando sobre como realizar o projeto de um robô com as mesmas características, porém microcontrolado. Esta é a proposta deste artigo: um Robô Rastreador Microcontrolado.


O QUE MUDOU?!



Robô Rastreador 1

Na figura acima você pode ver minha primeira versão. Esta versão foi projetada utilizando apenas transistores e outros componentes discretos. Tudo bem simples, mas bastante funcional.

A nova versão proposta é microcontrolada. Para obter uma “certa” compatibilidade no modo de operação mantive nesta versão o mesmo número de sensores e também o mesmo padrão de operação para estes. A diferença básica agora é o uso de um microcontrolador no “controle” do robô. As vantagens são muitas, tais como:

  •   escolha do modo de operação dos sensores
  •   desenvolvimento de um programa adequado a competições
  •   desenvolvimento de programas específicos para cada tipo de pista
  •   entre outras

Você que leu o artigo e montou a primeira versão, deve se lembrar que esta possuía algumas limitações como: a pista não podia ter cruzamentos, desvios e terminações em “T” para alguns trechos e também a pista tinha que necessariamente ser fechada.

Com o uso de um microcontrolador no robô, estes problemas são facilmente resolvidos. Basta criar o algoritmo adequado a cada situação.

Neste artigo apresentarei um algoritmo que permite ao robô “transitar” em uma pista fechada que pode ter cruzamentos e desvios sem problema. Neste primeiro algoritmo a pista deve ser fechada. Mas você poderá, com um pouco de criatividade, desenvolver outros programas que possam ser utilizados em pistas “abertas” e também com outros tipos de “obstáculos”. Tudo é uma questão de avaliar o que se deseja e colocar “mãos a obra”.


COMO FUNCIONA

O Robô Rastreador II possui um par de sensores que permitem que o mesmo “rastreie” uma linha “escura” no chão com largura de até 25 mm máximos. O contraste entre a linha e o resto da “pista” é importante.

Cada sensor (esquerdo e direito) é formado por um LED emissor de IR (infra-vermelhos) e um foto-transistor (exatamente como na primeira versão). Quando o LED de um sensor encontra-se sobre a cor “clara” da pista os raios infravermelhos são então refletidos e captados pelo foto-transistor que passa a receber o sinal IR e a conduzir (saturação). Porém, se o LED IR estiver sobre a linha que deve ter cor escura, preferencialmente preto, os raios IR são absorvidos na sua maioria. Sem reflexão, o foto-transistor fica no “corte” e não conduz.

Cada foto-transistor está ligado a um pino de “I/O” do microcontrolador. Este então, interpreta o estado do pino (e conseqüentemente do sensor) e passa a controlar os motores.

Se os sensores estiverem conduzindo, o microcontrolador liga ambos os motores (servos de rotação). Se apenas um dos sensores parar de conduzir, o microcontrolador desliga o motor do mesmo lado do sensor que parou de conduzir. Desta forma o robô realiza uma correção na sua trajetória e pode assim continuar a seguir a “linha”, sem “atropelá-la”.

O CIRCUITO



Na figura acima temos o circuito elétrico do Robô. O microcontrolador CI1, um Basic Step 1, é o “cérebro” do circuito. Ele executa as funções de leitura dos sensores, controle dos servos de rotação (motores) e também dos LEDs para informação visual do motor que esta realizando o desvio.

O microcontrolador Basic Step 1 já é um velho conhecido e foi utilizado em muitos outros projetos apresentados na revista. A novidade agora é o uso da versão OEM neste projeto. Nesta versão o Basic Step 1 é comercializado na forma de um CI com encapsulamento DIP 18 pinos e tem um custo muito acessível (R$29,00 em 10/06/2005).

As principais características do Basic Step 1 OEM são:

  • Encapsulamento DIP 18
  • 8 linhas de I/O bidirecionais programáveis independentemente
  • 256 bytes de memória de programa EEPROM
  • 80 a 100 linhas de instruções máximas
  • 16 bytes de memória RAM (2 para I/O’s e 14 para variáveis)
  • Clock de 8MHz (aproximadamente 5.000 instruções por segundo)
  • Comunicação RS232 até 2400 bps em qualquer pino
  • 5 entradas analógicas (conversores AD)
  • Faixa de alimentação: de 5VDC +/- 5% (nível TTL)
  • Usa interpretador TBASIC (Windows), com comandos em inglês e português
  • Possui suporte técnico nacional com fórum em língua portuguesa
  • O programa TBASIC, assim como exemplos de uso são fornecidos gratuitamente pelo fabricante
  • Compatibilidade total com o Basic Step 1 versão em encapsulamento SIP
  • Custo: R$29,00 (tomada de preço feita em 24/05/2005)

Os LEDs D1 e D2 são LEDs IR (emissor de infravermelhos). Q1 e Q2 são foto-transistores. O par D1/Q1 e D2/Q2 formam os sensores “direito” e “esquerdo”, respectivamente. O funcionamento destes sensores já foi detalhado anteriormente. Os LED’s D3 e D4 informam qual motor está realizando o desvio.

O diodo D5 permite ligar o circuito em 6VDC (4 pilhas). Isso é possível devido à queda de tensão de aproximadamente 0,7VDC que o mesmo provoca no circuito. Assim, temos na entrada do microcontrolador uma tensão não superior a 5,3VDC, que está dentro da faixa aceitável pelo mesmo. Não altere de maneira alguma a alimentação deste circuito, sob pena da perda do microcontrolador!!! Mantenha-a exatamente como indicado – quatro pilhas (pequenas, médias ou grandes de acordo com tempo de operação desejado e chassi utilizado).

Os motores utilizados são na verdade servos de rotação que podem ser adquiridos prontos no mercado especializado ou mesmo adaptados por você a partir de servos para posicionamento de antenas parabólicas e/ou servos para modelismo no geral (Futaba, Hitec ou outros). Acredito que a escolha por servos de antenas parabólicas seja a opção mais barata e por isso indicada. Esta foi a opção que eu escolhi.

Obs.: Em 2020 é possível encontrar servos de rotação na Internet fácilmente! Use o que achar melhor!

Os resistores R1 e R2 forma o divisor resistivo para a gravação do microcontrolador. A gravação é feita através do canal serial do PC, e os níveis de tensão presentes são de +/- 12VDC (padrão RS-232). Note que o divisor está presente apenas no pino de entrada. Para o pino de saída não é necessário nenhum divisor.

Os resistores R4, R6, R7 e R8 são resistores limitadores de corrente para os diodos (IR e normais). Os resistores R3 e R5 são resistores de “pull-up”. Eles fornecem nível lógico “1” sempre que o foto-transistor a eles ligados se mantiverem no corte (sensor não refletindo). Quando o foto-transistor conduzir (saturação) o resistor ajuda a limitar a corrente.

Para realizar a gravação do microcontrolador Basic Step 1 você precisará apenas de um cabo, montado conforme a figura abaixo e do compilador TBasic fornecido gratuitamente no site do fabricante do microcontrolador.

[inserir figura 5] Cabo de gravação para o Basic Step

Arquivo PDF enviado

O conector “GRAVA” permite a ligação da placa do robô diretamente ao PC durante a gravação, facilitando muito a inserção do programa de controle e testes de outros programas que você poderá vir a implementar, sem a necessidade de placas ou gravadores especiais.

Ao montar o cabo identifique os pinos do conector que será ligado à placa. Isso ajudará na utilização, evitando que o mesmo seja invertido, poupando muita “dor de cabeça”.



MONTAGEM


Na figura acima você encontra o lay-out docircuito impresso utilizado em meu protótipo. Comece por montar os resistores e conectores (gravação, servos e entrada para o suporte de pilhas). Se você quiser, poderá usar uma chave para ligar/desligar o robô. Para isso basta inseri-la entre o suporte de pilhas e a placa. Esta chave deve ser do tipo “on/off” “alavanca” ou mesmo “gangorra”. A escolha de uma ou outra é livre.

Aconselha-se o uso de um soquete para CI com 18 pinos para o microcontrolador. Evite soldar o mesmo diretamente na placa. Assim, além de evitar danificá-lo você poderá se e quando necessário utilizar o mesmo  em outros testes e/ou circuitos.

Os fios dos servos podem ser ligados diretamente à placa ou então pode-se utilizar conectores tipo “barra de pinos”. Apenas recomenda-se muito cuidado ao realizar as ligações. Os fios são “polarizados”: geralmente vermelho para VCC, preto para GND e branco ou amarelo para o sinal. Cuidado ao ligá-los à placa!!!

No caso do “conector” para gravação, aconselha-se o uso de “barra de pinos” ou outro conector que facilite a inserção e retirada do cabo. Desta maneira facilita-se em muito a inserção do algoritmo ou mesmo estudo de novos algoritmos (alteração e implementações no programa).

O capacitor C1 não é polarizado e não requer cuidados neste quesito ao ser ligado ao circuito. Porém o mesmo não acontece com o CI, diodos, foto-transistores e LEDs. Siga atentamente a orientação fornecida na “mascara” dos componentes. Qualquer inversão poderá provocar o não funcionamento do componente e possivelmente a perda do mesmo. Tenha cuidado ao ligar componentes polarizados nos circuitos!!!

Você poderá preparar uma pequena placa auxiliar com apenas os dois pares de sensores a ser usada caso o chassi adotado mantenha a placa do robô longe da “linha a ser seguida”. Assim será possível ligar os sensores mais próximos à pista sem a necessidade de mover a placa principal para tal. A ligação entre as placas deve então ser feita através de fios, seguindo o mesmo padrão demonstrado na mascara da placa principal. Note que teríamos nessa placa auxiliar apenas a ligação dos sensores e GND. Escolha um ponto na placa principal para a ligação deste, que pode ser o catodo de D1, por exemplo.

Após finalizar a montagem, faça uma conferência em todas as ligações, fios, soldas, posição dos componentes. Cheque se os valores estão corretos. Note que existem valores diferentes para cada resistor. Use a lista de materiais se tiver dúvidas (código de cores fornecido).


Nota: Não falarei neste artigo sobre a montagem mecânica do robô. Acredito que essa seja bem simples e deixo as imagens e vídeos inseridos neste artigo como principal orientação para aquele que se dispor a montar seu Robô Rastreador II.


O PROGRAMA

Logo abaixo em Downloads você encontrará o código fonte de para o microcontrolador. Na figura abaixo temos o fluxograma que explica de maneira clara o funcionamento deste. O estudo do fluxograma poderá ajudar a compreender o funcionamento do programa. Ter o programa em mãos também é recomendado ;)


O programa inicia as variáveis e o ambiente (direção dos pinos – “entrada ou saída” e o seu estado inicial). Em seguida o programa pisca os LEDs D3 e D4 num período de 3 segundos para informar que o robô está pronto para seguir a “linha”. Após o período de tempo, os LEDs são apagados e o programa entra em um “laço eterno” (loop) onde o estado dos sensores são pesquisados e os motores são então ligados/desligados de acordo com a informação obtida do sensor:

  • sensor informando estado lógico “0”, sensor na parte clara da pista, mantém motor ligado.
  • sensor informando estado lógico “1”, sensor emcima da linha, desliga motor do lado do sensor até recuperação do trajeto.

O programa é bem pequeno e está bem comentado. A linguagem BASIC é uma das mais fáceis para se compreender. O compilador possui um “help” poderoso com a descrição de cada comando em português. A leitura e estudo do “help” poderá ajudar o iniciante com o microcontroladores Basic Step 1.


GRAVANDO O MICROCONTROLADOR

Agora que seu robô já está montado (você o montou não é? rsrs), é hora de testá-lo. Insira o microcontrolador no suporte (soquete) da placa. Verifique atentamente a posição do mesmo. Conecte o cabo de gravação entre o PC (porta serial RS-232 livre) e a placa do robô. Insira as pilhas de alimentação no suporte de pilhas e ligue a chave S1, se está foi inserida.

Rode o compilador TBasic que deve ser obtido no site do fabricante do Basic Step 1 (Tato Equipamentos Eletrônicos). Faça o “download” do código-fonte “ROBO_RASTREADOR_II.BAS” e grave-o em um subdiretório qualquer, mas conhecido. Abra-o com o compilador TBasic (menu Arquivo – Abrir). Verifique no menu “Ferramentas - português” se está opção está selecionada. Se estiver, desmarque-a. Em seguida no menu “Ferramentas – Porta Serial” selecione a COM (porta serial) onde ligou o cabo de gravação. Clique agora no menu “Download” e observe na barra de “status” do TBasic o andamento da gravação.

Se tudo correu bem você observará o funcionamento do robô, com os LEDs D3 e D4 piscando durante 3 segundos. Retire o cabo de gravação e desligue o robô, ele já está pronto para ser utilizado e o programa não será perdido. O programa está agora na memória do microcontrolador e não se perderá quando o robô for desligado.

Se algo saiu errado e o programa não foi gravado no microcontrolador aconselha-se:

  • Uma verificação no cabo de gravação
  • Nas ligações do cabo à placa (conector do cabo com conector GRAVA na placa).
  • Porta serial utilizada. Alguns PCs possuem mais de uma porta. Verifique se selecionou a correta.

Obs.: Alguns PC’s possuem apenas uma porta serial e muitas vezes esta já está ocupada por um mouse ou outro dispositivo. Nestes casos é necessário desinstalar o dispositivo (inclusive softwares e drives de controle) para poder utilizá-la.


AJUSTE DOS SENSORES

O ajuste dos sensores do Robô Rastreador II não é critico, mas requer atenção. Conforme dito anteriormente os mesmos operam por reflexão e precisam ser posicionados de maneira que o elemento receptor (foto-transistor) “possa perceber” a presença do sinal do elemento emissor (LED IR). Nos testes de laboratório obtive bons resultados com distâncias entre 0,5 cm e 3 cm do solo (pista). Esta distância está intimamente ligada ao tipo de diodo emissor e foto-transistor utilizado e também ao contraste da pista (cor da parte clara e escura) e também ao ângulo deixado entre o emissor e o receptor. Quanto maior o ângulo, menor será a distância entre os sensores e a pista.

Para ajustar a reflexão utilize um pedaço de papel branco com uma “faixa” preta no meio, imitando a “linha”. Mantenha o robô suspenso por enquanto (rodas livres). Se os sensores estiverem funcionando, ao aproximar o cartão, com a linha bem no meio de ambos, os motores deveram girar, movimentando o robô à frente. Ao desviar o pedaço de papel, de maneira que agora um dos sensores perceba a cor da “linha”, o motor no lado deste deverá parar. Ajuste o ângulo dos sensores para obter o melhor rendimento dos mesmos.



TESTE E USO

Para testar seu robô você precisará apenas construir uma pista. Ela deve ser, como disse anteriormente, “fechada”, ou seja, ela começa em um ponto e termina neste mesmo ponto. Esta nova pista pode ter desvios e até cruzamentos. A largura da pista deve ser tal que a mesma fique entre os sensores, de maneira que os mesmos fiquem sempre sobre a parte clara da pista. Uma largura entre 15mm e 25mm pode ser experimentada.

Obs.: A pista que usei em meus testes foi feita colocando fita isolante (aquela preta, usada em manutenções elétricas) diretamente sobre o piso. Bem simples!!!

Um detalhe importante sobre a mesma diz respeito às curvas. O raio mínimo para as mesmas está intimamente ligado à distância entre o eixo das rodas e os sensores. Quanto maior está distância, maior será o raio e assim a curva terá de ser desenhada bem aberta. A situação inversa também é verdadeira e diminuindo a distância entre o eixo das rodas do robô e seus sensores, diminuímos o raio da curva e desta forma o robô poderá realizar curvas mais fechadas.

Estude bem esse comportamento no seu robô, pois pode acontecer do robô não realizar bem as curvas e o leitor acreditar ser um defeito no projeto ou mesmo problema com os sensores, mas o problema estará na verdade no projeto da pista. Atenção a esta recomendação!!!


AJUDA COM PROBLEMAS

A seguir listo alguns pontos observados em meu laboratório e que poderão ajudar você na solução de um possível problema.

Liguei meu robô e nada aconteceu! Ele não se move! Nada acontece!”

Verifique os seguintes itens:

  • A alimentação do robô (ligação do suporte de pilhas à placa, chave S1 se existir e também a posição das pilhas no suporte).
  • A posição do diodo D5. Se o mesmo for ligado invertido, o robô não funcionará.
  • A presença do microcontrolador na placa e se sua posição está correta.
  • Se o processo de gravação correu bem. O microcontrolador foi gravado com sucesso?!
  • Troque as pilhas por outras novas e preferencialmente alcalinas. É comum o uso de pilhas usadas e sem carga nos testes. O microcontrolador precisa de no mínimo 4,5VDC para funcionar (já descontada a queda de tensão provocada pelo diodo D5). Pilhas fracas (usadas) podem fornecer uma tensão abaixo do recomendado.


Liguei meu robô, os LEDs piscam mas o robô não se move!”

Verifique os seguintes itens:

  • Ligação dos servos na placa. Temos três fios com cores distintas. Branco para sinal, vermelho para VDC e preto para GND. Verifique se não os inverteu e se as cores batem. Do contrário consulte quem vendeu o servo a você.
  • Tipo de servo utilizado. O circuito foi testado com servos de rotação adaptados a partir de servos de posicionamento de antenas parabólicas. Outros tipos podem requerer alterações no programa para um funcionamento adequado


Liguei meu robô, e o mesmo está funcionando, mas ele não segue a linha corretamente em uma curva.”

Verifique os seguintes itens:

  • As ligações de D1, D2, Q1 e Q2 na placa. Qualquer inversão e os mesmos não funcionarão adequadamente. Confira este item.
  • Veja se os sensores funcionam de forma independente, conforme descrito no item “Ajuste dos sensores”.
  • Verifique se os “raios” das curvas adotadas em sua pista estão adequados para o funcionamento do robô.


Meu robô tem funcionamento estranho. Ele não desliga o motor do lado do sensor e assim, sai da pista a toda hora.”

Verifique os seguintes itens:

  • Inverta as ligações dos servos 1 e 2


Meu robô se move e tudo está certo, mas ele sai da pista a todo momento.”

Verifique os seguintes itens:

  • Se a velocidade do seu robô estiver muito alta, os sensores podem não atuar adequadamente. Altere o programa, inserindo “delays” (tempos). No programa eu inseri um comentário que poderá ajudá-lo. Estude-o e use se necessário.


CONCLUSÃO

Esta nova versão do Robô Rastreador, apesar de ter “herdado” o mesmo nome da primeira versão, se mostrará muito diferente. Agora o robô pode ser programado e desta maneira poderá ser utilizado em pequenas competições, feiras e outras com a aplicação de algoritmos específicos para percorrer tipos diferentes de pistas, demonstrando o aprendizado do aluno na matéria, por exemplo. Boa montagem e até uma próxima!


DOWNLOADS

- Circuito do Robô
- Lay-out para confecção da placa - invertido - para método manual
- Lay-out para confecção da placa - não invertido - para método transferência térmica
- Mascará para placa - Silk screen - invertido - para método transferência térmica
- Lista de materiais
- Programa para Basic Step



Este projeto foi publicado, com minha autorização, na Revista Mecatrônica Fácil nº 24 de Setembro/Outubro de 2005.

Especificações:

- Cérebro - Basic Step 1 OEM
- Motores - 2 servos de rotação
- Sensores - par diodo IR/foto-transistor
- Alimentação- 6VDC
- Chassi - escolha livre!
- Programa - BASIC TBASIC - Tato Equipamentos Eletrônicos




Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.