2018.10.09
[MAKE: PROJECTS]叩くと光るスネアドラム
Less Than Jakeのコンサートで、Vinnie FiorelloのドラムにLEDが仕込まれていることがわかった。ときどき、ローディーがバンドの機材の設定を変更していたけど、ドラムのLEDの色はずっと変わらなかった。Less Than Jakeのライブはエネルギッシュで素晴らしかったが、光が変わらなければ面白くない。自分なら、もっといいものが作れる。
それには、ドラムの中に収まるよう小型で、インタラクティブな仕様にする必要がある。ミュージシャンがステージ上でパソコンを開いてArduinoのプログラムをいじるなんてことはありえないから、ぱっぱっと簡単に色が変えられるようにしたかった。
頭脳
私はHuzzah32を選択した。小さいからだけでなく、Wi-Fiが使えるからだ。将来のバージョンでBluetoothに対応できるよう備えるためでもある。LEDには標準的なWS2812B LEDテープを使った。1メートルあたり60個のLEDが搭載されている。ドラムのストロークの感知には、加速度センサーのブレークアウトボード、LIS3DHを使った。これはタップモードに対応している。
Huzzah32は、自身のアクセスポートとサーバーになるように設定した。アクセスポイント(DrumLoghts)とWPAキー(HelloRockview)の名称は、コード内の「WiFi.softAP(“DrumLights”, “HelloRockview”);」のラインを書き換えれば変更できる。接続すると、デフォルトのブラウザで、自動的に設定用のウェブページが開く(Androidではちょっと問題が起きたが、私が試した限りでは、そのほかのOSでは問題なく動いた)。うまくウェブページが開かないときは、手動で192.168.4.1にアクセスすると、設定ページが開く。
設定ページでには3つのオプションが示される。Flash(フラッシュ)、Brightness(明るさ)、Sensitivity(感度)だ。フラッシュは、決められた色を表示する前に、すべてのLEDが、0.1秒間だけ強く白く光るというもの。とってもダイナミックな効果だが、うるさいと感じる人もいるかも知れない。明るさは、通常に点灯させるLEDの明るさを決める。感度は、どの程度強く叩くとLEDがトリガーされるかを決めるものだ。スライダーを右に動かすほど、LEDの色を変えるためには強く叩くことになる。
インターフェイス
Huzzah32をArduino環境で設定する。まずは、GitHubにある最新のドライバーパッケージをインストールする。使用するOSごとの指示に従って欲しい。すると、Arduino IDEの「ツール」メニューの中の「ボード」から「Adafruit ESP32 Feather」が選択できるようになる。
また、Adafruit_LIS3DHとAdafruit_Sensorライブラリーをインストールする必要がある。これらは、LIS3DHセンサーの説明書とともに、Adafruitから入手できる。
さらに、LEDをコントールするためには、Adafruit NeoPixelライブラリーが必要になる。これはArduino IDEのツーツメニューの「ライブラリを管理…」からインストールできる。これらすべてのパッケージをインストールしたら、Arduinoを再起動する。
組み立てる
WS2812B LEDテープは長めに買うほうが得なのだが、14インチのスネアドラムの場合は約111.8センチしか使わない。LEDとLEDとの間には線が引いてあるので、LED68個を数えて、68個と69個との間で切断する。
このプロジェクトのハンダ付けはとても簡単だ。難所はひとつだけ。Featherに2つのデバイスのグランド線を接続するのだが、Featherにはグランドピンがひとつしかないという点。
私は単純に、2本のグランド線を束ねてグランドピンのスルーホールに押し込み、ハンダ付けした。LIS3DHボードではSPIインターフェイスを使っている。なぜなら、これを書いている時点では、ESP32ではI2Cがうまく作動しないからだ。それにはさらに多くの配線が必要になるが、システムはあらゆるものに対応できるようになる。
上の写真が完全な配線図だ。
LEDテープの接続箇所が壊れやすそうだったので、補強することにした。余っていたプラスティックの(SDカードのケース)を使い、小さな板を切り出して、それを配線とLEDテープにホットグルーで貼り付けた。LEDは防水チューブの中に入っているが、両端をホットグルーで蓋をして密閉した。配線をハンダ付けした箇所には熱収縮チューブで整え、見栄えもよくした。
配線が終わったら、Githubからコードをダウンロードする。それをArduino IDEで開き、ボードにアップロードする。完了したら、センサー部分を叩いてみよう。光の色が変わるはずだ。30秒以上叩かないでいると、自動的にデモモードに切り替わり、5秒ごとに色が変化するようになる。
もちろん、この裸の基板をドラムの脇にぶら下げておくのは格好が悪いので、ケースをデザインして3Dプリントした。配線した加速度センサーのボードは、ドラムの胴にもっとも近くなるようケースの底に取り付けた。Huzzah32はケースの蓋の裏に両面テープで貼り付けた。ケースの脇にはLEDテープのためのサポートがあり、結束バンドで取り付けることができる。
最後に、「フラッシュ」効果は大量の電気を使うため、USBで電源を供給する必要があることに気が付いた。少なくとも1.2アンペアの外部電源が必要だ。
ロックしよう
これで、光るスネアドラムで世界を驚かせる準備ができた。私はこれをVinnieに贈った。彼はこれを試してくれた。ドラムの内側に、好きな方法で取り付けて欲しい。品質の高い面ファスナーがいいと思うが、そこは自分のドラムなんだから、自由に楽しんでくれ。
部品
・Huzzah32マイクロコントローラー Adafruit #3405 adafruit.com
・LIS3DH加速度センサー・ブレークアウトボード Adafruit #2809
・WS2812B RGB LEDテープ 1メートルあたりLEDが60個のもの
・標準的な被覆線
・ハンダ
・熱収縮チューブ
・ホットグルー
・結束バンド
・USBマイクロケーブル
・USB電源 1.2A以上
・適当なケース。私の3Dプリント用ファイルは、thingiverse.com/thing:2958176にある。
・3Dプリント用フィラメント(オプション)
[原文]