I2Cとは?I2Cとはシリアルデータ通信の方式で。I2CまたはIICと標記し、「アイ・スクエア・シー、アイ・ツー・シー」などと読む。GND、VCC(電源3.3v/5v)とSDA、SCLという二つの信号線の計4本で接続する。異なるアドレスを持つI2Cデバイスであれば、一つのI2Cポートに複数のデバイスを接続することができる。(最大112個)0/1の信号だけだはなく、アドレスとデータを指定したデータ通信を行うことができる。温度センササンプルアプリの読み込み温度センササンプルアプリをダウンロードして、任意のディレクトリに展開する。IDE左上から「パッケージ型アプリを開く」からダウンロードしたボタンサンプルアプリを読み込む。配線図に従って温度センサを接続する。接続にはスルーホール用ジャンパ線を用いる。CHIRIMENのI2C0_SDA(CN2-12)、I2C0_SCL(CN2-11)と温度センサのSDA、SCLを接続する。CHIRIMENのGND(CN2-1)、VCC(CN2-18)と温度センサのGND、VCCを接続する。配線が正しいことを確認し、CHIRIMENとPCを接続する。アプリをインストールする。動作すればディスプレイ上に温度が表示されていることが確認できる。温度センサを(黒い部分を指で触るなどして)温めると、ディスプレイ上の表示温度も上昇していくことが確認できる。プログラムの解説ライブラリの読み込みI2Cアクセスの初期化処理I2Cポートのオープン温度センサの読み取りライブラリの読み込みI2Cをwebアプリから扱うためのライブラリ(i2c.js)と温度センサのライブラリ(ADT7410.js)を読み込む。該当コード:ライブラリの読み込みI2Cアクセスの初期化処理I2Cアクセスの初期化処理を行う。該当コード:I2Cアクセスの初期化処理navigator.requestI2CAccess()で初期化を行う。初期化処理の結果はPromiseで返ってくるため以下のように記述する。{//初期化後の処理}I2CポートのオープンI2Cアクセスの初期化後、I2Cポートのオープンを行う。該当コード:I2Cポートのオープンi2cAccessオブジェクトのopenメソッドを使用してi2cAccess.open(<I2Cポート番号>)と記述する。CHIRIMENには二つのI2Cポートがある(0、2)が、今回はI2Cポート0を使用する。openメソッドの実行の結果、I2Cポートオブジェクトが返ってくる。温度センサの読み取り温度センサのライブラリを用いて、温度センサの読み取りを行う。該当コード:温度センサの読み取りADT7410.read(<I2Cポートオブジェクト>,<デバイスアドレス>)で温度センサの情報を読み取ることができる。今回使用する温度センサ(ADT7410)のデバイスアドレスは0x48(初期設定)となる。結果はPromise型で返ってくる。.then(value=>{//センサ読み取り後の処理}と記述する。センサ値は変数valueに格納される。距離センサを読み取る光センサを読み取る加速度センサを読み取る距離センサを読み取る回路図に従って距離センサ回路を作成する。距離センササンプルアプリをダウンロードしてCHIRIMEN上で実行する。距離センサの値がディスプレイに表示される。距離センサのサンプルコードIndex.htmlでi2c.js、SRF02.jsを読み込む。該当コード:距離センサライブラリの読み込み温度センサと同様にI2Cポートをオープンする。該当コード:I2CポートのオープンSRF02.read(<I2Cポートオブジェクト>,<デバイスアドレス>)で距離センサの値を読み込むことができる。該当コード:距離センサの読み込み距離センサ(SRF02)のデバイスアドレスは0x70(初期設定)を使用する。光センサを読み取る回路図に従って光センサ回路を作成する。光センササンプルアプリをダウンロードしてCHIRIMEN上で実行する。光センサの値がディスプレイに表示される。光センサのサンプルコード他のI2Cセンサ同様、光センサライブラリの読み込みとI2Cポートのオープンを行う。光センサはGroveLight.init(<I2Cポートオブジェクト>,<デバイスアドレス>)で初期化処理を行う必要がある。初期化処理の完了後、センサ値の読み込みが可能になる。該当コード:光センサの初期化GroveLight.read(<I2Cポートオブジェクト>,<デバイスアドレス>)で光センサの値の読み取りを行うことができる。該当コード:光センサの読み込み光センサのデバイスアドレスは0x29(初期設定)を使用する。加速度センサを読み取る回路図に従って加速度センサ回路を作成する。加速度センササンプルアプリをダウンロードしてCHIRIMEN上で実行する。加速度センサの値がディスプレイに表示される。加速度センサのサンプルコード他のI2Cセンサ同様、加速度センサライブラリの読み込みとI2Cポートのオープンを行う。(<I2Cポートオブジェクト>,<デバイスアドレス>)で初期化処理を行い、完了後、センサ値の読み込みが可能になる。該当コード:加速度センサの初期化GroveAccelerometer.read(<I2Cポートオブジェクト>,<デバイスアドレス>)で加速度センサの読み取りが可能。該当コード:加速度センサの読み込み加速度センサのデバイスアドレスは0x53(初期設定)を使用する。I2Cデバイス温度センサ、加速度センサ、気圧センサなど様々なセンサや、液晶モジュール、モータドライバなど、I2Cインターフェースに対応した様々なデバイスが販売されている。GND、VCC、SDA、SCL端子をつなぐことで制御できる。接続方法は共通なので簡単にI2Cデバイスを接続するためのコネクタも存在する。systemなど)CHIRIMENはWebアプリからのI2C通信の読み書きに対応しているため、I2Cに対応したデバイスを制御することができる。機材の準備CHIRIMENmicroUSBケーブルmicroHDMI-HDMIケーブルACアダプタHDMIディスプレイブレットボードI2Cセンサスルーホール用ジャンパワイヤ。