APDS-9960 ジェスチャーセンサーとArduino
APDS-9960 ジェスチャーセンサーは、スワイプや近接といった手のジェスチャーを検出できます。本チュートリアルでは、APDS-9960 を Arduino に接続し、ジェスチャーを認識するようにプログラムする方法を示します。結果として、動きを検出してシリアルモニターで報告できるシンプルなセットアップが得られます。本ガイドは、ジェスチャーセンサーを始めるために必要な配線とコードの理解に役立ちます(ビデオ内 00:30)

ハードウェア解説
APDS-9960は、RGBカラー検出、周囲光検出、近接検出、ジェスチャー検出機能を組み合わせた多用途センサです。I2C経由でArduinoと通信し、配線を最小限に抑えて簡単に統合できます。センサは3.3Vでのみ動作するため、デバイスを損傷しないよう適切な電圧レベルを確保することが不可欠です。 この製作では、Arduinoを使ってジェスチャーデータを読み取ります。センサは割り込みを通じてジェスチャ情報を出力するため、Arduinoは手の動きに迅速に反応できます。APDS-9960をArduinoと統合することで、ジェスチャー制御デバイスを含む多くのインタラクティブなプロジェクトの可能性が広がります。
データシートの詳細
| 製造業者 | ブロードコム |
|---|---|
| 部品番号 | APDS-9960 |
| ロジック/入出力電圧 | 2.7〜3.6 V |
| 電源電圧 | 3.3ボルト |
| 出力電流(チャンネルごと) | 1 mA |
| ピーク電流(チャンネルあたり) | 10 mA |
| PWM周波数に関するガイダンス | 100ヘルツ |
| 入力ロジック閾値 | 0.3×VDD(低)、0.7×Vディー・ディー(高い) |
| 電圧降下 / Rドレイン・ソース間のオン抵抗/ 彩度 | 最大0.5 V |
| 温度制限 | -40〜+85 °C |
| パッケージ | 6ピンLGA |
| 備考 / バリエーション | I2C通信に対応 |
- 損傷を防ぐため、供給電圧が3.6 Vを超えないことを確認してください。
- 信頼性の高い通信のために、I2Cラインにはプルアップ抵抗を使用してください。
- 正確な測定のため、センサーを直射日光の当たらない場所に置いてください。
- コード内でセンサーを正しく初期化していることを確認してください。
- 配線の接続を確認して、入力が浮遊しないようにしてください。
配線手順

APDS-9960をArduinoに配線するには、まず電源を接続します。赤い配線を使ってAPDS-9960のVCCピンをArduinoの3.3Vピンに接続してください。次に、黒い配線を使ってセンサのGNDピンをArduinoのGNDピンに接続します。 次にI2C通信のために、APDS-9960のSDAピンをArduinoのA4ピンに接続します。同様にSCLピンをArduinoのA5ピンに接続します。最後にセンサのINTピンをArduinoのピン2に接続します。これによりセンサが生成する割り込みにArduinoが応答できるようになります。
コード例と解説
提供されたコードはAPDS-9960センサーを初期化し、Arduinoがジェスチャーを読み取るように設定します。以下はsetup関数の簡単な抜粋です:
void setup() {
pinMode(APDS9960_INT, INPUT);
Serial.begin(9600);
attachInterrupt(0, interruptRoutine, FALLING);
if ( apds.init() ) {
Serial.println(F("APDS-9960 initialization complete"));
}
}このコードスニペットでは、シリアルモニタを初期化し、割り込みピンを設定します。センサーを初期化し、確認メッセージをコンソールに出力します。 次に、ループ関数内でジェスチャーをチェックします:
void loop() {
if( isr_flag == 1 ) {
detachInterrupt(0);
handleGesture();
isr_flag = 0;
attachInterrupt(0, interruptRoutine, FALLING);
}
}ここでは、ループがジェスチャーを継続的にチェックします。ジェスチャーが検出されると割り込みが無効化され、ジェスチャーを処理するためにhandleGesture関数が呼び出されます。 最後に、handleGesture関数が検出されたジェスチャーを処理します:
void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
Serial.println("UP");
break;
case DIR_DOWN:
Serial.println("DOWN");
break;
// Additional cases...
}
}
}この関数ではジェスチャーを読み取り、検出された方向に応じて対応するアクションを実行します。これにより手の動きに基づくインタラクティブな制御が可能になります。 コードを完全に理解するには、記事の下に掲載されている全文のプログラムを参照してください。

デモンストレーション/何を期待するか
セットアップが完了すると、Arduinoはジェスチャーを読み取り、検出した方向をシリアルモニターに表示します。簡単なテストとしては、センサーの前で手を上、下、左、または右に動かすことが含まれます。配線が正しく行われていれば、シリアルモニターに対応する出力が表示され、ジェスチャー認識が確認できます。フローティング入力には注意してください。不安定な読み取りにつながる可能性があります(ビデオの05:20で)。
動画のタイムスタンプ
- 00:00- はじめに
- 01:15- ハードウェアの概要
- 03:00- 配線手順
- 午前4:30- コードの解説
- 06:15- デモンストレーション
リソースと参考文献
まだリソースはありません。