Αισθητήρες#

Εισαγωγή#

Το VEX AIR Drone περιλαμβάνει έναν αδρανειακό αισθητήρα για τη μέτρηση της περιστροφικής κίνησης και για την ανίχνευση αλλαγών στην κίνηση, καθώς και έναν αισθητήρα εμβέλειας για την ανίχνευση αποστάσεων. Το VEX AIR Drone μπορεί επίσης να παρακολουθεί τα επίπεδα μπαταρίας του. Αυτοί οι αισθητήρες επιτρέπουν στο drone να παρακολουθεί τον προσανατολισμό, την κατεύθυνση, την επιτάχυνση και την απόστασή του από αντικείμενα.

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

Αδρανειακό - Παρακολουθήστε την περιστροφική κίνηση του drone.

  • get_rotation – Επιστρέφει την περιστροφή του drone από την έναρξή του.

  • get_heading – Επιστρέφει την τρέχουσα επικεφαλίδα (0 έως 359,99°).

  • get_yaw – Επιστρέφει τη γωνία εκτροπής (–180 έως 180°).

  • get_roll – Επιστρέφει τη γωνία κύλισης (–180 έως 180°).

  • get_pitch – Επιστρέφει τη γωνία κλίσης (–180 έως 180°).

  • reset_rotation – Επαναφέρει την τιμή περιστροφής στο 0.

  • reset_heading – Ορίζει την τρέχουσα επικεφαλίδα σε 0.

  • set_heading – Ορίζει την επικεφαλίδα σε μια συγκεκριμένη τιμή.

  • get_acceleration – Επιστρέφει την επιτάχυνση σε μια συγκεκριμένη κατεύθυνση.

  • get_turn_rate – Επιστρέφει τον ρυθμό περιστροφής σε μοίρες ανά δευτερόλεπτο.

Εμβέλεια — Εντοπισμός αποστάσεων από τους αισθητήρες εμβέλειας του drone.

  • get_distance — Επιστρέφει την απόσταση μεταξύ του επιλεγμένου αισθητήρα εμβέλειας και του πλησιέστερου αντικειμένου που εντοπίστηκε.

Μπαταρία - Επιστροφή του ποσοστού μπαταρίας του drone.

  • get_battery_level – Επιστρέφει το επίπεδο μπαταρίας του drone σε ποσοστό.

Αδρανειακό#

get_rotation#

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

Usage:
drone.inertial.get_rotation()

Παράμετροι

Περιγραφή

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

# Display the rotation after turning
drone.take_off(climb_to=500)
drone.turn_for(LEFT, 450, 50)
print(drone.inertial.get_rotation(), end="")
drone.land()

get_heading#

Η συνάρτηση get_heading επιστρέφει τη γωνία κατεύθυνσης του drone ως μεταβλητή στην περιοχή από 0 έως 359,99 μοίρες.

Usage:
drone.inertial.get_heading()

Παράμετροι

Περιγραφή

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

# Display the drone's heading after turning
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn(RIGHT)
wait(5, SECONDS)
controller.screen.print("Heading: ")
controller.screen.print(drone.inertial.get_heading())
drone.land()

get_yaw#

Η συνάρτηση get_yaw επιστρέφει τη γωνία εκτροπής του drone στην περιοχή από –180,0 έως 180,0 μοίρες ως πλωτήρα.

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

Ένα VEX AIR drone με τη μύτη στραμμένη προς την κάτω δεξιά γωνία, με ένα μπλε βέλος που εκτείνεται προς τα κάτω από το κέντρο. Γύρω από το μπλε βέλος, ένα μαύρο καμπύλο βέλος δείχνει δεξιόστροφα και φέρει την ένδειξη Yaw, υποδεικνύοντας τη θετική κατεύθυνση για την yaw.

Usage:
drone.inertial.get_yaw

Παράμετροι

Περιγραφή

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

# Display the yaw angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Yaw: ")
    controller.screen.print(drone.inertial.get_yaw())
    wait(0.2, SECONDS)

get_roll#

Η συνάρτηση get_roll επιστρέφει τη γωνία κύλισης του drone στην περιοχή από –180,0 έως 180,0 μοίρες ως πλωτήρας.

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

Ένα VEX AIR Drone με τη μύτη στραμμένη προς την κάτω δεξιά γωνία, με ένα πράσινο βέλος να εκτείνεται απευθείας από τη μύτη του drone. Γύρω από το πράσινο βέλος ένα μαύρο καμπύλο βέλος δείχνει αριστερόστροφα, υποδεικνύοντας τη θετική κατεύθυνση κύλισης.

Usage:
drone.inertial.get_roll()

Παράμετροι

Περιγραφή

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

# Display the roll angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Roll: ")
    controller.screen.print(drone.inertial.get_roll())
    wait(0.2, SECONDS)

get_pitch#

Η συνάρτηση get_pitch επιστρέφει τη γωνία κλίσης του drone στην περιοχή από –180,0 έως 180,0 μοίρες ως πλωτήρας.

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

Ένα VEX AIR Drone στραμμένο προς την κάτω δεξιά γωνία με ένα κόκκινο βέλος να εκτείνεται από τη δεξιά πλευρά του drone, δίπλα στο λογότυπο VEX. Γύρω από το κόκκινο βέλος, ένα μαύρο καμπύλο βέλος που δείχνει αριστερόστροφα υποδεικνύει τη θετική κατεύθυνση για το βήμα.

Usage:
drone.inertial.get_pitch()

Παράμετροι

Περιγραφή

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

# Display the pitch angle as you rotate the drone by hand
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print("Pitch: ")
    controller.screen.print(drone.inertial.get_pitch())
    wait(0.2, SECONDS)

reset_rotation#

reset_rotation επαναφέρει την τιμή περιστροφής του drone στις 0 μοίρες.

Usage:
drone.inertial.reset_rotation()

Παράμετροι

Περιγραφή

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

# Display the new rotation after resetting
drone.take_off(climb_to=500)
drone.turn(RIGHT)
while not drone.inertial.get_rotation() > 360:
    wait(5, MSEC)
drone.hover()
drone.inertial.reset_rotation()
wait(1, SECONDS)
print(drone.inertial.get_rotation(), end="")
drone.land()

reset_heading#

reset_heading επαναφέρει την κατεύθυνση του drone στις 0 μοίρες.

Χρήση:

drone.inertial.reset_heading()

Παράμετροι

Περιγραφή

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

# Turn to a heading, reset the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.reset_heading()
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

set_heading#

set_heading ορίζει την κατεύθυνση του drone σε μια καθορισμένη τιμή σε μοίρες.

Χρήση:

drone.inertial.set_heading(heading)

Παράμετροι

Περιγραφή

heading

Η τιμή που θα χρησιμοποιηθεί για τη νέα κατεύθυνση στο εύρος 0 έως 359,99 μοίρες.

# Turn to a heading, set the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.set_heading(90)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()

get_acceleration#

get_acceleration επιστρέφει την επιτάχυνση του drone σε μια καθορισμένη κατεύθυνση. Η τιμή που επιστρέφεται αντιπροσωπεύει τον ρυθμό μεταβολής της ταχύτητας, μετρούμενο σε μονάδες g (όπου 1g ≈ 9,81 m/s²), ως πλωτήρα που κυμαίνεται από -4,00 έως 4,00.

Η παρακάτω εικόνα χρησιμοποιεί βέλη για να δείξει την κατεύθυνση της θετικής επιτάχυνσης για εμπρός και δεξιά, και της αρνητικής επιτάχυνσης για προς τα κάτω.

Εμφανίζεται ένα VEX AIR Drone με πράσινο βέλος που εκτείνεται από τη μύτη του drone με την ένδειξη "Προς τα εμπρός", ένα μπλε βέλος που εκτείνεται από το κέντρο του κάτω μέρους του drone με την ένδειξη "Κάτω" και ένα κόκκινο βέλος που εκτείνεται από τη δεξιά πλευρά του drone δίπλα στο λογότυπο VEX, με την ένδειξη "Δεξιά".

Χρήση:

drone.inertial.get_acceleration(type)

Παράμετροι

Περιγραφή

type

Η κατεύθυνση επιτάχυνσης που πρέπει να αναφερθεί:

  • DOWNWARD
  • FORWARD
  • RIGHTWARD

# Display the acceleration as the drone takes off
drone.take_off(500, wait=False)
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(1, 1)
    controller.screen.print(drone.inertial.get_acceleration(DOWNWARD))
    wait(5, MSEC)

get_turn_rate#

get_turn_rate επιστρέφει τον ρυθμό με τον οποίο περιστρέφεται το drone κατά μήκος του καθορισμένου άξονα. Αυτό επιστρέφει μια τιμή σε μοίρες ανά δευτερόλεπτο \(dps\) ως κινητή μεταβλητή από –1000,00 έως 1000,00 dps.

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

Εμφανίζεται ένα VEX AIR Drone με βέλη κατεύθυνσης. Ένα πράσινο βέλος εκτείνεται από τη μύτη του drone με ένα μαύρο καμπύλο βέλος που δείχνει αριστερόστροφα γύρω του, με την ένδειξη Roll. Ένα μπλε βέλος εκτείνεται από το κέντρο του κάτω μέρους του drone με ένα μαύρο καμπύλο βέλος που δείχνει δεξιόστροφα γύρω του, με την ένδειξη Yaw. Και ένα κόκκινο βέλος εκτείνεται από τη δεξιά πλευρά του drone δίπλα στο λογότυπο VEX, με ένα μαύρο καμπύλο βέλος που δείχνει αριστερόστροφα γύρω του, με την ένδειξη Pitch.

Usage:
drone.inertial.get_turn_rate(axis)

Παράμετροι

Περιγραφή

axis

Ποιος προσανατολισμός να αναφερθεί:

  • YAW
  • ROLL
  • PITCH

# Display the drone turn rate as it is rotated by hand.
while True:
    controller.screen.clear_screen()
    controller.screen.set_cursor(7, 1)
    controller.screen.print(drone.inertial.get_turn_rate(ROLL))

Σειρά#

get_distance#

Η συνάρτηση get_distance επιστρέφει την απόσταση μεταξύ του επιλεγμένου αισθητήρα εμβέλειας και του πλησιέστερου αντικειμένου που ανιχνεύθηκε.

Usage:
drone.range.get_distance(range, units)

Παράμετροι

Περιγραφή

range

Ο αισθητήρας εμβέλειας που θα χρησιμοποιηθεί: FORWARD_RANGE ή DOWNWARD_RANGE FORWARD_RANGE αναφέρει την απόσταση από το μπροστινό μέρος του drone. DOWNWARD_RANGE αναφέρει την απόσταση από το κάτω μέρος του drone.

units

Προαιρετικά. Η μονάδα απόστασης:

  • MM (προεπιλογή) — χιλιοστά
  • CM — εκατοστά
  • INCHES

# Fly forward until close to an object
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
while not drone.range.get_distance(FORWARD_RANGE, MM) < 750:
    wait(0.1, SECONDS)
drone.land()

Μπαταρία#

get_battery_level#

Η συνάρτηση get_battery_level επιστρέφει το επίπεδο φόρτισης της μπαταρίας του drone ως ποσοστό. Αυτό επιστρέφει έναν αριθμό από το 0 έως το 100.

Usage:
drone.get_battery_level()

Παράμετροι

Περιγραφή

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

# Display the drone's battery level
if drone.get_battery_level() < 25:
    controller.screen.print("Charge the drone Battery!")
else:
    controller.screen.print("Ready to fly!")