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