[otevřený zdroj] Intervalový systém rozpoznávání gest

——Z DWIN Developer Forum

V tomto čísle představíme oceněný open source případ fóra DWIN Developer Forum – Interval Gesture Recognition Test System. Inženýři používají 7palcovou chytrou obrazovku COF k interakci se snímačem rozpoznávání gest PAJ7620U2 prostřednictvím jádra operačního systému T5L. Není potřeba používat žádná tlačítka. Chcete-li vstoupit na obrazovku ovládání systému nabídek, stačí přiložit ruku k senzoru a realizovat 9 efektů gest: nahoru, dolů, doleva, doprava, blízko, daleko, otáčení doleva, otáčení doprava a mávání.

1.UIMmateriálDisplay

asd (2)
asd (1)

2.C51 Inženýrský design

Jádro OS T5L spolupracuje se senzorem rozpoznávání gest PAJ7620U2 pro interakci s daty, detekuje aktuální gesto, určuje aktuálně zobrazený obrázek a obrázek zobrazený otáčením stránky a realizuje funkci přepínání stránek pomocí gest. Referenční kód je následující:

void select_operate(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //up

{

if(select_value >= 2)

{

vybrat_hodnotu -= 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) //dolů

{

if(select_value

{

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) //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) //vpravo

{

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 režim_soustružení = 0; //Režim otáčení stránek, 0 nahoru, 1 dolů, 2 doleva, 3 doprava

uint16_t turn_count = 0; //Poslední počet otočení stránky

if(gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)

{

if(gesrure_value == GES_UP) //up

{

režim_otáčení = 0;

počet otočení = 48;

}

else if(gesrure_value == GES_DOWN) //dolů

{

režim_otáčení = 1;

počet otočení = 48;

}

else if(gesrure_value == GES_LEFT) //left

{

režim_otáčení = 2;

počet otočení = 80;

}

else if(gesrure_value == GES_RIGHT) //vpravo

{

režim_otáčení = 3;

počet otočení = 80;

}

if(turning_current_image == 0 || turning_current_image == 2)

{

otáčení_aktuálního_obrazu = 1;

}

jiný

{

otáčení_aktuálního_obrazu = 2;

}

for(i = 0;i

{

přepínač (režim otáčení)

{

případ 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);

}

přestávka;

případ 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);

}

přestávka;

případ 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);

}

přestávka;

případ 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);

}

přestávka;

}

t5l0_sys_delay_ms(20);

}

soustružení_poslední_obraz = aktuální_obrazek;

}

}


Čas odeslání: 21. března 2024