[Código Aberto] Sistema Testado de Reconhecimento de Gestos por Intervalo

——Do Fórum de Desenvolvedores DWIN

Nesta edição, apresentaremos o premiado caso de uso de código aberto do Fórum de Desenvolvedores DWIN: o Sistema de Teste de Reconhecimento de Gestos Intervalado. Os engenheiros utilizam uma tela inteligente COF de 7 polegadas para interagir com o sensor de reconhecimento de gestos PAJ7620U2 por meio do núcleo do sistema operacional T5L. Não é necessário usar nenhum botão. Basta aproximar a mão do sensor para acessar a tela de controle do menu e realizar 9 gestos: para cima, para baixo, para a esquerda, para a direita, aproximar, afastar, girar para a esquerda, girar para a direita e acenar.

1. Interface do usuário Mmaterial Display

asd (2)
asd (1)

2.C51 Projeto de Engenharia

O núcleo do sistema operacional T5L interage com o sensor de reconhecimento de gestos PAJ7620U2 para troca de dados, detecta o gesto atual, determina a imagem exibida no momento e a imagem exibida ao virar a página, e realiza a função de troca de páginas por meio de gestos. O código de referência é o seguinte:

void select_operate(uint16_t gesrure_value)

{

se (valor_gesto == GES_UP) //para cima

{

se(valor_selecionado >= 2)

{

valor_selecionado -= 2;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

senão se(gestrure_value == GES_DOWN) //baixo

{

se(valor_selecionado

{

valor_selecionado += 2;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

senão se(gestrure_value == GES_LEFT) //esquerda

{

se(valor_selecionado % 2 == 1)

{

select_value -= 1;

}

dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);

}

senão se(gestrure_value == GES_RIGHT) //direita

{

se(valor_selecionado % 2 == 0)

{

valor_selecionado += 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; //Modo de virada de página: 0 para cima, 1 para baixo, 2 para a esquerda, 3 para a direita.

uint16_t turning_count = 0; //Último número de viradas de página

se(gesto_valor == GES_UP || gesto_valor == GES_DOWN || gesto_valor == GES_LEFT || gesto_valor == GES_RIGHT)

{

se (valor_gesto == GES_UP) //para cima

{

modo_de_virada = 0;

contagem_de_viradas = 48;

}

senão se(gestrure_value == GES_DOWN) //baixo

{

modo_de_virada = 1;

contagem_de_viradas = 48;

}

senão se(gestrure_value == GES_LEFT) //esquerda

{

modo_de_virada = 2;

contagem_de_viradas = 80;

}

senão se(gestrure_value == GES_RIGHT) //direita

{

modo_de_virada = 3;

contagem_de_viradas = 80;

}

se(virando_imagem_atual == 0 || virando_imagem_atual == 2)

{

turning_current_image = 1;

}

outro

{

turning_current_image = 2;

}

para(i = 0;i

{

interruptor(modo_de_giro)

{

caso 0:

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

t5l0_sys_delay_ms(20);

se(virando_última_imagem != 0)

{

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

}

quebrar;

caso 1:

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

t5l0_sys_delay_ms(20);

se(virando_última_imagem != 0)

{

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

}

quebrar;

caso 2:

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

t5l0_sys_delay_ms(20);

se(virando_última_imagem != 0)

{

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

}

quebrar;

caso 3:

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

t5l0_sys_delay_ms(20);

se(virando_última_imagem != 0)

{

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

}

quebrar;

}

t5l0_sys_delay_ms(20);

}

virando_última_imagem = virando_imagem_atual;

}

}


Data da publicação: 21/03/2024