Areas de trabajo

Después de a ver realizado pruebas de concepto con los primero circuitos y las plantas decidí organizar el proyecto en áreas para resolver. La idea es lograr un dispositivo standalone no solamente en la forma en que se procesa el sonido desde la planta, si no también en la forma en que el elemento biotico pueda ser sustentado por la parte tecnológica.

  1. Sutentabilidad: Mantenimiento y Energía de la pieza: Se trabaja al implementar energía solar e Hidroponía como métodos para la autonomía energética del las piezas.
  2. Diseño: Interface y cuerpo: Se trabaja en el hardware electrónica  y biosensores así como en los contenedores tanto de los circuitos como de las plantas.
  3. Sonificación de Biofeedback: Síntesis Granular y técnicas similares: Se trabaja el desarrollo del software que maneje los datos recibidos de los biosensores. Aquí se implementa desde una versión standalone utilizando un sintetizador programable para AVR y una versión OSC / MIDI / para trabajar con software como PureData
  4. Perfil de especies: Se trabaja en identificar los tipos de plantas con los que se realizan pruebas.

 

EMF exp_1

El primer experimento se basa en el uso de un sensor EMF (Electro Magnetic fields). El sensor detecta variaciones en la resistencia de la planta provocados por interferencia. Al acercarnos a la planta modificamos con nuestra resistencia la tensión de la planta provocando un cambio en la lectura.

Los sensores diseñados a partir de un amplificador operacional tienen dos polos uno se conecta de forma directa a la planta y el otro a la tierra. La lecturas obtenidas son procesadas por un código de PWM en arduino, generando una señal audible como respuesta a las variaciones.


#define DIV_PIN   5
#define FREQ_PIN  4
#define DUTY_PIN  3

void setup(){
  pinMode(3, OUTPUT);
  pinMode(11, OUTPUT);
  TCCR2A = _BV(COM2A0) | _BV(COM2B1) | _BV(WGM20);
}

// accepts values 1-7 to set prescalers 1/8/32/64/128/256/1024 // 0 turns timer off void setPrescaler(uint8_t divisor){
  if(divisor > 7)
    return;
  TCCR2B = _BV(WGM22) | divisor;
}

// expects a value 0.0-1.0 void setDutyCycle(float value){
  OCR2B = OCR2A * value;
}

void setTopLimit(uint8_t limit){
  OCR2A = limit;
}

void loop(){
  setPrescaler(analogRead(DIV_PIN)>>7);
  setTopLimit(analogRead(FREQ_PIN)>>2);
  setDutyCycle((float)analogRead(DUTY_PIN)/1023.0);
}

 

circuito por Guto Nobrega: http://archive.gutonobrega.co.uk/