I2Cとは,フィリップス社の開発したシリアルバスです.
クロック線とデータ線の2線だけで,
複数機器間の双方向通信ができるようになっています.
参考:I2C - Wikipedia
I2Cバスに電源バスを加えて,コネクタを規定しました.
この規定に従ってスレーブデバイス(モジュール)を作ります.
さらにドライバソフトウェアを作り,
TPIPAquarium上でPythonオブジェクトとして操作します.
規定の詳細
- バスは,バッテリーに直結されたパワーバスと,I2Cバス+5V電源の2種類
- パワーバスには2ピンのVHコネクタ,I2Cバスには4ピンのEHコネクタを使用
- モジュールは,バスに接続する場合,そのコネクタを2つ以上付ける(次に接続するモジュールのために)
- VHコネクタの配列は,1ピン目から+,-
- EHコネクタの配列は,1ピン目からSCL,GND,5V,SDA
- 基板のサイズを50mm x 75mmに統一(サンハヤトの感光基板に綺麗に配置できる)
- 固定用穴の位置を統一(スペーサで積み重ねるために)
利点
- バス構造のため,配線が簡単になる.(配線はパワーバス用とI2Cバス用の2種類のみ)
- 制御系の作業分担をしやすい.
- 機能の使い回しが簡単になる.
- TPIPAquariumと組み合わせることでプログラム開発が容易になる.
反省点
- パワーバスのノイズ対策が不十分であった.(モーターのノイズがビデオに乗るなど)
- 暴走時の対応策が不十分であった.
- スレーブアドレスの表現方法を統一できていなかった.(最終的にはSLA+Wで8bitで表現することになった)
- DIPスイッチとスレーブアドレスの対応が統一できていなかった.(SLA+Wで8bitで左詰めにすることになった)
その他
このページの下の階層にI2Cスレーブデバイスの例があります.
配線のサンプルは下図のようになります.
上がI2Cバス用のEHコネクタで,下がパワーバスようのVHコネクタです.
I2Cバスの配線は写真のようにツイストするとノイズに強くなります.
おすすめ
EHコネクタ,VHコネクタは共立エレショップ(http://eleshop.jp/)で購入できました.
圧着工具はENGINEERのPA-20がおすすめです.
AVRならTWIモジュール内蔵,PICならSSPモジュール内蔵だと,ハードウェアでI2Cを扱えます.
DRPではATmega88を使用しました.秋月で1個250円です.
プログラム開発の参考
AVR:http://www.eleki-jack.com/mycom2/avr/avri2c/
PIC:http://www.picfun.com/i2cframe.html,http://www.picfun.com/i2cframe2.html |