Kalibreer de “theremin light”
Uitzending do 18:00 ** June 30th, 2016 by wim.webgang **Arduino
Onze Arduino experimenten brachten ons tot een licht-naar-geluid omzetter; door te bewegen boven een lichtgevoelige cel kan je de toonhoogte beïnvloeden.
Omdat lichtomstandigheden altijd verschillend zijn, moet er iets gevonden worden om, bij het begin, de grenswaarden van licht en donker vast te leggen:
while (millis() < 5000) { // 5 seconds calibration
sensorVal = analogRead(A0);
if (sensorVal > sensorHigh) {
sensorHigh = sensorVal;
}
if (sensorVal < sensorLow) {
sensorLow = sensorVal;
}
}
Het resultaat is dat je na het inschakelen van de stroom een paar seconden kalibreertijd hebt, waarna het geluid begint; doorlopend, op basis van de meting.
(volledig Sketch code onderaan)
Als je nu ook nog het volume wil kunnen regelen (hoge tonen worden bv nogal fel waargenomen), zou je een draaiknop als regelaar kunnen toevoegen. Of ook een lichtgevoelige weerstand gebruiken om het volume te sturen. Of meer dan één, afhankelijk van de lichtbron. Op de foto (niet al te beste lichtomstandigheden hehe) kan je met wat speuren de lichtgevoelige paddestoeltjes zien.
Gebruik: één hand om de toonhoogte te bepalen (door meer of minder licht toe te laten), de andere hand boven de "volumeregeling" om luider of zachter te spelen.
Theremin
Dit doet erg denken aan de theremin:
Deze Theremin van 1927 speelt bv over the rainbow (link naar youtube)
Carolina gaf ons een inleiding : link naar youtube
Daarom noemen we ons apparaat de "Theremin light", waarbij light zowel voor een lichtere uitvoering staat, als voor het licht dat gebruikt wordt in plaats van een electromagnetisch veld.
ps: dit maakt ook de kalibratie nodig; het licht is bij ons een externe bron, het magnetisch veld bij de Theremin wordt door het instrument zelf gegenereerd.
Herinner je je nog de oude webgang tune, de originele Star Trek tune? Wel, het theme from Star Trek is een instrumentaal stuk gecomponeerd door Alexander Courage, en de zangerige melodie wordt gespeeld op theremin; hier trekt de speler van het Symfonie orkest van New York zelfs speciaal een geel Captain Kirk truitje aan voor het stuk: (youtube link).
Of hoe ze het zelf zouden doen: https://www.youtube.com/watch?v=V0zQHNmz0gU
De hele Arduino sketch projectcode :
// project 2016-06-Theremin Light
int sensorVal; // lightsensor
int sensorLow = 1023;
int sensorHigh = 0;
const int arduinoLow = 50;
const int arduinoHigh = 4000;
const int calibrateledPin = 13; // current onboard led
const int soundOutPin = 8;
const int sustain = 20; // milliseconds sound keeps on
void setup(){
// look for lightest and darkest measurement
pinMode(calibrateledPin, OUTPUT);
digitalWrite(calibrateledPin, HIGH);
while (millis() < 5000) { // 5 seconds calibration
sensorVal = analogRead(A0);
if (sensorVal > sensorHigh) {
sensorHigh = sensorVal;
}
if (sensorVal < sensorLow) {
sensorLow = sensorVal;
}
}
digitalWrite(calibrateledPin, LOW);
}
void loop(){
// read licht amount
sensorVal = analogRead(A0);
int pitch = map(sensorVal, sensorLow, sensorHigh, arduinoLow, arduinoHigh);
// adjust sound
tone(soundOutPin,pitch,sustain);
delay(10);
}