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

Παρακάτω είναι μια λίστα με όλες τις διαθέσιμες μεθόδους:
Ενέργειες
take_off– Lifts the drone to a specified height.land– Lands the drone.hover- Keeps the drone at its position.climb– Moves the drone in a specified vertical direction.climb_for– Moves the drone in a specified vertical direction for a specific distance.climb_to– Moves the drone to a specified altitude.move_at– Moves the drone at a specified heading and velocity.move_for– Moves the drone at a specified heading for a specified distance.move_to– Moves the drone to a specified position while maintaining the same heading.turn– Turns the drone left or right.turn_for– Turns the drone a set number of degrees.turn_to– Turns the drone to face a specific heading.move_with_vectors– Moves the drone using vector-based x, y, z, and rotation values.
Μεταλλαγμένοι
set_steering_mode– Sets the POV for steering the drone.set_movement_mode– Sets the movement style of the drone.set_climb_velocity– Sets the default climbing velocity.set_move_velocity– Sets the default movement velocity.set_turn_velocity- Sets the default turning velocity.set_max_z_height- Sets a limit to how high the drone will fly.set_xyz_position– Sets the drone’s current position.
Αποκτητές
get_max_z_height– Returns the maximum height that the drone can reach.get_flight_state– Returns the current state of the drone.get_x_position– Returns the drone’s x-coordinate.get_y_position– Returns the drone’s y-coordinate.get_z_position– Returns the drone’s z-coordinate.get_safe_mode– Returns the drone’s propellor lock state.is_climb_active– Returns whether the drone is currently climbing.is_move_active– Returns whether the drone is currently moving.is_turn_active– Returns whether the drone is currently turning.is_hovering- Returns whether the drone is currently hovering.is_taking_off– Returns whether the drone is currently taking off.is_landing– Returns whether the drone is currently landing.is_landed- Returns whether the drone is currently landed.
Ενέργειες#
take_off#
take_off starts the propellers and lifts the drone into the air. This method must be used before other movements can be made.
Χρήση:
drone.take_off(climb_to, units, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η θέση z (ύψος) στην οποία θα πετάξει το drone. |
|
The unit to use:
|
|
Optional. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land lowers the drone to the ground. The propellers will continue to run until the project is stopped.
Χρήση:
drone.land(wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Optional. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover stops the drone from moving in any direction and holds its current position in the air.
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 moves the drone in a specified vertical direction.
Usage:
drone.climb(direction, velocity)
Παράμετροι |
Περιγραφή |
|---|---|
|
The direction in which the drone will fly: |
|
Η ταχύτητα με την οποία θα ανέβει το 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 moves the drone in a specified vertical direction for a specific distance.
Χρήση:
drone.climb_for(direction, distance, units, velocity, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
The direction in which the drone will fly: |
|
Η απόσταση που θα πετάξει το drone. |
|
Optional. The unit that represents the distance:
|
|
Προαιρετικό. Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό. Εάν η ταχύτητα δεν έχει καθοριστεί, η προεπιλεγμένη ταχύτητα είναι 50%. |
|
Optional. |
# 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 moves the drone to a specific z position.
Χρήση:
drone.climb_to(z, units, velocity, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Στη θέση z, ως ακέραιος ή δεκαδικός αριθμός, θα ανέβει το drone. |
|
Optional. The unit that represents the distance:
|
|
Προαιρετικό. Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό. |
|
Optional. |
# 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 moves the drone at a specified angle and velocity.
Χρήση:
drone.move_at(angle, velocity)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η γωνία, ως ακέραιος ή δεκαδικός αριθμός, υπό την οποία κινείται το drone, η οποία κυμαίνεται από 0 έως 359 μοίρες. |
|
Η ταχύτητα με την οποία θα κινηθεί το 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 moves the drone in a specific direction for a specific distance using the current set_move_velocity.
Χρήση:
drone.move_for(angle, distance, units, velocity, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η γωνία, ως ακέραιος ή δεκαδικός αριθμός (float), στην οποία κινείται το drone, κυμαίνεται από 0 έως 359 μοίρες. |
|
Η απόσταση, ως ακέραιος ή δεκαδικός αριθμός, που θα διανύσει το drone. |
|
Optional. The unit that represents the distance:
|
|
Προαιρετικό. Η ταχύτητα με την οποία θα κινείται το drone ως ποσοστό. |
|
Optional. |
# 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 moves the drone to a specified position in the air while maintaining the same heading.
Χρήση:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η συντεταγμένη x στην οποία θα κινηθεί το drone. |
|
Η συντεταγμένη y στην οποία θα κινηθεί το drone. |
|
Η συντεταγμένη z στην οποία θα κινηθεί το drone. |
|
Optional. The unit that represents the distance:
|
|
Προαιρετικό. Η ταχύτητα με την οποία θα κινείται το drone ως ποσοστό. |
|
Προαιρετικό. Η ταχύτητα με την οποία θα ανέβει το drone ως ποσοστό. |
|
Optional. |
# 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 turns the drone in a specific direction using the current set_turn_velocity.
Χρήση:
drone.turn(direction, velocity)
Παράμετροι |
Περιγραφή |
|---|---|
|
The direction the drone will turn: |
|
Προαιρετικά. Η ταχύτητα με την οποία θα περιστρέφεται το 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 turns the drone in a specified direction for a set distance relative to its current facing direction using the current set_turn_velocity.
Χρήση:
drone.turn_for(direction, angle, velocity, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
The direction the drone will turn: |
|
Η γωνία, ως ακέραιος ή δεκαδικός αριθμός (float), στην οποία περιστρέφεται το drone, κυμαίνεται από 0 έως 359 μοίρες. |
|
Προαιρετικά. Η ταχύτητα με την οποία θα περιστρέφεται το drone ως ποσοστό. |
|
Optional. |
# 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 turns the drone to face a specific heading using the current set_turn_velocity.
Χρήση:
drone.turn_to(heading, velocity, wait)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η κατεύθυνση προς την οποία θα στραφεί το drone από 0 έως 360 μοίρες. |
|
Προαιρετικά. Η ταχύτητα με την οποία θα περιστρέφεται το drone ως ποσοστό. |
|
Optional. |
# 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 moves the drone using vector-based motion, combining movement along the x-axis (horizontal) and y-axis (vertical) while also rotating the drone.
Note: This method sets movement and turn velocity values directly, so it does not use set_move_velocity or set_turn_velocity.
Χρήση:
drone.move_with_vectors(forward, rightward, upward, rotation)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η ταχύτητα του drone κατά μήκος του άξονα Y (κίνηση προς τα εμπρός και προς τα πίσω). Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές κινούνται προς τα πίσω και οι θετικές τιμές κινούνται προς τα εμπρός. |
|
Η ταχύτητα του drone κατά μήκος του άξονα Χ (κίνηση από πλευρά σε πλευρά). Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές μετακινούνται αριστερά και οι θετικές τιμές μετακινούνται δεξιά. |
|
Η ταχύτητα του drone κατά μήκος του άξονα Z (κίνηση πάνω και κάτω). Δέχεται μια τιμή από -100 έως 100 ως ποσοστό, όπου οι αρνητικές τιμές κινούνται προς τα κάτω και οι θετικές τιμές κινούνται προς τα πάνω. |
|
Η ταχύτητα περιστροφής του 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 sets the viewpoint that is used when steering the drone.
Χρήση:
drone.set_steering_mode(style)
Παράμετροι |
Περιγραφή |
|---|---|
|
Sets the POV that is used to steer the 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 sets the drone’s movement style.
Αυτό το στυλ κίνησης χρησιμοποιείται κατά την πτήση του drone με χειριστήριο.
Χρήση:
drone.set_movement_mode(style)
Παράμετροι |
Περιγραφή |
|---|---|
|
Sets the speed that is used to steer the 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 sets the default climbing velocity as a percentage. This will affect any following methods related to climbing. The default climb velocity is 50%.
Χρήση:
drone.set_climb_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 sets the default movement velocity as a percentage. This will affect any following methods related to moving. The default move velocity is 50%.
Χρήση:
drone.set_move_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 sets the default turning velocity as a percentage. This will affect any following methods related to turning. The default turn velocity is 50%.
Χρήση:
drone.set_turn_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 sets a limit to how high the drone will fly.
Χρήση:
drone.set_max_z_height(z_height, units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Η μέγιστη τιμή του άξονα z, ως ακέραιος ή δεκαδικός αριθμός, πάνω από την οποία το drone δεν θα πετάξει, κυμαίνεται από 1000 έως 5000 mm ή 40 έως 196 ίντσες. |
|
Optional. The distance units are:
|
# 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 sets the drone’s current x, y, or z coordinate to a specified value.
Χρήση:
drone.set_xyz_position(x, y, z, units)
Note: All parameters are optional, but at least one (x, y, or z) must be specified.
Παράμετροι |
Περιγραφή |
|---|---|
|
Optional. The x coordinate to set for the drone in |
|
Optional. The y coordinate to set for the drone in |
|
Optional. The z coordinate to set for the drone in |
|
Optional. The unit that represents the distance:
|
# 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 returns the maximum height that the drone can reach as an integer.
Χρήση:
drone.get_max_z_height(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Optional. The unit of measurement:
|
# 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 returns the drone’s current flying state as a DroneFlightStateType:
MOTOR_OFF- No other flight state is true.CALIBRATION- The drone is calibrating its sensors.MOTOR_START- The drone is starting its motors.FLIGHT_READY- The drone is ready to fly.FLIGHT- The drone is in flight.
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 returns the drone’s x coordinate as a decimal (float).
Usage:
drone.get_x_position(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Optional. The unit that represents the position:
|
# 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 returns the drone’s y coordinate as a decimal (float).
Χρήση:
drone.get_y_position(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Optional. The unit that represents the position:
|
# 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 returns the drone’s z coordinate as a decimal (float).
Χρήση:
drone.get_z_position(units)
Παράμετροι |
Περιγραφή |
|---|---|
|
Optional. The unit that represents the position:
|
# 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 returns a Boolean indicating whether the Propeller Lock is enabled on the drone.
True– Propeller Lock is enabled.False– Propeller Lock is not enabled.
Χρήση:
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 returns a Boolean indicating whether the drone is climbing.
True– The drone is currently climbing.False– The drone is not climbing.
Χρήση:
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 returns a Boolean indicating whether the drone is currently using a move method.
True– The drone is currently using a move method.False– The drone is not currently using a move method.
Χρήση:
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 returns a Boolean indicating whether the drone is turning.
True– The drone is currently turning.False– The drone is not turning.
Χρήση:
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 returns a Boolean indicating whether the drone is maintaining its position (hovering).
True– The drone is currently maintaining its position (hovering).False– The drone is currently changing its position.
Χρήση:
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 returns a Boolean indicating whether the drone is in the process of taking off.
True– The drone is currently in the process of taking off.False– The drone is not in the process of taking off.
Χρήση:
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 returns a Boolean indicating whether the drone is in the process of landing.
True– The drone is currently in the process of landing.False– The drone is not in the process of landing.
Χρήση:
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 returns a Boolean indicating whether the drone is currently landed.
True– The drone is landed.False– The drone is not landed.
Χρήση:
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)