Experimentación con Arduino para hacer un Theremin. La proximidad es detectada por medio de un sensor ultrasónico, el aparato emite un sonido que es recibido por el Ableton Live para su procesamiento. El código fuente está al final de esta página.

Al compilar el código obtuve este error “Multiple Definition of `vector_7′ Error When Compiling”. Lo solucioné gracias a esta página HELP_Error_Vector_7_When_Compiling. Solo tuve que comentar esta parte del código de NewPing.cpp que controla el sensor:

/*
#if defined (__AVR_ATmega32U4__) // Use Timer4 for ATmega32U4 (Teensy/Leonardo).
ISR(TIMER4_OVF_vect) {
#else
ISR(TIMER2_COMPA_vect) {
#endif
if(intFunc) intFunc(); // If wrapped function is set, call it.
}
*/

Modifiqué la carcasa para poder meter el sensor a partir de una lámpara Qu, un diseño original de www.massa.la.

Técnica: Arduino, Ableton Live.

Fuentes:
http://arduino.cc/en/pmwiki.php?n=Reference/Tone
https://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation
http://arduino.cc/en/pmwiki.php?n=Tutorial/Ping

_MG_1157-2

Qu_bb

#include
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 60
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(115200);
}
void loop() {
delay(1);
unsigned int uS = sonar.ping();
Serial.print("Ping: ");
Serial.print(uS / US_ROUNDTRIP_CM);
Serial.println("cm");
if(uS / US_ROUNDTRIP_CM > 2){
int thisPitch = map(uS / US_ROUNDTRIP_CM, 0, 60, 494, 61);
tone(6, thisPitch, 10);
Serial.print(thisPitch);
}
}