Κίνηση#

Εισαγωγή#

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

Κυκλικός επιλογέας πυξίδας από 0-360 μοίρες που περιβάλλει ένα drone με 4 έλικες. Το μπροστινό μέρος του drone είναι στραμμένο στις 0 μοίρες στον επιλογέα πυξίδας.

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

Ενέργειες

  • take_off – Ανυψώνει το drone σε ένα καθορισμένο ύψος.

  • land – Προσγειώνει το drone.

  • hover - Διατηρεί το drone στη θέση του.

  • climb – Μετακινεί το drone σε μια καθορισμένη κάθετη κατεύθυνση.

  • climb_for – Μετακινεί το drone σε μια καθορισμένη κάθετη κατεύθυνση για μια συγκεκριμένη απόσταση.

  • climb_to – Μετακινεί το drone σε ένα καθορισμένο υψόμετρο.

  • move_at – Κινεί το drone με συγκεκριμένη κατεύθυνση και ταχύτητα.

  • move_for – Μετακινεί το drone σε μια συγκεκριμένη κατεύθυνση για μια συγκεκριμένη απόσταση.

  • move_to – Μετακινεί το drone σε μια καθορισμένη θέση διατηρώντας την ίδια κατεύθυνση.

  • turn – Στρέφει το drone αριστερά ή δεξιά.

  • turn_for – Στρέφει το drone κατά έναν καθορισμένο αριθμό μοιρών.

  • turn_to – Στρέφει το drone προς μια συγκεκριμένη κατεύθυνση.

  • move_with_vectors – Μετακινεί το drone χρησιμοποιώντας τιμές x, y, z και περιστροφής που βασίζονται σε διανύσματα.

Μεταλλαγμένοι

  • set_steering_mode – Ορίζει την οπτική γωνία για την καθοδήγηση του drone.

  • set_movement_mode – Ορίζει το στυλ κίνησης του drone.

  • set_climb_velocity – Ορίζει την προεπιλεγμένη ταχύτητα ανάβασης.

  • set_move_velocity – Ορίζει την προεπιλεγμένη ταχύτητα κίνησης.

  • set_turn_velocity - Ορίζει την προεπιλεγμένη ταχύτητα περιστροφής.

  • set_max_z_height - Ορίζει ένα όριο στο πόσο ψηλά θα πετάξει το drone.

  • set_xyz_position – Ορίζει την τρέχουσα θέση του drone.

Αποκτητές

  • get_max_z_height – Επιστρέφει το μέγιστο ύψος που μπορεί να φτάσει το drone.

  • get_flight_state – Επιστρέφει την τρέχουσα κατάσταση του drone.

  • get_x_position – Επιστρέφει τη συντεταγμένη x του drone.

  • get_y_position – Επιστρέφει τη συντεταγμένη y του drone.

  • get_z_position – Επιστρέφει τη συντεταγμένη z του drone.

  • get_safe_mode – Επιστρέφει την κατάσταση κλειδώματος της προπέλας του drone.

  • is_climb_active – Επιστρέφει εάν το drone βρίσκεται σε ανοδική πορεία τη δεδομένη στιγμή.

  • is_move_active – Επιστρέφει εάν το drone κινείται αυτήν τη στιγμή.

  • is_turn_active – Επιστρέφει εάν το drone στρέφεται αυτήν τη στιγμή.

  • is_hovering - Επιστρέφει εάν το drone αιωρείται αυτήν τη στιγμή.

  • is_taking_off – Επιστρέφει εάν το drone απογειώνεται αυτήν τη στιγμή.

  • is_landing – Επιστρέφει εάν το drone προσγειώνεται αυτήν τη στιγμή.

  • is_landed - Επιστρέφει εάν το drone έχει προσγειωθεί τη δεδομένη στιγμή.

Ενέργειες#

take_off#

take_off θέτει σε λειτουργία τις έλικες και σηκώνει το drone στον αέρα. Αυτή η μέθοδος πρέπει να χρησιμοποιηθεί πριν γίνουν άλλες κινήσεις.

In VEX AIR Competition Matches, take_off must be the first method in your project. The Field Control System (FCS) does not make the drone take off automatically, so your project must handle takeoff. Your project starts running on its own when the FCS enables flight at the start of a Match.

Χρήση:

drone.take_off(climb_to, units, wait)

Παράμετροι

Περιγραφή

climb_to

Η θέση z (ύψος) στην οποία θα πετάξει το drone.

units

Η μονάδα που θα χρησιμοποιηθεί:

  • CM - Εκατοστά
  • MM - Χιλιοστά
  • INCHES

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

land#

land κατεβάζει το drone στο έδαφος. Οι έλικες θα συνεχίσουν να λειτουργούν μέχρι να σταματήσει το έργο.

Χρήση:

drone.land(wait)

Παράμετροι

Περιγραφή

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

hover#

Η αιώρηση hover σταματά το drone από το να κινείται προς οποιαδήποτε κατεύθυνση και διατηρεί την τρέχουσα θέση του στον αέρα.

Usage:
drone.hover()

Παράμετροι

Περιγραφή

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

# Hold current position for 3 seconds after moving forward
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
wait(1, SECONDS)
drone.hover()
wait(3, SECONDS)
drone.land()

climb#

climb κινεί το drone σε μια καθορισμένη κάθετη κατεύθυνση.

Usage: drone.climb(direction, velocity)

Παράμετροι

Περιγραφή

direction

Η κατεύθυνση προς την οποία θα πετάξει το drone: UP ή DOWN.

velocity

Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό.

# Climb upwards for 2 seconds
drone.take_off(climb_to=500)
wait(2, SECONDS)
drone.climb(direction=UP)
wait(2, SECONDS)
drone.land()

climb_for#

climb_for μετακινεί το drone σε μια καθορισμένη κάθετη κατεύθυνση για μια συγκεκριμένη απόσταση.

Χρήση:

drone.climb_for(direction, distance, units, velocity, wait)

Παράμετροι

Περιγραφή

direction

Η κατεύθυνση προς την οποία θα πετάξει το drone: UP ή DOWN.

distance

Η απόσταση που θα πετάξει το drone.

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES

velocity

Προαιρετικό. Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό. Εάν η ταχύτητα δεν έχει καθοριστεί, η προεπιλεγμένη ταχύτητα είναι 50%.

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Lower drone before landing
drone.take_off(climb_to=700)
wait(2, SECONDS)
drone.climb_for(direction=DOWN, distance=300)
wait(2, SECONDS)
drone.land()

climb_to#

climb_to μετακινεί το drone σε μια συγκεκριμένη θέση z.

Χρήση:

drone.climb_to(z, units, velocity, wait)

Παράμετροι

Περιγραφή

z

Στη θέση z, ως ακέραιος ή δεκαδικός αριθμός, θα ανέβει το drone.

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES

velocity

Προαιρετικό. Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό.

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Reach 500 mm after takeoff
drone.take_off(climb_to=300)
wait(1, SECONDS)
drone.climb_to(z=500)
wait(1, SECONDS)
drone.land()

move_at#

move_at κινεί το drone σε μια συγκεκριμένη γωνία και ταχύτητα.

Χρήση:

drone.move_at(angle, velocity)

Παράμετροι

Περιγραφή

angle

Η γωνία, ως ακέραιος ή δεκαδικός αριθμός, υπό την οποία κινείται το drone, η οποία κυμαίνεται από 0 έως 359 μοίρες.

velocity

Η ταχύτητα με την οποία θα κινηθεί το drone ως ποσοστό.

# Move left for 2 seconds
drone.take_off(climb_to=500)
drone.move_at(angle=270)
wait(2, SECONDS)
drone.land()

move_for#

move_for μετακινεί το drone σε μια συγκεκριμένη κατεύθυνση για μια συγκεκριμένη απόσταση χρησιμοποιώντας το ρεύμα set_move_velocity.

Χρήση:

drone.move_for(angle, distance, units, velocity, wait)

Παράμετροι

Περιγραφή

angle

Η γωνία, ως ακέραιος ή δεκαδικός αριθμός (float), στην οποία κινείται το drone, κυμαίνεται από 0 έως 359 μοίρες.

distance

Η απόσταση, ως ακέραιος ή δεκαδικός αριθμός, που θα διανύσει το drone.

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES

velocity

Προαιρετικό. Η ταχύτητα με την οποία θα κινείται το drone ως ποσοστό.

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Move forward for 200 mm
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.move_for(direction=0, distance=200, velocity=50, units=MM)
wait(1, SECONDS)
drone.land()

move_to#

Η συνάρτηση move_to μετακινεί το drone σε μια συγκεκριμένη θέση στον αέρα διατηρώντας παράλληλα την ίδια κατεύθυνση.

Χρήση:

drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)

Παράμετροι

Περιγραφή

x

Η συντεταγμένη x στην οποία θα κινηθεί το drone.

y

Η συντεταγμένη y στην οποία θα κινηθεί το drone.

z

Η συντεταγμένη z στην οποία θα κινηθεί το drone.

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES

move_velocity

Προαιρετικό. Η ταχύτητα με την οποία θα κινείται το drone ως ποσοστό.

climb_velocity

Προαιρετικό. Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό.

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Move diagonally to (300, 300, 800)
drone.take_off(climb_to=300)
wait(2, SECONDS)
drone.move_to(x=300, y=300, z=800)
wait(2, SECONDS)
drone.land()

turn#

turn στρέφει το drone σε μια συγκεκριμένη κατεύθυνση χρησιμοποιώντας το ρεύμα set_turn_velocity.

Χρήση:

drone.turn(direction, velocity)

Παράμετροι

Περιγραφή

direction

Η κατεύθυνση που θα στρίψει το drone: LEFT ή RIGHT.

velocity

Προαιρετικά. Η ταχύτητα με την οποία θα περιστρέφεται το drone ως ποσοστό.

# Turn to the right for 2 seconds
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.turn(RIGHT, 50)
wait(2, SECONDS)
drone.land()

turn_for#

turn_for στρέφει το drone σε μια καθορισμένη κατεύθυνση για μια καθορισμένη απόσταση σε σχέση με την τρέχουσα κατεύθυνση στροφής του χρησιμοποιώντας το ρεύμα set_turn_velocity.

Χρήση:

drone.turn_for(direction, angle, velocity, wait)

Παράμετροι

Περιγραφή

direction

Η κατεύθυνση που θα στρίψει το drone: LEFT ή RIGHT.

angle

Η γωνία, ως ακέραιος ή δεκαδικός αριθμός (float), στην οποία περιστρέφεται το drone, κυμαίνεται από 0 έως 359 μοίρες.

velocity

Προαιρετικά. Η ταχύτητα με την οποία θα περιστρέφεται το drone ως ποσοστό.

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Turn around, then land
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.turn_for(RIGHT, 180)
wait(1, SECONDS)
drone.land()

turn_to#

turn_to γυρίζει το drone ώστε να κοιτάζει προς μια συγκεκριμένη κατεύθυνση χρησιμοποιώντας την τρέχουσα συνάρτηση set_turn_velocity.

Χρήση:

drone.turn_to(heading, velocity, wait)

Παράμετροι

Περιγραφή

heading

Η κατεύθυνση προς την οποία θα στραφεί το drone από 0 έως 360 μοίρες.

velocity

Προαιρετικά. Η ταχύτητα με την οποία θα περιστρέφεται το drone ως ποσοστό.

wait

Προαιρετικό. wait=True (προεπιλογή) κάνει το έργο να περιμένει μέχρι το ρομπότ να ολοκληρώσει την κίνησή του πριν εκτελεστεί η επόμενη γραμμή κώδικα. wait=False κάνει την επόμενη γραμμή κώδικα να εκτελεστεί αμέσως.

# Turn to face each of the cardinal headings
drone.take_off(climb_to=500)
drone.turn_to(heading=90, velocity=50)
wait(3, SECONDS)
drone.turn_to(heading=180, velocity=50)
wait(3, SECONDS)
drone.turn_to(heading=270, velocity=50)
wait(3, SECONDS)
drone.turn_to(heading=0, velocity=50)
wait(3, SECONDS)
drone.land()

move_with_vectors#

move_with_vectors κινεί το drone χρησιμοποιώντας κίνηση που βασίζεται σε διανυσματικά γραφήματα, συνδυάζοντας την κίνηση κατά μήκος του άξονα x (οριζόντια) και του άξονα y (κάθετα) ενώ παράλληλα περιστρέφει το drone.

Σημείωση: Αυτή η μέθοδος ορίζει απευθείας τις τιμές κίνησης και ταχύτητας στροφής, επομένως δεν χρησιμοποιεί set_move_velocity ή set_turn_velocity.

Χρήση:

drone.move_with_vectors(forward, rightward, upward, rotation)

Παράμετροι

Περιγραφή

forward

Η ταχύτητα του drone κατά μήκος του άξονα Y (κίνηση προς τα εμπρός και προς τα πίσω). Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές κινούνται προς τα πίσω και οι θετικές τιμές κινούνται προς τα εμπρός.

rightward

Η ταχύτητα του drone κατά μήκος του άξονα Χ (κίνηση από πλευρά σε πλευρά). Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές μετακινούνται αριστερά και οι θετικές τιμές μετακινούνται δεξιά.

upward

Η ταχύτητα του drone κατά μήκος του άξονα Z (κίνηση πάνω και κάτω). Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές κινούνται προς τα κάτω και οι θετικές τιμές κινούνται προς τα πάνω.

rotation

Η ταχύτητα περιστροφής του drone. Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές περιστρέφονται αριστερόστροφα και οι θετικές τιμές δεξιόστροφα.

# Move with controller
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)

Μεταλλάκτες#

set_steering_mode#

set_steering_mode ορίζει την οπτική γωνία που χρησιμοποιείται κατά την οδήγηση του drone.

Χρήση:

drone.set_steering_mode(style)

Παράμετροι

Περιγραφή

style

Ορίζει την οπτική γωνία που χρησιμοποιείται για την καθοδήγηση του drone. HEADLESS σημαίνει ότι το drone κινείται σε σχέση με το σημείο που ήταν στραμμένο στην αρχή του έργου. STANDARD χρησιμοποιείται από προεπιλογή και προκαλεί την κίνηση του drone σε σχέση με το σημείο που είναι στραμμένο.

# Steer based on the drone's starting orientation
# until button 7 is pressed
drone.take_off(climb_to=500)
drone.set_steering_mode(HEADLESS)
while not controller.button7.pressing():
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)
drone.land()

set_movement_mode#

set_movement_mode ορίζει το στυλ κίνησης του drone.

Αυτό το στυλ κίνησης χρησιμοποιείται κατά την πτήση του drone με χειριστήριο.

Χρήση:

drone.set_movement_mode(style)

Παράμετροι

Περιγραφή

style

Ορίζει την ταχύτητα που χρησιμοποιείται για την καθοδήγηση του drone.

  • BALANCED – Το drone κινείται με μέτρια βασική ταχύτητα.
  • PERFORMANCE – Το drone κινείται με μεγαλύτερη βασική ταχύτητα.
  • PRECISION (προεπιλογή) – Το drone κινείται με χαμηλότερη βασική ταχύτητα.

# Control the drone with the balanced movement style
drone.take_off(climb_to=500)
drone.set_movement_mode(BALANCED)
while not controller.button5.pressing():
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)
drone.land()

set_climb_velocity#

set_climb_velocity ορίζει την προεπιλεγμένη ταχύτητα ανάβασης ως ποσοστό. Αυτό θα επηρεάσει τυχόν ακόλουθες μεθόδους που σχετίζονται με την ανάβαση. Η προεπιλεγμένη ταχύτητα ανάβασης είναι 50%.

Χρήση:

drone.set_climb_velocity(velocity)

Παράμετροι

Περιγραφή

velocity

Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό.

# Raise the drone quickly before landing
drone.take_off(climb_to=300)
wait(1, SECONDS)
drone.set_climb_velocity(100)
drone.climb_for(direction=UP, distance=500)
wait(1, SECONDS)
drone.land()

set_move_velocity#

set_move_velocity ορίζει την προεπιλεγμένη ταχύτητα κίνησης ως ποσοστό. Αυτό θα επηρεάσει τυχόν ακόλουθες μεθόδους που σχετίζονται με την κίνηση. Η προεπιλεγμένη ταχύτητα κίνησης είναι 50%.

Χρήση:

drone.set_move_velocity(velocity)

Παράμετροι

Περιγραφή

velocity

Η ταχύτητα με την οποία θα κινηθεί το drone ως ποσοστό.

# Move forward quickly, then reverse slowly
drone.take_off(climb_to=500)
drone.set_move_velocity(100)
drone.move_for(direction=0, distance=500)
wait(3, SECONDS)
drone.set_move_velocity(20)
drone.move_for(direction=180, distance=500)
wait(5, SECONDS)
drone.land()

set_turn_velocity#

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

Χρήση:

drone.set_turn_velocity(velocity)

Παράμετροι

Περιγραφή

velocity

Η ταχύτητα με την οποία θα περιστρέφεται το drone ως ποσοστό.

# Turn clockwise quickly, then counterclockwise slowly
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn_for(RIGHT, 360)
wait(3, SECONDS)
drone.set_turn_velocity(20)
drone.turn_for(LEFT, 360)
wait(5, SECONDS)
drone.land()

set_max_z_height#

set_max_z_height ορίζει ένα όριο στο πόσο ψηλά θα πετάξει το drone.

Χρήση:

drone.set_max_z_height(z_height, units)

Παράμετροι

Περιγραφή

z_height

Η μέγιστη τιμή του άξονα z, ως ακέραιος ή δεκαδικός αριθμός, πάνω από την οποία το drone δεν θα πετάξει, κυμαίνεται από 1000 έως 5000 mm ή 40 έως 196 ίντσες.

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES
# Fly with controller under 1000 mm
drone.set_max_z_height(1000, MM)
drone.take_off(climb_to=500)
while not controller.button7.pressing():
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
drone.land()

set_xyz_position#

set_xyz_position ορίζει την τρέχουσα συντεταγμένη x, y ή z του drone σε μια καθορισμένη τιμή.

Χρήση:

drone.set_xyz_position(x, y, z, units)

Σημείωση: Όλες οι παράμετροι είναι προαιρετικές, αλλά πρέπει να καθοριστεί τουλάχιστον μία (x, yή z).

Παράμετροι

Περιγραφή

x

Προαιρετικό. Η συντεταγμένη x που θα οριστεί για το drone σε units ως δεκαδικό (float) ή ακέραιο.

y

Προαιρετικό. Η συντεταγμένη y που θα οριστεί για το drone σε units ως δεκαδικό (float) ή ακέραιο.

z

Προαιρετικά. Η συντεταγμένη z που θα οριστεί για το drone σε units ως δεκαδικό (float) ή ακέραιο.

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES
# Set a new z position, then fly to z position -300
drone.take_off(climb_to=800)
drone.set_xyz_position(z=0)
wait(1, SECONDS)
drone.climb(DOWN, 50)
while not drone.get_z_position() < -300:
    wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()

Αποκτητές#

get_max_z_height#

get_max_z_height επιστρέφει το μέγιστο ύψος που μπορεί να φτάσει το drone ως ακέραιο αριθμό.

Χρήση:

drone.get_max_z_height(units)

Παράμετροι

Περιγραφή

units

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

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES
# Display the new z height limit
controller.screen.print(drone.get_max_z_height(MM))
controller.screen.next_row()
drone.take_off(climb_to=500)
drone.set_max_z_height(1000)
controller.screen.print(drone.get_max_z_height(MM))
wait(1, SECONDS)
drone.land()

get_flight_state#

get_flight_state επιστρέφει την τρέχουσα κατάσταση πτήσης του drone ως DroneFlightStateType:

  • MOTOR_OFF - Δεν ισχύει καμία άλλη κατάσταση πτήσης.

  • CALIBRATION - Το drone βαθμονομεί τους αισθητήρες του.

  • MOTOR_START - Το drone ξεκινά τους κινητήρες του.

  • FLIGHT_READY - Το drone είναι έτοιμο για πτήση.

  • FLIGHT - Το drone βρίσκεται σε πτήση.

Usage:
drone.get_flight_state()

Παράμετροι

Περιγραφή

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

# Report the flight status as the drone takes off
controller.screen.print("Preparing for flight!")
controller.screen.next_row()
drone.take_off(climb_to=800, wait=False)
while not drone.get_flight_state() == MOTOR_START:
    wait(5, MSEC)
controller.screen.print("Motors starting...")
controller.screen.next_row()
while not drone.get_flight_state() == FLIGHT:
    wait(5, MSEC)
controller.screen.print("Take off!")

get_x_position#

Η συνάρτηση get_x_position επιστρέφει τη συντεταγμένη x του drone ως δεκαδικό (float).

Usage:
drone.get_x_position(units)

Παράμετροι

Περιγραφή

units

Προαιρετικά. Η μονάδα που αντιπροσωπεύει τη θέση:

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES
# Move to (200, 0, 500)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.move_at(direction=90, velocity=50)
while not drone.get_x_position() > 200:
    wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()

get_y_position#

get_y_position επιστρέφει τη συντεταγμένη y του drone ως δεκαδικό (float).

Χρήση:

drone.get_y_position(units)

Παράμετροι

Περιγραφή

units

Προαιρετικά. Η μονάδα που αντιπροσωπεύει τη θέση:

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES
# Move to (0, 200, 500)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.move_at(direction=0, velocity=50)
while not drone.get_y_position() > 200:
    wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()

get_z_position#

Η συνάρτηση get_y_position επιστρέφει τη συντεταγμένη z του drone ως δεκαδικό (float).

Χρήση:

drone.get_z_position(units)

Παράμετροι

Περιγραφή

units

Προαιρετικά. Η μονάδα που αντιπροσωπεύει τη θέση:

  • CM – Εκατοστά
  • MM (προεπιλογή) – Χιλιοστά
  • INCHES
# Move to (0, 0, 800)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.climb(UP, 50)
while not drone.get_z_position() > 800:
    wait(5, MSEC)
drone.hover()
wait(1, SECONDS)
drone.land()

get_safe_mode#

Η συνάρτηση get_safe_mode επιστρέφει μια λογική τιμή Boolean που υποδεικνύει εάν το Κλείδωμα Προπέλας είναι ενεργοποιημένο στο drone.

  • True – Το κλείδωμα προπέλας είναι ενεργοποιημένο.

  • False – Το κλείδωμα προπέλας δεν είναι ενεργοποιημένο.

Χρήση:

drone.get_safe_mode()

Παράμετροι

Περιγραφή

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

# Change the sound by enabling the Propeller Lock
while True:
    if drone.get_safe_mode():
        controller.sound.play(FAULT)
        while controller.sound.is_active():
            wait(50, MSEC)
    else:
        controller.sound.play(SUCCESS)
        while controller.sound.is_active():
            wait(50, MSEC)
    wait(5, MSEC)

is_climb_active#

Η συνάρτηση is_climb_active επιστρέφει μια λογική τιμή Boolean η οποία υποδεικνύει εάν το drone αναρριχάται.

  • True – Το drone βρίσκεται αυτήν τη στιγμή σε ανοδική πορεία.

  • False – Το drone δεν ανεβαίνει.

Χρήση:

drone.is_climb_active()

Παράμετροι

Περιγραφή

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

# After the drone starts to climb, play a sound and land
drone.take_off(climb_to=500)
drone.climb(UP, 50)
wait(3, SECONDS)
if drone.is_climb_active():
    controller.sound.play(SUCCESS)
    drone.land()

is_move_active#

Η συνάρτηση is_move_active επιστρέφει μια λογική τιμή Boolean η οποία υποδεικνύει εάν το drone χρησιμοποιεί αυτήν τη στιγμή μια μέθοδο μετακίνησης.

  • True – Το drone χρησιμοποιεί αυτήν τη στιγμή μια μέθοδο μετακίνησης.

  • False – Το drone δεν χρησιμοποιεί αυτήν τη στιγμή μέθοδο μετακίνησης.

Χρήση:

drone.is_move_active()

Παράμετροι

Περιγραφή

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

# After the drone starts to move, play a sound and land
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
wait(2, SECONDS)
if drone.is_move_active():
    controller.sound.play(SUCCESS)
    drone.land()

is_turn_active#

Η συνάρτηση is_turn_active επιστρέφει μια λογική τιμή Boolean η οποία υποδεικνύει εάν το drone στρέφεται.

  • True – Το drone γυρίζει αυτήν τη στιγμή.

  • False – Το drone δεν γυρίζει.

Χρήση:

drone.is_turn_active()

Παράμετροι

Περιγραφή

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

# After the drone starts to turn, play a sound and land
drone.take_off(climb_to=500)
drone.turn(RIGHT)
wait(2, SECONDS)
if drone.is_turn_active():
    controller.sound.play(LOOPING)
    while controller.sound.is_active():
        wait(50, MSEC)
    drone.land()

is_hovering#

Η συνάρτηση is_hovering επιστρέφει μια λογική τιμή Boolean που υποδεικνύει εάν το drone διατηρεί τη θέση του (αιωρείται).

  • True – Το drone διατηρεί αυτήν τη στιγμή τη θέση του (αιωρείται).

  • False – Το drone αλλάζει αυτή τη στιγμή τη θέση του.

Χρήση:

drone.is_hovering()

Παράμετροι

Περιγραφή

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

# Play a sound after the drone has finished taking off
drone.take_off(climb_to=700)
while not drone.is_hovering():
    wait(5, MSEC)
controller.sound.play(PAUSE)
wait(2, SECONDS)
drone.land()

is_taking_off#

Η συνάρτηση is_taking_off επιστρέφει μια λογική τιμή Boolean η οποία υποδεικνύει εάν το drone βρίσκεται σε διαδικασία απογείωσης.

  • True – Το drone βρίσκεται αυτή τη στιγμή σε διαδικασία απογείωσης.

  • False – Το drone δεν βρίσκεται σε διαδικασία απογείωσης.

Χρήση:

drone.is_taking_off()

Παράμετροι

Περιγραφή

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

# Play sounds while the drone is taking off
drone.take_off(700, wait=False)
wait(1, SECONDS)
while drone.is_taking_off():
    controller.sound.play(LOOPING)
    wait(5, MSEC)

is_landing#

Η συνάρτηση is_landing επιστρέφει μια λογική τιμή Boolean η οποία υποδεικνύει εάν το drone βρίσκεται σε διαδικασία προσγείωσης.

  • True – Το drone βρίσκεται αυτή τη στιγμή σε διαδικασία προσγείωσης.

  • False – Το drone δεν βρίσκεται σε διαδικασία προσγείωσης.

Χρήση:

drone.is_landing()

Παράμετροι

Περιγραφή

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

# Play sounds while the drone is landing
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land(wait=False)
wait(1, SECONDS)
while drone.is_landing():
    controller.sound.play(LOOPING)
    wait(5, MSEC)

is_landed#

Η συνάρτηση is_landed επιστρέφει μια λογική τιμή Boolean η οποία υποδεικνύει εάν το drone έχει προσγειωθεί τη δεδομένη στιγμή.

  • True – Το drone προσγειώθηκε.

  • False – Το drone δεν προσγειώθηκε.

Χρήση:

drone.is_landed()

Παράμετροι

Περιγραφή

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

# Celebrate a successful landing
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
wait(1, SECONDS)
if drone.is_landed():
    controller.sound.play(SUCCESS)