De arduino para processing

Bem, esse é o meu primeiro post! Depois de longa espera, eu vim! :)

Bem, vou começar sem contextualizações, pra não perder tempo…

… O arduino era uma boa saída para um projeto que vinha desenvolvendo no laboratório de minha atual pesquisa (a gente fala sobre isso depois). Estava bem animada em aprender a usar o arduino – teríamos que bolar uma interação entre ele, um rfid reader e um celular. Enfim, estava tudo certo para implementarmos, até que dei de cara com um fato: eu estou trabalhando em um laboratório de design e, lá, o mais importante é a conceituação do produto – a implementação só chega se der tempo. E não há tempo!… Mas que tapa na cara! Nada de implementação…. :-(
Eu estava louca pra meter minha mão nesses trambolhos tecnológicos e não vou poder (não em tempo de trabalho nem com bolso alheio). Para o projeto, faremos protótipos de madeira, cenários com bonecos e mockup da aplicação em actionscript… Nada de implementação real. Nada feio, tudo bonito!Varias idéias muito legais pro mockup e apresentação do produto estão surgindo, though. A diversão continua! Pura dirversão :)
Mas voltando… Como não vai rolar no trabalho, decidi mexer em casa. Como não tenho um arduino ainda, comecei baixando o livro “Getting started with arduino” e dando uma explorada no site. O primeiro comentário é que eu NÃO SEI NADA de eletrônica, mas estou com boas vibrações a respeito da minha interação com a protoboard.

Foi ai que comecei a desvendar um mundo que não conhecia (só tinha ouvido dos meus colegas comparsas). A linguagem utilizada pelo Arduino é baseada em Wiring, uma versão bem simplificada de C. Pesquisando sobre Wiring, descobri que ela foi fruto da linguagem Processing, que, vinda primeiro, criou a IDE Processing (linguagem e IDE chamam-se Processing) e emprestou para Wiring. O IDE também é utilizado para desenvolver na linguagem do arduino.

Então foi assim que me foquei: decidi direcionar meus estudos para Processing, já que é a raiz disso tudo ai.
O ambiente é simples e intuitivo – é só baixar que já sabe usar. A linguagem, baseada em Java, é extremamente intuitiva. Eu comecei codando sem nem olhar na API – não sei se é porque é tão parecida com Java que eu já sabia que funçoes e atributos chamar, mas eu consegui descobrir a maioria.

(Alaninha, minha amiga, se a gente conhecesse Processing há 1 ano, nosso trabalho com moldes [essa é uma historia comprida que vou contar, com a ajuda dela, aqui mesmo] teria  sua complexidade e nível de estresse agregado diminuído em frações!)

Processing, como aponta o link, é uma linguagem voltada para o desenvolvimento gráfico, é extremamente visual, compacta, própria para quem quer desenvolver, contruir interações. O melhor, ela tem o grande desafio de tornar os próprios artistas e designers capazes de programar o visual e o interativo (assim como a linguagem Wiring também tem esse desafio).

Bem, pra encurtar o papo, deixando mais pra próxima (já foi demais pra primeiro post de apresentação, huh?), ai vai o applet (que, por sinal, exportei com 1 click – mas não consegui inserir aqui) da aplicação que fiz em 30 min, depois de conhecer o Processing por apenas também 30 minutos. Só pra não ter o que mostrar. :)

ps: como nao consegui colocar o applet aqui, ao clicar na imagem você ganha o .jar.

testando processing

código:

int oldMouseX = 0;
int oldMouseY = 0;

void drawPaintBuckets() {
PImage blue = loadImage(”paintbucket Blue copy.png”);
PImage green = loadImage(”paintbucket Green copy.png”);
PImage red = loadImage(”paintbucket Red copy.png”);

image(blue, 0, 0, 60, 110);
image(green, 0, 112, 60, 110);
image(red, 0, 224, 60, 110);
}

void setup() {
size(400, 400);
drawPaintBuckets();
}

void draw() {
if(!mousePressed) {
oldMouseX = mouseX;
oldMouseY = mouseY;
}
}

void mouseDragged() {
if(!(mouseX < 60 && mouseY < 334)) {
line(oldMouseX, oldMouseY, mouseX, mouseY);
oldMouseX = mouseX;
oldMouseY = mouseY;
}
}

void mousePressed(){
if(mouseY <= 110 && mouseX <= 60) stroke(0, 0, 255);
else if(mouseY <= 222 && mouseX <= 60) stroke(0, 255, 0);
else if(mouseY <= 334 && mouseX <= 60) stroke(255, 0, 0);
}

void mouseMoved(){
if(mouseX < 60 && mouseY < 334) {
cursor(HAND);
} else {
cursor(CROSS);
}
}

12 Responses

  1. Jesus Sanchez-Palencia Says:

    Muito bom! Parabéns pelo primeiro post!

    Faz mais uns exemplos de Processing aí pra gente! Dúvido você fazer um desses: http://www.synthtopia.com/content/2008/11/25/processing-audiovisual-app-now-10/

    :P

  2. jeraman Says:

    valeu, aninha, meus parabéns!
    e longa vida ao blogue!!!
    =D

  3. braga Says:

    Parabéns pela inauguração do blog, aninha!

  4. Alana Says:

    adorei ser citada! =p

    parabens pela inauguração do blog!

    como sempre entendendo o problema a partir da raiz… tu eh fera ninha! =D

  5. jesus Says:

    “(…) ps: Algumas pessoas estavam tendo dificuldades em colocar um applet do Processing pra rodar no Wordpress. Para colocar este aqui, precisei apenas do seguinte HTML, indicando onde está o arquivo JAR e o nome da classe: (…)”

    lá do blog de braga -> http://wouwlabs.com/blogs/braga/?p=3#comments

  6. Túlio Fernandes Says:

    Parabéns pelo blog.
    Também estou entrando nessa de Arduino, Wiring e Processing, tenho planos para fazer meu tcc usando um Arduino. Acabei de receber a notificação de que meu arduíno está me esperando numa agência dos correios aqui perto.

  7. thiago Says:

    annie.c !
    nao vai ter mais postagens?
    :/

  8. Casino 1238852974 Says:

    Casino 1238852974…

    Casino 1238852974…

  9. Danilo Cesar Says:

    To no mesmo barco. Não sei quase nada de eletrônica, mas to aprendendo com o arduíno.

    Dá pra fazer uns brinquedos muito legais, de forma relativamente simples…. Enfim, um excelente investimento.

  10. Degetheawlelm Says:

    Hi, need your help.
    What is agave? what are the different types of tequila available?

    Thenk you. I am vaiting for answer!!!

  11. Degetheawlelm Says:

    Hi Man!, need your help.
    How long will a bottle of beer keep? (unopened)?

    Thenks. I am vaiting for answer!!!

  12. anniec Says:

    ôÔôÔ! Tão bonitinho o blog na minha irmànzinha… só n entendi nada! :)

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.