domingo, 27 de janeiro de 2013

LINUSBot - Robot Seguidor de linhas





Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);


LINUSBot - Line Follower - Seguidor de Linhas


O funcionamento deste Robot é bastante simples.

Sensores Infra-vermelho colocados à frente do chassis (neste projeto usaremos o um chassi apropriado do tipo redondo) irão monitorar quando o nosso Robot está sobre uma linha negra ou quando está sobre um fundo  branco.
No caso de o Robot estar sobre a linha negra, ele irá sempre à frente; e no caso de sair da linha e cair em uma área branca, ele irá determinar se deverá corrigir para a esquerda ou para a direita, e assim manter-se sobre a linha negra.

Como sensores será usado o array de sensores infra-vermelho Pololu (também chamado de sensor de reflectância) QTRx8RC, constituído de 8 sensores (serão usados somente 5) QRE1113GR.
Essse array, tem uma saída digital e pode ser facilmente utilizado (usando a biblioteca apropriada da Pololu) para determinar a posição da linha em relação aos sensores.





Este array de sensores pode ser quebrado para formar um conjunto com 6 sensores e outro com 2 sensores.
Para mais informações sobre o array de sensores infra-vermelho, visite:

http://www.pololu.com/catalog/product/961

Neste primeiro projeto, usaremos um controle rudmentar para o nosso robot, ou seja nos preocuparemos em manter o robot seguindo a linha apenas...
Para isto criaremos uma pista de teste para o robot rodar, e poderemos observar que os movimentos do robot serão um tanto quanto "robóticos", ou seja: não muito suaves, porém bruscos.


Pista:
Montada conforme diagrama abaixo em um fundo branco e linha preta.

Curvas de 6".








HARDWARE E COMPONENTES:

Material necessário:
1 X Arduino UNO, MEGA, Duemilanove ou Teensy 2.0++
1 x prototype shield (opcional)(altamente recomendável)
1 x PONTE-H dupla
2 x Gear Box com relação 30:1 de transmissão e motor DC associado
2 x Rodas Polulu ou equivalente
2 x Baterias 9V 400 mA/h
2 x clip de bateria 9V
1 x Ball caster (terceira roda)
fios e cabos para as conexões
parafusos, porcas, arruelas, espaçadores para a montagem
2 x peças de acrílico para o corte do chassis
ferramentas em geral



Projeto, esquema, construção - detalhes:


Corte Circular

Recorte das Rodas

Parte Inferior

Parte Superior





Vamos às pinagens:

1 - motores ligados aos pinos de saída da Ponte-H;
2 - bateria de 9V ligado ao VCC (+) e GND (-) da Ponte-H;
3 - pinos in1, in2, in3 e in4 da Ponte-H ligado ao arduino nos pinos: 10, 11, 5 e 6 respectivamente;
4 - pinos 1, 2, 3, 4 e 5 do sensor QTR, ligar aos pinos A0, A1, A2, A3 e A4 (observar que o sensor 1 deve ser o mais à esquerda);
5- LCD ligar como no diagrama: pinos R/W - 13, Enable - 12, dados - 9, 8, 7 e 4 (depende do tipo do seu display);
6 - Botão ligado ao pino 2 do Arduino;
7 - Buzzer ligado ao pino 3 do Arduino;
8 - Sensor de bateria ligado ao pino A5
consiste de dois resistores 10K/5K ligados ao GND/VCC e no centro ligado ao arduino. Como abaixo

|GND|---/\/\/\/------/\/\/\/-----|VCC|
            10K     |    5K
                      |


Esquema geral de conexões



Chassis:

O chassi foi criado especificamente para este projeto do robot Seguidor de linhas "LINUSBot"

Abaixo está o projeto completo do chassi, com dimensões e as vistas de cortes.

Também as fotos reais das fases de montagem.

A disposição dos módulos no chassis pode ser de acordo com o seu próprio design, porém devem ser respeitados alguns critérios, tal como: o peso dos componentes deverm ser apoiados na parte traseira e nunca na frente do chassis.... etc...

Primeiro protótipo:
Feito em madeirite fino de 3 mm.  Funcionou muito bem, poderia ser um projeto final.

Vejamos algumas fotos:


2 partes circulares de madeirite cortadas


Corte nas laterias para acomodação das rodas
Detalhe de fixação dos motores/rodas (parte de baixo), sensores e ball caster (taxinha)

Detalhe de fixação do array Pololu

Detalhe de fixação dos motores (parte de  cima)

Fixação dos espaçadores das camadas inferior e superior

Disposição inicial dos módulos na parte superior

Parte inferior


Parte superior, disposição de espaçadores dos módulos

Modulos fixados


Parte superior cabeada, segundo o diagrama esquemático

Pronto para o primeiro teste

Testado e aprovado, faltando alguns ajustes no software

Detalhe dos sensores cabeados; um grupo de 6 sensores e um grupo de 3 alimentação e controle dos LEDs infra

Detalhe da parte superior

Detalhe da parte inferior e sensores

Detalhe das baterias e ball caster (ainda a taxinha)

Uma grande solução para o Ball casters, é usar um roll-on de um batton de brilho.  Isso a Pololu cobra 2$, e você pode adquirir por R$1,00

Este é o original Pololu.
http://www.pololu.com/catalog/product/174

Ficou excelente esta solução... Recomendo!



Ball caster feito de Batton tipo Roll-on

Detalhe do caster-ball, um pingo de cola tudo e resolvido.

Rodas:
Pololu $7
http://www.pololu.com/catalog/product/1088




Diâmetro - 32 x 7 mm

Uma solução usada, foi comprar uma moto de plastico cuja roda é aproximadamente o mesmo diâmetro, e revestila com uma fita isolante de pressão plástica. R$5,00.
Vejam nas fotos que ficou muito boa a solução.



Motores:
SolarBotics Pololu $20 cada
http://www.pololu.com/catalog/product/641

Se você puder gastar, Recomendo!
Estes motores e gearbox são excelentes, pequenos, baixo cosumo, grande torque, relação 30:1, etc...

Solução encontrada R$30,00 kit com dois
motor, roda off-road, gearbox 30:1
http://seriallink.com.br/loja/product_info.php?cPath=55&products_id=188&language=pt&osCsid=o5b62h3u44ohs0bkh9v57r9up0



Bem eficaz!
A adaptação das rodas utilizadas, ficou perfeitamente ajustada.



Segundo protótipo:

Feito em acrílico.


Corte das duas placas de acrílico no formato circular



Recorte para as rodas

Posicionamento do sensor
 Notar que o sensor do meio, deve ficar alinhado ao centro da placa


Detalhe da ranhura para os pinos do sensor

Furação e inserção do sensor na ranhura

Fixação com parafusos

Posicionamento dos módulos


Detalhe de pinagem dos sesnores



Pista de teste


Detalhe de pinagem do LCD




Após o primeiro teste, bem sucedido de primeira




SOFTWARE E PROGRAMAÇÃO:

No link abaixo você encontra a versão completa e explicada do software utilizado.

http://www.4shared.com/file/8yKb70LD/LINUSBot_9_3pi_modelo.html

Obtenha todos os arquivos necessários no GitHub:
https://github.com/Arduinobymyself/LINUSBot.git

O projeto foi desenvolvido, nos moldes do Robot 3pi da Pololu.

Nove versões foram desenvolvidas com vários tipos de sensores LDRs, Infra-vermelho TCRT5000, TIL32/TIL78 e o array QTR-8RC da pololu.

Para este primeiro protótipo, o desempenho foi muito bom.

Vejam o vídeo para confirmação.







VÍDEOS E TESTES:

Dúvidas e sugestões para: arduinobymyself@gmail.com

Primeiro Protótipo:
screencast: http://www.screencast.com/t/mVXhRPWH
youtube: http://www.youtube.com/watch?v=YEzRKP34UGs&feature=youtu.be


Segundo protótipo:

screencast: http://www.screencast.com/t/6LN3XlDg3cJ
youtube: http://youtu.be/Z046AKObE34









Aguarde o próximo post, onde veremos um controle mais preciso do LINUSBot, utilizando controle PID (Proporcional Integral Derivativo).


E o próximo projeto de um Maze Solver (LINUSBot resolvendo labirintos...)

Até lá......... vai ser Show!

6 comentários:

  1. onde vc comprou o arry infra-vermelho Pololu QTRx8RC??

    ResponderExcluir
  2. Comprei numa Loja Chamado Robocore pela internet.

    http://www.robocore.net/modules.php?name=GR_LojaVirtual&prod=370

    Abraço

    Marcelo Moraes

    ResponderExcluir
  3. Ola Marcelo Moraes,
    o meu nome é João Chito e estou a tirar um curso de electrónica, e para protejo final irei fazer um robô seguidor de linha. Pelo o que eu vi neste site o seu funcionou bem, seria possível dar me o esquemático do robô não para eu copiar mas sim para tirar ideias?
    cumprimentos, João Chito

    ResponderExcluir
    Respostas
    1. Olá João,

      Que bom que tenha gostado do projeto. Espero que você conclua seu curso e seja um ótimo profissional no ramo da eletrônica.
      Deixando a modéstia à parte, este robot "LINUSBot" ficou realmente excelente. Ele é muito eficiente e pode ser programado também com o controle PID (veja a materia arespeito no blog).


      Todos os esquemas que tenho a respeito do projeto do Robot Seguidor de Linha é este que você encontrou no blog.
      Acredito que se você seguir cuidadosamente as orientação você poderá reproduzir um igual.

      Logicamente, você poderá usar seus proprios componente, e assim as ligações serão diferentes.
      Estou pronto a ajudar você com o seu projeto, tirando dúvidas, pode enviar emails diretamente para : marcelo.moraes.1971@gmail.com

      Como disse: o projeto é livre e se vc quiser pode copiar sem problemas.
      Divulgue o blog, meu objetivo é divulgar conhecimento e informação e ter hardware e software Livre para todos.


      Abraço.

      Excluir
  4. Olá Marcelo, estou tentando montar o LinusBot e estou com uma dificuldade no código. Será que vocêe pode enviar sua versão amis atual dele para roberto.refex@gmail.com? Estou precisando realmente de ajuda. No aguardo. Obrigado.

    ResponderExcluir