[Open Source] System testów interwałowego rozpoznawania gestów

—— Z forum programistów DWIN

W tym numerze przedstawimy wielokrotnie nagradzany przypadek open source Forum programistów DWIN – system interwałowego rozpoznawania gestów. Inżynierowie wykorzystują 7-calowy inteligentny ekran COF do interakcji z czujnikiem rozpoznawania gestów PAJ7620U2 za pośrednictwem rdzenia systemu operacyjnego T5L. Nie ma potrzeby używania żadnych przycisków. Wystarczy zbliżyć rękę do czujnika, aby wejść do ekranu sterowania systemem menu i skorzystać z 9 efektów gestów: w górę, w dół, w lewo, w prawo, blisko, daleko, obrót w lewo, obrót w prawo i fala.

1.UIMmateriałDjest grany

asd (2)
asd (1)

2.C51 Projekt techniczny

Rdzeń T5L OS współpracuje z czujnikiem rozpoznawania gestów PAJ7620U2 w celu interakcji z danymi, wykrywa bieżący gest, określa aktualnie wyświetlany obraz i obraz wyświetlany po przewróceniu strony oraz realizuje funkcję przełączania stron za pomocą gestów. Kod referencyjny jest następujący:

void wybierz_operuj(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //w górę

{

if(select_value >= 2)

{

wybierz wartość -= 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) //down

{

if(select_value

{

wybierz wartość += 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) //w lewo

{

if(select_value % 2 == 1)

{

wybierz wartość -= 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) //prawo

{

if(select_value % 2 == 0)

{

wybierz wartość += 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 tryb_toczenia = 0; //Tryb przewracania stron, 0 w górę, 1 w dół, 2 w lewo, 3 w prawo

uint16_t liczba_obrotów = 0; //Ostatnia liczba przewróceń strony

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

{

if(gesrure_value == GES_UP) //w górę

{

tryb_toczenia = 0;

liczba_obrotów = 48;

}

else if(gesrure_value == GES_DOWN) //down

{

tryb_toczenia = 1;

liczba_obrotów = 48;

}

else if(gesrure_value == GES_LEFT) //w lewo

{

tryb_toczenia = 2;

liczba_obrotów = 80;

}

else if(gesrure_value == GES_RIGHT) //prawo

{

tryb_toczenia = 3;

liczba_obrotów = 80;

}

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

{

obraz_prądu toczącego = 1;

}

w przeciwnym razie

{

obraz_prądu toczącego = 2;

}

for(i = 0;i

{

przełącznik (tryb toczenia)

{

przypadek 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);

}

przerwa;

przypadek 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);

}

przerwa;

przypadek 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);

}

przerwa;

przypadek 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);

}

przerwa;

}

t5l0_sys_delay_ms(20);

}

toczenie_ostatni_obraz = toczenie_bieżącego_obrazu;

}

}


Czas publikacji: 21 marca 2024 r