Ελεγκτής#

Εισαγωγή#

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

Το IQ (2ης γενιάς) Brain μπορεί να συνδεθεί είτε με ένα χειριστήριο IQ (2ης γενιάς) είτε με ένα χειριστήριο IQ (1ης γενιάς). Ένα χειριστήριο IQ (1ης γενιάς) πρέπει να διαθέτει εγκατεστημένο ένα μπλε Smart Radio.

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

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

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

Ενέργεια — Ενεργοποίηση ή απενεργοποίηση των διαμορφωμένων ενεργειών του χειριστηρίου.

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

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

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

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

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

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

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

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

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

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

Δράση#

remote_control_code_enabled#

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

Usage:
remote_control_code_enabled = state

Αξία

Περιγραφή

True

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

False

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

# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False

while True:
    if controller.axisA.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axisA.position() < 0:
        drivetrain.drive(REVERSE)
    elif controller.buttonEUp.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

Αποκτητές#

.pressing#

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

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

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

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

Μια μπροστινή και μια πίσω όψη του χειριστηρίου IQ 2ης γενιάς με όλα τα κουμπιά επισημασμένα με κίτρινο χρώμα. Η επιφάνεια του χειριστηρίου περιέχει δύο κουμπιά joystick στην επάνω αριστερή και δεξιά γωνία, με το E πάνω και κάτω κάτω από το αριστερό joystick και το F πάνω και κάτω κάτω από τη δεξιά. Στο πίσω μέρος του χειριστηρίου υπάρχουν το L πάνω και κάτω και το R πάνω και κάτω στην αριστερή και δεξιά πλευρά αντίστοιχα.

Κουμπί

Εντολή

buttonEDown

controller.buttonEDown.pressing() — Το κουμπί E ▼

buttonEUp

controller.buttonEUp.pressing() — Το κουμπί E ▲

buttonFDown

controller.buttonFDown.pressing() — Το κουμπί F ▼

buttonFUp

controller.buttonFUp.pressing() — Το κουμπί F ▲

buttonL3

controller.buttonL3.pressing() — Το κουμπί Αριστερό Joystick, μόνο για το χειριστήριο IQ (2ης γενιάς)

buttonLDown

controller.buttonLDown.pressing() — Το κουμπί L ▼

buttonLUp

controller.buttonLUp.pressing() — Το κουμπί L ▲

buttonR3

controller.buttonR3.pressing() — Το κουμπί Δεξιού Joystick, μόνο για το χειριστήριο IQ (2ης γενιάς)

buttonRDown

controller.buttonRDown.pressing() — Το κουμπί R ▼

buttonRUp

controller.buttonRUp.pressing() — Το κουμπί R ▲

Παράμετροι

Περιγραφή

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

# Turn right while E Up is held
while True:
    if controller.buttonEUp.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

.position#

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

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

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

Το χειριστήριο IQ 2ης γενιάς με τους τέσσερις άξονες του joystick επισημασμένους. Στο αριστερό joystick, ο άξονας A είναι κάθετος και ο άξονας B είναι οριζόντιος. Στο δεξί joystick, ο άξονας C είναι οριζόντιος και ο άξονας D είναι κάθετος.

Αξονας

Εντολή

axisA

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

axisB

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

axisC

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

axisD

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

Παράμετροι

Περιγραφή

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

# Turn with the left joystick
remote_control_code_enabled = False

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

    wait(20, MSEC)

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

.pressed#

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

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

Μια μπροστινή και μια πίσω όψη του χειριστηρίου IQ 2ης γενιάς με όλα τα κουμπιά επισημασμένα με κίτρινο χρώμα. Η επιφάνεια του χειριστηρίου περιέχει δύο κουμπιά joystick στην επάνω αριστερή και δεξιά γωνία, με το E πάνω και κάτω κάτω από το αριστερό joystick και το F πάνω και κάτω κάτω από τη δεξιά. Στο πίσω μέρος του χειριστηρίου υπάρχουν το L πάνω και κάτω και το R πάνω και κάτω στην αριστερή και δεξιά πλευρά αντίστοιχα.

Κουμπί

Εντολή

buttonEDown

controller.buttonEDown.pressed(callback, arg) — Το κουμπί E ▼

buttonEUp

controller.buttonEUp.pressed(callback, arg) — Το κουμπί E ▲

buttonFDown

controller.buttonFDown.pressed(callback, arg) — Το κουμπί F ▼

buttonFUp

controller.buttonFUp.pressed(callback, arg) — Το κουμπί F ▲

buttonL3

controller.buttonL3.pressed(callback, arg) — Το κουμπί Αριστερό Joystick, μόνο για το χειριστήριο IQ (2ης γενιάς)

buttonLDown

controller.buttonLDown.pressed(callback, arg) — Το κουμπί L ▼

buttonLUp

controller.buttonLUp.pressed(callback, arg) — Το κουμπί L ▲

buttonR3

controller.buttonR3.pressed(callback, arg) — Το κουμπί Δεξί Joystick, μόνο για το χειριστήριο IQ (2ης γενιάς)

buttonRDown

controller.buttonRDown.pressed(callback, arg) — Το κουμπί R ▼

buttonRUp

controller.buttonRUp.pressed(callback, arg) — Το κουμπί R ▲

Παράμετρος

Περιγραφή

callback

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

arg

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

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

controller.buttonEUp.pressed(drive_forward)

.released#

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

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

Μια μπροστινή και μια πίσω όψη του χειριστηρίου IQ 2ης γενιάς με όλα τα κουμπιά επισημασμένα με κίτρινο χρώμα. Η επιφάνεια του χειριστηρίου περιέχει δύο κουμπιά joystick στην επάνω αριστερή και δεξιά γωνία, με το E πάνω και κάτω κάτω από το αριστερό joystick και το F πάνω και κάτω κάτω από τη δεξιά. Στο πίσω μέρος του χειριστηρίου υπάρχουν το L πάνω και κάτω και το R πάνω και κάτω στην αριστερή και δεξιά πλευρά αντίστοιχα.

Κουμπί

Εντολή

buttonEDown

controller.buttonEDown.released(callback, arg) — Το κουμπί E ▼

buttonEUp

controller.buttonEUp.released(callback, arg) — Το κουμπί E ▲

buttonFDown

controller.buttonFDown.released(callback, arg) — Το κουμπί F ▼

buttonFUp

controller.buttonFUp.released(callback, arg) — Το κουμπί F ▲

buttonL3

controller.buttonL3.released(callback, arg) — Το κουμπί Αριστερό Joystick, μόνο για το χειριστήριο IQ (2ης γενιάς)

buttonLDown

controller.buttonLDown.released(callback, arg) — Το κουμπί L ▼

buttonLUp

controller.buttonLUp.released(callback, arg) — Το κουμπί L ▲

buttonR3

controller.buttonR3.released(callback, arg) — Το κουμπί Δεξί Joystick, μόνο για το χειριστήριο IQ (2ης γενιάς)

buttonRDown

controller.buttonRDown.released(callback, arg) — Το κουμπί R ▼

buttonRUp

controller.buttonRUp.released(callback, arg) — Το κουμπί R ▲

Παράμετρος

Περιγραφή

callback

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

arg

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

# Stop driving when E Up is released
def stop_driving():
    drivetrain.stop()

controller.buttonEUp.released(stop_driving)

.changed#

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

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

Το χειριστήριο IQ 2ης γενιάς με τους τέσσερις άξονες του joystick επισημασμένους. Στο αριστερό joystick, ο άξονας A είναι κάθετος και ο άξονας B είναι οριζόντιος. Στο δεξί joystick, ο άξονας C είναι οριζόντιος και ο άξονας D είναι κάθετος.

Αξονας

Εντολή

axisA

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

axisB

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

axisC

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

axisD

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

Παράμετρος

Περιγραφή

callback

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

arg

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

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

controller.axisD.changed(beep)

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

Controller#

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

Usage:
Controller()

Παράμετροι

Περιγραφή

Αυτός ο κατασκευαστής δεν έχει παραμέτρους.

# Create a Controller object
my_controller = Controller()