Androidと絡めてロボットを動かそうとしているかっこいいひとたちに感化されまして、PICに手を出しかけました。「なんかよくわかんないけどPICってかっけー」というノリで、手を出しかけたんですがいきなり挫折しました。

「あれ? MacだとPICの開発できないの?」

そうみたいなんです。IDEやコンパイラはMicrochipから無料でダウンロードできるようですが、みんなWindows版。買った本にはWindowsのことしか書いてありませんし、ググってみても新しめの情報は見つからないし…

その悲鳴が届いたのか @kshoji さんが @yamamo2 さんのこのツイートをリツイートしてくれました。

えっと、MacユーザーでPICマイコン使いの人に朗報でーっす!

実は、Microchipさん、こっそりMPLABとCコンパイラのMac版を開発しております。

で、実はそれをこっそりテストしておりました。

で、ですね。こやつでPICnome用のファームウェアのコンパイルができるようになりましたー☆ぱちぱち♪ http://twitpic.com/4ayb8p

まぁ、コンパイルは通ってもhex流し込んで動くのか?ですが、ブートローダー入れたマイコンにmphidflashというコマンドラインツール使っていつも通り書き込めましたよん。動作もバッチリでございます。

ちなみにPICnomeで使ってるマイコンはPIC24FJ64GB002というUSB通信が可能なヤ〜ツです。

というわけで、気分転換な作業を終了して、本業務に戻りまふ。

あっ、ちなみに全部フリーで入手できまっせ。ちょろっとCが書ければ0円でPICnomeのファーム書き換えて使えますよー。トゥーMacユーザーさん。

ちなみに、Macで使えるMPLABXはこっからダウンロードして使えまっせ。まだベータ版なので自己責任でね☆ http://t.co/udGHxbr

すばらしい。すばらしい。MPLAB® X Integrated Development Environmentのページを見ると、従来のMPLABといまβ版のMPAB X IDEの比較表が載っています。

EclipseでなくNetBeansベースなのはこだわりなのでしょうか。MPLAB X IDEのβ版のダウンロードページはこちら。プラットフォーム依存なCコンパイラのLite版もIDEのダウンロードページからダウンロードできます。これでMacでもLinuxでも開発できるんですね。すばらしい。

サンプルのプロジェクトを読み込んでビルドしてみましたよ。

できました。とりあえず .hex のファイルもできてるようです。よしよし。ここまではMacで無料でできました。

プログラムの書き込みも無料でするには

できた .hex ファイルをPICへ書き込むにはPICkit3か何かを使えばいいんだと思いますが、PICkit3とかは有料です($44.95とか)。もしUSBの口を持っていてブートローダがあらかじめ入れてあるボードだけ使うことにするならば、@yamamo2 さんのツイートでも言及されているMPHidFlashで無料でいけそうですね。

mphidflash – Flash utility for Microchip PIC microcontrollers with USB HID-Bootloader

MPHidFlashはPICマイクロコントローラ中のUSBブートローダと通信するためのコマンドラインツール。Microchips HIDブートローダプロトコルをサポートして各種プラットフォーム(Windows, Linux, MacOS X)上で走る。

使い方

プログラムをPICへアップロードするには、PICをコンピュータへ接続してブートローダモードにセットする。たとえば、test.hexというプログラムをPICへアップロードしてそのあとPICをリセットするには次のコマンドを使える:

mphidflash -write test.hex -reset

つかえるオプション全部の説明を得るには:

mphidflash -help

ブートローダファームウェア

MPHidFlashはMicrochips HIDクラスブートローダプロトコルを使うブートローダをサポートする。PIC18、PIC24、PIC32用のアプリケーションノートとサンプルが、Microchip MCHPFSUSBフレームワークの中に含まれている。これはこのフォルダの中にある: “USB Device – Bootloaders/HID – Bootloader”。

HIDブートローダがあらかじめプログラムされているデバイス

  • PIC18F46J50 FS USB Demo Board
  • UBW32 (32 bit PIC32 based USB Bit Whacker)

USBコネクタが実装されているボードは、オプティマイズ PIC24USBヤフオクのPIC24FJ64GB002 USB内蔵マイコンボードもブートローダ書き込み済みらしい。「できるだけ無料で!!」の実践はこれで行けそうです。だけど実際には普通PICkit3も持っておくべきものなのかも。今度 @hrdakinori さんに聞いてみよう。

読んでる本

C言語ではじめる PIC24F活用ガイドブック

C言語ではじめる PIC24F活用ガイドブック