O pai de todos os robôs
Home » Robô seguidor de luz » O pai de todos os robôs
Posted in Robô seguidor de luz By Paulo Marcos Trentin On outubro 11, 2012
A ideia de fazer este robô era para motivar alunos recém chegados o novo curso de robótica com Arduino, o qual irá até o final deste ano onde sou o professor.
Foi então em Março de 2012 que aproveitando a oportunidade, resolvi também aplicar algumas "provas de conceito". Havia já comprado dois ou três mini servo motores de 9g, o SG90, e gostaria de testar sua aplicação em tração de robôs. No meio do processo, vi que tinha dois painéis solares, daqueles que geram 5v por 175mA (muita energia!) e ocupam um espaço/peso muito pequeno.
Resolvi juntar tudo, e fazer um robô que segue luz durante a noite, e durante o dia, sem precisar de pilhas ou baterias, ele se tornou um robô que segue o sol.
A ideia, e construção da parte física do robô durou um dia, isso mesmo, apenas um dia e logo você irá perceber porque. O desenvolvimento do programa para controle demorou mais outro dia (isso entre aprender a trabalhar com o servo, LDR e fazer todos os testes).
Acompanhe as imagens de desenvolvimento deste do robô abaixo:
Código fonte original
Simples, com muitas melhorias, mas funcional. Este é o primeiro código fonte, o original, gravado no pai de todos.
Programa para controle de carrinho seguidor de luz
Data de inicio: 04-03-12
// Define pinos dos sensores de luz
#define F_CEN 2
#define F_DIR 1
#define F_ESQ 0
#define T_DIR 2
#define T_ESQ 3
// Diretiva de preprocessador
#define LDR(pin) (analogRead(pin))
// Instancias servomotor
SoftwareServo servoDir;
SoftwareServo servoEsq;
int sensors[] = {F_ESQ, F_CEN, F_DIR, T_ESQ, T_DIR};
servoDir.attach(2);
servoEsq.attach(3);
void goFront(){
servoDir.write(70);
servoEsq.write(70);
Serial.print(analogRead(sensors[i]));
// Vai para frente
goFront();
// Verifica se deve seguir a esquerda
if (LDR(F_ESQ) > LDR(F_CEN)){
// Verifica se deve serguir a direita
else if (LDR(F_DIR) > LDR(F_CEN)){
// Verifica se temos mais luz atras que na frente
if (LDR(T_ESQ) > LDR(F_CEN) || LDR(T_DIR) > LDR(F_CEN)){
if (LDR(T_DIR) > LDR(T_ESQ)) {
// Aqui faz o servo funcionar
Atualização em 10/03/2014 – O esquema elétrico
Respondendo ao pedido do Felipe Inagaki, fiz o esquema elétrico do robô mostrado acima. Assim fica mais fácil reproduzi-lo em casa. Vejam que as conexões são bastante simples!
Esquema completo do robô seguidor de luz com painel solar e chave seletora
Clique Filedownload Error: file 'http://www.paulotrentin.com.br/wp-content/uploads/2012/10/robo-seguidor-de-luz_bb.png' does not exist! para baixar a imagem original acima.
A mutação do código fonte
Nem eu e nem Isaac Asimov conseguimos prever o que veio pela frente. Por saber seguir a luz, este robô aprendeu a desviar da sombra! isso mesmo, testando no sol, o robô conseguia seguí-lo a ao aparecer uma parede com sombra, ele desviava da sombra numa maneira quase que instinta. O software sofrera sua primeira mutação!
Video do robô funcionando
Infelizmente não fiz nenhum video detalhado do funcionamento do robô, mas neste video pode-se ter uma ideia de como ele era. Obrigado professor Herculano, por gravar e fornecer o video!
O pai de todos, enfim, descansa em paz
Como tudo nessa vida tem um começo, meio (as vezes reprodução) e um fim, infelizmente nosso robô seguidor de luz morreu em meados de janeiro de 2012, já com sua missão aqui na terra cumprida. Acabou viajando muito para demonstrações (para alunos e amigos em outras escolas) e não resistiu tamanhas agitações. Hoje está em algum lugar muito feliz lá no céu, ensinando à baratas que a luz não é tão perigosa quanto imaginavam.
Seus órgãos funcionais foram doados para a criação de um novo robô, portanto além de inspirador o pai, foi também um saudável doador, cumprindo com seu dever robótico.
O que aprendi com esse histórico robozinho
Ele foi muito querido para mim, e o motivo de não ter tirado nenhuma foto do seu lado não foi falta de amor, e sim mais uma vez, descuido com sua memória. Por isso, aprendi novamente: sempre registre muito bem coisas legais que faz.
Ele me ensinou que perfurar um CD-ROM e passar uma presilha plástica pode não ser a melhor opção para segurar um mini servo motor. Que CDs não são exatamente a melhor base para um robô, mesmo sendo um CD do linux! Aprendi que cola quente não cola capacitores em CDs.
Mas o mais importante, aprendi que com criatividade e paciência, podemos gastar muito, muito pouco para construir um robô que segue luz e desvia da sombra.
A reprodução da espécie
Esse robô superou todas as expectativas que tinha para ele, pois simplesmente funcinou 100%! E mais, acabou servindo de inspiração para outros projetos de robôs, e um deles é o que vamos ver como foi construído aqui. Enfim, ele gerou muitos filhotinhos :)
Fiquei muito feliz com os elogios de amigos e alunos, com o encanto que ele gerou nas pessoas, elas até o acharam fofo! hehe.
O pai de todos então inspirou a geração de uma nova raça de robôs, mais forte e adaptada ao meio, a qual será contada no próximo capítulo desta história.
Robô seguidor de luz de baixo custo com Arduino – Considerações iniciais
A versão 2.0 do robô seguidor de luz
Construção da base do robô com fenolite
By Roger Melo Rodrigues dos Santos
Gostei muito da apresentação…
on 2 de janeiro de 2013 Responder
on 10 de março de 2014 Responder
By Felipe Inagaki
Olá, primeiramente parabéns pelo projeto, tenho 15 anos e sou um jovem aprendiz da mecatrônica e realmente achei muito interessante a ideia, tanto que a pouco tempo iniciei a construção do mesmo.
Mesmo que muitas vezes os meus projetos não deem certo, passar o tempo montando circuitos e afins é como um hoobie .
Porém estou com certa dificuldade na montagem do circuito, por ser um iniciante com o arduino, por isso gostaria se possível o esquema de ligação.
on 29 de janeiro de 2014 Responder
Oi Felipe, desculpe pela demora em lhe responder. Agora me organizei melhor para gerenciar o site (esta vez é de verdade! hehe)
Que bom que está fazendo um robô em casa, parabéns pelo espírito de robbista hehe. Isso é o que vale, pois mostra que tu tens muito interesse na área, e verás que isso fará toda diferença!
Felipe, sua sugestão foi muito boa, fiz o esquema de ligação do robô completo, assim será mais fácil você montar e verá que não tem muito segredo não!
Espero que lhe ajude e que a demora da resposta não tenha lhe desmotivado em terminar o robô.
Bons estudos rapaz!
Olá Paulo muito obrigado pela resposta, na verdade nesse meio tempo ja fiz algumas tentativas de layout do circuito mas agora ficou bem mais facil.
Obrigado de novo pela consideração em postar o circuito e boa sorte.
on 18 de março de 2014 Responder
Ok Felipe, que bom que já fez outros testes. De qualquer modo seu comentário motivou a criação do circuito que vai facilitar a vida de outros hobbistas hehe.
By André Hackbarth
Show de bola cara, muita criatividade, parabéns mesmo, continue assim, postando muita coisa legal…
on 20 de janeiro de 2015 Responder
eu queria saber se vc usa capacitor e qual o tipo
on 1 de setembro de 2015 Responder
Sim, usei um de 2000uF.
on 13 de setembro de 2015 Responder
By Diego Farias Rodrigues
Como fez para o servo motor girar 360 graus, sendo que em sua maioria gira 180?
on 4 de maio de 2016 Responder
Oi Diego, veja este video que fiz mostrando como destravar um servomotor permitindo que gire 360 graus: https://www.youtube.com/watch?v=EPt_IjXpVjw
on 21 de junho de 2016 Responder
By Camila teixeira
Parabéns pelo projeto Paulo! Sou estudante do curso de Engenharia de Energias, e pretendo reproduzir este projeto, porém tenho uma duvida, o mesmo pode ser replicado em um Arduino UNO? Você teria algum vídeo do funcionamento dele?