——来自迪文开发者论坛
本期为大家推送迪文开发者论坛获奖开源案例——隔空手势识别测试系统。工程师采用7英寸COF智能屏,通过T5L OS核与PAJ7620U2手势识别传感器进行数据交互,不需要使用任何按键,只需将手贴近传感器即可进入菜单系统控制屏幕,实现上、下、左、右、贴近、远离、左旋转、右旋转、挥手9种手势效果。不一样的屏幕交互体验,推荐大家前来观看!
UI素材展示
UI开发示例
C51代码设计 T5L OS核与PAJ7620U2手势识别传感器进行数据交互,检测当前的手势,判断当前显示的图片和翻页显示的图片,实现利用手势来切换页面的功能。参考代码如下:
void select_operate(uint16_t gesrure_value){ if(gesrure_value == GES_UP) //上 { if(select_value >= 2) { select_value -= 2; } dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]); } else if(gesrure_value == GES_DOWN) //下 { if(select_value <= 1) { select_value += 2; } dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]); } else if(gesrure_value == GES_LEFT) //左 { if(select_value % 2 == 1) { select_value -= 1; } dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]); } else if(gesrure_value == GES_RIGHT) //右 { if(select_value % 2 == 0) { select_value += 1; } dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]); }}
void turning_operate(uint16_t gesrure_value){ uint16_t i = 0; uint8_t turning_mode = 0; //翻页模式,0上,1下,2左,3右 uint16_t turning_count = 0; //翻页最终次数 if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT) { if(gesrure_value == GES_UP) //上 { turning_mode = 0; turning_count = 48; } else if(gesrure_value == GES_DOWN) //下 { turning_mode = 1; turning_count = 48; } else if(gesrure_value == GES_LEFT) //左 { turning_mode = 2; turning_count = 80; } else if(gesrure_value == GES_RIGHT) //右 { turning_mode = 3; turning_count = 80; } if(turning_current_image == 0 || turning_current_image == 2) { turning_current_image = 1; } else { turning_current_image = 2; } for(i = 0;i <= turning_count;i++) { switch(turning_mode) { case 0: dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10); t5l0_sys_delay_ms(20); if(turning_last_image != 0) { dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10); } break; case 1: dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10); t5l0_sys_delay_ms(20); if(turning_last_image != 0) { dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10); } break; case 2: dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0); t5l0_sys_delay_ms(20); if(turning_last_image != 0) { dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0); } break; case 3: dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0); t5l0_sys_delay_ms(20); if(turning_last_image != 0) { dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0); } break; } t5l0_sys_delay_ms(20); } turning_last_image = turning_current_image; }}
全部0条评论
快来发表一下你的评论吧 !