ハードウェアを拡張する

I2C通信ポートを使用する

Phenox2には、I2C通信のためのポートが搭載されており、外部のI2Cスレーブとの通信をサポートしています。そのためユーザーは自身でI2Cスレーブ機能のあるマイコンに、拡張したいセンサやアクチュエータを周辺回路として搭載した電子回路を製作・接続し、Phenox2から操作することが可能です。

I2C通信に必要なコマンドは、Phenox2のLinuxシステムから"i2c-tools"パッケージのコマンドを呼び出すことで行います。

ここでは実際に、Phenox2に3軸加速度センサ(KXP84-2050)を接続した例を紹介します。

写真1に、Phenox2のI2Cポートのピンアサインを示しました。4本のワイヤをハンダ付けし、I2Cスレーブと接続してください。

写真 1 メインボードI2C通信ピンアサイン

写真 1 メインボードI2C通信ピンアサイン

I2Cスレーブ側に電源が供給され、I2C通信を受け付けている状態で、Phenox2のLinuxシステムから"i2cdetect"コマンドを打ち、I2Cスレーブを検索します。

写真 2 "i2cdetect"コマンドでI2Cデバイスを検索する

写真 2 i2cdetectでI2Cデバイスを検索する

ここでは、スレーブアドレスが0x18のデバイス(KXP84-2050)が見つかったことが確認できました。次に、このI2Cスレーブから、加速度のデータを読み出してみます。

写真 3 "i2cget"コマンドでI2Cスレーブのレジスタから値を取得する

写真 3 "i2cget"コマンドでI2Cスレーブのレジスタから値を取得する

ここでは、加速度の値が常に更新されているため、結果が変化していることが分かります。

同様に、i2csetコマンドを用いてI2Cスレーブのレジスタに値を書き込むことができます。詳細については、"i2ctools"のドキュメントを参照してください。