Um
 dos grandes baratos do Processing é poder interagir com o Arduino e 
gerar gráficos a partir do que está sendo lido através de sensores ou 
usar os gráficos para fazer uma interface mais amigável com o 
equipamento.
Eis
 a proposta aqui: usaremos um potenciômetro de 10K ohm para simular um 
sensor qualquer e a partir das leituras obtidas com ele em um Arduino 
iremos criar gráficos com o Processing.
Primeiro vamos montar a experiência com o Arduino:
Ligue
 o potenciômetro ao Arduino, os dois pinos laterais são ligados ao 5V e a
 GND do Arduino. O lado do 5V e do GND mais ou menos tanto faz, apenas o
 lado do GND será o zero do potenciômetro e o lado onde estiver ligado 
do 5V será o 1024 (leitura máxima analógica).
Ligue o pino central do potenciômetro ao pino analógico 0 (A0) do Arduino.
Agora vamos escrever e carregar o seguinte código ao Arduino: 
Com esse código lemos o pino analógico 0 (A0) do Arduino e escrevemos os valores lidos na porta serial.
Verifique o funcionamento via Serial Monitor, movimente o potenciômetro e veja os valores lidos:

Antes de continuar recomendo uma olhada em Como realizar interação entre o Arduino e o Processing e em Processing: o que é e para que serve?.
Vamos então ao código do Processing:
Com
 esse código lemos a entrada de dados pela porta serial coletando os 
números enviados pelo Arduino e usamos esses números para determinar o 
tamanho do círculo a ser desenhado.
Com
 serial = new Serial(this, "COM3", 9600); determinamos que a porta 
serial a ser utilizada é a COM3 (verifique em qual seu Arduino está 
conectado) e a taxa de transmissão em 9600bps.
Com serial.bufferUntil('\n'); aguardamos que seja recebido um ENTER (caractere \n) para dar continuidade ao programa.
Nada
 é feito na função draw() tudo acontece na função predefinida 
serialEvent() que é chamada apenas quando há um evento pela interface 
serial, como parâmetro essa função recebe qual porta serial deve 
monitorar.
Em
 String leitura = serial.readStringUntil('\n'); concatenamos todos os 
caracteres recebidos pela porta serial na variável até que o caractere 
recebido seja um ENTER (próxima linha);
Com float valor = float(trim(leitura)); convertemos a string recebida pela porta serial em um número do tipo float.
Depois
 é só desenhar a elipse com o tamanho determinado pelo número enviado 
pelo Arduino. Usamos as constantes width que retorna o comprimento da 
janela e width que retorna a altura, com elas determinamos o meio da 
tela como centro para a elipse.
Execute e mova o potenciômetro ligado ao Arduino:

0 comentários:
Postar um comentário