[Mã nguồn mở] Hệ thống kiểm tra nhận dạng cử chỉ theo khoảng thời gian

--Từ Diễn đàn nhà phát triển DWIN

Trong số này, chúng tôi sẽ giới thiệu trường hợp nguồn mở từng đoạt giải thưởng của Diễn đàn nhà phát triển DWIN – Hệ thống kiểm tra nhận dạng cử chỉ theo khoảng thời gian. Các kỹ sư sử dụng màn hình thông minh COF 7 inch để tương tác với cảm biến nhận dạng cử chỉ PAJ7620U2 thông qua lõi T5L OS. Không cần phải sử dụng bất kỳ nút nào. Bạn chỉ cần đưa tay lại gần cảm biến để vào màn hình điều khiển hệ thống menu và nhận ra 9 hiệu ứng cử chỉ lên, xuống, trái, phải, gần, xa, xoay trái, xoay phải và vẫy tay.

1.UIMvật liệuDchơi

asd (2)
asd (1)

2.C51 Thiết kế kỹ thuật

Lõi hệ điều hành T5L tương tác với cảm biến nhận dạng cử chỉ PAJ7620U2 để tương tác dữ liệu, phát hiện cử chỉ hiện tại, xác định hình ảnh hiện đang hiển thị và hình ảnh hiển thị bằng cách lật trang và nhận ra chức năng chuyển trang bằng cử chỉ. Mã tham chiếu như sau:

void select_Opera(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //lên

{

if(select_value >= 2)

{

chọn_value -= 2;

}

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

}

khác nếu(gesrure_value == GES_DOWN) //xuống

{

if(select_value

{

chọn_giá trị += 2;

}

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

}

khác nếu(gesrure_value == GES_LEFT) //trái

{

if(select_value % 2 == 1)

{

chọn_value -= 1;

}

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

}

khác nếu(gesrure_value == GES_RIGHT) //đúng

{

if(select_value % 2 == 0)

{

chọn_giá trị += 1;

}

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

}

}

 

void Turn_Opera(uint16_t gesrure_value)

{

uint16_t i = 0;

uint8_t Turn_mode = 0; //Chế độ lật trang, 0 lên, 1 xuống, 2 trái, 3 phải

uint16_t Turn_count = 0; //Số lần lật trang cuối cùng

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

{

if(gesrure_value == GES_UP) //lên

{

chế độ quay = 0;

lượt_count = 48;

}

khác nếu(gesrure_value == GES_DOWN) //xuống

{

chế độ quay = 1;

lượt_count = 48;

}

khác nếu(gesrure_value == GES_LEFT) //trái

{

chế độ quay = 2;

số lượt quay = 80;

}

khác nếu(gesrure_value == GES_RIGHT) //đúng

{

chế độ quay = 3;

số lượt quay = 80;

}

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

{

quay_current_image = 1;

}

khác

{

quay_current_image = 2;

}

for(i = 0;i

{

chuyển đổi(turn_mode)

{

trường hợp 0:

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

t5l0_sys_delay_ms(20);

if(turn_last_image != 0)

{

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

}

phá vỡ;

trường hợp 1:

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

t5l0_sys_delay_ms(20);

if(turn_last_image != 0)

{

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

}

phá vỡ;

trường hợp 2:

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

t5l0_sys_delay_ms(20);

if(turn_last_image != 0)

{

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

}

phá vỡ;

trường hợp 3:

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

t5l0_sys_delay_ms(20);

if(turn_last_image != 0)

{

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

}

phá vỡ;

}

t5l0_sys_delay_ms(20);

}

quay_last_image = quay_current_image;

}

}


Thời gian đăng: 21-03-2024