OpenFrameworks+ArduinoでLチカ
昨今のクリエイティブ表現はモニタ上で行う以外にも、プロジェクションマッピング、AR、インスタレーションなど、現実世界に介入したエンターテイメントがどんどん普及しています。
そういったメディア・アートの仕組みや作り方などを紹介していきたいと思います。
OpenFrameworksとは?
簡単に言うと C++ のフレームワークなんですが、アート作品を簡単に作ることを目的に作られています。
また、今回使う Arduino や、 Kinect 、 LeapMotion などのセンサーを組み込む事も容易であり、インタラクティブな制作が簡単に行えます。
OF Showreel from openFrameworks on Vimeo.
Arduinoとは?
マイコンチップを搭載したハードウェアです。PCの専用ソフトArduino IDEから Arduino へプログラムを書き込むことで回路を制御することができます。
言語は Arduino 言語というものですがC++/Cをベースとしており、馴染みのある記法なので難しいことはありません。
高度な電子工作とプログラミングを駆使すればこんなことも可能になります。
Super Mario Bros on an 8x8 LED matrix from Chloe Fan on Vimeo.
今回の例として、回路のプッシュボタンを Arduino で送信、OpenFrameworks(v0.8.4使用)上で受信して表示を変更してみます。
Arduinoの回路を組み立てる
Arduino の回路は以下のように、シンプルにプッシュボタンの状態をデジタル2ピンに送信するだけです。

簡単に解説すると、プッシュボタンを押すと3.3Vが2ピンに通電します。
押していない時はGND(グランド)へ繋ぐことで、0Vの状態にします。(OFFの状態)
ちなみに抵抗器を付けているのは、電源と GND を無抵抗で繋げると壊れる恐れがあります。
これをプルダウン抵抗といいます。
Arduinoにスケッチを書き込む
OpenFrameworks 上で Arduino とシリアル通信を行うには、ofSerialとofArduinoの2パターンがありますが、今回はofArduinoを使用してみます。
(ofArduinoの中身は結局ofSerialを実行しているのですが、 Arduino をより便利に使うメンバ関数が用意されています。なのでofSerialでも Arduino とシリアル通信を行うことが出来ます)
ofArdunoを使用するには Firmata というプロトコルを使用する必要があります。Arduino IDE 上にすでに用意されています。
[ファイル]->[スケッチの例]->[Firmata]->[SimpleDigitalFirmata]を選択してスケッチを呼び出し、それを書き込みます。

OpenFrameworks でプログラミング
OpenFrameworks 上ではofAruinoを使用してシリアル通信を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | |
LED(絵)を光らせよう!
XcodeからBuildしてみましょう!以下の様なLEDが表示されると思います。

プッシュボタンを押すとLEDが・・・

|
\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \
(‘A`)
ノヽノヽ
くく
次回予告
今回は回路にボタンだけ設置したシンプルなものでしたので、次回はセンサーを使って取得した値をOpenFrameworks上に描画してみようと思います!
それでは!
Comments