——DWIN Developer Forum-ից
Այս թողարկումում մենք կներկայացնենք DWIN ծրագրավորողների ֆորումի բաց կոդով մրցանակակիր դեպքը՝ ժեստերի ճանաչման փորձարկման ինտերվալային համակարգ: Ինժեներները օգտագործում են 7 դյույմանոց COF խելացի էկրան՝ T5L OS միջուկի միջոցով PAJ7620U2 ժեստերի ճանաչման սենսորի հետ փոխազդելու համար: Ոչ մի կոճակ օգտագործելու կարիք չկա։ Դուք միայն պետք է ձեր ձեռքը մոտեցնեք սենսորին, որպեսզի մուտք գործեք մենյու համակարգի կառավարման էկրան և գիտակցեք վեր, վար, ձախ, աջ, մոտ, հեռու, ձախ պտույտ, աջ ռոտացիա և ալիքի 9 ժեստերի էֆեկտներ:
1.UIՄնյութականԴisplay
![asd (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07846d9de96799.png)
![asd (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07860ad7d49985.png)
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