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 版に比べるとちょっと冗長な記述になってしまいますね