Raspberry PiからI2Cセンサーを制御する

2017.9.23

はじめに

IoTゲートウェイにRaspberry Piが使われるケースが増えてきました。Raspberry Piにハードウェアを拡張するには、Wi-Fi、Bluetooth、LAN、USB、GPIOと色々な方法が選べますが、I2C I/Fを持ったデバイス(以下I2Cセンサーと称する)を繋ぐには一工夫必要です。ここでは当社が推奨する手法をご紹介します。

Raspberry PiとI2Cの間には深い溝がある

I2C I/FはLinuxから直接制御するにはプロトコルがprimitive過ぎるので、マイクロコントローラを挟みたいところです。マイクロコントローラに要求されるのは、I2CセンサーとRaspberry Piの双方に繋がり、入手性がよく開発環境が整っているもの、と言うことになります。と言うわけでこれを書いている時点で、プロトタイピングを目的にするならArduinoシリーズ一択ということになります。

ハードウェア

Raspberry Pi <USB I/F> Arduino+I2C拡張基板等 <I2C I/F> I2Cセンサー、となります。「Arduino+I2C拡張基板等」とありますが、SeeeduinoというI2C I/F一体型の基板を使うとコンパクトになります。

ソフトウェア

どこかで詳しく書くつもりですが、うんと端折ると
Raspberry PiにはNode-RED+Johnny-Five(Firmata)
ArduinoにはFirmataをインストール
が使いやすいと思います。

今日はここまで
2017.9.23