Top/Devel/電子工作/Arduino/PaxPowerGloveMIDIKeyboard

PaxPowerGloveMIDIKeyboard の変更点はてなブックマーク


#ref(powerglove_midi_07.jpg,around,right,20%)

チップチューンなDJイベントで、
DJがパワーグローブを装着してプレイしていたら面白いかも。

ちょうど[[バーチャルリアリティ用改造PAXパワーグローブ>../PaxPowerGlove]]の保守部品として買ったパワーグローブが余っている。

~

せっかくなので、ただ装着するだけでなくグローブに何か機能が欲しい。

そう思い、PAXパワーグローブをMIDIキーボードにしてみた。

~

完成品の動画。マウスで動画右下のスピーカーアイコンを押すと音が出ます。

~

#vine(iMb6DvwlQZZ)

~
操作:

0〜9、ENTER、PROGでドレミファソラシの音を奏でる。

上下でオクターブを変更する。

ABで楽器を変更する。

指の曲げ伸ばしで各種エフェクト(モジュレーション)が掛かる。


*必要なもの
**ハードウェア
|項目|説明|h
|[[Arduino UNO>http://www.amazon.co.jp/exec/obidos/ASIN/B0044X2E5S/cubic9com-22]]|比較的小型で安価で簡単に使えるマイコンボード。|
|USBケーブル(タイプAオス- タイプBオス)|何でも良い。|
|[[パックスパワーグローブ>http://www.amazon.co.jp/exec/obidos/ASIN/B001VII7PA/cubic9com-22]]|通常はファミコンに接続して使う手袋型コントローラ。|
|プルアップ抵抗(100kΩ)* 4|何でも良い。今回は千石電子通商で購入。|
|ユニバーサル基板|何でも良い。今回は千石電子通商で[[サンハヤト ICB-504>http://www.amazon.co.jp/exec/obidos/ASIN/B00J7LDVLS/cubic9com-22]]辺りを購入。|
|LED * 2|何でも良い。今回は千石電子通商で購入。パワーグローブに合わせて直径8mmの緑色を選んだ。|
|電流制限抵抗 * 3|何でも良い。今回は千石電子通商で購入。|
|プラスチックケース|何でも良い。今回は千石電子通商で[[テイシン TB-59B>http://www.amazon.co.jp/exec/obidos/ASIN/B00HLBIL20/cubic9com-22]]を購入。|
|コルゲートチューブ|何でも良い。今回は千石電子通商で購入。|
|OTGアダプタ|何でも良い。今回は[[ドロイド君型OTGアダプタ>http://www.amazon.co.jp/exec/obidos/ASIN/B00I2HEOQE/cubic9com-22]]を使用。|
|Android端末|今回はUSB-MIDIに対応した簡易音源として使用。&br;最近のAndroidの入ったスマホやタブレットであれば概ね何でも良い。&br;今回は[[Chuwi Vi8>Windows/ChuwiVi8]]を使用。|

**ソフトウェア
|項目|説明|h
|[[Arduino Software IDE>https://www.arduino.cc/en/Main/Software]]|Arduinoの統合開発環境。|
|[[dualMocoLUFA>http://morecatlab.akiba.coocan.jp/lab/index.php/aruino/midi-firmware-for-arduino-uno-moco/]]|USB-MIDI ファームウェア。&br;HEXファイルを[[GitHub>https://github.com/kuwatay/mocolufa/blob/master/HEX/dualMoco.hex]]からダウンロードしておく。&br;("Raw"を右クリックして保存。)|
|[[Atmel Flip>http://www.atmel.com/tools/FLIP.aspx]]|フラッシュ書き込みツール。&br;FLIP 3.4.7 for Windows (Java Runtime Environement included)をダウンロードしておく。|
|[[MIDILibrary>http://playground.arduino.cc/Main/MIDILibrary]]|Arduino_MIDI_Library_v4.2.zipをダウンロードしておく。|
|&ref(powerglove_midikeyboard.ino,,パワーグローブMIDIキーボード用Arduinoスケッチ);|自作のプログラム。コンパイルするにはMIDILibraryが必要。|
|[[普通のアナログシンセサイザー(Common Analog Synthesizer)>https://play.google.com/store/apps/details?id=org.oxxxide.vasynth]]|USB-MIDIキーボードに対応したシンセサイザーアプリ。&br;今回はUSB-MIDIに対応した簡易音源として使用。&br;他の本格的な音源でも動作するはず。|


*手順
**ハードウェア
#ref(powerglove_midi_01.jpg,around,right,10.3%)
+手の甲の部分の基板のビニール線を除去する。
+パワーグローブのボックスの基板を取り外し、ビニール線を除去する。
+チップを除去する。除去する際に断線した箇所はジャンパで補修する。
#clear
#ref(powerglove_midi_02.jpg,around,right,10%)
+写真のプルアップ抵抗の下側にArduinoの5Vに接続する。
+写真のプルアップ抵抗の上側にそれぞれビニール線をはんだづけし、ArduinoのD2〜D9に接続する。(写真の抵抗の上側)
+写真の(1)をArduinoのD10に接続する。
+写真の(2)をArduinoのD11に接続する。
+写真の(3)をArduinoのD12に接続する。
+基板のLEDを電流制限抵抗と共にArduinoの5VとGNDに接続する。
#clear
#ref(powerglove_midi_03.jpg,around,right,11%)
+手の甲の基板に合わせてユニバーサル基板を切断する。
#clear
#ref(powerglove_midi_04.jpg,around,right,10%)
+LEDを散光のためにヤスリがけした後、電流制限抵抗と共に基板に配置し、Arduinoの5VとGNDに接続する。
#clear
#ref(../PaxPowerGlove/powerglove_circuit.png,right,around,25%)
+手の甲側の4本の赤い線をすべてArduinoのGNDに接続する。
#clear
#ref(powerglove_midi_05.jpg,around,right,11%)
#ref(powerglove_midi_06.jpg,around,right,10%)
+Arduinoの5V→抵抗→手の甲側のセンサ線と繋ぎ、抵抗とセンサの間にArduinoのアナログ入力を接続する。~
後述のスケッチでのセンサ線とアナログ入力の関係は次の通り。
|指|センサ線|アナログ入力端子|h
|親指|青|A0|
|人差し指|黒|A1|
|中指|白|A2|
|薬指|茶|A3|
|小指|センサなし|-|
このときパワーグローブと基板の接続にピンソケットを使うと、後日パワーグローブを交換するときに楽。
#clear
+導通チェックをしたら、各種はんだづけ部分をホットボンドなどで固め外れづらくする。
#ref(powerglove_midi_07.jpg,around,right,12%)
+コルゲートチューブでビニール線を覆い、Arduinoをプラスチックケースに格納する。
#clear

**ソフトウェア
+ピンヘッダ(ICSP端子)の5ピンと6ピンをショートさせたまま、ArduinoをUSBケーブルでPCに接続し、電源LEDが点灯したら、ショートさせるのを止める。
+デバイスマネージャを開く。
+"不明なデバイス"を右クリックし、[ドライバーソフトウェアの更新]をクリックする。
+[コンピューターを参照してドライバーソフトウェアを検索します]をクリックする。
+"次の場所で〜"に"C:\Program Files (x86)\Atmel\Flip 3.4.7"を入力する。(バージョンは適宜変更する)
+デバイスマネージャのAtmel USB DevicesにATmega16U2が表示されていることを確認する。
+Atmel Flipを起動する。
+[Device]>[Select]をクリックする。
+ATmega16U2を選択する。
+[Settings]>[Communication]>[USB]をクリックする。
+Openをクリックする。
+[File]>[Load HEX File]をクリックする。
+dualMoco.hexを選択する。
+"Run"をクリックする。
+書き込み終わったことを確認する。
+USBケーブルを挿し直す。
+Arduino Software IDEを起動する。
+[スケッチ]>[Include Library]>[Add .ZIP Library...]
+Arduino_MIDI_Library_v4.2.zipを選択して開く。
+ピンヘッダ(ICSP端子)の5ピンと6ピンをショートさせる。
+Arduino IDEで&ref(powerglove_midikeyboard.ino,,パワーグローブMIDIキーボード用Arduinoスケッチ);を書き込む。

~

完成! :)

~

なお、dualMocoLUFAから元に戻したいときは、FlipでC:\Program Files (x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\UNO-dfu_and_usbserial_combined.hexを焼く…はず。

#clear

*使い方
+パワーグローブのUSBケーブルをOTGアダプタでAndroid端末に接続する。
+普通のアナログシンセサイザーを起動する。
+右下の設定ボタンをタップする。
+[SELECT MIDI DEVICE]をタップする。
+表示された機器をタップする。
+自由に弾く。

~

#vine(iMb6DvwlQZZ)

~

0〜9、ENTER、PROGでドレミファソラシの音を奏でる。

上下でオクターブを変更する。

ABで楽器を変更する。

指の曲げ伸ばしで各種エフェクト(モジュレーション)が掛かる。
*参考
-[[パワーグローブのキーパッド改造 - Radium Software>http://d.hatena.ne.jp/KZR/20090904/p1]]

*Amazon
#amazon(B0044X2E5S,left)
#amazon(4800711460,left)
#amazon(4873117895,left)
差分 一覧