FEZ CerbuinoNet で ヤマハNSX-1チップを制御する
昨年、ヤマハさんから、アナログ音源とボーカロイド音源が入ったチップ、NSX-1(https://jp.yamaha.com/news_release/2013/13102301.html )が発売され、スイッチサイエンスさんから、NSX-1のArduino用シールド付のこのデバイスが売り出されました。https://www.switch-science.com/catalog/1490/
でね、こういうデバイスを見ると、.NET Gadgeteerの FEZ Cerbuinoシリーズ https://www.ghielectronics.com/catalog/category/265 という、ArduinoシールドをマウントできるGadgeteerボードで、制御してみたくなるわけですよ。幸い、NSX-1は3.3Vで制御できるみたいだし。
そういうわけで、知り合いの力を借りて、やってみました。ボードは、FEZ Cerbuino Net( https://www.ghielectronics.com/catalog/product/473 )を使っています。
FEZ Cerbuino Net にeVY1シールドをぷすっと指します。eVY1シールドのピンが数本余りますが、Gadgeteerのソケット3つある側のArduino用ソケットの端を合わせます。注意ですが、そのまま挿すとCerbuino側のEthernetコネクタとeVY1シールドが干渉してショートしてしまうので、絶縁テープをCerbuino側の当たりそうなところに貼ってくださいね。
Cerbuino NetのArduino用ピンとGadgeteerソケットは、Arduino側の標準的な種別とGadgeteerソケットの結線の種別がつながっています。NSX-1チップにシリアル通信でデータを送るために、Visual StudioでGadgeteerプロジェクトを作成して
のように、RS232モジュールを追加します。2番ソケットと、Arduinoシールドのシリアル通信用ピンがつながっているので、アプリ上は、このRS232モジュールにMIDIデータを送信すれば、NSX-1にデータを送ることができます。
以上は、Arduino向けシールドを通じてコントロールしていますが、ブレッドボードでつなぐ場合は、以下の様に、接続すればOK。
CN5の2:MIDI RX →D1
CN2の3:RESET →RESET
CN2の5:3.3V →5V
CN2の6、7:GND → GND
Arduino向けシールドが無いeVY1モジュールを直接つなぐことも可能で、以下のピン接続で制御可能です。
J1の3 :3.3V →3V3
J1の5:RESET →RESET
J1の7:MIDI RX →D1
J2の5~8:GND →GND
プログラム上は、RS232モジュールにアクセスする為の変数rs232が自動生成されるので、rs232.serialPortにMIDIデータを書き込みます。MIDIデータを送る方法は、ちょっとめんどくさいので、また、別の投稿で解説しますね。
※デバイスドライバーズの日高さん、川本さん、ご協力ありがとうございます。