Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API Pixart_Gesture mbed nRF51822
Fork of PAJ7620_Gesture by
main.cpp
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2013 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #include "mbed.h" 00018 #include "Gesture.h" 00019 /*DigitalOut ledup(LED1); 00020 DigitalOut leddn(LED4); 00021 DigitalOut ledlt(LED3); 00022 DigitalOut ledrt(LED2);*/ 00023 DigitalOut ledup(p15);//D1 00024 DigitalOut leddn(p13);//D3 00025 DigitalOut ledlt(p12);//D4 00026 DigitalOut ledrt(p14);//D2 00027 DigitalIn btn1(p17);//setting selection 00028 DigitalIn btn2(p18); 00029 DigitalIn btn3(p19); 00030 DigitalIn btn4(p20); 00031 DigitalOut ld1(LED1);//setting indicator 00032 DigitalOut ld2(LED2); 00033 DigitalOut ld3(LED3); 00034 DigitalOut ld4(LED4); 00035 Serial pc(USBTX, USBRX); 00036 I2C i2c(I2C_SDA0, I2C_SCL0); 00037 Ticker ticker; 00038 00039 #define dly 100 //LED delay 00040 00041 void LED_Code(uint8_t OnOff); //LED on/off code. bit3~0: right/left/down/up 00042 void Gesture_LED(PIXART_GESTURE_TYPE gesture); 00043 00044 void GetGestute(PIXART_GESTURE_TYPE gesture) 00045 { 00046 //UP,DOWN,LEFT,RIGHT,PUSH,POLL,CLOCKWISE,COUNTER_CLOCKWISE,WAVE}; 00047 switch (gesture) 00048 { 00049 case UP: 00050 pc.printf("UP \r\n"); 00051 break; 00052 case DOWN: 00053 pc.printf("DOWN \r\n"); 00054 break; 00055 case LEFT: 00056 pc.printf("LEFT \r\n"); 00057 break; 00058 case RIGHT: 00059 pc.printf("RIGHT \r\n"); 00060 break; 00061 case PUSH: 00062 pc.printf("PUSH \r\n"); 00063 break; 00064 case POLL: 00065 pc.printf("POLL \r\n"); 00066 break; 00067 case CLOCKWISE: 00068 pc.printf("CLOCKWISE \r\n"); 00069 break; 00070 case COUNTER_CLOCKWISE: 00071 pc.printf("COUNTER_CLOCKWISE \r\n"); 00072 break; 00073 case WAVE: 00074 pc.printf("WAVE \r\n"); 00075 break; 00076 default: 00077 pc.printf("Nothing happen \r\n"); 00078 } 00079 Gesture_LED(gesture); 00080 } 00081 00082 void Gesture_LED(PIXART_GESTURE_TYPE gesture) 00083 { 00084 switch (gesture) 00085 { 00086 case UP: //up 00087 LED_Code(1); 00088 wait_ms(400); 00089 LED_Code(0); 00090 break; 00091 case DOWN: //down 00092 LED_Code(2); 00093 wait_ms(400); 00094 LED_Code(0); 00095 break; 00096 case LEFT: //left 00097 LED_Code(4); 00098 wait_ms(400); 00099 LED_Code(0); 00100 break; 00101 case RIGHT: //right 00102 LED_Code(8); 00103 wait_ms(400); 00104 LED_Code(0); 00105 break; 00106 case CLOCKWISE: //clockwise 00107 LED_Code(1); //up 00108 LED_Code(0); 00109 LED_Code(8); //right 00110 LED_Code(0); 00111 LED_Code(2); //down 00112 LED_Code(0); 00113 LED_Code(4); //left 00114 LED_Code(0); 00115 LED_Code(1); //up 00116 LED_Code(0); 00117 break; 00118 case COUNTER_CLOCKWISE: //counter-clockwise 00119 LED_Code(1); //up 00120 LED_Code(0); 00121 LED_Code(4); //left 00122 LED_Code(0); 00123 LED_Code(2); //down 00124 LED_Code(0); 00125 LED_Code(8); //right 00126 LED_Code(0); 00127 LED_Code(1); //up 00128 LED_Code(0); 00129 break; 00130 case PUSH: //forward 00131 LED_Code(13); //up/left/right 00132 wait_ms(400); 00133 LED_Code(0); 00134 break; 00135 case POLL: //backward 00136 LED_Code(14); //down/left/right 00137 wait_ms(400); 00138 LED_Code(0); 00139 break; 00140 case WAVE: //wave 00141 LED_Code(15); //all on 00142 LED_Code(0); 00143 LED_Code(15); //all on 00144 LED_Code(0); 00145 LED_Code(15); //all on 00146 LED_Code(0); 00147 break; 00148 default: 00149 LED_Code(0); 00150 break; 00151 } 00152 } 00153 00154 int main(void) 00155 { 00156 pc.baud (115200); 00157 pc.printf("Start Pixart Gesture demo\n\r"); 00158 00159 i2c.frequency(400000); 00160 00161 LED_Code(0); 00162 00163 bool Result = false; 00164 Pixart_Gesture *m_Gesture = new Pixart_Gesture(&i2c,100,GetGestute,Result); 00165 00166 if(Result == true) 00167 { 00168 pc.printf("Initial Pixart Gesture successful\n\r"); 00169 } 00170 else 00171 { 00172 pc.printf("Initial Pixart Gesture fail\n\r"); 00173 } 00174 00175 00176 while(true) 00177 ; 00178 } 00179 00180 00181 00182 void LED_Code(uint8_t OnOff) 00183 { 00184 switch (OnOff) { 00185 case 0: 00186 ledrt = 1; ledlt = 1; leddn = 1; ledup = 1; wait_ms(dly);//make a delay 00187 break; 00188 case 1: 00189 ledrt = 1; ledlt = 1; leddn = 1; ledup = 0; wait_ms(dly);//make a delay 00190 break; 00191 case 2: 00192 ledrt = 1; ledlt = 1; leddn = 0; ledup = 1; wait_ms(dly);//make a delay 00193 break; 00194 case 3: 00195 ledrt = 1; ledlt = 1; leddn = 0; ledup = 0; wait_ms(dly);//make a delay 00196 break; 00197 case 4: 00198 ledrt = 1; ledlt = 0; leddn = 1; ledup = 1; wait_ms(dly);//make a delay 00199 break; 00200 case 5: 00201 ledrt = 1; ledlt = 0; leddn = 1; ledup = 0; wait_ms(dly);//make a delay 00202 break; 00203 case 6: 00204 ledrt = 1; ledlt = 0; leddn = 0; ledup = 1; wait_ms(dly);//make a delay 00205 break; 00206 case 7: 00207 ledrt = 1; ledlt = 0; leddn = 0; ledup = 0; wait_ms(dly);//make a delay 00208 break; 00209 case 8: 00210 ledrt = 0; ledlt = 1; leddn = 1; ledup = 1; wait_ms(dly);//make a delay 00211 break; 00212 case 9: 00213 ledrt = 0; ledlt = 1; leddn = 1; ledup = 0; wait_ms(dly);//make a delay 00214 break; 00215 case 10: 00216 ledrt = 0; ledlt = 1; leddn = 0; ledup = 1; wait_ms(dly);//make a delay 00217 break; 00218 case 11: 00219 ledrt = 0; ledlt = 1; leddn = 0; ledup = 0; wait_ms(dly);//make a delay 00220 break; 00221 case 12: 00222 ledrt = 0; ledlt = 0; leddn = 1; ledup = 1; wait_ms(dly);//make a delay 00223 break; 00224 case 13: 00225 ledrt = 0; ledlt = 0; leddn = 1; ledup = 0; wait_ms(dly);//make a delay 00226 break; 00227 case 14: 00228 ledrt = 0; ledlt = 0; leddn = 0; ledup = 1; wait_ms(dly);//make a delay 00229 break; 00230 case 15: 00231 ledrt = 0; ledlt = 0; leddn = 0; ledup = 0; wait_ms(dly);//make a delay 00232 break; 00233 default: 00234 ledrt = 1; ledlt = 1; leddn = 1; ledup = 1; wait_ms(dly);//make a delay 00235 break; 00236 } 00237 } 00238 00239 00240
Generated on Thu Jul 14 2022 15:30:00 by
1.7.2

PAJ7620 Integrated Gesture Recognition Optical CMOS Sensor