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

PaxPowerGloveMIDIKeyboardはてなブックマーク

powerglove_midi_07.jpg

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

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


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

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


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



操作:

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

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

ABで楽器を変更する。

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

必要なもの

ハードウェア

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

ソフトウェア

項目説明
Arduino Software IDEArduinoの統合開発環境。
dualMocoLUFAUSB-MIDI ファームウェア。
HEXファイルをGitHubからダウンロードしておく。
("Raw"を右クリックして保存。)
Atmel Flipフラッシュ書き込みツール。
FLIP 3.4.7 for Windows (Java Runtime Environement included)をダウンロードしておく。
MIDILibraryArduino_MIDI_Library_v4.2.zipをダウンロードしておく。
fileパワーグローブMIDIキーボード用Arduinoスケッチ自作のプログラム。コンパイルするにはMIDILibraryが必要。
普通のアナログシンセサイザー(Common Analog Synthesizer)USB-MIDIキーボードに対応したシンセサイザーアプリ。
今回はUSB-MIDIに対応した簡易音源として使用。
他の本格的な音源でも動作するはず。

手順

ハードウェア

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

ソフトウェア

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


完成! :)


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

使い方

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



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

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

ABで楽器を変更する。

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

参考

Amazon

差分 一覧