この作品について
ギターの演奏において、単音弾きなどにおける指がフレットを駆け登ったり、ループしていく動きは、指の動きによる音の視覚的な表現であるとも言えます。この作品では、その指の動きを核にして運動とLED発光を行うキューブを制御することで、ハードウェアによるリアルタイムなパフォーマンスを行うことが目的です。
このプロジェクトにおいて使用した3Dデータ、レーザーカットのデータ、Openframeworksのソースコードは、以下のリンクから取得できます。
https://drive.google.com/drive/folders/0B6IU5t0hnVVMTlJrQkI5V09qa1U?usp=sharing
システム構成
ギターからの信号を、openframeworksというソフトウェアでFFT解析を行って音階を解析し、各音階に割り当てられた対応したキューブがArduinoを通じたサーボモータやソレノイドによって運動を行い、NeoPixelが発光をすることで、ギターの演奏をベースとしたパフォーマンスを行います。
NeoPixel
それぞれのチップの中にフルカラーLEDとマイコンが入ったLEDです。
5V, Ground, シグナル線をつなぎ合わせることで、ArduinoやFadeCandyから少ないポート数でたくさんのLEDを制御できるようになります。
FadeCandy
NeoPixelを、ProcessingやOpenframeworksなどを用いてグラフィカルに制御するためのデバイスです。
Openframeworks
Openframeworksは、創造的なコーディングのためのC++のオープンソースツールキットです。
今回は、ギターのピッチ解析と、ソレノイド、サーボモータの制御、NeoPixelの制御のために用います。
必要な材料について
以下の材料を準備します。
・ネオピクセル:30個
・FadeCandy:1個
・銅線
・ワニ口クリップ
・ジャンプワイヤ
・Arduino Mega:1個
・マイクロサーボ:9個
・3Dプリンタフィラメント(透明):250g
*今回はPP3DP純正フィラメント(PLA樹脂)を使用
・ユニバーサル基板:1個
・ベニヤ板4×430×700:2枚
・ベニヤ板9×300×450:1枚
・白色スプレー:1個
・ACアダプタ(5V2A):1個
・オーディオインターフェース:1つ
・エレキギター
電子部品の配線
ステージに取り付けられる電子部品を、あらかじめ半田付けで配線します。
ネオピクセルの配線
裏側の矢印の方向に合わせ、5V、シグナル、Groundをそれぞれ半田付けし、直列に繋ぎます。
取り付けが困難になるのを避けるために、ネオピクセルを10個繋ぎにしたものを3つ作成します。
配線が完了したら、ArduinoのNeoPixelライブラリにおけるサンプルプログラムなどで、導通を確認したのち、半田付け部分をグルーガンでコーティングします。
ネオピクセルの導通の確認
配線が完了したら、ArduinoのNeoPixelライブラリにおけるサンプルプログラムを用いて、導通を確認します。
ArduinoのGND, 5V, 6番ピンをそれぞれ、ネオピクセルのGND, 5V, シグナル線に繋ぎ、NeoPixelのスケッチ例からstrandtest.inoなどをArduinoに書き込み、全て光るかどうか確認します。
導通を確認したのち、半田付け部分をグルーガンでコーティングします。
サーボモータの配線
サーボモータのメスピンにジャンプワイヤを差し込み、銅線を半田付けしてケーブルを延長します。
電源の配線
サーボモータ、ネオピクセル、FadeCandyの電位を統一するため、5VとGNDのピンを一つのユニバーサル基板に集め、半田付けを行います。
デジタルファブリケーションによる加工
レーザーカッター、3Dプリンタを用いて、LEDを入れるキューブや、キューブのスタンドを作成します。
レーザーカッターによる加工
レーザーカッターを用いて、木材を加工し、スタンドを作成します。(加工データは上記リンク先を参照)
加工後、スプレーを噴射し白色に塗装します。
3DプリンタによるLEDキューブの出力
3Dプリンタを用いて、LEDキューブとその蓋を、それぞれ30個出力します。(加工データは上記リンク先を参照)
組み立て
配線と出力が終わったら、全体を組み立てます。
ネオピクセル、LEDキューブのステージへの取り付け
ネオピクセル、LEDキューブをステージに以下のように取り付けます。
取り付けた後、ネオピクセルの端同士を半田付けし、1本にまとめます。
サーボモータの取り付け
サーボモータを、グルーガンを用いてステージ、キューブ蓋にそれぞれ取り付けます。
30個ある穴のうちサーボモータが取り付けられるのは9箇所のみですが、今回は演奏する曲に合わせて配置を選びました。
ステージの組み立て
接着剤などを用いて、ステージを組み立てます。
配線と接続
電子部品とArduino、FadeCandyをそれぞれ配線したのち、プログラムを動かして接続を確認します。
配線
Arduino Mega, オーディオインターフェース, FadeCandyをMacbookに接続したのち、システム図に従って部品を配線します。サーボモータのシグナルピンは、Arduino Megaの3,5,6,8,9,10,11ピンに接続しています。
ArduinoへFirmataを書き込む
Arduinoのスケッチ例からStandardFirmata.inoを開き、ArduinoMegaに書き込みます。
また、シリアルポートのポート名を確認し、OpenframeworksのofApp.cpp内にあるシリアル設定に関する箇所を、正しいポート名に修正します。
FadeCandyの準備
はじめにfadecandyのフォルダからfcserver-osx(Macの場合)を開き、FadeCandy用のサーバーを立ち上げます。
Openframeworksから、プログラムを起動
Openframeworksからプロジェクトを開き、プログラムを起動させます。(ソースコードは上記リンク先を参照)