Este é um projeto onde vamos usar comunicação sem fio via Bluetooth com o Arduino para fazer um carro programado via Scratch fazer o que queremos.
Veja o vídeo para ver o que o carro faz:
Para nosso projeto utilizamos um kit de construção de plástico com parafusos e porcas fáceis de manusear. Nosso kit é uma relíquia alemã da década de 1970 chamado HERBART. É excelente para crianças porque podem montar o que quiserem, é fácil integrar as peças do Arduino como sensores e atuadores e os parafusos grandes e de plástico permitem a crianças, mesmo menores, montar qualquer coisa usando apenas as mãos. Hoje existe à venda material equivalente a esse fabricado no Brasil e chama ATTO Educacional.
Monte o Circuito: Os Componentes e suas Funções
Escolhemos fazer um carro capaz de ser dirigido à distância por um programa Scratch usando o mínimo de componentes para isso.
Os requisitos são so seguintes:
- O carro tem de poder andar para frente e para trás.
- O carro tem de poder ser dirigido, fazer curvas, ter uma rota programada.
Para atender esses requisitos ele necessita de:
- Um único motor com redução que dê tração e
- Um mecanismo que direciona essa tração.
A solução mais simples é montar o motor em uma estrutura móvel, cujo eixo é movido por um servomotor.
Para construirmos um carro assim, ele deverá possuir:
- Um Microcontrolador (Freaduino) para comandar tudo;
- Um módulo Bluetooth (HC-05) para comunicação sem fio;
- Um servomotor (Micro Servo SG90) para a direção;
- Um kit de motor com redução e rodas acopladas para a movimentação;
- Um módulo de potência (Ponte-H) para controlar a energia dada ao motor;
- Uma bateria de 9V para alimentar o microcontrolador e periféricos e
- Um conjunto de 4 pilhas AA para alimentar o motor.
Escolhemos usar um Freaduino ao invés de um Arduino para a montagem para evitar ter de usar um protoboard em cima do carrinho-robô. O Freaduino é compatível com Arduino Uno R3 e excelente para coisas que usam servos e outros periféricos que ligam com um cabo sinal/VCC/GND por causa das saídas prontinhas que ele oferece para isso. O circuito é mais complexo que os exemplos anteriores e está na figura abaixo:
A Ponte-H chama a atenção e é uma parte muito importante do circuito: um Arduino pode controlar diretamente coisas que não consomem muita energia como LEDs, servos e buzzers. Um motor necessita de muita corrente e, se o conectarmos ao Arduino, vamos queimá-lo. Precisamos de um circuito que pode ser controlado pelo Arduino e que funcione como uma torneira: o Arduino a abre ou fecha e a energia flui ou não para o motor diretamente da bateria. Pontes-H servem para isso.
Como a bateria de 9V é fraquinha e perderia a carga logo se fosse usada para alimentar um motor e também porque motores simplesinhos como o que usamos soltam pequenas faíscas que produzem interferência e podem fazer o Arduino ficar instável, optamos por usar uma fonte de energia mais forte e mais barata (pilhas AA) e colocá-las em um circuito separado do circuito que alimenta o Arduino. Assim a energia fornecida ao Arduino não enfraquece quando o motor liga e nem há interferência gerada pelo motor no suprimento de energia do Arduino.
Só é muito importante interligar os terras/negativos (GND) de ambos os circuitos, ligando o GND da Ponte-H ao GND do Arduino, para que haja um caminho de “retorno” para os sinais enviados pelo Arduino à Ponte-H. Se não existir essa conexão, não haverá um circuito por onde os sinais enviados pelo Arduino à Ponte-H possam fluir e seu programa não vai conseguir controlá-la.
Resumo das Conexões de Controle/Dados do Arduino
Pino 11 - Controle de velocidade (IN 1) do Motor #1 da Ponte-H Pino 12 - Controle de sentido de rotação (IN 2) do Motor #1 da Ponte-H Pino 9 - Conexão de controle do Servo Pino 0 - Saída TXD do Módulo Bluetooth Pino 1 - Entrada RXD do Módulo Bluetooth
Monte o Carro
Benchmark: Nossa filha de 11 anos e um de nós levamos aproximadamente 90 minutos para projetar e montar a parte estrutural e mecânica do carro.
O material à disposição eram restos de diferentes kits nos quais faltavam peças e perdemos muito tempo procurando peças e tentando descobrir como, com o pouco que tínhamos à disposição, iríamos resolver este ou aquele problema mecânico ou estrutural. Possuindo-se um bom kit de montagem à disposição, como ATTO, por exemplo, acreditamos que esse tempo de montagem se reduza bastante e um carro assim seja um projeto bastante viável em sala de aula.
Material usado no Carro
- Kit de montagem plástico ou madeira com peças parafusáveis à mão como HERBART, ATTO, Lorenz BAUFIX ou similar - Abraçadeiras de Nylon tipo fita para auxiliar na fixação de servo e motor - Fita dupla face para auxiliar na fixação de componentes eletrônicos - Pedacinhos de EVA para ajudar a fixar motor e servo, servindo de espaçadores e evitando que escorreguem
Detalhes da Montagem do Carro
Montagem:
- Utilizamos uma caixa plástica do kit HERBART como chassis e como baú para a eletrônica;
- Toda a eletrônica foi fixada no baú com fita dupla-face, já que o plástico é material isolante;
- Ao fixarmos as rodas traseiras nos suportes, utilizamos buchas de plástico (faziam parte do kit) para que os parafusos não travem o giro da rodas;
- A coluna de direção é suportada pelo servomotor, que foi fixado ao chassis por pressão utilizando-se duas peças de madeira rígidas de um kit Lorenz BAUFIX;
- O eixo da coluna de direção é o próprio eixo do servomotor;
- O conjunto de tração foi montado com duas peças em “U”, parafusadas uma contra a outra;
- O conjunto de tração foi fixado à coluna de direção diretamente no servomotor usando-se uma das borboletas que vêm junto com o servo, fixada pelo lado interno do “U” superior, usando-se EVA (vermelho) como espaçador e duas fitas de Nylon com trava para fixação;
- O motor foi fixado ao “U” inferior do conjunto de tração, usando-se EVA para ajuste do contato e evitar que o motor escorregue e duas fitas de Nylon com trava passadas pelos furos de fixação do motor para fixá-lo no lugar;
- Por fim montamos o “capô” com dois assentos para bonecas.
Teste a Comunicação Bluetooth
Para entender como montar a eletrônica e conectar o Bluetooth, veja nossos tutoriais:
- Como instalar MIT Scratch 2.0 em Linux
- Como Instalar a Comunicação entre Scratch e Arduino usando s2a_fm
- Preparando Arduino para Comunicar com Scratch usando FirmataPlus
- Como configurar seu Módulo Bluetooth para Comunicação entre Scratch e Arduino
- Robótica Móvel com Scratch: Preparando seu PC Linux, seu Arduino e seu Scratch para comunicarem sem fio via Bluetooth
- Robótica Móvel com Scratch no Raspberry Pi: Preparando seu Raspberry Pi com Raspbian Linux, seu Arduino e seu Scratch para comunicarem sem fio via Bluetooth
- Lista de Navegadores para Rodar Berkeley SNAP! com Arduino e s2a_fm no Raspberry Pi
Crie seu Programa Scratch
Para efeitos didáticos, escolhemos um design de programa que divide as funções de locomoção e direção entre dois atores Scratch diferentes: Motor e Direção. Assim podemos mostrar que as duas ações podem ser conduzidas de forma independente e simultânea e inclusive introduzir o conceito de threads em Computação (Irônico, não? Quando eu era graduando aprendemos programação paralela como algo avançadíssimo no 3º ano do curso de graduação em Computação – hoje estamos propondo ensinar a crianças).
Associamos a cada ator uma imagem da peça do carro que ele programa. Elas foram dispostas no palco de forma a aparecerem sempre ambas.
O código Scratch para acionar o motor fica como na imagem abaixo:
O código Scratch para acionar o servo que faz a direção fica como na imagem abaixo:
O arquivo-fonte Scratch .sb2 pode ser baixado em: https://github.com/ComputacaoNaEscola/s2a_fm/blob/master/carro-herbart.sb2
Qual aplicativo vocês usaram pra mandar os dados para o arduino ?
CurtirCurtir
Teria como fornecer o código no formato da IDE padrão do Arduino ?
CurtirCurtir
Arthur, o Arduino tem de ter instalada uma versão de Firmata (um sketch bem padrão, que é na verdade um interpretador de comandos para Arduino, e que possui várias versões), tanto para comunicação Bluetooth como para comunicação com o Scratch. Além disso, no computador onde você for rodar o Scratch, tem de ter instalado também s2a_fm. Para obter mais infomações e um tutorial detalhado leia o texto nos links na seção “Teste a Comunicação Bluetooth” .
CurtirCurtir
Ok, muito obrigado pela explicação, sou novato nesse mundo ainda, parabéns pela iniciativa
CurtirCurtir
O link para instruções do Bluetooth está quebrado.
Vcs tem um novo?
Obrigado!
CurtirCurtir
Arrumado. Coloquei também alguns outros links mais atuais.
CurtirCurtir