ArduinoをMIDI接続するにはDINソケットやシールドがいると思っていたけど、こんなに簡単!
ジャンパーピンだけで出来た。
今ある、参考ページは古いので、新しく書き換えた。
参考のページは「KainokiKaede's diary」
ここには多数のリンクが載っており、下調べするにはいいかも。
実行するには少し変更点があるので注意!
RaspberryPiでの変更は手がやけた。
まず、端末から
Dfu-programmerを導入する。$git clone https://github.com/kuwatay/mocolufa
RaspberryPiのDfu-programmerは古いバージョンなので使えなかった。
ちょっと手がやけるけど、ソースからコンパイル。
$git clone https://github.com/dfu-programmer/dfu-programmer $sudo apt-get install autoconf libusb-1.0-0-dev gawk $cd dfu-programmer $./bootstrap.sh $sudo mv dfu_programmer /etc/bash_completion.d/ $cd /etc/bash_completion.d $source dfu_programmer $cd ~/dfu-programmer $./configure $make $sudo make installここまででインストールは終わり。
ArduinoをRaspberryPiに接続する。
自分のArduinoは「Arduino SA Uno R3」になっていた。$lsusb
ついでにUSBのところのチップの名前を読んでおく。
自分の場合は15倍のルーペでやっと見えるくらいだった。
「atmega16u2」と書いてあった。
ArduinoのUSBケーブルを抜く。
再度、下の写真の通り、ジャンパピンを(USBの近く)差し込んでから、RaspberryPiと接続する。
![](https://stat.ameba.jp/user_images/20150423/16/math-physics/89/bd/j/o0640048013284643598.jpg?caw=800)
接続したまま、ジャンパピンを抜き去り、
$lsusb
ともう一度叩くと、「Atmel Corp」という表示になっている。
それを確認してから、
$cd ~/mocolufa/HEX
$sudo dfu-programmer atmega16u2 erase
$sudo dfu-programmer atmega16u2 flash dualMoco.hex
$sudo dfu-programmer atmega16u2 reset
これで書き換え終了。
MIDI機器としてArduinoが認識されるはずだ。
Arduinoにスケッチを書き込むときは、以下のように、ジャンパーを差せばOK。
![](https://stat.ameba.jp/user_images/20150423/16/math-physics/43/90/j/o0640048013284643600.jpg?caw=800)
「Arduino MIDI Library v4.2」をダウンロード解凍後(GitHubもある)、
$sudo cp -r MIDI /usr/share/arduino/libraries/で、ライブラリを追加する。 Arduinoのスケッチ(ジャンパーピン接続してないと書き込めない)
赤字で書いたところが重要。 この一文がないと古いソースは動かないみたい。#include <MIDI.h> MIDI_CREATE_DEFAULT_INSTANCE(); int notenumber[8]={60, 62, 64, 65, 67, 69, 71, 72}; int i; void setup(){ MIDI.begin(); } void loop() { for(i=0; i<8; i++){ MIDI.sendNoteOn(notenumber[i], 100, 1); // Velocity=100, Channel=1 delay(500); // bpm=120 MIDI.sendNoteOff(notenumber[i], 100, 1); } }ジャックとAmsynthを起動後、ArduinoのMIDI機器を接続したのが以下の動画。$sudo apt-get install amsynth