MJRoBot I – O Robot de Berkeley

11 11-03:00 janeiro 11-03:00 2016 — 2 Comentários

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

O monstrengo final…..

MJRoBot I

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

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/AACsVcKSg5yIOohXSj6yuL63a?dl=0

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

Ciao, bello! Hora de tomar um vinhozinho!

CONCLUSÃO

Como sempre, espero que este projeto ajude outras pessoas a encontrar seu caminho no apaixonante mundo da eletrônica, robótica e do IoT!

Não deixe de visitar e seguir minha página: MJRoBot.org no Facebook

“Saludos desde el sur del mundo!” 😉

Um abraço e até o próximo post!

Obrigado

Marcelo

 

 

2 Respostas para MJRoBot I – O Robot de Berkeley

  1. 

    Marcelo Rovai,
    Gostei muito de seu Blog.
    compartilho a mesma paixão por Arduinos e IOT.
    É um prazer ter um Brasileiro no chile fazendo projetos como os que vi em seu blog.
    Parabens.
    Regi

    Curtir

Deixe um comentário