Serial_bitbloq__USB_mini

Vamos mostrar como efectuar uma comunicação via porta série USB entre o teu computador e a placa controladora. Explicamos de uma forma mais simples: transferir informação e comandos para a tua placa por cabo USB.

Uma comunicação é sempre composta por duas partes:  um emissor e um receptor. Portanto, vamos necessitar de duas coisas:

  1. Um programa dentro da placa controladora que envie/receba dados (vamos construir-lo com o bitbloq)
  2. Um programa dentro do computador que envie/receba dados. (usaremos o Monitor Serial do interface IDE do Arduino)

Serial_bitbloq__USB

Abre o bitbloq e descarrega o software IDE de Arduino. Se tens uma placa ZUM BT-328 ou uma placa FreaduinoUNO, conecta-a ao computador com o cabo USB e… Vamos lá!

“”Robonauta chamando Base Eco, escuto?””

ESCREVER PELA PORTA SÉRIE


O exemplo seguinte envia, a partir da placa controladora, a palavra NEGRO quando um sensor IR detecta essa cor. Conecta o sensor IR ao pino digital 3:

zum_IR3

Parte 1: EMISSOR – Programação no bitbloq

Para programar um envio de um dado a partir da placa no bitbloq, apenas será necessário o bloco chamado Imprimir pela porta série

É desta forma tão simples que podes criar um programa que compara, a cada segundo (1000 ms), o valor do sensor e, se este valor for 0, envia a palavra.

Carrega este programa na tua placa:

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

Como referimos, utilizaremos o Monitor Serial do IDE do Arduino. Com a placa conectada, abre o programa Arduino e fecha o bitbloq.

Agora, seleciona a placa controladora em Ferramentas/Placa. No caso de usares a ZUM BT-328 selecciona “Arduino BT w/ATmega328” e no caso de usares uma FreaduinoUNO selecciona “Arduino UNO“.

Selecciona a porta onde está conectada a placa em Ferramentas/Porta Série:

ardu_seleccion_puerto

Já podemos abrir o Monitor Serial em Ferramentas/Monitor Serial ou clicando aqui:

ardu_seleccion_MonitorSerial

Vai abrir-se esta janela onde devemos confirmar que está marcada uma velocidade de 9600 bauds.

ardu_serie_sol_1

Se o sensor IR do nosso exemplo começar a detectar várias vezes “o escuro”, no monitor irá aparecer repetidamente a palavra “NEGRO”, sem cessar:

ardu_serie_sol_2

Se quisermos ver o resultado um pouco mais ordenado, podemos utilizar o bloco bitbloq Imprimir pela porta série com salto de linha

Desta forma conseguiremos uma resposta mais separada assim:

ardu_serie_sol_3

LER A PORTA SÉRIE


Parte 1: RECEPTOR – Programação em bitbloq

Neste caso o receptor é a placa controladora. Para toda a recepção na placa, usaremos este bloco bitbloq, que confirma se chegou algo pela porta série:

Se for o caso, iremos ler os dados recebidos e vamos guardar numa variável:

Agora podemos comparar e actuar dependendo do valor dos dados recebidos. Por exemplo, se recebermos um A maiúsculo, acendemos o LED integrado na placa (D13). Pelo contrário, se os dados recebidos forem de outro tipo (outras letras), apagaremos o LED. O programa fica assim:

“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).

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

Já temos a placa preparada para receber. Fecha o bitbloq e abre de novo o Monitor Serie do Arduino IDE. Desta vez assegura-te que não está activada apenas a velocidade de 9600 bauds e, também, a opção “Não existe fim de linha“.

ardu_serie_sol_4

Escreve um A maiúsculo e clica Enviar. Acendeu-se o LED integrado? Experiementa enviar qualquer outra coisa para apagar o LED D13.

Deixo-te aqui a tabela Ascii para que possas comparar as letras e os caracteres que viajam pela porta série:

Ascii_A