Ελεγκτής#
Εισαγωγή#
Το χειριστήριο VEX AIM One Stick διαθέτει τέσσερα κουμπιά και ένα joystick. Το joystick μπορεί να κινηθεί κατά μήκος δύο αξόνων και μπορεί επίσης να πατηθεί σαν κουμπί.
Οι μέθοδοι του ελεγκτή μπορούν να χρησιμοποιηθούν για τον έλεγχο του πατήματος κουμπιών, την ανάγνωση της κίνησης του joystick, τον έλεγχο της σύνδεσης και της κατάστασης της μπαταρίας ή την εκτέλεση λειτουργιών όταν συμβαίνουν συμβάντα του ελεγκτή.
Παρακάτω είναι μια λίστα με όλες τις μεθόδους:
Λήψη δεδομένων — Ανάγνωση κουμπιού, joystick, σύνδεσης και κατάστασης μπαταρίας.
.pressing— Επιστρέφει εάν πατιέται ένα συγκεκριμένο κουμπί..position— Επιστρέφει τη θέση του joystick κατά μήκος ενός καθορισμένου άξονα.is_connected— Επιστρέφει εάν ο ελεγκτής είναι συνδεδεμένος.get_battery_level— Επιστρέφει το επίπεδο μπαταρίας του ελεγκτή.
Επανακλήσεις — Εκτέλεση συναρτήσεων όταν αλλάζει η είσοδος του ελεγκτή.
Αποκτητές#
.pressing#
.pressing επιστρέφει εάν πατιέται ένα συγκεκριμένο κουμπί στον ελεγκτή. Αυτή η μέθοδος πρέπει να κληθεί σε ένα συγκεκριμένο αντικείμενο κουμπιού, όπως controller.button_up.
True— Πατιέται το καθορισμένο κουμπί.False— Το καθορισμένο κουμπί δεν πατιέται.
Χρήση:
Ένα από τα πέντε διαθέσιμα αντικείμενα κουμπιών μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:
Κουμπί |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Move forward while the Up button is being pressed
while True:
if controller.button_up.pressing():
robot.move_at(0)
else:
robot.stop_all_movement()
wait(20, MSEC)
.position#
.position επιστρέφει τη θέση ενός άξονα του joystick ως αριθμό από -100 έως 100.
Αυτή η μέθοδος πρέπει να κληθεί σε ένα συγκεκριμένο αντικείμενο άξονα, όπως controller.axis1.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα άξονα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:
Αξονας |
Εντολή |
|---|---|
|
|
|
|
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Move forward when the joystick is moved up
while True:
if controller.axis1.position() > 0:
robot.move_at(0)
else:
robot.stop_all_movement()
wait(20, MSEC)
is_connected#
Η συνάρτηση is_connected επιστρέφει εάν ο ελεγκτής είναι συνδεδεμένος.
True— Ο ελεγκτής είναι συνδεδεμένος.False— Ο ελεγκτής δεν είναι συνδεδεμένος.
Usage:
controller.is_connected()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Stop the robot if the controller disconnects
robot.move_at(0)
while True:
if not controller.is_connected():
robot.stop_all_movement()
wait(100, MSEC)
get_battery_level#
Η συνάρτηση get_battery_level επιστρέφει τη στάθμη μπαταρίας του ελεγκτή ως αριθμό από 0 έως 100.
Usage:
controller.get_battery_level()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Display the controller's battery level
robot.screen.print(controller.get_battery_level())
Επανακλήσεις#
.pressed#
.pressed εκτελεί μια λειτουργία όταν πατηθεί το καθορισμένο κουμπί. Μόλις χρησιμοποιηθεί, η λειτουργία θα εκτελείται αυτόματα κάθε φορά που πατιέται το συγκεκριμένο κουμπί.
Χρήση:
Ένα από τα πέντε διαθέσιμα αντικείμενα κουμπιών μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:
Κουμπί |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|
|
|
Παράμετρος |
Περιγραφή |
|---|---|
|
Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που πατιέται το καθορισμένο κουμπί. |
|
Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες. |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.released#
.released εκτελεί μια συνάρτηση όταν απελευθερωθεί το καθορισμένο κουμπί. Μόλις χρησιμοποιηθεί, η συνάρτηση θα εκτελείται αυτόματα κάθε φορά που απελευθερώνεται το συγκεκριμένο κουμπί.
Χρήση:
Ένα από τα πέντε διαθέσιμα αντικείμενα κουμπιών μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:
Κουμπί |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|
|
|
Παράμετρος |
Περιγραφή |
|---|---|
|
Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που απελευθερώνεται το καθορισμένο κουμπί. |
|
Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες. |
# Clear the screen after the Up button is released
def clear_screen():
robot.screen.clear_screen()
controller.button_up.released(clear_screen)
robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")
.changed#
.changed εκτελεί μια συνάρτηση όταν η θέση του joystick αλλάζει κατά μήκος του καθορισμένου άξονα. Μόλις χρησιμοποιηθεί, η συνάρτηση θα εκτελείται αυτόματα κάθε φορά που αλλάζει η θέση του joystick κατά μήκος αυτού του άξονα.
Χρήση:
Ένα από τα δύο διαθέσιμα αντικείμενα άξονα μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο:
Αξονας |
Εντολή |
|---|---|
|
|
|
|
Παράμετρος |
Περιγραφή |
|---|---|
|
Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που αλλάζει η θέση του joystick κατά μήκος του καθορισμένου άξονα. |
|
Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)