この作品について

ギターの演奏において、単音弾きなどにおける指がフレットを駆け登ったり、ループしていく動きは、指の動きによる音の視覚的な表現であるとも言えます。この作品では、その指の動きを核にして運動と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からプロジェクトを開き、プログラムを起動させます。(ソースコードは上記リンク先を参照)