[Genuino 101][Johnny-Five] RGB 照度センサーの制御

sgier-johnny-five-i-catch

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

johnny-five

車輪開発大好きおたいがです。こんにちは。( 挨拶 )

今回は Genuino 101 ( 以下 Genuino ) と Johnny-Five を使用したRGB 照度センサーの制御についてまとめてみました。

Johnny-Five の Color クラス API では、ISL29125 というセンサーをサポートしているため、購入して動作確認してみました。

動作環境・道具など

RGB 照度センサーの組み立て

ピンヘッダをはんだ付けする必要がありますが、センサが設置されている面を考慮しないと悲惨なことになります。( 方向を間違えて外そうとしたため、基盤を焦がしてしまいました… )

ISL29125-001

回路図

ISL29125-002

前回エントリで紹介したマトリックス LED と同様に、Genuino の電源、GND、そして 2 本の I2C ピン ( SDASCL ) をそれぞれセンサーに接続します。

サンプルスケッチ ( プログラム ) をボードに書き込む

Genuino に StandardFirmata スケッチを書き込みます。
( 参照 : http://dev.classmethod.jp/hardware/johnny-five-genuino-101-debut/#toc--- )

Johnny-Five 実行用のサンプルプロジェクト作成および実行

Johnny-Five の導入および実行するためのプロジェクトを用意します。任意のプロジェクトディレクトリを作成して移動したあとに、下記コマンドを入力します。

package.json の初期化

$npm init

Johnny-Five のダウンロード

$npm install johnny-five

サンプルコードの作成

var five  = require('johnny-five');
// Genuino が接続されているポート番号 ( `/dev/tty*` (Mac/Linux) or `COM*` (Windows) )
var board = new five.Board({ 'port': 'COM8' });

board.on('ready', function() {
  var color = new five.Color({
    'controller' : 'ISL29125'
  });
  color.on('change', function() {
    console.log('Color: #' + five.Color.hexCode(this.rgb));
  });
});

実行

$node index

結果

$ node index
>>Color:  #c9e86f
Color: #d9f778
Color: #d9f77a
Color: #d9fd7a
…

上記コードを実行しつつ、iPad 上に乗せて表示中の色を拾わせてみました。

ISL29125-003

画面の表示色 センサが取得した色
#ff0000 #ffc869
#0000ff #447fff
#00cc00 #9fffaa

それなりに認識してくれていることが分りましたが、赤色系の認識が弱いような印象を受けました。もしかしたら基盤を焦がしたためにセンサがイカレている可能性もありますし、個体差があるのかもしれません。( 複数個購入しなかったことが悔やまれます )

以上のような反省点がありますが、良い実験になりました。