sexta-feira, 7 de agosto de 2015

Como realizar interação entre o Arduino e o Processing

Processing é uma linguagem e um ambiente de desenvolvimento open-source que permite escrever programas para representação gráfica, basicamente. Você pode ter uma ideia melhor do que é o Processing em http://seucurso.com.br/index.php?option=com_content&view=article&id=261:processing-o-que-e-e-para-que-serve&catid=906:diversos&Itemid=70
 
É possível integrar o Arduino com o Processing, ou seja, para que possamos desenvolver no Processing aplicações, especialmente com saídas gráficas, capazes de controlar o comportamento do Arduino e ler dados por ele gerados através de sensores. Para que tudo isso seja possível é preciso seguir alguns passos na criação do projeto, que são mostrados abaixo.
Antes de qualquer coisa, para que as funcionalidades de comunicação serial funcionem é necessário, mesmo em sistemas operacionais 64-bit, o uso do ambiente do Processing na versão 32-bit. Caso esteja usando a versão 64-bit a comunicação serial não funcionará e você terá sempre o erro “processing serial does not run in 64-bit mode”. Lembre-se ainda de utilizar sempre a última versão estável do Processing e não versões betas.
Mãos-a-obra!
Faça download da biblioteca processing-arduino que pode ser encontrada em http://playground.arduino.cc/uploads/Interfacing/processing-arduino.zip e também uma cópia em http://www.seucurso.com.br/downloads/processing-arduino.zip

Descompacte o arquivo baixado, você terá uma pasta chamada arduino, copie-a (ou mova) para dentro da pasta libraries do Sketchbook do Processing, que normalmente fica dentro da pasta Meus Documentos sob o nome Processing.
Antes de continuar será necessário enviar para o Arduino um firmware que permita a comunicação entre o Processing e o hardware Arduino. Ao firmware que faz essa tarefa é dado o nome Firmata.
Para fazermos nosso primeiro teste abra o ambiente Arduino e abra o exemplo StandardFirmata que está no menu File > Examples > Firmata > StandardFirmata
Faça upload desse Firmata para o Arduino:
Isso fará com que seja carregado no Arduino um Firmata genérico que permitirá que controlemos o Arduino através do Processing. Com um pouco de estudo é possível criar Firmata personalizados para aplicações específicas.
Ok, o Arduino está preparado para lidar com o Processing a partir do Firmata padrão fornecido com o próprio ambiente, agora abra o Processing e vamos tentar o seguinte código:
import processing.serial.*;
import cc.arduino.*;
 
Arduino arduino;
int ledPin = 13;
 
void setup()
{
 println(Arduino.list());
 arduino = new Arduino(this, Arduino.list()[1], 57600);
 arduino.pinMode(ledPin, Arduino.OUTPUT);
}
 
void draw()
{
 arduino.digitalWrite(ledPin, Arduino.HIGH);
 delay(1000);
 arduino.digitalWrite(ledPin, Arduino.LOW);
 delay(1000);
}
Esse programa acenderá o LED do pino 13 por um segundo, em seguida fará com que ele fique desligado por mais um segundo, repetindo isso infinitamente.
O que fizemos:
Com Arduino arduino; criamos um objeto do tipo Arduino chamado arduino. Esse objeto contém todos os métodos de manipulação do hardware Arduino.
Com println(Arduino.list()); fazemos com que o programa mostre as portas seriais disponíveis e qual índice usar no próximo comando.
Com arduino = new Arduino(this, Arduino.list()[1], 57600); inicializamos o objeto arduino com comunicação serial na velocidade de 57.600bps.
Os parâmetros são:
Arduino(parent, name, rate);
Onde, parent é o programa de onde está sendo chamado, normalmente é a palavra this. name é o nome do dispositivo serial a ser utilizado, você pode usar Arduino.list() para mostrar todos, caso haja mais de um. Por fim, rate é a velocidade de comunicação serial.
Com arduino.pinMode(ledPin, Arduino.OUTPUT); setamos o ledPin (13) como output.
Com arduino.digitalWrite(ledPin, Arduino.HIGH); escrevemos HIGH para o ledPin (13).
Executando teremos a janela do Processing abaixo e o LED do pino 13 piscando infinitamente:
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário