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:
- Um programa dentro da placa controladora que envie/receba dados (vamos construir-lo com o bitbloq)
- Um programa dentro do computador que envie/receba dados. (usaremos o Monitor Serial do interface IDE do Arduino)
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:
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:
Já podemos abrir o Monitor Serial em Ferramentas/Monitor Serial ou clicando aqui:
Vai abrir-se esta janela onde devemos confirmar que está marcada uma velocidade de 9600 bauds.
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:
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:
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“.
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: