Sensor de gestos APDS-9960 con Arduino

Sensor de gestos APDS-9960 con Arduino

El sensor de gestos APDS-9960 permite la detección de gestos de la mano, como deslizamientos y proximidad. En este tutorial, demostraremos cómo conectar el APDS-9960 a un Arduino y programarlo para reconocer gestos. El resultado será una configuración sencilla que puede detectar movimientos y reportarlos a través del monitor serie. Esta guía te ayudará a entender el cableado y el código necesarios para comenzar con el sensor de gestos. (en el video a 00:30)

APDS-9960 gesture sensor module -1

Hardware explicado

El APDS-9960 es un sensor versátil que combina detección de color RGB, detección de luz ambiental, detección de proximidad y capacidades de detección de gestos. Se comunica con el Arduino mediante I2C, lo que permite una fácil integración con un cableado mínimo. El sensor solo funciona a 3.3V, por lo que es esencial asegurar niveles de voltaje adecuados para evitar dañar el dispositivo. En este montaje, usaremos el Arduino para leer los datos de los gestos. El sensor emite información de gestos mediante interrupciones, lo que permite que el Arduino responda con rapidez a los movimientos de la mano. La integración del APDS-9960 con el Arduino abre muchas posibilidades para proyectos interactivos, incluidos dispositivos controlados por gestos.

Detalles de la hoja de datos

FabricanteBroadcom
Número de piezaAPDS-9960
Voltaje de lógica/E/S2.7 - 3.6 V
Tensión de alimentación3.3 V
Corriente de salida (por canal)1 mA
Corriente de pico (por canal)10 mA
Guía de frecuencia PWM100 Hz
Umbrales lógicos de entrada0.3 × VDD(bajo), 0.7 x VDD(alto)
Caída de tensión / RDS(encendido)/ saturación0.5 V máx.
Límites térmicos-40 a +85 °C
PaqueteLGA de 6 pines
Notas / variantesAdmite comunicación I2C

  • Asegúrese de que la tensión de alimentación no supere 3.6 V para evitar daños.
  • Utilice resistencias pull-up en las líneas I2C para una comunicación fiable.
  • Mantenga el sensor alejado de la luz solar directa para obtener lecturas precisas.
  • Asegúrate de inicializar correctamente el sensor en el código.
  • Compruebe las conexiones del cableado para evitar entradas flotantes.

Instrucciones de cableado

Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor

Para cablear el APDS-9960 al Arduino, comience conectando la alimentación. Use un cable rojo para conectar el pin VCC del APDS-9960 al pin de 3.3V del Arduino. A continuación, conecte el pin GND del sensor a un pin de tierra del Arduino usando un cable negro. Ahora, para la comunicación I2C, conecte el pin SDA del APDS-9960 al pin A4 del Arduino. De manera similar, conecte el pin SCL al pin A5 del Arduino. Por último, conecte el pin INT del sensor al pin 2 del Arduino. Esto permitirá que el Arduino responda a las interrupciones generadas por el sensor.

Ejemplos de código y guía paso a paso

El código proporcionado inicializa el sensor APDS-9960 y configura el Arduino para leer gestos. Aquí hay un breve extracto de la función setup:

void setup() {
  pinMode(APDS9960_INT, INPUT);
  Serial.begin(9600);
  attachInterrupt(0, interruptRoutine, FALLING);
  if ( apds.init() ) {
    Serial.println(F("APDS-9960 initialization complete"));
  }
}

En este fragmento, inicializamos el monitor serie y configuramos el pin de interrupción. Se inicializa el sensor y se imprime un mensaje de confirmación en la consola. A continuación, comprobamos los gestos en la función loop:

void loop() {
  if( isr_flag == 1 ) {
    detachInterrupt(0);
    handleGesture();
    isr_flag = 0;
    attachInterrupt(0, interruptRoutine, FALLING);
  }
}

Aquí, el bucle comprueba continuamente si hay gestos. Cuando se detecta un gesto, se desactiva la interrupción y se llama a la función `handleGesture` para procesar el gesto. Finalmente, la función `handleGesture` procesa los gestos detectados:

void handleGesture() {
  if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP:
        Serial.println("UP");
        break;
      case DIR_DOWN:
        Serial.println("DOWN");
        break;
      // Additional cases...
    }
  }
}

En esta función se lee el gesto y se realiza la acción correspondiente según la dirección detectada. Esto permite un control interactivo basado en los movimientos de la mano. Para una comprensión completa del código, por favor consulte el programa completo cargado debajo del artículo.

APDS-9960 gesture sensor -3

Demostración / Qué esperar

Cuando la configuración esté completa, puedes esperar que el Arduino lea gestos y muestre la dirección detectada en el monitor serie. Pruebas simples incluyen mover la mano hacia arriba, hacia abajo, hacia la izquierda o hacia la derecha frente al sensor. Si todo está cableado correctamente, deberías ver la salida correspondiente en el monitor serie, lo que confirma el reconocimiento de gestos. Ten cuidado con las entradas flotantes, ya que pueden provocar lecturas inconsistentes (en el vídeo en 05:20).

Marcas de tiempo del vídeo

  • 00:00- Introducción
  • 01:15- Descripción general del hardware
  • 03:00- Instrucciones de cableado
  • 04:30- Recorrido por el código
  • 06:15- Demostración

Imágenes

APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -2
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor module -1
APDS-9960 gesture sensor -3
APDS-9960 gesture sensor -3
Arduino wiring for APDS9960 Gesture sensor
Arduino wiring for APDS9960 Gesture sensor
1-Code for an APDS-9960 gesture sensor for Arduino
Idioma: C++
2-Source code for controlling a servo with your hand
Idioma: C++
¡Copiado!

Recursos y referencias

Aún no hay recursos.

Archivos📁

Otros archivos