——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)](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 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