[Open Source] Interval Gesture Recognition Testy System

——Sa DWIN Developer Foruma

U ovom broju ćemo predstaviti nagrađivani slučaj otvorenog koda DWIN Developer Foruma – Interval Gesture Recognition Test System. Inženjeri koriste 7-inčni COF pametni ekran za interakciju sa senzorom za prepoznavanje pokreta PAJ7620U2 preko T5L OS jezgre. Nema potrebe da koristite bilo koje dugme. Potrebno je samo da stavite ruku blizu senzora da uđete u kontrolni ekran sistema menija i ostvarite 9 efekata gestova gore, dole, levo, desno, blizu, daleko, levo, desno i talasno.

1.UIMmaterijalDisplay

asd (2)
asd (1)

2.C51 Inženjerski dizajn

T5L OS jezgro je u interakciji sa senzorom za prepoznavanje pokreta PAJ7620U2 za interakciju podataka, detektuje trenutni gest, određuje trenutno prikazanu sliku i sliku prikazanu okretanjem stranice i ostvaruje funkciju prebacivanja stranica pomoću pokreta. Referentni kod je sljedeći:

void select_operate(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //gore

{

if(odabrana_vrijednost >= 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) //dolje

{

if(odaberite_vrijednost

{

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

{

if(odaberite_vrijednost % 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) //desno

{

if(odaberite_vrijednost % 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; //Način okretanja stranice, 0 gore, 1 dolje, 2 lijevo, 3 desno

uint16_t turning_count = 0; //Zadnji broj okretaja stranice

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

{

if(gesrure_value == GES_UP) //gore

{

turning_mode = 0;

broj okretanja = 48;

}

else if(gesrure_value == GES_DOWN) //dolje

{

turning_mode = 1;

broj okretanja = 48;

}

else if(gesrure_value == GES_LEFT) //lijevo

{

turning_mode = 2;

broj okretanja = 80;

}

else if(gesrure_value == GES_RIGHT) //desno

{

turning_mode = 3;

broj okretanja = 80;

}

if(trenutna_slika_okretanja == 0 || trenutna_slika_okretanja == 2)

{

trenutna_slika_okretanja = 1;

}

ostalo

{

obrtna_trenutna_slika = 2;

}

for(i = 0;i

{

prekidač (način_okretanja)

{

slučaj 0:

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

t5l0_sys_delay_ms(20);

if(posljednja_slika != 0)

{

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

}

break;

slučaj 1:

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

t5l0_sys_delay_ms(20);

if(posljednja_slika != 0)

{

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

}

break;

slučaj 2:

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

t5l0_sys_delay_ms(20);

if(posljednja_slika != 0)

{

dgus_show_variate_icon_location_set(posljednja_slika koja se okreće * 0x100 + 0x2000, 0 - i * 10, 0);

}

break;

slučaj 3:

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

t5l0_sys_delay_ms(20);

if(posljednja_slika != 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;

}

}


Vrijeme objave: Mar-21-2024