Usando Bluetooth: O Carro Programado

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.

Carro-herbart-bt.JPG

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.

Herbart.jpg

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:

  1. O carro tem de poder andar para frente e para trás.
  2. O carro tem de poder ser dirigido, fazer curvas, ter uma rota programada.

Para atender esses requisitos ele necessita de:

  1. Um único motor com redução que dê tração e
  2. 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:

  1. Um Microcontrolador (Freaduino) para comandar tudo;
  2. Um módulo Bluetooth (HC-05) para comunicação sem fio;
  3. Um servomotor (Micro Servo SG90) para a direção;
  4. Um kit de motor com redução e rodas acopladas para a movimentação;
  5. Um módulo de potência (Ponte-H) para controlar a energia dada ao motor;
  6. Uma bateria de 9V para alimentar o microcontrolador e periféricos e
  7. 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:

Carro-Herbart.png

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

Carro-herbart-bt2.JPG
Carro-herbart-bt3.JPG
Carro-herbart-bt4.JPG
Carro-herbart-bt5.JPG
Carro-herbart-bt6.JPG
Carro-herbart-bt7.JPG

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:

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:

Motor.png

O código Scratch para acionar o servo que faz a direção fica como na imagem abaixo:

Direcao.png

O arquivo-fonte Scratch .sb2 pode ser baixado em: https://github.com/ComputacaoNaEscola/s2a_fm/blob/master/carro-herbart.sb2

6 comentários

    • 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” .

      Curtir

Deixe um comentário