[Բաց կոդով] Ժեստերի ճանաչման փորձնական համակարգ

——DWIN Developer Forum-ից

Այս թողարկումում մենք կներկայացնենք DWIN ծրագրավորողների ֆորումի բաց կոդով մրցանակակիր դեպքը՝ ժեստերի ճանաչման փորձարկման ինտերվալային համակարգ: Ինժեներները օգտագործում են 7 դյույմանոց COF խելացի էկրան՝ T5L OS միջուկի միջոցով PAJ7620U2 ժեստերի ճանաչման սենսորի հետ փոխազդելու համար: Ոչ մի կոճակ օգտագործելու կարիք չկա։ Դուք միայն պետք է ձեր ձեռքը մոտեցնեք սենսորին, որպեսզի մուտք գործեք մենյու համակարգի կառավարման էկրան և գիտակցեք վեր, վար, ձախ, աջ, մոտ, հեռու, ձախ պտույտ, աջ ռոտացիա և ալիքի 9 ժեստերի էֆեկտներ:

1.UIՄնյութականԴisplay

asd (2)
asd (1)

2.C51 Ինժեներական դիզայն

T5L OS միջուկը փոխազդում է PAJ7620U2 ժեստերի ճանաչման սենսորի հետ տվյալների փոխազդեցության համար, հայտնաբերում է ընթացիկ ժեստը, որոշում է ներկա ցուցադրվող նկարը և էջը շրջելով ցուցադրվող նկարը և գիտակցում է ժեստերի միջոցով էջերը փոխելու գործառույթը: Հղման կոդը հետևյալն է.

void select_operate(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //up

{

if(select_value >= 2)

{

ընտրել_արժեք -= 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) //ներքև

{

եթե (ընտրել_արժեքը

{

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) //ձախ

{

եթե (ընտրել_արժեք % 2 == 1)

{

ընտրել_արժեք -= 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) //աջ

{

եթե (ընտրել_արժեք % 2 == 0)

{

ընտրել_արժեք += 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) //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;

}

եթե (շրջադարձային_ընթացիկ_պատկեր == 0 || շրջադարձային_ընթացիկ_պատկեր == 2)

{

շրջադարձային_ընթացիկ_պատկեր = 1;

}

ուրիշ

{

շրջադարձային_ընթացիկ_պատկեր = 2;

}

for(i = 0;i

{

անջատիչ (շրջադարձային_ռեժիմ)

{

դեպք 0:

dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);

t5l0_sys_delay_ms (20);

եթե (շրջադարձային_վերջին_պատկեր != 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0, 0 - i * 10);

}

ընդմիջում;

դեպք 1:

dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 0, -480 + i * 10);

t5l0_sys_delay_ms (20);

եթե (շրջադարձային_վերջին_պատկեր != 0)

{

dgus_show_variate_icon_location_set (turning_last_image * 0x100 + 0x2000, 0, 0 + i * 10);

}

ընդմիջում;

դեպք 2:

dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, 800 - i * 10, 0);

t5l0_sys_delay_ms (20);

եթե (շրջադարձային_վերջին_պատկեր != 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 - i * 10, 0);

}

ընդմիջում;

դեպք 3:

dgus_show_variate_icon_location_set (turning_current_image * 0x100 + 0x2000, -800 + i * 10, 0);

t5l0_sys_delay_ms (20);

եթե (շրջադարձային_վերջին_պատկեր != 0)

{

dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);

}

ընդմիջում;

}

t5l0_sys_delay_ms (20);

}

turning_last_image = շրջադարձային_ընթացիկ_պատկեր;

}

}


Հրապարակման ժամանակը՝ Մար-21-2024