CONTENIDO ►
El módulo Arduino APDS-9960 (detección de gestos / movimientos) es una pequeña placa con un sensor incorporado que proporciona detección de luz y color, detección de proximidad y reconocimiento de gestos sin contacto. Puede utilizarse para controlar robots, luces y mucho más con un simple movimiento de la mano. Veamos cómo conectar el sensor de reconocimiento de gestos SparkFun APDS 9960 a una placa Arduino.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- módulo APDS-9960 Sparkfun SEN-12787;
- cables de conexion;
- libreria SparkFun_APDS9960.h
Módulo de sensor de gestos RGB APDS-9960
APDS-9960 permite medir la intensidad de luz ambiental, el color, la proximidad y detectar gestos con las manos. El sensor lleva incorporado un sensor de luz (ALS), un filtro ultravioleta e infrarrojo, cuatro fotodiodos independientes (receptores que detectan la radiación IR) y un LED IR (emisor). Cuando realizamos un gesto con la mano, el sensor recibe la radiación infrarroja reflejada y calcula la dirección en la que se mueve la mano.

Características Sparkfun APDS 9960:
- Alimentación: 3.3V
- Sensor de luz de embiente y color RGB
- Sensor de proximidad
- Detección de gestures (movimientos o gestos)
- Distancia de detección: 10 a 20cm
- Interfaz I2C (Dirección: 0x39)
Hay 2 puentes PS e I2C PU en la parte frontal de la placa del sensor:
PS – este puente conecta la alimentación al módulo y al LED IR. Cuando el puente está cerrado, sólo se debe suministrar alimentación al pin VCC del módulo. Cuando el puente está abierto, se debe aplicar alimentación independiente al pin VL del sensor del SparkFun para encender el LED IR. Por defecto, este puente está cerrado.
I2C PU – Este puente se utiliza para conectar resistencias pull-up en las líneas SDA y SCL. Si no se necesitan resistencias pull-up, abra el puente.
Conectar sensor de gestos APDS-9960 Arduino

| APDS-9960 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
El sensor es capaz de detectar el nivel global de luz en Lux o los niveles de luz en los tres canales del espectro: rojo, verde y azul (RGB). Acercamiento y alejamiento de un objeto (obstáculo) del sensor, gestos simples (movimiento a izquierda, derecha, arriba, abajo). También debes instalar la librería APDS9960.h para trabajar con el módulo, después de construir el circuito mostrado arriba, carga el programa en el Arduino Uno.
Programa Arduino para sensor de gestos APDS-9960
#include "Wire.h" #include "SparkFun_APDS9960.h" #define APDS9960_INT 2 SparkFun_APDS9960 apds = SparkFun_APDS9960(); int isr_flag; void setup() { Serial.begin(9600); attachInterrupt(0, interruptRoutine, FALLING); if ( apds.init() ) { Serial.println(F("APDS-9960 initialization complete")); } else { Serial.println(F("Something went wrong during APDS-9960 init!")); } if ( apds.enableGestureSensor(true) ) { Serial.println(F("Gesture sensor is now running")); } else { Serial.println(F("Something went wrong during gesture sensor init!")); } } void loop() { if( isr_flag == 1 ) { detachInterrupt(0); handleGesture(); isr_flag = 0; attachInterrupt(0, interruptRoutine, FALLING); } } void interruptRoutine() { isr_flag = 1; } void handleGesture() { if ( apds.isGestureAvailable() ) { switch ( apds.readGesture() ) { case DIR_UP: Serial.println("UP"); break; case DIR_DOWN: Serial.println("DOWN"); break; case DIR_LEFT: Serial.println("LEFT"); break; case DIR_RIGHT: Serial.println("RIGHT"); break; case DIR_NEAR: Serial.println("NEAR"); break; case DIR_FAR: Serial.println("FAR"); break; default: Serial.println("NONE"); } } }
Explicación del código para sensor de gestos Arduino:
- desliza tu mano delante del sensor GY-9960-LLC – entonces verás en el monitor del puerto IDE de Arduino qué gesto ha sido reconocido;
- si no se ha definido ningún gesto, aparecerá NINGUNO en el monitor del puerto.
Conclusión. El sensor GY 9960 LLC para Arduino puede detectar fácilmente la proximidad de objetos, gestos sencillos, luz y colores (valores de color RGB luminosidad). Hay otros ejemplos en la biblioteca SparkFun_APDS9960.h para demostrar las capacidades del sensor. Por ejemplo, AmbientLightInterrupt permite medir la luz ambiental y el programa de ejemplo ColorSensor lee los valores de luz roja, verde y azul.

Deja una respuesta