grove - gesture v1 - robot parts | robot kits | robot toys · 2015. 9. 25. · simple demo the...

10
9/25/2015 Grove Gesture v1.0 Wiki http://www.seeedstudio.com/wiki/Grove__Gesture_v1.0 1/10 Grove - Gesture v1.0 From Wiki 来自痴汉的爱 Contents 1 Introduction 2 Features 3 Specification

Upload: others

Post on 25-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 1/10

Grove - Gesture v1.0From Wiki 来自痴汉的爱

 

Contents

1 Introduction2 Features3 Specification

Page 2: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 2/10

4 With Arduino/Seeeduino4.1 Suggest Reading for Starter4.2 Hardware Installation4.3 Gesture Library

4.3.1 Setup4.3.2 Simple Demo4.3.3 Description of functions

4.3.3.1 1. Initialize the gesture sensor chip PAJ76204.3.3.2 2. Read data from PAJ7620 register via I2C

4.4 Gesture Examples/Applications5 Resources

Introduction

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

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

Features

1 See 9 gestures in the following figure

9 basicgestures

Up

Down

Left

Right

Forward

Backward

Clockwise

CountClockwise

Wave

Page 3: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 3/10

2 Built-in proximity detection3 Various main boards support : Arduino UNO/Seeeduino/Arduino Mega2560

Specification

Sensor  PAJ7620U2Power supply  5V

 Ambient light immunity  < 100k Lux

 Gesture speed in Normal Mode  60°/s to 600°/s

 Gesture speed in Gaming Mode  60°/s to 1200°/s

 Interface type  IIC interface up to 400 kbit/s

 Operating Temperature  -40°C to +85°C

 Dimensions 20 * 20mm

 Detection range 5-15mm

With Arduino/Seeeduino

Suggest Reading for Starter

Download Arduino and install Arduino driver(http://www.seeedstudio.com/wiki/Download_Arduino_and_install_Arduino_driver) Getting Started with Seeeduino/Arduino(http://www.seeedstudio.com/wiki/Getting_Started_with_Seeeduino) 

Hardware Installation

Grove products have a eco system and all have a same connector which can plug onto theBase Shield (http://www.seeedstudio.com/wiki/index.php?title=Base_shield_v2&uselang=en). Connect this module to the I2C port of Base Shield, however, you can also connect Grove -Gesture to Arduino without Base Shield by jumper wires.

Arduino UNO Base Shield Grove - Gesture

5V

I2C port

VCC

GND GND

SDA SDA

SCL SCL

Digit 2 Not connected INT (Reserved pad)

INT:Gesture detection interrupt flag mask. You can connect INT pad to digit 2 of Arduinoby using jumper wire.

Page 4: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 4/10

Plug Grove - Gesture onto the I2C port of Base shield

Then plug Base shield onto the Arduino UNO

Page 5: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 5/10

Gesture Library

We have created a library to help you start playing quickly with the Seeeduino/Arduino, inthis section we'll show you how to set up the library and introduce some of the functions.

Setup

1.  Download the library code as a zip file from the Gesture_PAJ7620 github page.(https://github.com/Seeed-Studio/Gesture_PAJ7620)

2.  Unzip the downloaded file into your …/arduino/libraries.3.  Rename the unzipped folder "Gesture"(or:"Gesture_PAJ7620")4.  Start the Arduino IDE (or restart if it is open).

Simple Demo

The following simple demo will show you a very easy application: When you move up, thered led will be turned on, otherwise the red led will be turned off.

#include <Wire.h>#include "paj7620.h"

Page 6: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 6/10

#include "paj7620.h" void setup(){  paj7620Init();} void loop(){  uint8_t data = 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}

Description of functions

These are the most important/useful function in the library, we invite you to look at the .hand .cpp files yourself to see all the functions available.

1. Initialize the gesture sensor chip PAJ7620

Page 7: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 7/10

void setup(){  paj7620Init();}

This initialization code should be added to each demo.

2. Read data from PAJ7620 register via I2C

paj7620ReadReg(uint8_t addr, uint8_t qty, uint8_t data[])addr: Register addressqty: Number of data to read, addr continuously increase.data[]: The starting address(a variable or array) to store data.

void loop(){  uint8_t data = 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}

We define some register data of gesture, refer to the following table.

Gesture Register Data RegisterAddress

If Yes If Not

Up data==GES_UP_FLAG

0x43 Gesturedetected

No gesturedetected

Down data==GES_DOWN_FLAG

Left data==GES_LEFT_FLAG

Right data==GES_RIGHT_FLAG

Forward data==GES_FORWARD_FLAG

Backward data==GES_BACKWARD_FLAG

Clockwise data==GES_CLOCKWISE_FLAG

CountClockwise

data==GES_COUNT_CLOCKWISE_FLAG

Wave data==GES_WAVE_FLAG 0x44

Page 8: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 8/10

Gesture Examples/Applications

These examples are going to show you how to recognize gestures from this Grove -Gesture.

Open File->Examples->Gesture(or:Gesture_PAJ7620)->example->paj7620_9gestures sketch for a complete example. 

Description: This example can recognize 9 gestures and output the result, includingmove up, move down, move left, move right, move forward, move backward, circle-clockwise, circle-counter clockwise, and wave. You also can use Gesture as an inputdevice to control another grove, or a computer, mobile phone, smart car, robot, andmore with a simple swipe of your hand.

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 reactiontime according to the actual circumstance. 

/* 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      1000

Following are the main program used in the demo: 

void setup(){  uint8_t error = 0;   Serial.begin(9600);  Serial.println("\nPAJ7620U2 TEST DEMO: Recognize 9 gestures.");   error = paj7620Init();      // initialize Paj7620 registers  if (error)   {    Serial.print("INIT ERROR,CODE:");    Serial.println(error);  }  else  {    Serial.println("INIT OK");  }  Serial.println("Please input your gestures:\n");} void loop(){  uint8_t data = 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).    {      case GES_RIGHT_FLAG:        delay(GES_ENTRY_TIME);

        paj7620ReadReg(0x43, 1, &data);

Page 9: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 9/10

        paj7620ReadReg(0x43, 1, &data);        if(data == GES_FORWARD_FLAG)         {          Serial.println("Forward");          delay(GES_QUIT_TIME);        }        else if(data == GES_BACKWARD_FLAG)         {          Serial.println("Backward");          delay(GES_QUIT_TIME);        }        else        {          Serial.println("Right");        }                  break;      case GES_LEFT_FLAG:         delay(GES_ENTRY_TIME);        paj7620ReadReg(0x43, 1, &data);        if(data == GES_FORWARD_FLAG)         {          Serial.println("Forward");          delay(GES_QUIT_TIME);        }        else if(data == GES_BACKWARD_FLAG)         {          Serial.println("Backward");          delay(GES_QUIT_TIME);        }        else        {          Serial.println("Left");        }                  break;      case GES_UP_FLAG:        delay(GES_ENTRY_TIME);        paj7620ReadReg(0x43, 1, &data);        if(data == GES_FORWARD_FLAG)         {          Serial.println("Forward");          delay(GES_QUIT_TIME);        }        else if(data == GES_BACKWARD_FLAG)         {          Serial.println("Backward");          delay(GES_QUIT_TIME);        }        else        {          Serial.println("Up");        }                  break;      case GES_DOWN_FLAG:        delay(GES_ENTRY_TIME);        paj7620ReadReg(0x43, 1, &data);        if(data == GES_FORWARD_FLAG)         {          Serial.println("Forward");          delay(GES_QUIT_TIME);        }        else if(data == GES_BACKWARD_FLAG)         {          Serial.println("Backward");          delay(GES_QUIT_TIME);        }        else        {          Serial.println("Down");        }                  break;      case GES_FORWARD_FLAG:        Serial.println("Forward");        delay(GES_QUIT_TIME);        break;      case GES_BACKWARD_FLAG:             Serial.println("Backward");        delay(GES_QUIT_TIME);        break;      case GES_CLOCKWISE_FLAG:

↑TOP

Page 10: Grove - Gesture v1 - Robot Parts | Robot Kits | Robot Toys · 2015. 9. 25. · Simple Demo The following simple demo will show you a very easy application: When you move up, the red

9/25/2015 Grove ­ Gesture v1.0 ­ Wiki

http://www.seeedstudio.com/wiki/Grove_­_Gesture_v1.0 10/10

      case GES_CLOCKWISE_FLAG:        Serial.println("Clockwise");        break;      case GES_COUNT_CLOCKWISE_FLAG:        Serial.println("anti‐clockwise");        break;        default:        paj7620ReadReg(0x44, 1, &data1);        if (data1 == GES_WAVE_FLAG)         {          Serial.println("wave");        }        break;    }  }  delay(100);}

In your own project, you may need multi-gestures instead of a single gesture to realiseone function , welcome to share! 

Resources

Grove - Gesture_v1.0 sch pcb.zip (http://www.seeedstudio.com/wiki/File:Grove_-_Gesture_v1.0_sch_pcb.zip) PAJ7620U2_Datasheet_V0.8_20140611.pdf(http://www.seeedstudio.com/wiki/File:PAJ7620U2_Datasheet_V0.8_20140611.pdf)Library Grove - Guesture (https://github.com/Seeed-Studio/Gesture_PAJ7620)

Retrieved from "http://www.seeedstudio.com/wiki/index.php?title=Grove_-_Gesture_v1.0&oldid=106495"Categories:  Sensor Grove

This page was last modified on 23 July 2015, at 06:59.This page has been accessed 5,527 times.