Como utilizar o sensor de gestos APDS-9960 com Arduino?

 

COMO UTILIZAR O SENSOR DE GESTOS APDS-9960 COM ARDUINO

 

 

O reconhecimento de gestos é uma tecnologia inovadora que utiliza sensores para capturar e interpretar os movimentos das mãos como comandos. Pode ser visto como uma forma de comunicação entre humanos e computadores, permitindo que estes compreendam a linguagem corporal humana de maneira mais eficaz e intuitiva.

O sensor APDS-9960 é uma tecnologia avançada que desempenha um papel fundamental em uma ampla gama de aplicações, desde a detecção de proximidade até o reconhecimento de gestos. Com sua capacidade de detectar luz ambiente, proximidade, movimento e até mesmo interpretar gestos complexos, o APDS-9960 tem se mostrado uma solução versátil e eficiente para sistemas interativos e de detecção. Neste artigo, exploraremos as características e funcionalidades do sensor APDS9960 direcionado ao reconhecimento de gestos, além disso, discutiremos como esse sensor pode ser integrado ao Arduino, abrindo possibilidades para a criação de projetos incríveis que transformam gestos em ações concretas.

 

Visão geral do sensor APDS-9960

O sensor APDS-9960 é um dispositivo desenvolvido pela empresa Broadcom (agora parte da Cypress Semiconductor). Ele é um sensor de proximidade e gestos integrado que combina funções como detecção de proximidade, detecção de luz ambiente, detecção de gestos e detecção de cores em um único módulo. Na Figura 1 é possível ver o sensor APDS-9960.

 

                                                                                                    

Figura 1 – Sensor APDS-9960

 

O sensor APDS-9960 está disponível em uma placa com 8 pinos. A descrição dos diferentes pinos do APDS-9960 é fornecida na tabela a seguir:

 

 

Principais aplicações do sensor APDS-9960

 

 - Usado em robótica de gestos, displays LCD para manipulação de luz de fundo.

 - Usado em telefones celulares como sensor de proximidade.

 - Substituição do interruptor mecânico.

 - Pode ser usado em monitor RGB.

 

Especificações

 - Tensão de operação: 2,4 V a 3,6 V.

 - Corrente de consumo: 0,2mA.

 - Protocolo de comunicação I2C

 -  Alcance de detecção: 10 a 20 cm

 - Detecção de luz ambiente e RGB altamente sensível através de filtros de bloqueio UV e IR.

 - Para detecção de gestos, existem quatro fotodiodos, que são sensíveis a diferentes direções para que possam detectar gestos complexos facilmente.

 - Dimensões: 3,94 × 2,36 × 1,35 mm.

 

Capacidade de detecção de gestos

Uma das características principais e que mais chama a atenção no sensor APDS-9960 é sua capacidade de detectar gestos. O sensor utiliza uma combinação de tecnologias, como fotodiodos, emissores de luz e algoritmos de processamento de sinais, para identificar e interpretar gestos. Ele emite luz infravermelha e utiliza os fotodiodos para detectar a reflexão dessa luz nos objetos próximos. Com base nas mudanças na intensidade e padrões dessas reflexões, o sensor é capaz de determinar os gestos realizados na frente dele.

Os algoritmos de processamento de sinais são responsáveis por analisar as informações capturadas pelos fotodiodos e interpretar os gestos correspondentes. Eles podem reconhecer gestos comuns, como movimentos para cima, para baixo, para a esquerda, para a direita, além de gestos mais complexos, como um círculo ou um deslize. Essas informações sobre os gestos podem ser usadas para controlar dispositivos ou sistemas, permitindo interações intuitivas e sem contato com a tecnologia.

 

Interface do Sensor APDS-9960 com Arduino Uno para detecção de gestos

A partir de agora iremos demonstrar através de um projeto prático como realizar a interface do sensor APDS-9960 com o Arduino Uno. O objetivo principal do projeto será detectar alguns gestos realizados pelo usuário e imprimir este resultado no monitor serial do Arduino.  A conexão entre o sensor APDS-9960 e o Arduino Uno é feita por meio de comunicação I2C, o que torna a integração bastante simples. Você precisa conectar os pinos SDA e SCL do sensor APDS-9960 aos pinos SDA e SCL (Pinos A4 e A5) do Arduino Uno respectivamente, e fornecer a alimentação necessária para o funcionamento adequado do sensor.

 

Materiais para montagem

Passos para a montagem do circuito

A montagem do circuito deve ser feita conforme a Figura 2. Observe atentamente as posições corretas de conexões entre o sensor de gestos APDS-9960 e o Arduino Uno. Os pinos A4 e A5 do Arduino são relativas as conexões SDA e SCL respectivamente. Observe que a tensão de alimentação utilizada para o sensor foi de 3.3V proveniente do próprio Arduino, o que está dentro da faixa de especificação do sensor.

 

Figura 2 – Montagem do circuito

 

 

 

 

Programação do Arduino

Para este projeto utilizaremos a biblioteca Adafruit APDS9960. Esta biblioteca é responsável por simplificar a programação de códigos utilizando o sensor APDS-9960. Para instalar a biblioteca Adafruit APDS9960 no Arduino, siga os seguintes passos:

 - Abra a IDE do Arduino em seu computador.

 - Vá até o menu "Sketch" e selecione "Incluir Biblioteca" (ou "Include Library").

 - No submenu que aparece, clique em "Gerenciar Bibliotecas" (ou "Manage Libraries").

 - Na janela "Gerenciador de Bibliotecas", digite " Adafruit APDS9960 " na barra de busca.

 - A biblioteca Adafruit APDS9960 deve aparecer nos resultados da pesquisa. Clique nela para selecioná-la.

 - Em seguida, clique no botão "Instalar" (ou "Install").

 - Aguarde até que a instalação seja concluída. Você verá uma mensagem informando quando a instalação for bem-sucedida (Figura 3).

 - Feche o Gerenciador de Bibliotecas.

 

Figura 3 – Confirmação de Instalação da biblioteca Adafruit APDS9960

 

Após a instalação da biblioteca Adafruit APDS9960, basta abrir novamente a IDE do Arduino e digitar o respectivo código a seguir:

 

 

Por fim, faça o upload do código no Arduino Uno. O processo para fazer o upload do código no Arduino Uno é bem simples:

 - Conecte o seu Arduino Uno utilizando o cabo USB.

 - Vá em Ferramentas ? Placa ? Arduino Uno para selecionar sua placa no menu Arduino.

 - Em seguida escolha a porta serial correta para sua placa, vá em ferramentas ? Porta serial ? COMx (Escolha a porta serial ao qual o seu Arduino estiver conectado).

 - Agora basta clicar no botão Carregar. 

 

Se não houver nenhum erro de digitação ou configuração, o código será gravado no Arduino. Caso contrário verifique se o código foi digitado corretamente e se as configurações estão corretas.

 

Após o código ser carregado com sucesso no Arduino, abra o monitor serial e deslize sua mão próximo ao sensor de gestos APDS-9960. Deslize para baixo, para cima, para esquerda, para a direita, perto, longe. O Monitor Serial exibirá cada um deles conforme a Figura 4.

 

Figura 4 – Gestos reconhecidos e exibidos no monitor serial do Arduino

 

Explicação do código

Primeiro, incluímos as bibliotecas necessárias. A biblioteca "Wire.h" é usada para a comunicação I2C com o sensor APDS-9960, e a biblioteca "Adafruit_APDS9960.h" contém as funções específicas para interagir com o sensor.

 

 

Em seguida, criamos uma instância da classe Adafruit_APDS9960 chamada apds.

 

No void setup(), iniciamos a comunicação serial e, em seguida, inicializamos o sensor APDS-9960. Se a inicialização falhar, uma mensagem de erro será exibida e o programa ficará travado em um loop infinito.

 

 

Já no void loop(), verificamos se o sensor identificou algum gesto utilizando a função isGestureAvailable(). Se algum gesto estiver disponível, lemos o tipo de gesto utilizando a função readGesture().

 

 

Ainda no void loop(), Dentro da função switch, com base no valor retornado pela função readGesture(), imprimimos uma mensagem correspondente ao tipo de gesto detectado no monitor serial. Os valores como APDS9960_DOWN, APDS9960_UP, APDS9960_LEFT, APDS9960_RIGHT, APDS9960_NEAR e APDS9960_FAR são constantes definidas na biblioteca Adafruit_APDS9960.h que representam os diferentes gestos suportados pelo sensor.

 

 

Conclusão

Os projetos de Arduino com reconhecimento de gestos encontram aplicação em diversos setores, desde automação residencial até sistemas de controle industrial. Além disso, o reconhecimento de gestos permite maior acessibilidade para pessoas com deficiências físicas ou motoras, ampliando sua capacidade de interagir com o mundo digital.

O sensor de gestos APDS-9960 apresenta uma solução altamente eficiente e versátil para a detecção e interpretação de gestos humanos. A integração deste sensor com a plataforma Arduino oferece uma maneira acessível e de fácil implementação para criar projetos interativos baseados em gestos.