Olá, estou desenvolvendo uma instalação artística em meu pós-doutorado na UFSCar que envolve Arduíno e Processing (que também pode ser eliminado). Tenho a programação pronta, mas precisa de ajustes.
Basicamente, o Arduíno é conectado em um sensor ultrassom Maxbotix EZ1 que capta a distância dos objetos e envia para o Processing que projeta uma fotografia na TV (sendo uma instalação fotográfica projetada, a medida em que as pessoas se aproximam do sensor as imagens desaparecem). Creio que alguma coisa acontece na programação do Arduíno, pois o sensor capta distâncias inferiores a 6.45m, em locais com mais de 6.45m.
Alguém poderia me ajudar nessa empreitada! Podemos alinhar um valor...
Tags:
Boa noite, divulgue o seu programa (Sketch) que tenho certeza que a galera poderá ajuda-lo.
Não cole o programa no tópico.
Não entendi o objetivo do seu projeto - você quer que a imagem desapareça ou não, quando as pessoas se aproximam ? Informe mais detalhes do seu projeto - se puder, envie fotos da sua instalação.
Pode anexar os arquivos, usar o Pastebin ou Arduino Create.
Minha proposta de criação é a instalação de uma exposição fotográfica “tecnológica” onde uma fotografia projetada ou exposta em uma tela de TV desaparece e reaparece conforme a aproximação do indivíduo.
Basicamente, na medida em que o sujeito se aproxima da exposição (é detectado por um sensor ultrassônico), a imagem projetada tende a desaparecer e na medida em que se distancia, tente novamente a aparecer. Através deste processo pretendemos levantar, dentre outras coisas, o questionamento sobre a memória na fotografia.
Essa ideia se fundamenta com base nos primórdios fotográficos onde a ideia de registro era predominante, as fotos eram guardadas e documentadas, pois atestava a existência, incontestável, de algo. O fator memória tinha predominância no contexto fotográfico. Com as fotografias digitais, fotografias essas geradas através de um sensor eletromagnético, a memória esvaece uma vez que os arquivos são armazenados em espaços virtuais e muitas vezes esquecidos.
Com isso, ao se aproximar da tecnologia (na exposição, o sensor ultrassônico, a imagem projetada, o computador e o projetor representam a tecnologia) a imagem projetada tende a desaparecer, fazendo alusão à memória, e na medida em que o sujeito se distancia, tende, novamente, aparecer.
Estou tendo alguns problemas que não consigo resolver. O sensor ultrassônico utilizado é o MAXbotix EZ1 capaz de detectar objetos de 0 a 6,45m e detecção de pessoas a 8 pés.
Estou com problemas na transparência da imagem. Gostaria de trabalhar com um intervalo de 3m (iniciando da ponta do sensor) quando a pessoa se aproximar da instalação e estiver a 3m do sensor a imagem começa a desaparecer e estando a 0,50m, desaparece totalmente. Não estou conseguindo fazer a conta nesses 2,5 metros de intervalo em que a imagem desaparece. O que procuro é um fade suave nesse intervalo.
Abaixo o código do arduíno e do processing, respectivamente:
ARDUÍDO
/* Objetivo: medir a distancia entre o rack e uma pessoa e transmitir para o processing
Autor: Cinesio M. Mendes
Date: 13/06/2014
Vers√£o: 1.0
Sensor de ultra som usado:
medição: a cada 50 ms
distancia - entre 0 a 6.45 m
resolução sinal analogico: (Vcc/512)/pol -> Vcc=5V => 9.8mV/pol => 9.8mv/2,54 cm
*/
//declaração das variaveis utilizadas no codigo
long Dis;
float cm;
long soma=0;
int NMedia=300;//quantidade de amostragem do sinal analogico do sensor de ultra som
float Media=0; // media do valor lido da enterada analogica
// Simbolico das entradas/Saidas
int Som=5; // saida de som
void setup() {
//configuração da porta serial
Serial.begin(19200);
// configuração dos pinos de entrada/saida
pinMode(Som, OUTPUT);
}
void loop() {
//amostragem do sinal analogico do ultra som ( 50 medições )
for(int i = 1; i < NMedia ; i++) {
Dis = analogRead(0);
soma = soma+Dis;
delay(5);
}
Media = soma/NMedia;
cm = (Media/74);
Serial.println(cm);
//Serial.print(" cm");
//Serial.println();
//zera soma das amostragens
soma = 0;
delay(500);
}
PROCESSING:
// importa biblioteca serial
import processing.serial.*;
// declaração das variaveis utilizadas no programa
int Contagem=1; // declara variavel para contagem do tempo transcorrido
long last; // variavel que armazena o ultimo valor do contador de tempo interno
float Trans=255; // valor da transparencia da imagem
int x=0;
int y=0;
float inByte;
// para cada imagem é necessário declarar uma variavel com a classe PImage
PImage foto1;
PImage foto2;
PImage foto3;
PImage foto4;
PImage foto5;
Serial port;
// essa parte do programa será executada somente 1 vez
void setup ()
{
// define tamanho da janela que será aberta
size (800,600);
// carrega fotos
foto1 = loadImage("foto1.jpg");
foto2 = loadImage("foto2.jpg");
foto3 = loadImage("foto3.jpg");
foto4 = loadImage("foto4.jpg");
foto5 = loadImage("foto5.jpg");
// armazena o valor atual do contador de tempo interno
last=millis();
// lista portas disponiveis
println(Serial.list());
// configuração da porta serial
port = new Serial(this, Serial.list()[1], 19200);
// não gera evento serial até um novo caracter fim de linha
port.bufferUntil('\n');
}
// rotina principal
void draw()
{
// cor do fundo
background(0);
// transparencia da imagem
tint(Trans, 255); // Display at half opacity
// verifica se existe algum valor enviado para serial pelo arduino
while (port.available() > 0) {
// le string ASCII:
String inString = port.readStringUntil('\n');
if (inString != null) {
// retira os espaçõs em branco da string
inString = trim(inString);
// converte para ponto flutuante
inByte = float(inString);
}
println(inByte);
// verifica distancia para modificar transparencia da imagem
Trans=inByte*44;
if ( inByte>5.8 ) Trans=255;
}
// mostra imagem na janela aberta -> image(img, x, y, w, h) conforme tempo
if (Contagem>=1 ) { image(foto1,x,y); }
if (Contagem==2 ) { image(foto2,x,y); }
if (Contagem==3 ) { image(foto3,x,y); }
if (Contagem==4 ) { image(foto4,x,y); }
if (Contagem==5 ) { image(foto5,x,y); }
// verifica tempo transcorrido
if ( millis()-last>5000 ) {
Contagem=Contagem+1;
last=millis();
}
// verifica se mostrou todas as fotos
if ( Contagem>5 ) { Contagem=1;}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por