——จากฟอรัมนักพัฒนา DWIN
ในฉบับนี้ เราจะแนะนำกรณีโอเพ่นซอร์สที่ได้รับรางวัลของฟอรัมนักพัฒนา DWIN – ระบบทดสอบการรู้จำท่าทางแบบช่วง วิศวกรใช้หน้าจออัจฉริยะ COF ขนาด 7 นิ้วเพื่อโต้ตอบกับเซ็นเซอร์จดจำท่าทาง PAJ7620U2 ผ่านทางแกนระบบปฏิบัติการ T5L ไม่จำเป็นต้องใช้ปุ่มใดๆ คุณเพียงแค่ต้องวางมือไว้ใกล้กับเซ็นเซอร์เพื่อเข้าสู่หน้าจอควบคุมระบบเมนู และรับเอฟเฟกต์ท่าทาง 9 แบบ ได้แก่ ขึ้น, ลง, ซ้าย, ขวา, ปิด, ห่างไกล, หมุนซ้าย, หมุนขวา และโบกมือ
1.UIมวัสดุดีกำลังเล่น
![เอเอสดี (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07846d9de96799.png)
![เอเอสดี (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f07860ad7d49985.png)
2.C51 การออกแบบทางวิศวกรรม
แกนระบบปฏิบัติการ T5L โต้ตอบกับเซ็นเซอร์รู้จำท่าทาง PAJ7620U2 สำหรับการโต้ตอบข้อมูล ตรวจจับท่าทางปัจจุบัน กำหนดรูปภาพที่แสดงอยู่ในปัจจุบันและรูปภาพที่แสดงโดยการเปลี่ยนหน้า และตระหนักถึงฟังก์ชันการสลับหน้าโดยใช้ท่าทาง รหัสอ้างอิงมีดังนี้:
โมฆะ select_operate (uint16_t gesrure_value)
-
ถ้า (gesrure_value == GES_UP) //up
-
ถ้า(select_value >= 2)
-
select_value -= 2;
-
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
-
อื่นถ้า (gesrure_value == GES_DOWN) //down
-
ถ้า (select_value
-
select_value += 2;
-
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
-
อื่นถ้า (gesrure_value == GES_LEFT) //left
-
ถ้า(select_value % 2 == 1)
-
select_value -= 1;
-
dgus_show_variate_icon_location_set(SELECT_DESCRIBE_RECTANGLE, select_pos[select_value][0], select_pos[select_value][1]);
-
อื่นถ้า (gesrure_value == GES_RIGHT) //right
-
ถ้า(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]);
-
-
โมฆะ Turn_operate (uint16_t gesrure_value)
-
uint16_t ฉัน = 0;
uint8_t เปลี่ยนโหมด = 0; -โหมดเปลี่ยนหน้า 0 ขึ้น 1 ลง 2 ซ้าย 3 ขวา
uint16_t จำนวนการหมุน = 0; -จำนวนหน้าสุดท้ายที่เปลี่ยน
ถ้า (gesrure_value == GES_UP || gesrure_value == GES_DOWN || gesrure_value == GES_LEFT || gesrure_value == GES_RIGHT)
-
ถ้า (gesrure_value == GES_UP) //up
-
เปลี่ยน_โหมด = 0;
เทิร์น_นับ = 48;
-
อื่นถ้า (gesrure_value == GES_DOWN) //down
-
เปลี่ยน_โหมด = 1;
เทิร์น_นับ = 48;
-
อื่นถ้า (gesrure_value == GES_LEFT) //left
-
เปลี่ยน_โหมด = 2;
Turn_count = 80;
-
อื่นถ้า (gesrure_value == GES_RIGHT) //right
-
เปลี่ยน_โหมด = 3;
Turn_count = 80;
-
ถ้า (turning_current_image == 0 || Turning_current_image == 2)
-
Turn_current_image = 1;
-
อื่น
-
Turn_current_image = 2;
-
สำหรับ(i = 0;i
-
สวิตช์ (เปลี่ยนโหมด)
-
กรณีที่ 0:
dgus_show_variate_icon_location_set(turning_current_image * 0x100 + 0x2000, 0, 480 - i * 10);
t5l0_sys_delay_ms(20);
ถ้า (turn_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);
ถ้า (turn_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);
ถ้า (turn_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);
ถ้า (turn_last_image != 0)
-
dgus_show_variate_icon_location_set(turning_last_image * 0x100 + 0x2000, 0 + i * 10, 0);
-
หยุดพัก;
-
t5l0_sys_delay_ms(20);
-
Turn_last_image = Turn_current_image;
-
-
เวลาโพสต์: 21 มี.ค. 2024