ジェスチャーセンサー(GY-9960)を使ってみた‼(Arduino色検出編)
こんにちは!
今日はジェスチャーセンサー(GY-9960)という面白いセンサーを使ってみたいと思います‼
ジェスチャーセンサーとは、対象物の動きを検出できるセンサーです。
GY-9960は、APDS-9960センサーが内蔵されており、周囲光と色の測定、近接検出、非接触ジェスチャー検出が可能という万能なセンサーです‼
まずは簡単な色の測定を、今回は試してみたいと思います‼
揃える部品は少なく、簡単に扱えるセンサーなのでぜひ試してみてください^^
①「部品準備」
・RGBジェスチャーセンサーモジュール(GY-9960)
電子工作ステーション 480円(500円以上で送料無料)
・Arduino UNO
電子工作ステーション 1255円(送料無料)(互換ボード)
※UNO以外の物でも大丈夫です。
・ジャンパーワイヤー(オス・メス)(5本)
②「配線」
GY-9960はAPDS-9960というチップを装備していて、I2C通信でやり取りします。
動作電圧は2.4V~3.6V(3.3V推奨)となっていますので、間違って5Vに接続しないように注意が必要です。
GY-9960 | Arduino |
VL (IR LEDへのオプションの電源) | |
GND | GND |
VCC | 3.3V |
SDA | A4 |
SCL | A5 |
INT | 2 |
INTとは、外部割込み機能で、処理の効率化を捗ります。
③「ライブラリー」
まずはAPD9960のライブラリーを入れます。
Arduino IDEを開き、「ツール」→「ライブラリーを管理…」を押します。
そうするとライブラリーマネージャーが開くので、「9960」と検索すると、
「Arduino_APDS9960」というのが出てくるのでそれをインストールします。
これでライブラリーの導入は完了です‼
④「プログラミング」
プログラムはライブラリーに用意されているのをそのまんま使います‼
「ファイル」→「スケッチの例」→「Adafruit APDS9960 Library」→「color_sensor」を押すとプログラムが出てきますので、
それをそのまんま書き込めば完了です‼
一応コードをそのまんまコピペしたやつを張っておきます↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
/*************************************************************************** This is a library for the APDS9960 digital proximity, ambient light, RGB, and gesture sensor This sketch puts the sensor in color mode and reads the RGB and clear values. Designed specifically to work with the Adafruit APDS9960 breakout ----> http://www.adafruit.com/products/3595 These sensors use I2C to communicate. The device's I2C address is 0x39 Adafruit invests time and resources providing this open source code, please support Adafruit andopen-source hardware by purchasing products from Adafruit! Written by Dean Miller for Adafruit Industries. BSD license, all text above must be included in any redistribution ***************************************************************************/ #include "Adafruit_APDS9960.h" Adafruit_APDS9960 apds; void setup() { Serial.begin(115200); if(!apds.begin()){ Serial.println("failed to initialize device! Please check your wiring."); } else Serial.println("Device initialized!"); //enable color sensign mode apds.enableColor(true); } void loop() { //create some variables to store the color data in uint16_t r, g, b, c; //wait for color data to be ready while(!apds.colorDataReady()){ delay(5); } //get the data and print the different channels apds.getColorData(&r, &g, &b, &c); Serial.print("red: "); Serial.print(r); Serial.print(" green: "); Serial.print(g); Serial.print(" blue: "); Serial.print(b); Serial.print(" clear: "); Serial.println(c); Serial.println(); delay(500); } |
⑤「結果」
暗い場所で試した結果↓
ちゃんと均等に数値が下がって暗いことがわかりますね‼
次は薄暗い場所で赤いスマホ画面を照らして試した結果↓
redだけが数値が高くなっていてしっかり取得できている‼
最後は電気の付いた明るい場所で試した結果↓
全体的に数値が上がっているのが分かります‼
※シリアルモニターの右下が115200になっていることを確認しましょう。
すごい簡単に色の取得ができました!
照度計代わりにも使えてこれはかなり使い勝手の良いセンサーですね‼
次はジェスチャーをやってみたいと思います‼
今日はここまで、以上ご閲覧ありがとうございました‼