Pular para o conteúdo principal

Grove - Sensor de Presença Humana (AK9753)

O Grove - Human Presence Sensor pode ser usado para detectar a presença do corpo humano ou de quaisquer outros objetos infravermelhos. Além disso, ele é composto por quatro sensores quânticos de IV e um circuito integrado (IC) para compensação de características, portanto pode ser usado para detectar o movimento do objeto de IV e a posição relativa onde o objeto de IV se move. Um conversor analógico‑digital integral fornece saídas de dados de 16 bits. Este módulo é adequado para detecção de pessoas a alguns pés de distância.

Você pode encontrar muitos sensores infravermelhos em nosso site, e este será um dos mais interessantes. Com um certo algoritmo, ele pode até alcançar reconhecimento de gestos. Esperamos que você goste.

Características

  • Sensor de IV do tipo quântico com quatro elementos de IV
  • Saídas digitais de 16 bits para barramento I2C
  • Sensor de temperatura integrado
  • Função de interrupção
  • Baixo consumo de corrente

Especificações

ItemValor
Tensão de operação3.3V / 5V
Temperatura de operação-30℃ ~ 85℃
Alcance de detecção de presença humana< 3m
Resolução de saída de IV16 bit
Faixa de medição de temperatura-10℃ ~ 60 ℃
InterfaceI2C
Endereço I2C0x64(default)
0x65 / 0x66(configurable)

Aplicações típicas

  • Detecção de corpo humano
  • Sensor de proximidade
  • Detecção de movimento

Visão geral de hardware

Pinagem

Esquemático

Alimentação

O AK9763 funciona com uma baixa tensão de operação -- 1.71~3.63V, então usamos o chip XC6206P332MR para fornecer 3.3V estáveis. A entrada do XC6206P33 varia de 1.8V a 6.0V, portanto você pode usar este módulo com o seu Arduino tanto em 3.3V quanto em 5V.

Circuito de conversão de nível bidirecional

Este é um circuito típico de conversão de nível bidirecional para conectar duas seções de tensão diferente de um barramento I2C. O barramento I2C deste sensor usa 3.3V, se o barramento I2C do Arduino usar 5V, este circuito será necessário. No esquemático acima, Q1 e Q2 são MOSFETs de canal N 2N7002A, que atuam como uma chave bidirecional. Para entender melhor esta parte, você pode consultar o AN10441

Plataformas suportadas

ArduinoRaspberry Pi
cuidado

As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade de software ou teórica do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as plataformas de MCU possíveis. Portanto, os usuários precisam escrever sua própria biblioteca de software.

Primeiros passos

Brincar com Arduino

Hardware

Materiais necessários

Seeeduino V4.2Base ShieldGrove - Human Presence Sensor (AK9753)
enter image description hereenter image description hereenter image description here
Adquira agoraAdquira agoraAdquira agora
nota

1 Por favor conecte o cabo USB com cuidado, caso contrário você pode danificar a porta. Use o cabo USB com 4 fios internos, o cabo de 2 fios não consegue transferir dados. Se você não tiver certeza sobre o cabo que possui, você pode clicar aqui para comprar.

2 Cada módulo Grove vem com um cabo Grove quando você compra. Caso você perca o cabo Grove, você pode clicar aqui para comprar.

  • Passo 1. Conecte o Grove - Human Presence Sensor (AK9753) à porta I2C do Grove-Base Shield.

  • Passo 2. Conecte o Grove - Base Shield ao Seeeduino.

  • Passo 3. Conecte o Seeeduino ao PC por meio de um cabo USB.

nota

Se não tivermos o Grove Base Shield, também podemos conectar este módulo diretamente ao Seeeduino como abaixo.

SeeeduinoGrove CableGrove - Human Presence Sensor (AK9753)
GNDBlackGND
5V or 3.3VRedVCC
SDAWhiteSDA
SCLYellowSCL

Software

cuidado

Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que você veja Primeiros Passos com Arduino antes de começar.

  • Passo 1. Baixe a biblioteca Grove_Human_Presence_Sensor do Github.

  • Passo 2. Consulte How to install library para instalar a biblioteca para Arduino.

  • Passo 3. Agora você pode encontrar quatro demos na IDE do Arduino clicando em File --> Examples --> Grove Human Presence Sensor Library

Example1-BasicReading: Este exemplo lê os dados brutos (uint16_t) de quatro sensores de IV e imprime esses dados brutos na serial.
Example2-PlotDiff: Lê os dados brutos e plota no serial plotter.
Example3-DetectPresence: Detecta a presença de objeto de IV.
Example4-PlotMovement: Detecta o movimento e plota no serial plotter.

Ou, encontre-os em seu computador na pasta C:XXXX\Arduino\libraries\Grove_Human_Presence_Sensor-master\examples, XXXX é o local onde você instalou a IDE do Arduino.

  • Passo 4. Escolha um demo e faça o upload do código. Se você não souber como enviar o código, verifique How to upload code.

Agora vamos verificar o que vai acontecer:


Example1-BasicReading:

Quando você enviar o código do example1, abra o Serial Monitor da IDE do Arduino clicando em Tool-> Serial Monitor. Ou pressione as teclas ++ctrl+shift+m++ ao mesmo tempo. Configure o baud rate para 9600.
Você pode ver os seguintes resultados:

Grove - Human Presence Sensor example
1:[432], 2:[288], 3[248], 4:[384], temp[20.87], millis[109]
1:[424], 2:[296], 3[232], 4:[400], temp[20.87], millis[215]
1:[448], 2:[280], 3[224], 4:[360], temp[20.87], millis[319]
1:[424], 2:[280], 3[224], 4:[368], temp[20.87], millis[424]
1:[440], 2:[256], 3[248], 4:[376], temp[20.87], millis[530]
1:[440], 2:[280], 3[224], 4:[384], temp[20.75], millis[634]
1:[464], 2:[296], 3[216], 4:[392], temp[20.75], millis[740]
1:[416], 2:[288], 3[240], 4:[376], temp[20.75], millis[844]
1:[432], 2:[288], 3[216], 4:[392], temp[20.75], millis[950]
1:[440], 2:[296], 3[208], 4:[384], temp[20.75], millis[1055]
1:[424], 2:[248], 3[192], 4:[376], temp[20.75], millis[1160]
1:[432], 2:[264], 3[200], 4:[384], temp[20.75], millis[1265]
1:[440], 2:[248], 3[208], 4:[352], temp[20.75], millis[1371]
1:[400], 2:[256], 3[192], 4:[320], temp[20.75], millis[1475]
1:[368], 2:[208], 3[152], 4:[296], temp[20.75], millis[1581]
1:[608], 2:[384], 3[368], 4:[560], temp[20.75], millis[1686]
1:[1320], 2:[912], 3[736], 4:[960], temp[20.75], millis[1790]
1:[2168], 2:[1664], 3[1336], 4:[1752], temp[20.75], millis[1896]
1:[2544], 2:[2192], 3[2112], 4:[2376], temp[20.75], millis[2001]
1:[2536], 2:[2256], 3[2280], 4:[2520], temp[20.75], millis[2107]
1:[2144], 2:[2064], 3[2168], 4:[2328], temp[20.75], millis[2212]

O 1:[] significa os dados de medição do sensor IR1, 2:[] significa os dados de medição do sensor IR2, 3:[] significa os dados de medição do sensor IR3, 4:[] significa os dados de medição do sensor IR4. Todos esses parâmetros têm valores variando de -32767 ~ 32767. Esse parâmetro reflete a intensidade da luz infravermelha detectada. Quanto mais forte a intensidade infravermelha, maior o valor do parâmetro.

O temp[] significa os dados de medição do sensor de temperatura integrado, variando de -10℃ a +60℃.

O millis[109] significa o tempo de sistema desde que este programa foi iniciado, fornecido pelo Arduino.


Example2-PlotDiff

Quando você enviar o código do example2, abra o Serial Plotter da Arduino IDE clicando em Tool-> Serial Plotter. Ou pressione as teclas ++ctrl+shift+l++ ao mesmo tempo. Defina a taxa de transmissão para 9600.
Você pode ver os seguintes resultados:

Este exemplo lê os dados de quatro sensores IR e os converte em corrente (pA), depois plota diff13 e diff24 no Serial Plotter da Arduino IDE.

diff13 = IR1 - IR3 // linha azul
diff24 = IR2 - IR4 // linha vermelha


Example3-DetectPresence

Quando você enviar o código do example1, abra o Serial Monitor da Arduino IDE clicando em Tool-> Serial Monitor. Ou pressione as teclas ++ctrl+shift+m++ ao mesmo tempo. Defina a taxa de transmissão para 9600.
Você pode ver os seguintes resultados:

Grove - Human Presence Sensor example
o o x o millis: 16949
o x x o millis: 17050
x x x x millis: 17153
x x x x millis: 17254
x x x x millis: 17355
x x x x millis: 17457

Este exemplo detecta a presença de um objeto IR. A detecção é baseada na derivada do valor do sensor. Se a derivada for maior que um limite, consideramos que algum objeto IR entrou no campo de visão do sensor. A derivada de cada canal é calculada pela seguinte fórmula:

derivativeIR1 = ΔIR1 / Δt

Δt representa o intervalo de tempo e ΔIR1 representa a mudança do valor de saída do Sensor IR1 durante o intervalo de tempo.

Na saída, O significa nenhuma detecção, X significa detectado. A ordem das saídas corresponde à posição física dos sensores IR.
por exemplo

o o x o

Significa que o terceiro sensor IR detectou o objeto IR e os outros não (o objeto IR pode vir de cima). Você pode encontrar a posição física do sensor IR em Pin Out


Example4-PlotMovement

Quando você enviar o código do example4, abra o Serial Plotter da Arduino IDE clicando em Tool-> Serial Plotter. Ou pressione as teclas ++ctrl+shift+l++ ao mesmo tempo. Defina a taxa de transmissão para 9600.
Você pode ver os seguintes resultados:

A detecção é baseada na derivada do valor da diferença de IR1_IR3 ou IR2_IR4. A derivada de IR1_IR3 ou IR2_IR4 é calculada pela seguinte fórmula:

derivativeIR1_IR3 = Δ(IR1-IR3) / Δt

O significado de cada curva na figura é:: (na ordem)

  • diff13 // IR1-IR3, linha azul
  • Movimento na direção 1-3 // derivativeIR1_IR3, linha vermelha
    (um pulso, pulso positivo significa de 1 para 3, caso contrário de 3 para 1)
  • diff24 // IR2-IR4, linha verde
  • Movimento na direção 2-4 // derivativeIR1_IR3, linha laranja
    (um pulso, pulso positivo significa de 2 para 4, caso contrário de 4 para 2)

Visualizador Online do Esquemático

Recursos

Suporte Técnico & Discussão de Produto


Obrigado por escolher nossos produtos! Estamos aqui para fornecer a você diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...