今回からはPart2である。352回から1年ほど、Arduinoを使った工作を延々とやらせていただいたが、逆に1年もこれに集中したことで色々とArduinoの限界も見えてきた。Arduino自身も進化をしており、もう少しすればCortex-M3ベースのArduinoi Dueなんかも登場するようだ。こうした製品を待ってもいいのだが、まだ安定するまでにはちょっと時間がかかりそうだ(ちなみにAtmelの9月のプレスリリースによれば、Arduinoi Dueは2011年末までにリリースという話だったが、どうも遅れているようだ)。

性能もさることながら、Arduinoではデバッガが事実上使えないというのが、凝ったものを作ろうとするときに色々と問題になる。今回のWattMeterに関しても、デバッガを使えればもう少し早く解決しただろうという問題というかバグがいくつかあって、これの解決に結構手間取ることになった。あるいはArduino自身が結構リソースのオーバーヘッドが大きいのも問題である。Arduinoはプログラミングの敷居を思いっきり下げることに成功しており、必ずしもプログラミングなどに慣れていない方々(たとえば電子編み物系のアーティスト)にも広く使われるに至ったが、逆にチップの性能限界ぎりぎりまで追い込もうとすると色々と無理が出てくる。

また、今となってはArduinoがそれほど安価でもなくなってしまったのが大問題である。mbedはやや高価ではあるが、価格性能比を考えると割高というよりはむしろ安価と言ってよいし、STMicroelectronicsは相次いでやたら廉価な開発ボードを投入して、マイコンボードの相場価格を明らかに下げることに成功した。MIPS系は、以前もご紹介したchipKit 32をArduino互換ではなくMIPS32コア搭載MCUとして使うことができる。FreescaleのTower Kitは相変わらず高価だが、最近昨年あたりからelement 14経由でFreescaleのMCUを色々購入できるようになっている。そんな訳で、そろそろ別のMCUに切り替えてみてもよさそうだ、と判断したわけだ。

で、次は何にするかである。mbedは、Cortex-M3モデルはすでに一度レポートしており、これはこれで結構使えることが分かっている。最近、Cortex-M0を搭載した新しいmbedが登場しており、これを使うとUSBデバイスを非常に簡単に作れるので、これはこれで試してみるのも面白そうだ。ただちょっと今更感はなくもない。前回のArduinoでは能力的に無理だったいくつかの事を試すには、今一歩な感じもある。価格がやや高いのも問題だ。

ちょっと考えた末、STMicroelectronicsが昨年10月に出荷を開始したSTM32F4 Discovery Kitを使って色々やってみることにした(Phtoo01)。国内だと秋月電子通商が\1,650で販売しているし、ある程度の量をまとめ買いしたいなら色々な代理店経由(たとえば国内だとMouser electronicsあたりが便利なのではないかと思う)で買うこともできる。性能的には168MHz駆動でFPUまでついたCortex-M4で192KBのRAMと1MBのFlash Memoryがついている。必要かどうかはともかく、Audio DACやMEMSベースの3軸センサーなども内蔵されている。また同社が提供するST-LINK/V2というProgrammer/Debuggerの回路そのものがオンボードで搭載されており、これを使ってデバッグができる(オンボードの回路を殺して外付けのST-LINK/V2を使うこともできる)。欠点としては、オンボードではRS232Cのトランシーバが無く、なのでArduinoの様に仮想RS232Cポートを使って簡単に通信、という訳にはいかないあたりだが、この辺はまた別途考えたいと思う。

Photo01: 安いだけあって、パッケージはこれですべて。説明書などももちろん無い。

実はこのSTのこうしたボードはこれまでもあって、筆者も何枚か入手している。そろそろ使ってやろう、などと思いつつタイミングが合わなくてなかなか使う機会がなかったので、「今度こそ」と考えた訳だ(Photo02)。

Photo02: サイズ比較。左からSTM8S-DiscoverySTM32 Value line Discovery、STM32F Discovery、大きさ比較用のArduino Duwmilanove。