Processing 2

Processing é uma linguagem de programação, ambiente de desenvolvimento e comunicação on-line. Desde 2001, tem promovido a alfabetização de processamento de software dentro das artes visuais e alfabetização visual dentro da tecnologia. Inicialmente criada para servir como um caderno de desenho de software e para ensinar os fundamentos de programação de computadores dentro de um contexto visual, evoluiu para uma ferramenta de processamento e desenvolvimento para os profissionais. Hoje, existem dezenas de milhares de estudantes, artistas, designers, pesquisadores e amadores que utilizam este processo de aprendizagem, protótipos, e produção.

Fonte e mais detalhes aqui.

Gogo Board + Processing: Beep – III

Nesta versão do código, apenas trocamos o número da porta a ser conectada, uma vez que utilizaremos no Processing 2 e sua numeração de portas é diferente das versões anteriores.

// Example by Tom Igoe

import processing.serial.*;

// The serial port:
Serial myPort;

// List all the available serial ports:
println(Serial.list());

// I know that the first port in the serial list on my mac
// is always my Keyspan adaptor, so I open Serial.list()[0].
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[3], 9600);

// Send a capital A out the serial port
//myPort.write(65);
myPort.write(0x54);
myPort.write(0xFE);
myPort.write(0xC4);
myPort.write(0x00);

exit();

Gogo Board + Processing: Beep – II

Abaixo temos um código escrito em Processing, já apresentado aqui, porém, neste exemplo, utilizamos os bytes de forma hexadecimal, além disso, incluimos a função de finalizar a execução do programa.


// Example by Tom Igoe

import processing.serial.*;

// The serial port:
Serial myPort;

// List all the available serial ports:
println(Serial.list());

// I know that the first port in the serial list on my mac
// is always my Keyspan adaptor, so I open Serial.list()[0].
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[1], 9600);

// Send out the serial port
myPort.write(0x54);
myPort.write(0xFE);
myPort.write(0xC4);
myPort.write(0x00);

exit();

Gogo Board + Processing: Socket

Na versão 2.0 do Processing, algumas coisas foram modificadas e melhoradas, assim, o código apresentado anteriormente para a ver são 1.5 precisou ser modificada conforme abaixo.


import processing.net.*;
Client c;
String data;

void setup() {
size(200, 200);
c = new Client(this, "192.168.5.101", 9873);
}

void draw() {
if (c.available() > 0) {
}
c.write("beep");
delay(1000);
}

Neste exemplo, a conexão é feita e o comando enviado será beep.

Usando o Protocolo Socket da Gogo Board

Baseando-nos nesta documentação, podemos nos comunicar com a placa através do protocolo socket, neste caso, utilizando a linguagem Processing.

Abaixo, temos o exemplo do comando beep, outros podem ser usados de acordo com a documentação do próprio protocolo.

void setup()
{
size(400,300);
background(#FFCC00);
fill(0);
noStroke();
}

void draw()
{
scale(1.3);
try
{
String host = "127.0.0.1"; // change

text( "Connecting to " + host + " ...", 10, 20 );
Socket s = new Socket( host, 9873 );

text( "Connection established to " + s.getInetAddress(), 10, 30 );

BufferedReader in = new BufferedReader( new InputStreamReader( s.getInputStream() ) );
PrintStream out = new PrintStream( s.getOutputStream() );

int lineNum = 50;

out.println( "beep" );
out.println( "stop" );
out.flush();

String t = in.readLine();
System.out.println( t );

fill(0);
text("Ping Done.", 10, lineNum+10);

try
{
Thread.sleep( 1000 );
} catch ( Exception e )
{
}

in.close();
out.close();
}
catch ( Exception e )
{
println( "Error" + e );
}
}

Diversas outras linguagens podem interagir com a Gogo Board por meio deste protocolo, por exemplo, Delphi, Lua, C#, C++, Flash, etc, sendo até mais interessamte que o trabalho com o protocolo serial diretamente, ja que algumas linguagens não contam com suporte a ele.

Arduino: Protótipo FlexPicker

Uma proposta muito interessante de FlexPicker, utilizando Arduino pode ser montada com base neste endereço.

Além de uma noção dos componentes mecânicos e sua montagem, estão disponíveis os códigos que devem ser gravados no Arduino, bem como aquele que fara os movimentos de acordo com os realizados no mouse, que serão executados no Processing.

Logo mais teremos o vídeo do nosso protótipo.

Foto: http://letsmakerobots.com/node/10577

Beep + Interface Real + Processing

Com base nesta documentação, é possível se comunicar com a placa, conforme segue abaixo, neste caso, enviando o comando de beep.

// Example by Tom Igoe

import processing.serial.*;

// The serial port:
Serial myPort;

// List all the available serial ports:
println(Serial.list());

// I know that the first port in the serial list on my mac
// is always my Keyspan adaptor, so I open Serial.list()[0].
// Open whatever port is the one you're using.
myPort = new Serial(this, Serial.list()[1], 9600);

// Send a capital A out the serial port
//myPort.write(65);
myPort.write(84);
myPort.write(254);
myPort.write(196);
myPort.write(0);


Atenção!

O Projeto Real agora é Gogo Real. Mais detalhes aqui.

Processing

Processing é uma linguagem de programação, desenvolvimento, ambiente e comunidade online que desde 2001 vem promovendo a alfabetização de software dentro das artes visuais. Inicialmente criada para servir como um caderno de desenho de software e para ensinar os fundamentos da programação de computadores dentro de um contexto visual, processamento rapidamente evoluiu para uma ferramenta para criação de trabalhos profissionais, bem acabados.

Continue lendo o texto original em inglês aqui.

Fonte e Foto: http://processing.org/