概要
Grove は seeed 社が提供するデバイスサービスで、ソケットに接続するだけで簡単にセンサなどを追加することができるサービスです
基本的に Arduino などで使用する場合は専用の Grove Arduino Bsae Shield などを使うのですが、Arduino Pro mini などにはありません
そうなるとセンサだけが残ってしまいもったいないです
なので、今回は Grove のセンサだけを Arduino Pro mini で使ってみました
今回使用した Grove カラーセンサ になります
環境
- Mac OS X 10.10.5
- Arduino IDE 1.6.12
- Arduino Pro mini (5v, 16MHz)
- Grove_I2C_Color_Sensor (rev d3b65e36de1693834a1b04b327fa588413cad0ce)
配線
配線は以下の通りです
FTDI のレギュレータは 5v にしています
ポイントは Grove のピンソケットに無理矢理 I2C 接続をジャンパケーブルを使って実現している点です
当たり前と言えば当たり前なのですが、I2C 接続用のセンサデバイスなので、Arduino Pro mini とも I2C で接続します
今回のカラーセンサの場合、センサに電源が入ると内臓の LED がピカーッと光ります (結構まぶしいです)
ライブラリのインストール
Arduino IDE のライブラリの管理からインストールできないので、zip ファイルをダウンロードしてインストールします
https://github.com/Seeed-Studio/Grove_I2C_Color_Sensor
から zip ファイルをダウンロードしましょう
そして Arduino IDE で
スケッチ -> ライブラリをインクルード -> .ZIP 形式のライブラリをインクルード
でインストールしましょう
特にエラーが出なければ OK です
スケッチ
では、スケッチを書きます
そんなに難しくはありません
#include <Wire.h>
#include <GroveColorSensor.h>
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
int red, green, blue;
GroveColorSensor colorSensor;
colorSensor.ledStatus = 1;
while (1) {
colorSensor.readRGB(&red, &green, &blue);
delay(300);
Serial.print("The RGB value are: RGB( ");
Serial.print(red, HEX);
Serial.print(", ");
Serial.print(green, HEX);
Serial.print(", ");
Serial.print(blue, HEX);
Serial.println(" )");
colorSensor.clearInterrupt();
}
}
readRGB
に値を格納するポインタを引数に渡すとそのポイントに RGB 値を格納してくれます
動作確認
スケッチを書き込んでシリアルモニタを開いて動作確認してみましょう
白のものを近づけると以下のように FF (255) に近い値になります
逆に黒を近づけると 00 に近い値になると思います
最後に
Arduino Pro mini で Grove のカラーセンサーを使ってみました
Grove は基本ベースボードを使って使うものだと思っていましたが、ベースボードがなくても使えることがわかりました
Grove のセンサには他にシリアル接続用のセンサやアナログ接続用のセンサがあります
今回は I2C 用のセンサを使ったので Aruduino Pro mini とも I2C 接続をしましたが、センサによっては接続するピンが変わってくるので注意してください
また、Grove の場合ライブラリも各センサごとに用意されているっぽいので、カラーセンサー以外を使う場合はそれ用のライブラリをインストールしてください
0 件のコメント:
コメントを投稿