中野島ロボット

小さなロボットの自作記事を書いています。

週刊中ロボ19 GR-LYCHEE RHOMセンサ動作確認その1

はじめに
GR-LYCHEE デザインコンテストで提供してもらった、ロームさんの各センサがロボットで使用できるかバラックで確認してみました。

1. ROHMカラーセンサモジュール(BH1749NUC-EVK-001)を評価してみる。
f:id:nakarobo:20180915183722j:plain
 

接続
このセンサはGR-LYCHEEとは、I2Cで接続するのだが、そもそもGR-LYCHEEのI2CがGR for IDEの場合どこになるのか、はっきりしないが、どうやら通常のA4,A5ではないらしい。

GR-LYCHEEでは、I2Cは、D14:SDA、D15:SCL らしいので、とあえずクリップでセンサと接続して確認する。

GR-LYCHEE側は左から SCL、SDA、3.3V 、GNDの順になる。

f:id:nakarobo:20180917111340j:plain

 

センサ側は、VDD、GND、SDA、SCLの順に接続する。

f:id:nakarobo:20180915183933j:plain

 

 ソフトウェアはマニュアルに記載されているURLからダウンロードできますと言いたい所ですが、BH1749NUCのものは発見できず、BH1747NUCのものを使用しました。

URL:https://www.rohm.co.jp/sensor-shield-support/color-sensor

ダウンロードした、BH1747NUC.ZIP ライブラリを

 スケッチ->ライブラリをインクルード->.ZIP形式のライブラリ―をインストール

からArduino IDEにインストールします。 

 

コンパイル

インストールが上手く行くと、スケッチ例に追加されている、

 BH1747NUC->example->BH1747NUC

からBH1747NUC.ino を呼び出します。

ただし、BH1747NUC.ino はそのままではコンパイラでエラーになります。

'byte' does not name a type となっており、普通のC/C++だったら、 #include <sys/types.h> とするところ Arduino IDEだったら 以下のように一行追加する必要があるようです。

  #include <Arduino.h> // added

画像

昔はデフォルトでインクルードされていたようです。このROHMのサンプルは古いのかな?

コンパイルは成功したが、ワーニングが多数残っているがとりあえずの無視して、 実行させた結果がこれ。9600bpsのシリアルモニタにセンサが読み取ったカラー情報を出力して来ます。

画像


RED/GREEN/BLUE/IRはそれぞれ赤/緑/青/赤外で良いとして、CLEARとGREEN2 が何かと言うと、スペックシートにも記載が無い。ソースコードを読んでも、ただレジスタから読み込んでいるだけだった。

正確に色を判断するには、各カラー値を特性表から演算する必要がありそうです。

以下はBH1749NUCのマニュアル(bh1749nuc-j.pdf)から転記しました。

上の実行結果は、白い紙を見せた場合なので、なんとなく、緑(GREEN)を半分にすれば、読み取った色を表しているのでしょうか。

f:id:nakarobo:20180915193125j:plain

まとめ
このセンサで床の色やロボットの前の人の色を検出しようとしたのですが、ちょっと難しいようです。また、スペックシートに誤記や漏れがあるものは、今回のコンテストのような短期間での開発では使いずらいです。


 色はGR-LYCHEEのカメラでなんとかするかな。

でも (CLEAR)と(GREEN2)が気になるな~。誰か知っていたらこっそり教えて下さい。

 

 購入品情報

このセンサーモジュールは、Amazonでは買えないみたいです。

センサ単価は安いのですが、モジュールはDigikeyとかでは、4000円もするようです。

 購入品情報
ROHMさんのセンサーはAmazonでは購入できません。
変わりになりそうなものは、これくらいです。
(中野島ロボットでも入手済みですが、ROHMさんのセンサーを頂いたので、こっちはまだ評価はしていません。)