Introduction au module de reconnaissance de gestes PAJ7620

PAJ7620 Gesture Recognition Module

Code

#include
#include
#include

// 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;
    }
  }
}

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

YouTube video

  • Whadda Module de capteur avec reconnaissance des gestes, PAJ7620, 5 VCC, distance de détection ≤ 10 cm, blanc
  • PAJ7620U2 Module de capteur de reconnaissance gestuelle pour PAJ7620 Interface IIC intégrée 9 gestes Reconnaissance intelligente