Grove Smart IR Gesture Sensor (PAJ7660) Arduino Project
Practical Arduino project with this intelligent gesture recognition module equipped with an infrared camera sensor and applied AI algorithm.
Components and supplies
1
Grove - Buzzer - Piezo
1
LilyPad LED Red (5pcs)
1
Seed Studio gesture sensor
1
Arduino Nano
5
Resistor 1k ohm
1
16x2 LCD display with I²C interface
Tools and machines
1
Soldering Iron Kit, CV-H6-HTD Iron
Apps and platforms
1
Arduino IDE
Project description
Code
Code
cpp
.
1#include "Gesture.h" 2#include <Wire.h> 3#include <LiquidCrystal_I2C.h> 4 5LiquidCrystal_I2C lcd(0x27,16,2); 6 7pag7660 Gesture; // Combined mode is used by default 8 9void setup() { 10pinMode(2, OUTPUT); 11pinMode(3, OUTPUT); 12pinMode(4, OUTPUT); 13pinMode(5, OUTPUT); 14pinMode(6, OUTPUT); 15 lcd.init(); // initialize the lcd 16 lcd.backlight(); 17 18 Serial.begin(9600); 19 tone(10, 500, 1000); 20 21 while(!Serial) { 22 delay(100); 23 } 24 Serial.println("\nPAG7660 TEST DEMO: Gesture combined mode."); 25 26 if(Gesture.init()) { 27 Serial.println("PAG7660 initialization success"); 28 lcd.setCursor(5,0); 29 lcd.print("PAG7660"); 30 lcd.setCursor(1,1); 31 lcd.print("Init. success"); 32 33 delay(2000); 34 } else { 35 Serial.println("PAG7660 initialization failed"); 36 } 37 Serial.println("Please input your gestures:\n"); 38 lcd.clear(); 39 lcd.setCursor(1,0); 40 lcd.print("Input Gesture:"); 41} 42 43void loop() { 44 pag7660_gesture_t result; 45 if (Gesture.getResult(result)) { 46 printResultCombinedMode(result); 47 } 48 delay(100); 49} 50 51void printResultCombinedMode(const pag7660_gesture_t& result) { 52 const char *cursor_str[] = { 53 NULL, 54 "Tap", 55 "Grab", 56 "Pinch", 57 }; 58 switch (result.type) { 59 case 0: 60 switch (result.cursor.type) { 61 case 1: 62 case 2: 63 case 3: 64 if (result.cursor.select) 65 Serial.println(cursor_str[result.cursor.type]); 66 break; 67 default: 68 break; 69 } 70 break; 71 case 1: 72 73 case 2: 74 75 case 3: 76 case 4: 77 case 5: 78 Serial.print(result.type); 79 Serial.println("-finger"); 80 81 lcd.setCursor(1,1); 82 lcd.print(result.type); 83 lcd.print(" - finger "); 84 85 if (result.type <= 1) { 86 digitalWrite(2, HIGH); 87 digitalWrite(3,LOW); 88 digitalWrite(4,LOW); 89 digitalWrite(5,LOW); 90 digitalWrite(6,LOW); 91 } 92 93 if (result.type >1 && result.type<=2 ) { 94 digitalWrite(2, HIGH); 95 digitalWrite(3,HIGH); 96 digitalWrite(4,LOW); 97 digitalWrite(5,LOW); 98 digitalWrite(6,LOW); 99 } 100 101 if (result.type >2 && result.type<=3 ) { 102 digitalWrite(2, HIGH); 103 digitalWrite(3,HIGH); 104 digitalWrite(4,HIGH); 105 digitalWrite(5,LOW); 106 digitalWrite(6,LOW); 107 } 108 if (result.type >3 && result.type<=4 ) { 109 digitalWrite(2, HIGH); 110 digitalWrite(3,HIGH); 111 digitalWrite(4,HIGH); 112 digitalWrite(5,HIGH); 113 digitalWrite(6,LOW); 114 } 115 if (result.type >4 && result.type<=5 ) { 116 digitalWrite(2, HIGH); 117 digitalWrite(3,HIGH); 118 digitalWrite(4,HIGH); 119 digitalWrite(5,HIGH); 120 digitalWrite(6,HIGH); 121 } 122 break; 123 124 case 6: 125 Serial.print("Rotate Right "); 126 Serial.println(result.rotate); 127 break; 128 case 7: 129 Serial.print("Rotate Left "); 130 Serial.println(result.rotate); 131 break; 132 case 8: 133 Serial.println("Swipe Left"); 134 lcd.setCursor(1,1); 135 lcd.print("<-Swipe Left "); 136 tone(10, 3000, 100); 137 digitalWrite(2, HIGH); 138 digitalWrite(3, HIGH); 139 digitalWrite(4, LOW); 140 digitalWrite(5, LOW); 141 digitalWrite(6, LOW); 142 delay(1000); 143 digitalWrite(2,LOW); 144 digitalWrite(3, LOW); 145 break; 146 147 case 9: 148 Serial.println("Swipe Right"); 149 150 lcd.setCursor(1,1); 151 lcd.print("Swipe Right->"); 152 tone(10, 3000, 100); 153 digitalWrite(2, LOW); 154 digitalWrite(3, LOW); 155 digitalWrite(4, LOW); 156 digitalWrite(5, HIGH); 157 digitalWrite(6, HIGH); 158 delay(1000); 159 digitalWrite(5,LOW); 160 digitalWrite(6, LOW); 161 162 break; 163 case 19: 164 case 20: 165 case 21: 166 case 22: 167 case 23: 168 Serial.print(result.type - 19 + 1); 169 Serial.println("-finger push"); 170 break; 171 default: 172 break; 173 } 174 175}
Downloadable files
Schematic
...
Schematic JPG.jpg

Comments
Only logged in users can leave comments