部材準備

  • CHIRIMEN
  • microUSBケーブル
  • ACアダプタ
  • UVセンサ(VEML6070)
  • スルーホール用ジャンパワイヤ適量
  • 抵抗(プルアップ用)
  • HDMIディスプレイ
  • microHDMI-HDMIケーブル

UVセンサ(VEML6070)とは

  • UV-A波長の紫外線の強さをディジタル出力するセンサ。
  • インタフェースはI2C。
  • 参考:紫外線

サンプルアプリの説明

  • アプリのダウンロード
  • Web I2C Polyfillの導入
  • 回路の配線
  • アプリの読み込み
  • アプリ実行

アプリのダウンロード

  • CHIRIMEN examplesをダウンロード(Download zipというボタンでダウンロード可能)して、任意のディレクトリに展開する。

Web I2C Polyfillの導入

  • webi2c.jsとworker.jsをi2c-VEML6070/jsディレクトリ内にダウンロード(RAWボタンを右クリックして別名でリンク先を保存を選択)し、index.htmlからの参照先を以下のように変更する。(worker.jsはwebgpio.js内で参照されている)  
  <script src="./js/webi2c.js"></script>
  • bowerを使える場合、i2c-VEML6070ディレクトリに移動し以下のコマンドを実行することで導入することもできる。
  $ bower install

回路の配線

  • 配線図に従ってUVセンサ(VEML6070)を接続する。接続にはスルーホール用ジャンパ線を用いる。
  1. CHIRIMENのI2C0_SDA(CN2-12)、I2C0_SCL(CN2-11)とUVセンサのSDA、SCLをそれぞれ接続する(この接続線をそれぞれSDAバス、 SCLバスと呼ぶこととする)
  2. CHIRIMENのGND(CN2-1)、VCC(CN2-18)とUVセンサのGND、VCC(VDD)をそれぞれ接続する。
  3. SDAバス, SCLバスからCHIRIMENのVCCに対しそれぞれプルアップ用の抵抗を接続する。


アプリの読み込み

  • Web IDE左上の「パッケージ型アプリを開く」を押し、上記でダウンロードしたファイル群からi2c-VEML6070ディレクトリを選択し読み込む。

アプリ実行

  • 配線が正しいことを確認し、CHIRIMENとPCをmicroUSBケーブルで接続する。
  • アプリをインストールする。
  • 電源を入れて正しく動作すればWebIDEのログとしてUV-A波長の強さが取得できていることが確認できる。

プログラムの解説

サンプルプログラムについて解説する。

Index.htmlでpolyfillの読み込みを行う

  • webI2Cを扱うためのpolyfill(webi2c.js)を読み込む。code:polyfillの読み込み

I2CAccessインターフェースを取得する(おまじない)

  • I2Cの操作を行うため、I2CAccessインターフェースを取得する。
  • code:I2CPortMapインターフェースの取得処理とcode:エラー処理をおまじない的に記述する。

I2C端子の初期設定を行う

  • i2cAccess.ports.get(<ピン番号>)でi2cPortオブジェクトを取得する。code:I2CPortオブジェクトの取得。
  • CHIRIMENにはI2C0(CN2側)、I2C2(CN1側)の二つの端子が出ているため、ピン番号には0か2を指定する。

UVセンサの読み取り

  • UVセンサ(VEML6070)のライブラリを読み込む。code:UVセンサライブラリの読み込み
  • new VEML6070(<i2cPortオブジェクト>,<i2cデバイスアドレス>)でVEML6070のコンストラクタ呼び出しを行う。VEML6070のデバイスアドレスは初期値が0x38なので、これを指定する。code:VEML6070コンストラクタ呼び出し
  • veml6070.read()のように、呼び出したコンストラクタのreadメソッドを使用してUVセンサの値の読み込みを行う。

UVセンサ読み取り後の処理

  • UVセンサの読み込み処理、veml6070.read()の結果はPromise型で返ってくる。そのため、veml6070.read().then(function(value){ //UVセンサ読み取り後の処理 });のように記述する。
  • 温度センサの値は引数に指定したvalueという変数に格納される。