Grove - Gesture V1.0

The sensor on Grove - Gesture is PAJ7620U2 that integrates gesture recognition function with general I2C interface into a single chip. It can recognize 9 basic gestures, and these gestures information can be simply accessed via the I2C bus.

Application: You can use Gesture as an input device to control another grove, or a computer, mobile phone, smart car, robot, and more with a simple swipe of your hand.

/*The following simple demo will show you a very easy application: When you move up, the red led will be turned on, otherwise the red led will be turned off.*/#include<Wire.h>#include"paj7620.h"voidsetup(){paj7620Init();}voidloop(){uint8_tdata=0;// Read Bank_0_Reg_0x43/0x44 for gesture result.paj7620ReadReg(0x43,1,&data);// When different gestures be detected, the variable 'data' will be set to different values by paj7620ReadReg(0x43, 1, &data).if(data==GES_UP_FLAG)// When up gesture be detected,the variable 'data' will be set to GES_UP_FLAG.digitalWrite(4,HIGH);// turn the LED on (HIGH is the voltage level)if(data==GES_DOWN_FLAG)// When down gesture be detected,the variable 'data' will be set to GES_DOWN_FLAG.digitalWrite(4,LOW);// turn the LED off by making the voltage LOW}

Step 6. Select Seeeduino V4 in board manager and COM port.

Step 7. Click upload and put the hand over the Gesture sensor up and down. You will see the led on and off as below.

#include<Wire.h>#include"paj7620.h"/* Notice: When you want to recognize the Forward/Backward gestures, your gestures' reaction time must less than GES_ENTRY_TIME(0.8s). You also can adjust the reaction time according to the actual circumstance.*/#define GES_REACTION_TIME 500 // You can adjust the reaction time according to the actual circumstance.#define GES_ENTRY_TIME 800 // When you want to recognize the Forward/Backward gestures, your gestures' reaction time must less than GES_ENTRY_TIME(0.8s). #define GES_QUIT_TIME 1000voidsetup(){uint8_terror=0;Serial.begin(9600);Serial.println("\nPAJ7620U2 TEST DEMO: Recognize 9 gestures.");error=paj7620Init();// initialize Paj7620 registersif(error){Serial.print("INIT ERROR,CODE:");Serial.println(error);}else{Serial.println("INIT OK");}Serial.println("Please input your gestures:\n");}voidloop(){uint8_tdata=0,data1=0,error;error=paj7620ReadReg(0x43,1,&data);// Read Bank_0_Reg_0x43/0x44 for gesture result.if(!error){switch(data)// When different gestures be detected, the variable 'data' will be set to different values by paj7620ReadReg(0x43, 1, &data).{caseGES_RIGHT_FLAG:delay(GES_ENTRY_TIME);paj7620ReadReg(0x43,1,&data);if(data==GES_FORWARD_FLAG){Serial.println("Forward");delay(GES_QUIT_TIME);}elseif(data==GES_BACKWARD_FLAG){Serial.println("Backward");delay(GES_QUIT_TIME);}else{Serial.println("Right");}break;caseGES_LEFT_FLAG:delay(GES_ENTRY_TIME);paj7620ReadReg(0x43,1,&data);if(data==GES_FORWARD_FLAG){Serial.println("Forward");delay(GES_QUIT_TIME);}elseif(data==GES_BACKWARD_FLAG){Serial.println("Backward");delay(GES_QUIT_TIME);}else{Serial.println("Left");}break;caseGES_UP_FLAG:delay(GES_ENTRY_TIME);paj7620ReadReg(0x43,1,&data);if(data==GES_FORWARD_FLAG){Serial.println("Forward");delay(GES_QUIT_TIME);}elseif(data==GES_BACKWARD_FLAG){Serial.println("Backward");delay(GES_QUIT_TIME);}else{Serial.println("Up");}break;caseGES_DOWN_FLAG:delay(GES_ENTRY_TIME);paj7620ReadReg(0x43,1,&data);if(data==GES_FORWARD_FLAG){Serial.println("Forward");delay(GES_QUIT_TIME);}elseif(data==GES_BACKWARD_FLAG){Serial.println("Backward");delay(GES_QUIT_TIME);}else{Serial.println("Down");}break;caseGES_FORWARD_FLAG:Serial.println("Forward");delay(GES_QUIT_TIME);break;caseGES_BACKWARD_FLAG:Serial.println("Backward");delay(GES_QUIT_TIME);break;caseGES_CLOCKWISE_FLAG:Serial.println("Clockwise");break;caseGES_COUNT_CLOCKWISE_FLAG:Serial.println("anti-clockwise");break;default:paj7620ReadReg(0x44,1,&data1);if(data1==GES_WAVE_FLAG){Serial.println("wave");}break;}}delay(100);}

#!/usr/bin/env python## GrovePi Example for using the Grove - Gesture Sensor v1.0(http://www.seeedstudio.com/depot/Grove-Gesture-p-2463.html)# # This example returns a value when a user does an action over the sensor## The GrovePi connects the Raspberry Pi and Grove sensors. You can learn more about GrovePi here: http://www.dexterindustries.com/GrovePi## Have a question about this example? Ask on the forums here: http://forum.dexterindustries.com/c/grovepi#'''## LicenseThe MIT License (MIT)GrovePi for the Raspberry Pi: an open source platform for connecting Grove Sensors to the Raspberry Pi.Copyright (C) 2017 Dexter IndustriesPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.'''importgrove_gesture_sensorimporttimeg=grove_gesture_sensor.gesture()g.init()whileTrue:gest=g.return_gesture()#Match the gestureifgest==g.FORWARD:print("FORWARD")elifgest==g.BACKWARD:print("BACKWARD")elifgest==g.RIGHT:print("RIGHT")elifgest==g.LEFT:print("LEFT")elifgest==g.UP:print("UP")elifgest==g.DOWN:print("DOWN")elifgest==g.CLOCKWISE:print("CLOCKWISE")elifgest==g.ANTI_CLOCKWISE:print("ANTI_CLOCKWISE")elifgest==g.WAVE:print("WAVE")elifgest==0:print("-")else:print("Error")time.sleep(.1)

Upcycling Workshop at Seeed x.factory [Episode 1]: Last weekend, we had an amazing upcycling hacking workshop with 20 makers, designers, and engineers from the community gathering at x.factory (I even listed it as my favorite workshop!).

Jesty - Control your PC with Gestures: Control a PC with a gesture sensor, associating a key or a mouse click to each gesture.