発売されて間もなく入手したものの、Arduinoに対して余りの非コンパチブルさに辟易して放置してあったchipKIT Max32。ところが、それと対になっているMPIDEの方は地道な開発が弛まず続けられていて、最新のRC3版に至ってはFirmataが問題なく動作する領域に至っています。実は先月リリースされていたRC2版でもFirmataの動作を確認していたのですが、あまり時間をかけてチェックしなかったこともあって記事にしていませんでした…。

FirmataはホストPCとArduinoの間の通信プロトコルなので、もしそれを解して正しく応答するなら、Arduinoをエミュレートすることに概ね成功していると言えます。第一関門はlibrariesフォルダーに収められたFirmataのスケッチ(StandardFirmata)を首尾良くビルドできることですが、これは問題なく通過します。ちなみに、MPIDEがArduino 1.0直前のArduino 023に準拠しているのは、chipKITシリーズがUSBシリアル・チップのFT232を搭載しているためだろうと思われます。出力されたバイナリーは30Kバイト強、それをMax32にアップロードします。

次はホストPC側の準備ですが、ArduinoとマッチするPduinoというオブジェクトをPure Data (Pd)上で動かしてみることにします。PdはPd-extendedというパッケージをインストールするのが一般的で、Ubuntuの場合にはパッケージ・マネジャーを介して最新版をゲットできます。

※上の画面をクリックすると大きなイメージが開きます。

Pduino (arduinomega-test.pd)の画面で[devices]のところをマウスでクリックすると使えるシリアル・ポートの番号がPdのウィンドウに表示されるので、薄緑色のserial port #の番号をそれに合わせてセットします。私の場合には/ttyUSB0は32ということだったので、編集モードで[open 4]の表示を[open 32]に変えてあります。

これで、あたかもArduino Megaが接続されているかのように動作します。MPIDEが知らない間にここまで完成度を上げていたことにちょっと驚きました。対象マイコンは違いますが、同じくArduinoとのコンパチビリティーが売りのMaple IDEは未成熟なため差が歴然としています。

蛇足: MPIDEはchipKITシリーズ以外のPIC32マイコン搭載ボードにも対応しています。それから、Uno32Max32の中間を埋める形でchipKIT uC32というモデルがつい最近登場しました。

chipKIT™ Boards – http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,892&Cat=18