Sensor de Gestos APDS-9960 com Arduino

Sensor de Gestos APDS-9960 com Arduino

O sensor de gestos APDS-9960 permite detectar gestos com a mão, como deslizamentos, e também proximidade. Neste tutorial, demonstraremos como conectar o APDS-9960 a um Arduino e programá-lo para reconhecer gestos. O resultado será uma configuração simples que pode detectar movimentos e relatá-los pelo monitor serial. Este guia ajudará você a entender a fiação e o código necessários para começar a usar o sensor de gestos. (no vídeo em 00:30)

APDS-9960 gesture sensor module -1

Hardware Explicado

O APDS-9960 é um sensor versátil que combina detecção de cor RGB, medição de luz ambiente, detecção de proximidade e capacidades de detecção de gestos. Ele se comunica com o Arduino via I2C, o que permite integração fácil com fiação mínima. O sensor opera somente a 3.3V, tornando essencial garantir níveis de tensão adequados para evitar danificar o dispositivo. Nesta montagem, usaremos o Arduino para ler os dados de gestos. O sensor envia informações de gesto por meio de interrupções, o que permite que o Arduino responda prontamente aos movimentos da mão. A integração do APDS-9960 com o Arduino abre muitas possibilidades para projetos interativos, incluindo dispositivos controlados por gestos.

Detalhes da ficha técnica

FabricanteBroadcom
Número da peçaAPDS-9960
Tensão lógica/E/S2.7 - 3.6 V
Tensão de alimentação3.3 V
Corrente de saída (por canal)1 mA
Corrente de pico (por canal)10 mA
Orientação sobre a frequência PWM100 Hz
Limiares de lógica de entrada0.3 x VDD(baixo), 0.7 x VDD(alto)
Queda de tensão / RDS(on)/ saturação0,5 V máx
Limites térmicos-40 a +85 °C
PacoteLGA de 6 pinos
Notas / variantesSuporta comunicação I2C

  • Certifique-se de que a tensão de alimentação não exceda 3.6 V para evitar danos.
  • Use resistores pull-up nas linhas I2C para uma comunicação confiável.
  • Mantenha o sensor afastado da luz solar direta para leituras precisas.
  • Certifique-se de inicializar o sensor corretamente no código.
  • Verifique as conexões de fiação para evitar entradas flutuantes.

Instruções de fiação

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

Para ligar o APDS-9960 ao Arduino, comece conectando a alimentação. Use um fio vermelho para conectar o pino VCC do APDS-9960 ao pino 3.3V do Arduino. Em seguida, conecte o pino GND do sensor a um pino GND do Arduino usando um fio preto. Agora, para a comunicação I2C, conecte o pino SDA do APDS-9960 ao pino A4 do Arduino. Da mesma forma, conecte o pino SCL ao pino A5 do Arduino. Por fim, conecte o pino INT do sensor ao pino 2 do Arduino. Isso permitirá que o Arduino responda às interrupções geradas pelo sensor.

Exemplos de Código e Guia Passo a Passo

O código fornecido inicializa o sensor APDS-9960 e configura o Arduino para ler gestos. Aqui está um breve trecho da função setup:

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

Neste trecho, inicializamos o monitor serial e definimos o pino de interrupção. O sensor é inicializado e uma mensagem de confirmação é impressa no console. Em seguida, verificamos gestos na função loop:

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

Aqui, o loop verifica continuamente a presença de gestos. Quando um gesto é detectado, a interrupção é desativada e a função handleGesture é chamada para processar o gesto. Finalmente, a função handleGesture processa os 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...
    }
  }
}

Nesta função, o gesto é lido e a ação correspondente é executada com base na direção detectada. Isso permite um controle interativo com base nos movimentos da mão. Para uma compreensão completa do código, consulte o programa completo incluído abaixo do artigo.

APDS-9960 gesture sensor -3

Demonstração / O que Esperar

Quando a configuração estiver completa, você pode esperar que o Arduino leia gestos e exiba a direção detectada no monitor serial. Testes simples incluem mover a mão para cima, para baixo, para a esquerda ou para a direita em frente ao sensor. Se tudo estiver ligado corretamente, você deverá ver a saída correspondente no monitor serial, confirmando o reconhecimento do gesto. Tenha cuidado com entradas flutuantes, pois elas podem levar a leituras inconsistentes (no vídeo em 05:20).

Marcas de tempo do vídeo

  • 00:00- Introdução
  • 01:15- Visão geral do hardware
  • 03:00- Instruções de fiação
  • 04:30- Revisão do código
  • 06:15- Demonstração

Imagens

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 e referências

Ainda não há recursos.

Arquivos📁

Outros arquivos