最近Arduino & ESP8266開発について外で説明する機会がしばしばあって、開発環境のデモ用に自分の古いノートPCを持ち歩いていたのだが、これがどうも遅くて調子がよろしくない。一方で、買ってはみたものの、どう活用しようか考えあぐねているRaspberry Pi 3が手元にある…というわけで、このRPi3をArduinoデモ用モバイルPCにすることにした。
ちなみに、ポンド安に乗じて Pimoroni にRaspberry Pi Zeroを注文し、届くのを待っていたりする。個人的にはRPi3よりこちらの方が楽しみだ。
ハードウェア
これからRPi3を買おうという人の参考に。
- Raspberry Pi 3 Model B (Element14):
税抜5100円也。 - ヒートシンク付きケース:
ケースはどうでもいいのでヒートシンク目当てで購入。ただ、ケーブルに引きずられて本体がよく転げまわるので、結果的にケースがあってよかったとは思う。税抜829円也。 - スイッチングACアダプター5V3A STD−05030U:
USBケーブルが直接つなげるACアダプターは品薄で、高価または粗悪なものしかなさそうだったので、この普通のDCプラグのACアダプターを購入。USBへの変換アダプタは2.1mm標準DCジャック(4A)とUSBケーブル Aオス−マイクロBオス 0.15mをつなげて自作。合計税抜980円也。 - microSDカード 32GB UHS-I U1 Class 10:
税抜980円也。
ソフトウェア
Arduinoのセットアップはこんなノリで。apt-getは使わない。
- OS:
普通にRaspbianをインストール。日本語環境もググって適当に作る。 - Arduino:
本家ダウンロードページから最新版(現時点で1.6.9)のLinux ARM版をダウンロードして適当なところに展開、install.shを叩く。 - ESP8266用Board Manager、各種ライブラリ:
Arduinoの機能を普通に使って普通にインストールできる。 - emacs:
スケッチ外の、所謂ライブラリを編集するのにちゃんとしたプログラミング用エディタが必要。
Arduinoとの接続および通信
デスクトップPCとまったく同じようにUSBで接続できる。GPIO上のUARTは忘れておく。
- Arduino NanoとはUSBで直接、ESP8266とはUSBシリアル変換モジュールを通して、普通のデスクトップPCと同様に接続できる。ポート名は /dev/ttyUSB0 等。プログラム書き込みもアプリケーションとの通信もすんなり。
- ESP8266との接続は、GPIOに出ているUARTに直接配線すればUSBシリアル変換モジュールが不要になるのか?と思いきや、うまくいかなかった。
- RPi3ではRPi2と異なり、 /dev/ttyAMA0 がUARTではなくBluetoothのシリアルポートになっているらしく、このへんがストレートに動かない理由かもしれない。
- まぁUSBシリアル変換モジュールの方が抜き差しが楽で、無理にUARTを使う必要もないので放置。
アプリケーションのコンパイルと動作
- LinuxのファイルシステムはWindowsとは異なりcase-sensitiveなので、Windowsでは通っていた#includeが英大小文字のズレでコンパイルエラーになるかもしれない。注意。
- コンパイルはCore i7のデスクトップよりは遅いが(笑)、Core2 DuoのノートPCよりは速い。I/Oがflashなのはいいね。
- ESP8266アプリケーションにmDNSレスポンダを仕込んでおくと、RPi3から "host名.local" と呼べば名前解決がすんなり通る。 /etc/nsswitch.conf を見ると、RaspbianはデフォルトでmDNSを使って名前解決を行うよう設定されているのね。
…と、それらしいArduinoデモ用モバイルPCができあがった。あとは http://openhantek.org/ を入れてオシロスコープに対応したいところ。