Public Show Foi o resultado de muitas experiências e o meu primeiro trabalho com código e é por isso que acho interessante fazer uma explicação do meu processo.
Para mim foi muito difícil, porque nunca fiz nada com Processing e com Arduino tão pouco nunca fiz nada. Por isso eu quis fazer o projecto com código para assim forçar-me em ter interesse e tentar escrever e programar uma ideia.
O primeiro que eu fiz, procurei código, e exercícios semelhantes na net, até que encontrei um que fazia o efeito “glitch”. Eu gostei do efeito, mas não usei porque tinha muitos erros no javascript e com os meus conhecimentos não reparei.
Depois destes primeiros testes, no website de processing, encontrei como fazer a conexão: Arduino e Processing, e isto foi o primeiro. Já que tinha que ter o arduino (experiência física) e processing (transformação da imagem em tempo real com as ordens do sensor).
Com o livro “Arduino” encontrei como fazer a instalação do sensor, porque primeiro eu tinha um sensor de proximidade, mas para fazer o que eu gostava, não serviu.

Pois com ajuda do livro, eu comprei um novo sensor “ultrasound” porque é mais bom para fazer este efeito, é um sensor mais efectivo que o outro. Lá, também encontrei pequenhos tutoriais, e encontrei um de fazer uma explosão na imagem. Código do efeito, si alguém quer tentar (sem função do sensor = sem conexão ao arduino) :
// The next line is needed if running in JavaScript Mode with Processing.js
/* @pjs preload="eames.jpg"; */
PImage img; // The source image
int cellsize = 2; // Dimensions of each cell in the grid
int columns, rows; // Number of columns and rows in our system
void setup() {
size(640, 360, P3D);
img = loadImage("eames.jpg"); // Load the image
columns = img.width / cellsize; // Calculate # of columns
rows = img.height / cellsize; // Calculate # of rows
}
void draw() {
background(0);
// Begin loop for columns
for ( int i = 0; i < columns; i++) {
// Begin loop for rows
for ( int j = 0; j < rows; j++) {
int x = i*cellsize + cellsize/2; // x position
int y = j*cellsize + cellsize/2; // y position
int loc = x + y*img.width; // Pixel array location
color c = img.pixels[loc]; // Grab the color
// Calculate a z position as a function of mouseX and pixel brightness
float z = (mouseX / float(width)) * brightness(img.pixels[loc]) - 20.0;
// Translate to the location, set fill and stroke, and draw the rect
pushMatrix();
translate(x + 200, y + 100, z);
fill(c, 204);
noStroke();
rectMode(CENTER);
rect(0, 0, cellsize, cellsize);
popMatrix();
}
}
}
Por isso o que eu fiz foi:
- 1. Pesquisei efeitos e o modo de como poder fazer a conexão com os dos softwares.
- 2. Programar os dois softwares.
- 3. Programar o sensor.
- 4. Procurar o efeito que eu gostaba.
- 5. Programar o efeito, já conectado com o sensor.
A presentação só foi um protótipo, mais eu estou feliz, porque fiz (e acabei) o meu primer projecto com código e para mim já consegui o objetivo.



Para quem quera conhecer mais : Clique na imagem, para ver um vídeo de explicação do processo de instalação e funçonamento.

Aqui o link do meu projecto final para quém quer conhecer mais : com a explicação final, fotos e um video de mostra do que o meu trabalho foi conceitualmente.