CHIRIMEN I2C sensor team Miyazaki
Owner & Collaborators
License
CHIRIMEN I2C sensor team Miyazaki by FumihiroMiyazaki, todagiri, atuiwa, HirokiKono, Hagekiso is licensed under the Creative Commons - Attribution-ShareAlike license.
Summary
CHIRIMENでI2Cセンサを扱う方法。
Materials
Tools
Blueprints
Making
- I2Cとはシリアルデータ通信の方式で。I2CまたはIICと標記し、「アイ・スクエア・シー、アイ・ツー・シー」などと読む。
- GND、VCC(電源3.3v/5v)とSDA、SCLという二つの信号線の計4本で接続する。
- 異なるアドレスを持つI2Cデバイスであれば、一つのI2Cポートに複数のデバイスを接続することができる。(最大112個)
- 0/1の信号だけだはなく、アドレスとデータを指定したデータ通信を行うことができる。
- 温度センサ、加速度センサ、気圧センサなど様々なセンサや、液晶モジュール、モータドライバなど、I2Cインターフェースに対応した様々なデバイスが販売されている。
- GND、VCC、SDA、SCL端子をつなぐことで制御できる。接続方法は共通なので簡単にI2Cデバイスを接続するためのコネクタも存在する。(grove systemなど)
- CHIRIMENはWebアプリからのI2C通信の読み書きに対応しているため、I2Cに対応したデバイスを制御することができる。
- 温度センササンプルアプリの読み込み
- 温度センサ回路の配線
- アプリ実行
- 温度センササンプルアプリをダウンロードして、任意のディレクトリに展開する。
- Web 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アクセスの初期化処理を行う。
- navigator.requestI2CAccess()で初期化を行う。
- 初期化処理の結果はPromiseで返ってくるため以下のように記述する。
- navigator.requestI2CAccess().then( function(i2cAccess) {//初期化後の処理}
- 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ポートのオープンを行う。
- 加速度センサはGroveAccelerometer.init (<I2Cポートオブジェクト>,<デバイスアドレス>)で初期化処理を行い、完了後、センサ値の読み込みが可能になる。該当コード:加速度センサの初期化
- GroveAccelerometer.read(<I2Cポートオブジェクト>,<デバイスアドレス>)で加速度センサの読み取りが可能。該当コード:加速度センサの読み込み
- 加速度センサのデバイスアドレスは0x53(初期設定)を使用する。
Comments