[Відкритий код] Система перевірки інтервального розпізнавання жестів

——З форуму розробників DWIN

У цьому випуску ми представимо відзначений нагородами кейс з відкритим вихідним кодом Форуму розробників DWIN – Interval Gesture Recognition Test System. Інженери використовують 7-дюймовий розумний екран COF для взаємодії з датчиком розпізнавання жестів PAJ7620U2 через ядро ​​ОС T5L. Немає необхідності використовувати жодні кнопки. Вам потрібно лише піднести руку до сенсора, щоб увійти в екран керування системою меню та реалізувати 9 ефектів жестів: вгору, вниз, ліворуч, праворуч, близько, далеко, обертання ліворуч, обертання праворуч і помах.

1.UIМматеріалДisplay

asd (2)
asd (1)

2.C51 Інженерний дизайн

Ядро ОС T5L взаємодіє з датчиком розпізнавання жестів PAJ7620U2 для взаємодії з даними, визначає поточний жест, визначає зображення, що відображається в даний момент, і зображення, яке відображається при перегортанні сторінки, і реалізує функцію перемикання сторінок за допомогою жестів. Довідковий код виглядає наступним чином:

void select_operate(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //вгору

{

if(select_value >= 2)

{

вибрати_значення -= 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) //вниз

{

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) //ліворуч

{

if(select_value % 2 == 1)

{

значення_вибору -= 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) //правильно

{

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 turning_mode = 0; //Режим перегортання сторінок, 0 вгору, 1 вниз, 2 вліво, 3 вправо

uint16_t turning_count = 0; //Остання кількість перегортань сторінки

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

{

if(gesrure_value == GES_UP) //вгору

{

turning_mode = 0;

turning_count = 48;

}

else if(gesrure_value == GES_DOWN) //вниз

{

turning_mode = 1;

turning_count = 48;

}

else if(gesrure_value == GES_LEFT) //ліворуч

{

turning_mode = 2;

turning_count = 80;

}

else if(gesrure_value == GES_RIGHT) //правильно

{

turning_mode = 3;

turning_count = 80;

}

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

{

turning_current_image = 1;

}

інше

{

turning_current_image = 2;

}

for(i = 0;i

{

перемикач (режим повороту)

{

випадок 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);

}

перерва;

випадок 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);

}

перерва;

випадок 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);

}

перерва;

випадок 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);

}

перерва;

}

t5l0_sys_delay_ms(20);

}

turning_last_image = turning_current_image;

}

}


Час публікації: 21 березня 2024 р