Gesture Recognition Sensor PAJ7620U2 Gesture Recognition

  • RM38.00

  • Product Code: PAJ7620U2
  • Availability: In Stock

Description:

PAJ7620U2 integrates gesture recognition function with general I 2C interface into a single chip. It can recognize 9 gestures including move up, move down, move left, move right, move forward, move backward, circle-clockwise, circle-counter clockwise, and wave. These gestures information can be simply accessed via the I 2C bus. The PAJ7620U2 also offers built-in proximity detection for the purpose of sensing object approaching or departing. The PAJ7620U2 is designed with great flexibility in power-saving mechanism. The PAJ7620U2 is designed to operate from 2.8V to 3.3V over -40°C to +85°C and the pull-up voltage for the I 2C bus and interrupt line is from 1.8V to 3.3V.

 

Specification:

  • Typical supply voltage is 2.8V to 3.3V and I/O voltage is 1.8V~3.3V
  • Nine gesture recognition (Up / Down / Left / Right / Push / Pull / CW / CCW / Wave)
  • Gesture speed is 60°/s to 600°/s in Normal Mode and 60°/s to 1200°/s in Gaming Mode
  • Ambient light immunity: < 100k Lux
  • I2C interface up to 400 kbit/s, Pull-up voltage from 1.8V to 3.3V

 

Packaging List:

  • 1 x GY-PAJ7620U2 Gesture Recognition Sensor

 

Module pinout: 

                                                                            PAJ7620 Gesture Recognition Module: Specifications, Working, and Arduino  Interfacing

Pin No Pin Name Description
1 VCC Positive voltage input pin
2 GND Ground voltage input pin
3 SCL I2C Serial Clock Pin
4 SDA I2C Serial Data Pin
5 INT Interrupt pin

 

Interfacing PAJ7620 Gesture Sensor Module with Arduino UNO

                                                                                Circuit Diagram for Interfacing PAJ7620 Gesture Recognition Module with Arduino UNO

 

Source code:

#include <DFRobot_PAJ7620U2.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

uint8_t rightChar[8] = { B00000, B00000, B00100, B00010, B11111, B00010, B00100, B00000 };
uint8_t leftChar[8] = { B00000, B00000, B00100, B01000, B11111, B01000, B00100, B00000 };
uint8_t upChar[8] = { B00000, B00000, B00100, B01110, B10101, B00100, B00100, B00000 };
uint8_t downChar[8] = { B00000, B00100, B00100, B10101, B01110, B00100, B00000, B00000 };
uint8_t forwardChar[8] = { B00100, B10101, B01110, B00100, B00000, B00000, B01110, B01110 };
uint8_t backwardChar[8] = { B00100, B01110, B10101, B00100, B00000, B00000, B01110, B01110 };
uint8_t clockwiseChar[8] = { B01110, B10001, B00001, B00001, B01010, B01100, B01110, B00000 };
uint8_t antiClockwiseChar[8] = { B00000, B01110, B01100, B01010, B00001, B00001, B10001, B01110 };
uint8_t waveRightChar[8] = { B00111, B00011, B00101, B01000, B00010, B10100, B11000, B11100 };
uint8_t waveLeftChar[8] = { B11100, B11000, B10100, B00010, B01000, B00101, B00011, B00111 };

DFRobot_PAJ7620U2 paj;

void setup() {
  Serial.begin(115200);
  delay(300);

  lcd.begin();
  lcd.createChar(1, waveRightChar);
  lcd.createChar(2, waveLeftChar);
  lcd.createChar(3, upChar);
  lcd.createChar(4, downChar);
  lcd.createChar(5, forwardChar);
  lcd.createChar(6, backwardChar);
  lcd.createChar(7, clockwiseChar);
  lcd.createChar(8, antiClockwiseChar);

  Serial.println("Gesture recognition system base on PAJ7620U2");
  while (paj.begin() != 0) {
    Serial.println("initial PAJ7620U2 failure! Please check if all the connections are fine, or if the wire sequence is correct?");
    delay(500);
  }
  Serial.println("PAJ7620U2init completed, start to test the gesture recognition function");

  paj.setGestureHighRate(false);

  lcd.backlight();
  lcd.setCursor(4, 0);
  lcd.print("Ready to");
  lcd.setCursor(3, 1);
  lcd.print("Recognize");
}

void loop() {

  DFRobot_PAJ7620U2::eGesture_t gesture = paj.getGesture();
  if (gesture != paj.eGestureNone) {
    lcd.clear();

    String description = paj.gestureDescription(gesture);
    Serial.println("--------------Gesture Recognition System---------------------------");
    Serial.print("gesture code        = ");
    Serial.println(gesture);
    Serial.print("gesture description  = ");
    Serial.println(description);
    Serial.println();

    switch (gesture) {
      case 1:
        lcd.setCursor(3, 0);
        lcd.write(byte(1));
        lcd.print(" ");
        lcd.print("RIGHT");
        lcd.print(" ");
        lcd.write(byte(1));
        break;
      case 2:
        lcd.setCursor(4, 0);
        lcd.write(byte(2));
        lcd.print(" ");
        lcd.print("LEFT");
        lcd.print(" ");
        lcd.write(byte(2));
        break;
      case 4:
        lcd.setCursor(5, 0);
        lcd.write(byte(3));
        lcd.print(" ");
        lcd.print("UP");
        lcd.print(" ");
        lcd.write(byte(3));
        break;
      case 8:
        lcd.setCursor(4, 0);
        lcd.write(byte(4));
        lcd.print(" ");
        lcd.print("DOWN");
        lcd.print(" ");
        lcd.write(byte(4));
        break;
      case 16:
        lcd.setCursor(2, 0);
        lcd.write(byte(5));
        lcd.print(" ");
        lcd.print("FORWARD");
        lcd.print(" ");
        lcd.write(byte(5));
        break;
      case 32:
        lcd.setCursor(2, 0);
        lcd.write(byte(6));
        lcd.print(" ");
        lcd.print("BACKWARD");
        lcd.print(" ");
        lcd.write(byte(6));
        break;
      case 64:
        lcd.setCursor(2, 0);
        lcd.write(byte(7));
        lcd.print(" ");
        lcd.print("CLOCKWISE");
        lcd.print(" ");
        lcd.write(byte(7));
        break;
      case 128:
        lcd.setCursor(4, 0);
        lcd.write(byte(8));
        lcd.print(" ");
        lcd.print("    ");
        lcd.print(" ");
        lcd.write(byte(8));
        lcd.setCursor(1, 1);
        lcd.print("ANTI-CLOCKWISE");
        break;
      case 256:
        lcd.setCursor(4, 0);
        lcd.write(byte(2));
        lcd.print(" ");
        lcd.print("WAVE");
        lcd.print(" ");
        lcd.write(byte(1));
        break;
      case 512:
        lcd.setCursor(2, 0);
        lcd.write(byte(2));
        lcd.print(" ");
        lcd.print("SLOW WAVE");
        lcd.print(" ");
        lcd.write(byte(1));
        lcd.setCursor(4, 1);
        lcd.print("DISORDER");
        break;
      case 3:
        lcd.setCursor(2, 0);
        lcd.write(byte(2));
        lcd.print(" ");
        lcd.print("SLOW WAVE");
        lcd.print(" ");
        lcd.write(byte(1));
        lcd.setCursor(3, 1);
        lcd.print("LEFT-RIGHT");
        break;
      case 12:
        lcd.setCursor(2, 0);
        lcd.write(byte(2));
        lcd.print(" ");
        lcd.print("SLOW WAVE");
        lcd.print(" ");
        lcd.write(byte(1));
        lcd.setCursor(4, 1);
        lcd.print("UP-DOWN");
        break;
      case 48:
        lcd.setCursor(2, 0);
        lcd.write(byte(2));
        lcd.print(" ");
        lcd.print("SLOW WAVE");
        lcd.print(" ");
        lcd.write(byte(1));
        lcd.setCursor(1, 1);
        lcd.print("FORWARD-BACKWARD");
        break;
      default:
        lcd.print("New Gesture");
        break;
    }
  }
}

 

Attachment:

Write a review

Note: HTML is not translated!
    Bad           Good