[Ανοικτή πηγή] Σύστημα δοκιμής αναγνώρισης χειρονομίας διαστήματος

——Από το Φόρουμ προγραμματιστών DWIN

Σε αυτό το τεύχος, θα παρουσιάσουμε τη βραβευμένη περίπτωση ανοιχτού κώδικα του Φόρουμ προγραμματιστών DWIN – Σύστημα δοκιμής αναγνώρισης χειρονομίας διαστήματος. Οι μηχανικοί χρησιμοποιούν μια έξυπνη οθόνη COF 7 ιντσών για να αλληλεπιδράσουν με τον αισθητήρα αναγνώρισης χειρονομιών PAJ7620U2 μέσω του πυρήνα του λειτουργικού συστήματος T5L. Δεν χρειάζεται να χρησιμοποιήσετε κανένα κουμπί. Χρειάζεται μόνο να βάλετε το χέρι σας κοντά στον αισθητήρα για να μπείτε στην οθόνη ελέγχου του συστήματος μενού και να συνειδητοποιήσετε 9 εφέ χειρονομίας πάνω, κάτω, αριστερά, δεξιά, κοντά, μακριά, αριστερή περιστροφή, δεξιά περιστροφή και κύμα.

1.UIΜυλικόρεείναι το παιχνίδι

asd (2)
asd (1)

2.C51 Μηχανικός Σχεδιασμός

Ο πυρήνας του λειτουργικού συστήματος T5L αλληλεπιδρά με τον αισθητήρα αναγνώρισης χειρονομιών PAJ7620U2 για αλληλεπίδραση δεδομένων, ανιχνεύει την τρέχουσα κίνηση, καθορίζει την τρέχουσα εικόνα και την εικόνα που εμφανίζεται γυρίζοντας τη σελίδα και αντιλαμβάνεται τη λειτουργία εναλλαγής σελίδων χρησιμοποιώντας κινήσεις. Ο κωδικός αναφοράς είναι ο εξής:

void select_operate(uint16_t gesrure_value)

{

if(gesrure_value == GES_UP) //επάνω

{

if(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]);

}

αλλιώς if(gesrure_value == GES_DOWN) //κάτω

{

if(επιλογή_τιμής

{

select_value += 2;

}

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

}

αλλιώς if(gesrure_value == GES_LEFT) //αριστερά

{

if(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]);

}

αλλιώς 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;

}

αλλιώς if(gesrure_value == GES_DOWN) //κάτω

{

turning_mode = 1;

turning_count = 48;

}

αλλιώς if(gesrure_value == GES_LEFT) //αριστερά

{

turning_mode = 2;

turning_count = 80;

}

αλλιώς 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