A edição de maio da revista britânica MagPi publicou uma matéria muito legal sobre meu Projeto “Mars Rover Tupiniquin”. Para quem não conhece, a MagPi é a revista oficial do RapsberryPi. Você pode baixar grátis as edições da revista em PDF.
Esta é a segunda e última parte de um projeto mais complexo, que explora a potencialidade de um robô seguidor de linha. Nesta etapa, aplicaremos conceitos de inteligência artificial na exploração de labirintos, implementando algoritmos que nos ajudarão a encontrar o caminho da saída mais curto e rápido.
O objetivo desse tutorial é desenvolver passo a passo um projeto para o controle e programação de um braço robótico, simulando as funções básicas de um robô industrial.
Especificações:
O robô deverá ter duas funções básicas:
Programa: gravar posições do braço em 3 dimensões
Run: executar o programa de trabalho (ou seja, executar em sequencia as posições gravadas na etapa de programa.
O robô executará o programa até que o comando de “abortar” seja utilizado.
O projeto deverá controlar robots de 3 ou 4 DOF (“Degrees of Freedom”).
O robô deverá ser controlado em modo “local” e “remoto” (via celular)
Durante o programa se poderá mudar o controle de “local” a “remoto” e vice-e-versa.
Deverá possuir sinalização tanto visual (LEDS e display) quanto sonora
Deverá possuir função de alarme acionado remotamente.
O projeto:
O diagrama abaixo mostra o “Bill of Material” que será utilizado no projeto:
Para o projeto, optarei pelo Arduino MEGA para não ter que me preocupar com o número de portas I/Os. O UNO funcionaria sem problemas, mas se deveria utilizar algum método de expansão de portas. Existem várias opções que podem ser facilmente encontradas na internet, como um decodificador 74138 por exemplo (veja o site: “Expandindo os I/Os do Arduino”).
A app Android utilizado para o “modo remoto”, foi desenvolvida utilizando-se a ferramenta MIT appinventor2, uma plataforma tão poderosa quanto simples para esse tipo de app baseado no Android. No futuro pretendo explorar a criação de apps desse tipo aqui no Blog. Por enquanto, a app está disponível para ser baixada gratuitamante na loja da Google: MJRoBot Arduino Arm Robot Control.
Os vídeos abaixo dão uma idéia de como deverá ficar o projeto final:
Primeiro protótipo sendo programado em “modo local”:
O robô programado de maneira remota via rede Bluetooth:
Nos próximos posts, detalharei os passos necessários para o desenvolvimento do projeto.
Como sempre, espero que este projeto ajude outras pessoas a encontrar seu caminho no apaixonante mundo da eletrônica, robótica e do IoT!
Em tempo: aproveito e deixo aqui um abraço para duas pessoas muito queridas, meu tio Ítalo que já não está aqui entre nós, que além de me ensinar a jogar Xadrez quando garoto, me deixou de presente essas peças que utilizei no vídeo. O outro abraço vai para o meu sogro Mathias, que muito carinhosamente presenteou-me com o tabuleiro e com as peças do jogo que haviam se perdido com o tempo (tudo feito por ele).
Uma rede sem fio local (e pessoal) porreta é sem dúvida a Bluetooth (BT). Hoje em nosso dia-a-dia é comum encontrar-nos com celulares, aparelhos de som, cameras, etc., entrelaçados com a ajuda da famosa “luzinha azul”
No mundo do IoT e da automação em geral, é muito comum deparar-nos com controles remotos via celulares utilizando tecnologia BT. Isso é devido a 2 componentes básicos mas muito importantes:
Plataforma de desenvolvimento para OS ANDROID
Módulos BT baratos e acessíveis (Como por exemplo o HC-06)
Neste tutorial, vou desenvolver algumas idéias de como controlar as saídas de um Arduíno através de um celular de maneira a mover um Robot, acionar lâmpadas em uma casa, etc.
No mercado é comum encontrar módulos de BT 3.0 “Master-Slave” como o HC-05 e “Slaves” como o HC-06. Já mais recentemente, apareceram os HC-08 e HC-10 que trabalham com tecnologia BT 4.0 ou BLE (“Bluetooth Low Energy”). Os módulos BLE são os únicos que podem ser conectados a um Iphone, pois infelizmente a Apple não fornece suporte a ao BT 3.0.
Para os projetos discutidos aqui, usarei um HC-06 que é bem popular e barato (Bye, bye, Iphone, vamos de Android!). O Módulo é alimentado com 5V o que faz com que ele seja facilmente conectado a um Arduino
UNO por exemplo, para receber e transmitir informações a outros dispositivos como um PC ou um telefone celular. Seus pinos de transmissão e recepção podem ser conectados diretamente ao UNO, não havendo a necessidade de se utilizar divisores de tensão como vimos no caso do ESP8266.
Na prática, o HC-06 deve ser ligado diretamente aos pinos 0 e 1 do Arduino (Serial):
HC06-Tx ao Arduino pin 0 (Rx)
HC06-Rx ao Arduino pin 1 (Tx)
Ao se usar a entrada serial por HW do UNO é muito importante lembrar-se que o HC-06 não pode estar fisicamente conectado aos pinos 0 e 1 durante a carga do programa, isso porque o USB também usa essa mesma serial. Uma maneira simples de se contornar esse probleminha (se seu projeto não utiliza muitos GPIOs do UNO) é usar uma porta serial por SW através da library SoftwareSerial (a mesma que usamos no caso do ESP8266). Em nosso caso aqui, usaremos os pinos 10 e 11 do UNO (Tx, Rx respectivamente).
Para começar (e se desenvolver) no mundo da eletrônica, o melhor caminho sem dúvida é a internet! Vai aqui uma super dica de como se tornar um grande programador através da técnica do “Psychding”:
Heheheheheh! Seria bom se só isso resolvesse! Mas ajuda, claro! Mas para aprender mesmo, vale a pena uns cursos, muita leitura e claro, “mãos na massa!”. Para o pessoal que está no Brasil um site muito legal é o:
Como o pessoal do Garagem mesmo explica, “O Laboratório de Garagem é uma iniciativa voltada para a integração, colaboração e apoio aos desenvolvedores independentes de ciência e tecnologia, ou como gostamos de ser chamados: garagistas.
Somos uma rede social, uma incubadora, uma loja virtual e um grupo de pessoas que acreditam que a próxima revolução pode (e vai) sair de uma garagem, ainda mais se ela estiver conectada a muitas outras garagens.
Eu também sou um dos garagistas e tenho procurado dar meus pitecos por lá. Vale a pena se associar, participar, mandar sugestões, etc. O pessoal de lá é muito legal, estão sempre prontos a ajudar, não importando se as dúvidas são básicas ou complicadas!
O Lab de Garagem por exemplo, tem um curso on-line básico muito legal (em português) para quem quer se iniciar no mundo dos Arduinos:
No meu último post, comentei que o curso que fiz através da plataforma EDX me ajudou a re-descobrir o mundo da eletrônica. De lá para cá, tenho nas horas vagas procurado fazer alguns cursos tanto do EDX quanto do COURSERA. Essas plataformas são a ponta de lança para que grandes universidades ou empresas possam propiciar cursos on-line. Em geral a qualidade é muito boa e a profundidade depende da instituição ou do tema. Como regra geral, eu diria que os cursos do EDX são mais complexos, profundos e necessitam bastante dedicação e tempo. Já os do COURSERA, são mais superficiais e rápidos. Esses cursos são conhecidos como MOOC (Massive Open Online Course) e seguramente vão transformar a educação como a conhecemos hoje.
Existem tanto cursos “isolados” sobre um determinado tema como outros que são “Especializações”, ou seja um conjunto de cursos (em geral 5 + um projeto final) que também podem ser feitos individualmente. Todos os cursos podem ser feitos sem certificado final (gratuitos) ou com direito a certificado (em média, uns USD50/curso).
Aqui vão algumas sugestões de cursos que estão abertos no momento, outros que já fecharam, mas ainda disponibilizam conteúdos e alguns que ainda estão por vir:
A melhor maneira de começar no mundo do IoT é sem dúvida através de um Kit básico para Arduino. Existem talvez centenas de kits no mercado de diferentes tamanhos, procedencias, etc. Vou descrever aqui o kit básico oficial, mas qualquer componente, original ou não pode ser usado.
O livro que acompanha o kit tras uma descrição detalhada de como instalar o SW para programar o Arduino e vai passo a passo levando o leitor a conhecer os primeiros passos desse fascinante mundo.
15 projetos são detalhadamente descritos, cobrindo as principais areas de uso de um Arduino interfaceando com o mundo físico:
GET TO KNOW YOUR TOOLS an introduction to the concepts you’ll need to use this kit
SPACESHIP INTERFACE design to control panel for your startship
LOVE-O-METER measure how hot-blooded you are
COLOR MIXING LAMP produce any color with a lamp that uses light as an input
MOOD CUE clue people in to how you’re doing
LIGHT THEREMIN create a musical instrument you play by waving your hands
KEYBOARD INSTRUMENT play music and make some noise with this keyboard
DIGITAL HOURGLASS a light-up hourglass that can stop you from working too much
MOTORIZED PINWHEEL a color wheel that will have your head spinning
ZOETROPE create a mechanical animation you can play forward or reverse
CRYSTAL BALL a mystical tour to answer all your tough question
KNOCK LOCK tap out the secret code to open the door
TOUCHY-FEEL LAMP a lamp that responds to your touch
TWEAK THE ARDUINO LOGO control your personal computer from your Arduino
HACKING BUTTONS create a master control for all your devices!
Todos os programas ou “Sketch” para “rodar” os projetos no Arduino podem ser encontrados no IDE, que é a plataforma para desenvolvimento (“Arduino environment”). As explicações estão em ingles, mas são bem diretas e simples. Em caso alguém necessite ajuda com tradução ou como seguir os passos para sua implementação é só deixar um comentário que terei o maior prazer em ajudar.
Como comentei, o importante são os “passos a seguir”, assim que os componentes para executar os projetos podem ou não serem adquiridos com o Kit, ou em uma loja qualquer de eletrônica. aqui a lista dos componentes:
1 Arduino Projects Book (170 pages)
1 Arduino UNO board rev.3
1 USB cable
1 Breadboard
1 Easy-to-assemble wooden base
1 9v battery snap
70 Solid core jumper wires
2 Stranded jumper wires
6 Photoresistor [VT90N2 LDR]
3 Potentiometer 10kilohm
10 Pushbuttons
1 Temperature sensor [TMP36]
1 Tilt sensor
1 alphanumeric LCD (16×2 characters)
29 LEDs various colours
1 Small DC motor 6/9V
1 Small servo motor
1 Piezo capsule [PKM17EPP-4001-B0]
1 H-bridge motor driver [L293D]
2 Optocouplers [4N35]
7 Transistors various
13 Capacitors various
5 Diodes [1N4007]
3 Transparent gels (red, green, blue)
1 Male pins strip (40×1)
55 Resistors various
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!
Hoje começo a escrever meu Blog/Website “MJRoBot”. A idéia é poder compartir idéias e experiencias no mundo da eletrônica. A ênfase será no uso de plataformas de desenvolvimento baseadas em microcontroladores, como Arduino e computadores completos como o Raspberry-Pi.
Com o rápido desenvolvimento do que chamamos hoje de “Internet of Things” ou simplesmente “IoT”, Arduinos, sensores, etc., estão cada vez mais ao alcance das mãos de curiosos, “hobbystas”, estudantes, profissionais, etc.
Espero que meus projetos, posts e idéias possam ajudar outras pessoas a encontrar seu caminho no apaixonante mundo da eletrônica, robótica e do IoT!