segunda-feira, 23 de junho de 2014

Controlando Carrinho com Arduino, Bluetooth e Android

Palavras-chave: Arduino, Android, App Inventor, Bluetooth, L293D, HC-06.

Nota: todos os links para sites e ferramentas encontram-se no final do post.

Aproveitando a ideia de controlar um carrinho com RF 433MHz [1], aqui utilizaremos o Bluetooth, [2].

MATERIAIS

Mecânica:

- 1 Kit do chassi Magician DG007.

Eletrônica: 

- 1 Arduino Uno R2;
- 1 L293D;
- 1 Módulo transceiver Bluetooth (HC-06).

Diversos:

- 1 Suporte de 4 pilhas AA para o carrinho;
- 4 Pilhas AA;
- 1 Protoboard para a montagem do L293D;
- Fios (jumpers) para a montagem em protoboard.

PROGRAMAÇÃO - ARDUINO

Copie o código abaixo integralmente e faça o upload.
/*-------------------------------------------------------
 * CONTROLANDO CARRINHO COM ARDUINO, BLUETOOTH E ANDROID
 *
 * Desativar o modulo Bluetooth antes de fazer upload!
 *
 * www.binarycodec.blogspot.com
 * Data: 16/06/2014
 * v.1.0
-------------------------------------------------------*/

char caracter;

void setup() {

  Serial.begin(9600);
  pinMode(2, OUTPUT); // Motor 1 - Direita
  pinMode(3, OUTPUT); // Motor 1 - Direita - Inverte sentido
  pinMode(4, OUTPUT); // Motor 2 - Esquerda
  pinMode(5, OUTPUT); // Motor 2 - Esquerda - Inverte sentido

}

void loop() {

  caracter = Serial.read();

  if (caracter == 'w') { // Para frente

    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);

  }

  if (caracter == 's') { // Re

    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW);

  }

  if (caracter == 'a') { // Para esquerda

    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);

  }

  if (caracter == 'd') { // Para direita

    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);

  }

  if (caracter == 'e') { // Parar

    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);

  }

}
Se o módulo Bluetooth estiver conectado ao Arduino, desconecte-o antes de fazer o upload. 

APLICATIVO - ANDROID

O aplicativo utilizado no controle do carrinho foi elaborado através do MIT App Inventor, [3]. Ainda, será descrito de forma sucinta os passos para a criação do mesmo. Há também a possibilidade de baixar o arquivo pronto diretamente pelo link em [4] ou na página de downloads.

Para começar, acesse o site do App Inventor e faça o login com uma conta do Google. Na página inicial, clique em "New Project", Figura 1.

Fig. 1 - Novo projeto.

Após inserir o nome do projeto e clicar em Ok, será aberta a página "Designer", Figura 2.

Fig. 2 - Interface designer.
Na coluna "Properties", localize o campo "Title" escreva "::: Controle :::".

Clique em "Layout", localizado na coluna "Palette" e arraste 10 "Horizontal Arrangement" para o centro. Nos campos "Width" e "Height" selecione "Fill parent...".

Vá para "User Interface" e arraste o "Label" para o primeiro "Horizontal Arrangement". Em "BackgroundColor" selecione "White", em "Text" escreva "Bluetooth", em "TextAlignment" selecione "Left", no "TextColor" escolha "Black" e nos campos "Width" e "Height" selecione "Fill parent...".

Agora vamos colocar os botões para conectar e desconectar o Bluetooth.

No próximo "Horizontal Arrangement", arraste um "ListPicker" e um "Button" (posicione-o no lado esquerdo). O "ListPicker" será utilizado para selecionar o dispositivo Bluetooth e consequentemente parear o Android com o Arduino.

Para o "ListPicker", deixe o "BackgroundColor" em "Green", selecione a opção "Enable" (somente para este botão!), em "Text" escreva "CONECTAR", em "TextAlignment" selecione "Center", no "TextColor" escolha "Default" e nos campos "Width" e "Height" selecione "Fill parent...".

Já o "Button", deixe o "BackgroundColor" em "Pink", desmarque a opção "Enable", em "Text" escreva "DESCONECTAR", em "TextAlignment" selecione "Center", no "TextColor" escolha "Default" e nos campos "Width" e "Height" selecione "Fill parent...".

Repita os passos acima até o aplicativo ficar como apresentado na Figura 3.

Fig. 3 - Interface pronta.
Lembrar de que somente o botão "conectar" utilizará o "ListPicker" e terá a opção "Enable" selecionada.

Ainda na coluna "Palette", vá em "Connectivity" e arraste para o centro o "BluetoothClient".

Para facilitar a programação, na coluna "Components" clique em cada botão começando pelo "ListPicker" e depois em "Rename". Abrirá uma janela onde, no campo "New name", poderá inserir um nome mais intuitivo.

Para este aplicativo utilizei a seguinte sequência:

Conectar - BotaoConectar;
Desconectar - BotaoDesconectar;
Frente - BotaoFrente;
Esquerda - BotaoEsquerda;
Direita - BotaoDireita;
Ré - BotaoRe;
Parar - BotaoParar.

Ao término, clique em "Blocks", que está ao lado do botão "Designer", Figura 3.

O "Blocks", onde é feita a parte lógica do aplicativo, também funciona arrastando os componentes para o centro. Basta clicar nos itens da coluna "Blocks", escolher e arrastar. É como montar um quebra-cabeça.

As Figuras 4 e 5 mostram como o aplicativo deve ser montado.

Fig. 4 - Programação do Bluetooth.


Fig. 5 - Programação dos botões.
Encerrando, clique em "Project" e depois em "Save project". Para gerar o arquivo executável, clique em "Build" e na sequência em "App (save .apk to my computer)", Figura 6. Pode-se salvar diretamente no cartão SD do aparelho.

Fig. 6 - Salvar e gerar o executável.
Já no celular, dê um clique no aplicativo e o Android se encarregará de concluir a instalação. 

MONTAGEM

As Figuras 7 e 8 mostram o esquema de ligação e a pinagem do L293D, respectivamente. Já a Figura 9 exibe o módulo Bluetooth utilizado.

Fig. 7 - Diagrama elétrico.
Fig. 8 - Pinagem L293D.
Fig. 9 - Módulo transceiver Bluetooth - HC-06.
O datasheet do L293D pode ser obtido na página de downloads ou em [5].

Características do módulo Bluetooth:

Modelo: HC-06;
Versão: 2.0 + EDR (Enhanced Data Rate);
Taxa de transmissão: 3Mbit/s;
Alimentação: 3.3V;
Baud rate: 9600;
Área de cobertura: 10m;
Dimensões: 4,3 x 1,6 x 0,7 cm;
Senha padrão: 1234.

TESTE 

Conecte a alimentação do carrinho. Perceba que o led do módulo Bluetooth começará a piscar.

Ative o Bluetooth do celular e efetue o pareamento (dispositivo HC-06). Será solicitado uma senha (1234).

Abra o aplicativo de controle e clique em "CONECTAR". Aparecerá todos os dispositivos que o celular já detectou incluindo o módulo. Clique no dispositivo HC-06 e aguarde o aplicativo apresentar os botões de movimento. Neste ponto o led do módulo deverá permanecer aceso.

O vídeo abaixo mostra o funcionamento do carrinho.


Ao clicar em "DESCONECTAR" os botões de movimento perdem efeito e o led do módulo voltará a piscar.

O aplicativo foi testado no Android v.2.2. 

MATERIAIS/LINKS RELACIONADOS

Nenhum comentário: