Pular para o conteúdo principal

Demonstração de Detecção de Toque com Wio Terminal

Este repositório demonstra como o Wio Terminal utiliza o acelerômetro integrado para detectar o movimento de toque com clique único ou clique duplo!

Inicialização do Acelerômetro de 3 Eixos

Para inicializar o acelerômetro no Wio Terminal, visite Primeiros Passos com IMU para mais informações.

Configurações de Sensibilidade do Toque

Para a sensibilidade do toque, ajuste o valor de THRESHOLD de acordo com a faixa de escala da IMU:

Faixa de Escala2g4g8g16g
THRESHOLD40-8020-4010-205-10

Clique único ou Clique duplo

Para usar a função click, simplesmente chame-a como a seguir, onde o primeiro parâmetro é usado para determinar se a detecção é de clique único ou clique duplo (1 ou 2), e o segundo parâmetro é para o valor de threshold.

void setup() {
...
lis.click(1,THRESHOLD);
//Interrupt signal to trigger when a tap is detected!
attachInterrupt(digitalPinToInterrupt(GYROSCOPE_INT1), count, RISING);
}

Nota: GYROSCOPE_INT1 é o pino 1 de interrupção do acelerômetro.

Código Completo

#include"LIS3DHTR.h"
LIS3DHTR<TwoWire> lis;

//Adjust this threshold value for sensitivity of clicking
#define THRESHOLD 40
uint8_t cnt=0;

void count() {
cnt++;
Serial.print("Tap Count: ");
Serial.println(cnt);
}

void setup() {
Serial.begin(115200);
lis.begin(Wire1);

if (!lis) {
Serial.println("ERROR");
while(1);
}
lis.setOutputDataRate(LIS3DHTR_DATARATE_25HZ); //Data output rate
lis.setFullScaleRange(LIS3DHTR_RANGE_2G); //Scale range set to 2g

//1 for single click, 2 for double click
//smaller the threshold value, the more sensitive
lis.click(1, THRESHOLD);
//Interrupt signal to trigger when a tap is detected!
attachInterrupt(digitalPinToInterrupt(GYROSCOPE_INT1), count, RISING);
}

void loop() {
}
Loading Comments...