巨大階段ピアノ
使用した材料
・べニア板(3x6 ft, 厚さ2mm) x 8枚
・アルミテープ(幅50mm) x 55m
・タコ紐 (直径0.7mm) x 20m
・ペンキ艶あり白色 x 2L
・ペンキ艶あり黒色 x 0.2L
・マスキングテープ x 50m
・配線用ケーブル x15m
・Arduino Uno x1個
・ブレッドボード x1個
・ジャンパ線 x15本
・10kΩ 1/8w抵抗 x12個
・Macbook Air x1台
・不織布白色(幅1800mm) x5m
・黒色カーペット(幅700mm) x3m
・25wスピーカー x2台
・50wアンプ x1台
使用したソフト
・Garage Band
・Arduino IDE
完成した作品
工夫した箇所
鍵盤の戻りの良さを調べながら作成しました。
仕組み
詳細な仕様
Arduino
UnoのMidiキーボード認識にはmocolufaファームウェアをatmega16U2にフラッシュしました。
およそ5kgくらいから鍵盤は反応します。
チャタリング修正はBounce2を使用しています。
プログラム
#include <MIDI.h> #include <Bounce2.h> MIDI_CREATE_DEFAULT_INSTANCE(); byte pins[12] = { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2}; byte pitch[12] = { 72, 74, 76, 77, 79, 81, 83, 84, 86, 88, 89, 91}; int status[12] = {0}; Bounce button[] = {Bounce(pins[0],20), Bounce(pins[1],20), Bounce(pins[2],20), Bounce(pins[3],20), Bounce(pins[4],20), Bounce(pins[5],20), Bounce(pins[6],20), Bounce(pins[7],20), Bounce(pins[8],20), Bounce(pins[9],20), Bounce(pins[10],20), Bounce(pins[11],20), Bounce(pins[12],20) }; void setup() { MIDI.begin(1); } void loop() { for (int i=0; i< 12; i++) { button[i].update (); if ((button[i].read() == HIGH)&&(status[i] == 0)) { MIDI.sendNoteOn(pitch[i],127,1); status[i] = 1; }if ((button[i].read() == LOW)&&(status[i] == 1)) { MIDI.sendNoteOff(pitch[i],0,1); status[i] = 0; } if ((button[i].read() == HIGH)&&(status[i] == 1)) {} if ((button[i].read() == LOW)&&(status[i] == 0)) {} } }
遊び方
上に乗るとピアノの鍵盤に対応した音が鳴ります。
一つの鍵盤に対して一つの音が鳴ります。
荷重が一つの鍵盤に重複したときは新たに音はなりません。
コメント
コメントを投稿