Ελεγκτής#
Εισαγωγή#
Το χειριστήριο VEX AIR Drone διαθέτει διάταξη 12 κουμπιών και δύο joystick. Αυτές οι είσοδοι επιτρέπουν στο drone να ανιχνεύει τα πατήματα κουμπιών και τις κινήσεις του joystick, επιτρέποντας διαδραστικό και γρήγορο έλεγχο.
Παρακάτω είναι μια λίστα με όλες τις διαθέσιμες μεθόδους:
Λήψη – Ανάγνωση κουμπιού, joystick και κατάστασης σύνδεσης.
pressing– Επιστρέφει εάν πατιέται ένα συγκεκριμένο κουμπί.position– Επιστρέφει τη θέση του joystick κατά μήκος ενός καθορισμένου άξονα.is_drone_connected– Επιστρέφει εάν ο ελεγκτής είναι συνδεδεμένος με το drone.get_battery_level– Επιστρέφει το επίπεδο μπαταρίας του ελεγκτή.
Επανακλήσεις – Απόκριση σε αλλαγές εισόδου κουμπιών ή joystick.
Αποκτητές#
pressing#
Το πάτημα του pressing επιστρέφει μια λογική τιμή που υποδεικνύει εάν πατιέται αυτήν τη στιγμή ένα συγκεκριμένο κουμπί στον ελεγκτή. Αυτή η μέθοδος πρέπει να κληθεί σε ένα συγκεκριμένο αντικείμενο κουμπιού, όπως button5 (δείτε την πλήρη λίστα των αντικειμένων κουμπιών παρακάτω).
True- Πατιέται το καθορισμένο κουμπί.False- Το καθορισμένο κουμπί δεν πατιέται.
Χρήση:
Ένα από τα οκτώ διαθέσιμα κουμπιά, με αριθμούς από 5 έως 12, μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, όπως φαίνεται παρακάτω:
Κουμπί |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Fly using the controller sticks
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
# Capture an image from the forward camera when button 5 is pressed.
if controller.button5.pressing():
drone.camera.capture_image(FORWARD_CAMERA)
wait(5, MSEC)
position#
Η θέση position επιστρέφει τη θέση του καθορισμένου άξονα του joystick, ως ποσοστό από –100% έως 100%.
Χρήση:
Ένας από τους τέσσερις διαθέσιμους άξονες μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, οι οποίοι αριθμούνται από το 1 έως το 4.
Αξονας |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|

Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
if controller.axis1.position() > 0:
drone.climb(direction=UP, velocity=50)
else:
drone.hover()
wait(5, MSEC)
is_drone_connected#
is_drone_connected επιστρέφει μια Boolean τιμή που υποδεικνύει εάν το drone είναι συνδεδεμένο.
True- Το drone είναι συνδεδεμένο.False- Το drone δεν είναι συνδεδεμένο.
Χρήση:
controller.is_drone_connected()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Print controller connection status on screen.
while True:
if controller.is_drone_connected():
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print("Controller connected")
wait(0.5, SECONDS)
get_battery_level#
Η συνάρτηση get_battery_level επιστρέφει το επίπεδο μπαταρίας του ελεγκτή, ως ποσοστό από 0% έως 100%.
Χρήση:
controller.get_battery_level()
Παράμετροι |
Περιγραφή |
|---|---|
Αυτή η μέθοδος δεν έχει παραμέτρους. |
# Show controller's battery level.
if controller.get_battery_level() > 50:
controller.screen.print("Battery level ok")
else:
controller.screen.print("Battery level low")
Επανακλήσεις#
pressed#
Με το πάτημα του pressed εκτελεί μια λειτουργία όταν πατηθεί το καθορισμένο κουμπί. Μόλις χρησιμοποιηθεί, η λειτουργία θα εκτελείται αυτόματα κάθε φορά που πατιέται το συγκεκριμένο κουμπί.
Χρήση:
Με αυτήν τη μέθοδο μπορεί να χρησιμοποιηθεί ένα από τα οκτώ διαθέσιμα κουμπιά, τα οποία αριθμούνται από το 5 έως το 12.
Κουμπί |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Παράμετροι |
Περιγραφή |
|---|---|
|
Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που πατιέται το καθορισμένο κουμπί. |
|
Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση συμβάντων με παραμέτρους για περισσότερες πληροφορίες. |
# Take a picture when button 5 is pressed.
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
# Run take_picture each time button 5 is pressed.
controller.button5.pressed(take_picture)
# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
released#
released εκτελεί μια συνάρτηση όταν απελευθερωθεί το καθορισμένο κουμπί. Μόλις χρησιμοποιηθεί, η συνάρτηση θα εκτελείται αυτόματα κάθε φορά που απελευθερώνεται το συγκεκριμένο κουμπί.
Χρήση:
Με αυτήν τη μέθοδο μπορεί να χρησιμοποιηθεί ένα από τα οκτώ διαθέσιμα κουμπιά, τα οποία αριθμούνται από το 5 έως το 12.
Κουμπί |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Παράμετροι |
Περιγραφή |
|---|---|
|
Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που απελευθερώνεται το καθορισμένο κουμπί. |
|
Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση Συναρτήσεων με Παραμέτρους για περισσότερες πληροφορίες. |
# Take a picture when button 5 is released.
def take_picture():
drone.camera.capture_image(FORWARD_CAMERA)
# Run take_picture each time button 5 is released.
controller.button5.released(take_picture)
# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
wait(5, MSEC)
changed#
changed εκτελεί μια συνάρτηση όταν αλλάζει η θέση του joystick κατά μήκος του καθορισμένου άξονα. Μόλις χρησιμοποιηθεί, η συνάρτηση θα εκτελείται αυτόματα κάθε φορά που αλλάζει η θέση του joystick κατά μήκος αυτού του άξονα.
Χρήση:
Ένας από τους τέσσερις διαθέσιμους άξονες μπορεί να χρησιμοποιηθεί με αυτήν τη μέθοδο, οι οποίοι αριθμούνται από το 1 έως το 4.
Αξονας |
Εντολή |
|---|---|
|
|
|
|
|
|
|
|

Παράμετροι |
Περιγραφή |
|---|---|
|
Μια προηγουμένως καθορισμένη συνάρτηση που θα εκτελείται κάθε φορά που αλλάζει η θέση του joystick κατά μήκος του καθορισμένου άξονα. |
|
Προαιρετικό. Μια πλειάδα που περιέχει ορίσματα για να μεταβιβαστούν στη συνάρτηση επανάκλησης. Δείτε Χρήση Συναρτήσεων με Παραμέτρους για περισσότερες πληροφορίες. |
# Move forward when the left joystick moves.
def on_axis1_changed():
drone.move_for(direction=0, distance=200, velocity=50, units=MM)
drone.take_off(climb_to=500)
controller.axis1.changed(on_axis1_changed)