Projeto: MJRoBot I – O Robot de Berkeley - Passos para a construção de um robot autônomo.

Fazem alguns meses, terminei meu primeiro curso on-line. Foi uma experiência nova mas que despertou em mim uma paixão antiga a muito adormecida, a eletrônica! De lá para cá, fiz vários outros cursos, mas como o primeiro a gente nunca esquece……..

O curso foi: EE40LX: Electronic Interfaces, através da plataforma EDX e ministrado pela Berkeley University, da California. A idéia foi uma revisão geral de eletrônica básica através de exercícios e experimentos, culminando em um Robot que obedecesse alguns requisitos básicos:

  • O robot deveria no mínimo:
    • Responder a luz
    • Produzir som
    • Responder ao som
    • Mover motores
  • Adicionalmente, incorporei ao projeto:
    • Produzir luz
    • Responder remotamente a comandos IR

A foto mostra o monstrengo final…..

Para ser aprovado, entreguei o vídeo abaixo aonde demonstro que o robot cumpria as especificações do curso:

A lista de materiais:

Para a construção do robot, utilizei a lista de componentes abaixo:

Photo 1-11-16, 18 47 23

Para o coração (ou melhor, o cerebro….) do robot, utilizei o Arduino UNO. abaixo o diagrama de blocos com as respectivas pinagens. Para um projeto mais elaborado é fundamental desenvolver este tipo de diagrama. Ele vai sempre ser a guia a que se tem que recorrer durante a codificação do SW.

Photo 1-11-16, 18 46 08

O Hardware:

“RESPOSTA A LUZ”

A base da “reação a luz”, foram as fotocélulas. As fotocélulas (que são resistores que variam com a luz), foram conectados na configuração “ponte de Whitestone”. Isso fazia que uma variação na intensidade de luz provocasse um desequilíbrio da ponte resistiva, o que levava a saturação de um amplificador operacional. Meio enrolado, mas muito inteligente (não eu, mas os caras de Berkley que sugeriram a solução

Photo 1-11-16, 18 48 11

Outra sacada muito legal, foi o uso de um “Power Block”, ou seja, ao invés de deixar a ponte constantemente alimentada (importante lembrar que em um robot autônomo, bateria é vida!), se alimenta a mesma via um pino de saída do Arduino. Assim, somente quando se necessita verificar se o sensor tem luz ou não, 5V é produzido pelo Arduino, alimentando momentaneamente a ponte durante a leitura (no caso, o pino 8).

Foram utilizadas duas fotocelulas, uma frontal e uma traseira. A ação é simples, quando o robot de desloca para a frente e a luz é interrompida, os motores dão “marcha-ré”. E obviamente, vice-e-versa.

 

“GERAÇÃO E RESPOSTA A SOM”

Para que o robot pudesse “ouvir”, um velho e bom microfone de PC foi o escolhido. Como o sinal do microfone é muito baixo, um Amplificador Operacional inversor foi utilizado para amplificação do sinal. Também antes de ser amplificado, o sinal de som passou por um filtro passa altas, eliminando-se assim a componente DC.

Para “falar”, foi utilizado um simples “buzzer”.

Photo 1-11-16, 18 48 00

“MOVER MOTORES”

Para o movimento dos motores uma Ponte H, a velha e boa L293D foi a escolhida. Importante não esquecer de adicionar uns capacitores cerâmicos nos terminais do motor. Isto ajudará a diminuir eventuais ruídos elétricos produzidos pelas “escovas” dos motores DC (10pF está bem). Ah! falando em ruído, nunca é demais lembrar que sempre é bom alimentar os motores com uma batería separada da usada pelo Arduíno (não se esquecendo de conectar os “terras”).Photo 1-11-16, 18 48 21

Para sinalização, utilizei um LED RGB catodo comum. Com isso, podia acompanhar algumas ações do robot através dos LEDs.

Para receber comandos via um controle remoto IR (Infra vermelho), utilizei um  VS1838b. É um sensor con tres terminais, VCC, GND e Signal. Um sensor simples e bem confiável.

Juntando tudo fica uma massaroca mais ou menos assim:

Photo 9-13-15, 21 05 28

O Software:

A idéia do SW foi bem simples. Ao ser ligado,  o robot gerava 4 bips, ficando a espera do sinal “ON” proveniente do controle remoto. Ao receber-lo, soavam 2 bips, o LED ficava azul e o robot estava pronto para receber um comando de voz. No caso um simples ruído mais pronunciado como um assovio ou uma palma (o ganho do Amp Op, deve ser testado para gerar um sinal coerente). Também é importante que durante a faze de “set-up”, se “escute” o nível de ruído do ambiente, assim consegue-se uma melhor precisão e o robot não parte com qualquer barulhinho.

Com o comando de som, o robot começava a mover-se para a frente (LED ficava verde) até que o sensor de luz frontal fosse bloqueado. Nesse momento, o LED ficava vermelho e o robot passava a mover-se de “marcha-ré”, até que o sensor de luz traseiro fosse bloqueado, invertendo-se assim o movimento.  O robot ficava nesse zigue-zague até receber um comando para parar (controle remoto), ou até que o “piloto” dormisse de tédio fazendo o monstrengo se arrebentar no chão (é, o teste foi em cima de uma mesa…..).

Abaixo, o fluxo do programa (dá para entender melhor que o meu Bla-bla-bla anterior):

Photo 1-11-16, 18 46 31

O codigo final do robot pode ser baixado de meu Dropbox público:

https://www.dropbox.com/sh/246l6yksl6fj0uw/AACsVcKSg5yIOohXSj6yuL63...

That’s all Folks! Apenas um minuto de silencio para o velho e bom MJRoBot I, que hoje descansa em paz em minha gaveta de componentes e serve de partes para seu irmão mais novo (ou filho?), o MJR0Bot II!!!!!!! que aparecerá em uma nova entrada deste Blog.

Para matar a saudade fica umas fotinhos para lembrar a construção do rapaz!

Photo 1-11-16, 18 49 06

Para mais projetos e tutoriais, por favor, visite meu Blog: http://mjrobot.org/

Obrigado e espero que este projeto possa ajudar a outros iniciantes no campo da eletrônica a aprender sobre o Arduino , robôs , eletrônica básica, etc.

Abração 

Exibições: 713

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Marcelo Rovai em 4 abril 2016 às 12:39
Valeu Rogerio, muito obrigado. É um projeto simples, então é mais fácil descrever-lo. Estou trabalhando em um Robot para solução de labirintos em linha. Espero terminar nas próximas semanas!, esse está duro! ;-)
Comentário de Rogerio Bego em 4 abril 2016 às 12:34

Parabéns  Marcelo,

Com poucas palavras conseguiu transmitir todos os conceitos.

Esse projeto é rico em ideias.

Parabéns novamente!

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço