Processing x Funnel x Arduino で Osc を試してみた
Funnel 一式に付属している digitalOut と OscTest1 というサンプルをもとにして, LED をぼんやり光らせる実験をしてみました.
実験環境は前回使った環境 + LED 1 個です.
OSC はオシレータの略で, sin 波や方形波など, なにかものを作るときによく使う波形を生成してくれる Funnel 付属のライブラリです.
コードはこちらです. とても簡単に記述できることがわかります.*1
import processing.funnel.*;
Osc osc;
Arduino arduino;
void setup() {
size(300,300);
frameRate(25);
background(255);
osc = new Osc(this, Osc.SIN, 0.5, 0);
osc.reset();
Configuration config = Arduino.FIRMATA;
config.setDigitalPinMode(11, Arduino.PWM);
arduino = new Arduino(this, config);
arduino.autoUpdate = true;
}
void draw() {
translate(0, 10);
float rate = 200;
float oldValue = osc.value;
osc.update();
line(width/2, rate*oldValue, width/2, rate*osc.value);
copy(0,0,width,height,-1,0,width,height);
arduino.digitalPin(11).value = oldValue;
}
まとめ
Funnel を使うことで, よく使う波形を自分で作らなくてよくなるので便利ですね.
*1:Processing 版では OSC をフィルタとして指定できないので ActionScript 版に比べるとちょっと冗長な記述になってしまいますね