Bluetooth_bitbloq_2

Queres comunicar via Bluetooth com a tua placa controladora? Podes fazê-lo se tiveres um módulo Bluetooth compatível com Arduino ou uma placa como a ZUM BT-328 que já o tenha integrado. Uma comunicação realiza-se sempre entre duas partes, entre dois makers, entre dois robots, entre duas alfaces… quero dizer, para as alfaces será um pouco mais difícil. Para conseguir uma comunicação sem fios via Bluetooth, o que necessitas são dois programas: um que corra no computador ou dispositivo móvel/tablet e outro que se execute na placa cérebro que uses.

Bluetooth_bitbloq_2

Neste post, explicamos como realizar a comunicação com um computador que possua Bluetooth. Necessitamos então de:

  1. Um programa dentro da placa controladora que envie/receba dados. (Vamos fazê-lo com o bitbloq )
  2. Um programa dentro do computador ou dispositivo com bluetooth que envie/receba dados. (Utilizaremos o Monitor Serial do IDE do Arduino)

Abre o bitbloq e descarrega o IDE do Arduino. Mãos ao código!

ESCREVER VIA BLUETOOTH


Neste primeiro exemplo queremos enviar a frase “Bluetooth era um viking via Bluetooth esperando 2 segundos entre cada envio.

Parte 1: EMISSOR – Programação no bitbloq

Em primeiro lugar usaremos este bloco de bitbloq da aba Comunicação para inicializar os parâmetros via Bluetooth. Se utilizares uma placa ZUM BT-328 terás que configurar uma velocidade de 19200 bauds:

Se por outro lado, utilizares o módulo Bluetooth do Meu Primeiro Kit de Robótica que é um HC-05, terás que configurar uma velocidade de 38400 bauds e ligá-lo da seguinte forma:

conexion_ModuloBluetooth

AVISO: Quando carregares o teu programa para a placa controladora, o cabo laranja deve estar desconectado do pino 0. Quando o quiseres correr, volta a conectá-lo como no esquema.

Os blocos bitbloq deste exemplo de programação são assim:

Como terás visto, só é necessário o bloco Bluetooth: Enviar, onde conectamos o bloco de texto da nossa frase. Carrega este programa na placa.

Parte 2: RECEPTOR – Usando o Monitor Serial do Arduino IDE

Vamos agora, configurar o computador para que actue como um receptor.

Se estiveres a usar a placa ZUM BT-328, lembra-te que deves colocar o interruptor na posição ON e os comutadores na seguinte posição:

  conmutadores_Bluetooth_1_23
  • Comutador 1: ON
  • Comutador 2: OFF
  • Comutador 3: OFF

Alimenta a placa com o porta-pilhas, adaptador ou com um cabo USB.

>> Configuração Bluetooth no Windows 7:

Procura no botão Início, o assistente de configuração bluetooth que te guiará até estabeleceres a conexão.

cap__0

Por vezes em alguns computadores, o assistente de configuração bluetooth pode ser ligeiramente distinto. Os passos a seguir serão estes:

cap_win7_bluetooth

Uma vez configurado e conectado ao computador, vai-nos ser pedido para introduzir o PIN, que por defeito será 1234

cap__4_PIIIN >> Configuração Bluetooth em Linux (Ubuntu):

  1. Abre um Terminal (Alt + F2) e escrevee gnome-terminal
  2. Procura a instalação de novos dispositivos Bluetooth escrevendo o seguinte comando.

    $ sudo hcitool scan Scanning … 98:D3:31:B2:DB:09 bqZUM_BT328

  3. Conecta o teu dispositivo na porta ‘/dev/rfcomm0′ escrevendo o seguinte comando (usando o endereço obtido no passo anterior):

    $ sudo rfcomm bind /dev/rfcomm0 98:D3:31:B2:DB:09

>> Configuração Bluetooth em MacOX:

  1. Em Preferências de sistema selecciona Bluetooth.
    Captura de pantalla 2015-01-28 13.22.51 Captura de pantalla 2015-01-28 13.23.19Captura de pantalla 2015-01-28 13.23.19
  2. Procura a tua placa e pressiona ligar. Se não conseguires conectar e aparecer um erro, é necessário emparelhar o dispositivo Bluetooth com o computador. Para isso, pressiona sobre Opções e introduz o código “1234” e volta a pressionar sobre ligar. Captura de pantalla 2015-01-28 13.23.45

Já estamos conectados! E saberemos o numero da porta criada dependendo do sistema operativo, por exemplo: ‘COM46′, ‘/dev/rfcomm0′, ‘/dev/tty.bqZUM_BT320-SPPDev’…

Abre o IDE do Arduino e selecciona em Ferramentas a placa [ArduinoUNO o Arduino BT w/ATmega328] e a porta [ex: COM46]

cap__6_arduino_puerto_placa

Já podemos abrir o Monitor Serial em Ferramentas/Monitor Serial ou pressionando este ícone:

cap__7_arduino_abre_SerialMonitor

Lembra-te de seleccionar a velocidade de 19200 o 38400 bauds consoante a tua placa. Verás como aparece a frase a cada 2 segundos

cap__8_arduino_monitor_recibe_1

LER VIA BLUETOOTH


Recebendo via Bluetooth:

Vamos agora receber dados pela porta que abrimos. Este bloco de comunicação confirma se chegou algo via Bluetooth:

Se tivermos recebido algo pela porta criada, vamos guardar essa informação numa variável local chamada “dado” que compararemos para ver se é a letra A (em maiúscula!) e no caso de ser verdadeiro, acenderemos o LED já integrado na placa, no pino digital 13 (assim não necessitas de conectar o módulo LED). Em caso de receber qualquer outro dado, apagaremos o LED:

“Espera lá! Mas tu comparaste os dados com um “65”?”

Claro, querido robonauta, porque neste momento no bitbloq, não existe nenhum bloco que compare variáveis de texto tipo Char. De momento só podem ser do tipo String. Não te preocupes se para ti isto é Chinês. Basta saberes que para este exemplo, usámos números para identificar letras.

A letra A corresponde ao número decimal 65 no código Ascii (olha para tabela no final deste post).

 

Carrega este programa na tua placa e abre de novo o Monitor Serial. Escreve um A (em maiúscula) e envia… Vês como se acende o pequeno LED? O que acontece se enviares qualquer outra coisa?

cap__9_arduino_monitor_envia_fix

Agora que és um mestre em comunicação bitbloq-bluetooth, vais aprender que a a aplicação para Android chamada RoboPad envia os caracteres: S,U,D,R,L,C,M… (stop, up, down, right, left, claw, manual) ao pulsar dos botões de controlo dos PrintBots. Aqui te deixamos a tabela Ascii para que possas comparar a equivalência das letras e caracteres utilizados nas comunicações:

Ascii_A

Reparaste que os números 0,1,2,3… também se enviam como caracteres e têm a sua correspondência decimal no código Ascii?

O montão de coisas se podem aprender em um día!!! Daqui a pouco tempo já sabes ler as letras do Matrix!