Ελεγκτής#

Εισαγωγή#

Το χειριστήριο V5 διαθέτει κουμπιά, δύο joystick, έναν κινητήρα rumble και μια οθόνη. Οι μέθοδοι του χειριστηρίου μπορούν να χρησιμοποιηθούν για τον έλεγχο των πατημάτων κουμπιών, την ανάγνωση της κίνησης του joystick, το rumble του χειριστηρίου, την ενεργοποίηση ή απενεργοποίηση των διαμορφωμένων ενεργειών του χειριστηρίου, την εκτέλεση λειτουργιών όταν συμβαίνουν συμβάντα του χειριστηρίου ή την εμφάνιση κειμένου στην οθόνη του χειριστηρίου.

Οι διαμορφωμένες ενέργειες ελεγκτή είναι συμπεριφορές ελεγκτή που ορίζονται στο μενού Συσκευές. Χρησιμοποιήστε την εντολή remote_control_code_enabled για να ενεργοποιήσετε ή να απενεργοποιήσετε προσωρινά αυτές τις διαμορφωμένες ενέργειες κατά τη διάρκεια ενός έργου.

Αυτή η σελίδα χρησιμοποιεί controller_1 ως παράδειγμα ονόματος ελεγκτή. Αντικαταστήστε το με το δικό σας διαμορφωμένο όνομα, όπως απαιτείται.

Παρακάτω είναι μια λίστα με όλες τις διαθέσιμες μεθόδους:

Ενέργειες — Εκτελέστε Rumble στο χειριστήριο ή ενεργοποιήστε/απενεργοποιήστε τις διαμορφωμένες ενέργειες του χειριστηρίου.

  • rumble — Αναπαράγει ένα μοτίβο βουητού στο χειριστήριο.

  • remote_control_code_enabled — Ενεργοποιεί ή απενεργοποιεί τις ενέργειες του ελεγκτή που έχουν ρυθμιστεί στο μενού Συσκευές.

Οθόνη — Εμφάνιση κειμένου και αριθμών στην οθόνη του χειριστηρίου.

  • print — Εμφανίζει κείμενο, αριθμούς ή τιμές μεταβλητών στην οθόνη Ελεγκτή.

  • set_cursor — Μετακινεί τον κέρσορα σε μια καθορισμένη γραμμή και στήλη στην οθόνη Ελεγκτή.

  • column — Επιστρέφει την τρέχουσα στήλη δρομέα στην οθόνη Ελεγκτή.

  • row — Επιστρέφει την τρέχουσα γραμμή δρομέα στην οθόνη Ελεγκτή.

  • clear_screen — Καθαρίζει την οθόνη του Ελεγκτή.

  • clear_row — Διαγράφει μία γραμμή στην οθόνη Ελεγκτή.

  • next_row — Μετακινεί τον κέρσορα στην επόμενη γραμμή στην οθόνη Ελεγκτή.

Λήψη κουμπιών — Ανάγνωση καταστάσεων κουμπιών και θέσεων joystick.

  • .pressing — Επιστρέφει εάν πατιέται ένα συγκεκριμένο κουμπί.

  • .position — Επιστρέφει τη θέση ενός καθορισμένου άξονα joystick.

Επανακλήσεις — Εκτέλεση συναρτήσεων όταν αλλάζει η είσοδος του ελεγκτή.

  • .pressed — Εκτελεί μια λειτουργία όταν πατηθεί ένα συγκεκριμένο κουμπί.

  • .released — Εκτελεί μια συνάρτηση όταν απελευθερωθεί ένα καθορισμένο κουμπί.

  • .changed — Εκτελεί μια συνάρτηση όταν η θέση του joystick αλλάζει κατά μήκος ενός καθορισμένου άξονα.

Κατασκευαστής — Δημιουργήστε χειροκίνητα ένα αντικείμενο Ελεγκτή.

  • Controller — Δημιουργεί ένα αντικείμενο Ελεγκτή.

Ενέργειες#

rumble#

rumble αναπαράγει ένα μοτίβο rumble στο Controller. Στη συμβολοσειρά μοτίβων, οι τελείες είναι σύντομα rumbles, οι παύλες είναι μεγάλα rumbles και τα κενά είναι παύσεις.

Usage:
controller_1.rumble(pattern)

Παράμετρος

Περιγραφή

pattern

Μια συμβολοσειρά φτιαγμένη από τελείες, παύλες και κενά που αναπαριστούν το μοτίβο βουητού.

# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")

remote_control_code_enabled#

remote_control_code_enabled είναι μια μεταβλητή που ενεργοποιεί ή απενεργοποιεί τις ενέργειες του ελεγκτή που έχουν ρυθμιστεί στο μενού Συσκευές. Οι ενέργειες που έχουν ρυθμιστεί από τον ελεγκτή είναι ενεργοποιημένες από προεπιλογή.

Usage:
remote_control_code_enabled = state

Αξία

Περιγραφή

True

Ενεργοποιεί ενέργειες που έχουν ρυθμιστεί από τον ελεγκτή.

False

Απενεργοποιεί τις ενέργειες που έχουν ρυθμιστεί από τον ελεγκτή.

# Drive forward or backward using the left joystick
remote_control_code_enabled = False

while True:
    if controller_1.axis3.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller_1.axis3.position() < 0:
        drivetrain.drive(REVERSE)
    # Press A to use Controller configured actions again
    elif controller_1.buttonA.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

Οθόνη#

Η οθόνη του ελεγκτή V5 έχει 3 γραμμές και 19 στήλες για την εμφάνιση κειμένου και αριθμών.

Ένα στιγμιότυπο οθόνης της οθόνης του ελεγκτή V5, που δείχνει τις γραμμές και τις στήλες στην εκτυπώσιμη περιοχή. Γραμμή 1 Η στήλη 1 ξεκινά από την επάνω αριστερή γωνία και η γραμμή 3 και η στήλη 19 βρίσκονται στην κάτω δεξιά γωνία.

print#

controller_1.screen.print εμφανίζει κείμενο, αριθμούς ή τιμές μεταβλητών στην οθόνη Controller χρησιμοποιώντας την τρέχουσα θέση του κέρσορα.

Usage:
controller_1.screen.print(value, sep, precision)

Παράμετρος

Περιγραφή

value

Το κείμενο, ο αριθμός ή η τιμή μεταβλητής που θα εμφανίζεται στην οθόνη Ελεγκτή. Περισσότερες από μία τιμές μπορούν να εκτυπωθούν διαχωρίζοντας τις τιμές με κόμματα.

sep

Προαιρετικό. Μια συμβολοσειρά που θα τοποθετηθεί μεταξύ τιμών. Αυτή πρέπει να γραφτεί ως όρισμα λέξης-κλειδιού, όπως sep=”- “. Η προεπιλογή είναι ” “.

precision

Προαιρετικό. Ο αριθμός των δεκαδικών ψηφίων που θα εμφανίζονται κατά την εκτύπωση απλών αριθμών. Αυτό πρέπει να γραφτεί ως όρισμα λέξης-κλειδιού, όπως precision=2Η προεπιλογή είναι 2.

# Print a number on the Controller screen
controller_1.screen.print(1)

# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")

# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)

set_cursor#

set_cursor μετακινεί τον κέρσορα σε μια καθορισμένη γραμμή και στήλη στην οθόνη Controller. Η επόμενη εκτυπωμένη τιμή θα εμφανιστεί σε αυτήν τη θέση.

Usage:
controller_1.screen.set_cursor(row, col)

Παράμετρος

Περιγραφή

row

Η γραμμή του κέρσορα, από 1 έως 3.

col

Η στήλη του δρομέα, από 1 έως 19.

# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")

column#

Η στήλη column επιστρέφει την τρέχουσα στήλη όπου θα εκτυπωθεί κείμενο στην οθόνη Ελεγκτή.

Usage:
controller_1.screen.column()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())

row#

Η γραμμή row επιστρέφει την τρέχουσα γραμμή όπου θα εκτυπωθεί κείμενο στην οθόνη Ελεγκτή.

Usage:
controller_1.screen.row()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())

clear_screen#

clear_screen καθαρίζει την οθόνη Ελεγκτή και μετακινεί τον κέρσορα πίσω στην αρχική θέση.

Usage:
controller_1.screen.clear_screen()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()

clear_row#

clear_row διαγράφει μία γραμμή στην οθόνη Ελεγκτή.

Usage:
controller_1.screen.clear_row(row)

Παράμετρος

Περιγραφή

row

Προαιρετικό. Η γραμμή που θα διαγραφεί, από 1 έως 3Εάν δεν παρέχεται γραμμή, η τρέχουσα γραμμή του δρομέα διαγράφεται.

# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)

next_row#

next_row μετακινεί τον κέρσορα στη στήλη 1 στην επόμενη γραμμή της οθόνης Ελεγκτή. Η επόμενη εκτυπωμένη τιμή θα εμφανιστεί σε αυτήν τη γραμμή.

Usage:
controller_1.screen.next_row()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")

Αποκτητές#

.pressing#

.pressing επιστρέφει εάν πατιέται αυτήν τη στιγμή ένα συγκεκριμένο κουμπί στο Controller. Αυτή η μέθοδος πρέπει να κληθεί σε ένα συγκεκριμένο αντικείμενο κουμπιού, όπως controller_1.buttonA.

  • True — Πατιέται το καθορισμένο κουμπί.

  • False — Το καθορισμένο κουμπί δεν πατιέται.

Χρήση:
Ένα από τα διαθέσιμα αντικείμενα κουμπιών μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:

Η μπροστινή και η πίσω πλευρά του χειριστηρίου V5 με τα κουμπιά επισημασμένα με κίτρινο χρώμα. Στην επιφάνεια του χειριστηρίου υπάρχουν κουμπιά βέλους πάνω, κάτω, αριστερά και δεξιά στα αριστερά και κουμπιά X, A, B, Y δεξιόστροφα από τις 12 η ώρα στα δεξιά. Στην πίσω πλευρά του χειριστηρίου υπάρχουν L1, L2, R1 και R2 στην αριστερή και δεξιά πλευρά αντίστοιχα.

Κουμπί

Εντολή

buttonA

controller_1.buttonA.pressing() — Το κουμπί A

buttonB

controller_1.buttonB.pressing() — Το κουμπί B

buttonX

controller_1.buttonX.pressing() — Το κουμπί X

buttonY

controller_1.buttonY.pressing() — Το κουμπί Y

buttonDown

controller_1.buttonDown.pressing() — Το κουμπί Κάτω

buttonUp

controller_1.buttonUp.pressing() — Το κουμπί Πάνω

buttonLeft

controller_1.buttonLeft.pressing() — Το κουμπί Αριστερά

buttonRight

controller_1.buttonRight.pressing() — Το Δεξί κουμπί

buttonL1

controller_1.buttonL1.pressing() — Το κουμπί L1

buttonL2

controller_1.buttonL2.pressing() — Το κουμπί L2

buttonR1

controller_1.buttonR1.pressing() — Το κουμπί R1

buttonR2

controller_1.buttonR2.pressing() — Το κουμπί R2

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Turn right while L1 is pressed
while True:
    if controller_1.buttonL1.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

.position#

.position επιστρέφει τη θέση ενός άξονα του joystick ως αριθμό από -100 έως 100.

Αυτή η μέθοδος πρέπει να κληθεί σε ένα συγκεκριμένο αντικείμενο άξονα, όπως controller_1.axis1.

Χρήση:
Ένα από τα διαθέσιμα αντικείμενα άξονα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:

Ένα χειριστήριο VEX V5 με τους άξονες γύρω από τα joystick να έχουν επισημανθεί. Οι άξονες 1 και 2 βρίσκονται γύρω από το δεξί joystick και οι άξονες 3 και 4 γύρω από το αριστερό.

Αξονας

Εντολή

axis1

controller_1.axis1.position() — Ο οριζόντιος άξονας του δεξιού joystick

axis2

controller_1.axis2.position() — Ο κάθετος άξονας του δεξιού joystick

axis3

controller_1.axis3.position() — Ο κάθετος άξονας του αριστερού joystick

axis4

controller_1.axis4.position() — Ο οριζόντιος άξονας του αριστερού joystick

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller_1.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller_1.axis4.position() < -10:
        drivetrain.turn(LEFT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

Επανακλήσεις#

.pressed#

.pressed εκτελεί μια λειτουργία όταν πατηθεί το καθορισμένο κουμπί. Μόλις χρησιμοποιηθεί, η λειτουργία θα εκτελείται αυτόματα κάθε φορά που πατιέται το συγκεκριμένο κουμπί.

Χρήση:
Ένα από τα διαθέσιμα αντικείμενα κουμπιών μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:

Η μπροστινή και η πίσω πλευρά του χειριστηρίου V5 με τα κουμπιά επισημασμένα με κίτρινο χρώμα. Στην επιφάνεια του χειριστηρίου υπάρχουν κουμπιά βέλους πάνω, κάτω, αριστερά και δεξιά στα αριστερά και κουμπιά X, A, B, Y δεξιόστροφα από τις 12 η ώρα στα δεξιά. Στην πίσω πλευρά του χειριστηρίου υπάρχουν L1, L2, R1 και R2 στην αριστερή και δεξιά πλευρά αντίστοιχα.

Κουμπί

Εντολή

buttonA

controller_1.buttonA.pressed(callback, arg) — Το κουμπί A

buttonB

controller_1.buttonB.pressed(callback, arg) — Το κουμπί B

buttonX

controller_1.buttonX.pressed(callback, arg) — Το κουμπί X

buttonY

controller_1.buttonY.pressed(callback, arg) — Το κουμπί Y

buttonDown

controller_1.buttonDown.pressed(callback, arg) — Το κουμπί Κάτω

buttonUp

controller_1.buttonUp.pressed(callback, arg) — Το κουμπί Επάνω

buttonLeft

controller_1.buttonLeft.pressed(callback, arg) — Το κουμπί Αριστερά

buttonRight

controller_1.buttonRight.pressed(callback, arg) — Το κουμπί Δεξιά

buttonL1

controller_1.buttonL1.pressed(callback, arg) — Το κουμπί L1

buttonL2

controller_1.buttonL2.pressed(callback, arg) — Το κουμπί L2

buttonR1

controller_1.buttonR1.pressed(callback, arg) — Το κουμπί R1

buttonR2

controller_1.buttonR2.pressed(callback, arg) — Το κουμπί R2

Παράμετρος

Περιγραφή

callback

Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που πατιέται το καθορισμένο κουμπί.

arg

Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες.

# Drive forward when A is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

controller_1.buttonA.pressed(drive_forward)

.released#

.released εκτελεί μια συνάρτηση όταν απελευθερωθεί το καθορισμένο κουμπί. Μόλις χρησιμοποιηθεί, η συνάρτηση θα εκτελείται αυτόματα κάθε φορά που απελευθερώνεται το συγκεκριμένο κουμπί.

Χρήση:
Ένα από τα διαθέσιμα αντικείμενα κουμπιών μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:

Η μπροστινή και η πίσω πλευρά του χειριστηρίου V5 με τα κουμπιά επισημασμένα με κίτρινο χρώμα. Στην επιφάνεια του χειριστηρίου υπάρχουν κουμπιά βέλους πάνω, κάτω, αριστερά και δεξιά στα αριστερά και κουμπιά X, A, B, Y δεξιόστροφα από τις 12 η ώρα στα δεξιά. Στην πίσω πλευρά του χειριστηρίου υπάρχουν L1, L2, R1 και R2 στην αριστερή και δεξιά πλευρά αντίστοιχα.

Κουμπί

Εντολή

buttonA

controller_1.buttonA.released(callback, arg) — Το κουμπί A

buttonB

controller_1.buttonB.released(callback, arg) — Το κουμπί B

buttonX

controller_1.buttonX.released(callback, arg) — Το κουμπί X

buttonY

controller_1.buttonY.released(callback, arg) — Το κουμπί Y

buttonDown

controller_1.buttonDown.released(callback, arg) — Το κουμπί Κάτω

buttonUp

controller_1.buttonUp.released(callback, arg) — Το κουμπί Επάνω

buttonLeft

controller_1.buttonLeft.released(callback, arg) — Το κουμπί Αριστερά

buttonRight

controller_1.buttonRight.released(callback, arg) — Το κουμπί Δεξιά

buttonL1

controller_1.buttonL1.released(callback, arg) — Το κουμπί L1

buttonL2

controller_1.buttonL2.released(callback, arg) — Το κουμπί L2

buttonR1

controller_1.buttonR1.released(callback, arg) — Το κουμπί R1

buttonR2

controller_1.buttonR2.released(callback, arg) — Το κουμπί R2

Παράμετρος

Περιγραφή

callback

Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που απελευθερώνεται το καθορισμένο κουμπί.

arg

Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες.

# Drive backward when A is released
def back_up():
    drivetrain.drive_for(REVERSE, 100, MM)

controller_1.buttonA.released(back_up)

.changed#

.changed εκτελεί μια συνάρτηση όταν η θέση του joystick αλλάζει κατά μήκος του καθορισμένου άξονα. Μόλις χρησιμοποιηθεί, η συνάρτηση θα εκτελείται αυτόματα κάθε φορά που αλλάζει η θέση του joystick κατά μήκος αυτού του άξονα.

Χρήση:
Ένα από τα διαθέσιμα αντικείμενα άξονα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:

Ένα χειριστήριο VEX V5 με τους άξονες γύρω από τα joystick να έχουν επισημανθεί. Οι άξονες 1 και 2 βρίσκονται γύρω από το δεξί joystick και οι άξονες 3 και 4 γύρω από το αριστερό.

Αξονας

Εντολή

axis1

controller_1.axis1.changed(callback, arg) — Ο οριζόντιος άξονας του δεξιού joystick

axis2

controller_1.axis2.changed(callback, arg) — Ο κάθετος άξονας του δεξιού joystick

axis3

controller_1.axis3.changed(callback, arg) — Ο κάθετος άξονας του αριστερού joystick

axis4

controller_1.axis4.changed(callback, arg) — Ο οριζόντιος άξονας του αριστερού joystick

Παράμετρος

Περιγραφή

callback

Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που αλλάζει η θέση του joystick κατά μήκος του καθορισμένου άξονα.

arg

Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες.

# Play a sound when the left joystick moves
def tada_sound():
    brain.play_sound(SoundType.TADA)

controller_1.axis4.changed(tada_sound)

Κατασκευαστές#

Controller#

Controller δημιουργεί ένα αντικείμενο Ελεγκτή. Η χειροκίνητη δημιουργία ενός αντικειμένου Ελεγκτή απαιτείται μόνο κατά τη διαμόρφωση ενός ελεγκτή εκτός του VEXcode.

Usage:
Controller(controller_type)

Παράμετρος

Περιγραφή

controller_type

Προαιρετικό. Ο τύπος ελεγκτή που θα δημιουργηθεί: PRIMARY για τον κύριο ελεγκτή που συνδέεται με τον εγκέφαλο ή PARTNER για τον δεύτερο ελεγκτή που συνδέεται με τον εγκέφαλο.

# Create the primary Controller
controller_1 = Controller(PRIMARY)

# Create a partner Controller
controller_2 = Controller(PARTNER)