Gerakan#
Perkenalan#
Drone VEX AIR memiliki empat baling-baling, memungkinkan drone ini bergerak ke segala arah dan berputar secara independen. Perangkat lunak Motion menyediakan metode untuk pergerakan, berbelok, penyesuaian kecepatan, dan pelacakan posisi.

Berikut adalah daftar semua metode yang tersedia:
Tindakan
take_off– Mengangkat drone ke ketinggian yang ditentukan.land– Mendaratkan drone.hover- Menjaga drone tetap pada posisinya.climb– Menggerakkan drone ke arah vertikal yang ditentukan.climb_for– Menggerakkan drone ke arah vertikal tertentu untuk jarak tertentu.climb_to– Memindahkan drone ke ketinggian yang ditentukan.move_at– Menggerakkan drone dengan arah dan kecepatan yang ditentukan.move_for– Menggerakkan drone dengan arah tertentu untuk jarak tertentu.move_to– Memindahkan drone ke posisi yang ditentukan sambil mempertahankan arah yang sama.turn– Memutar drone ke kiri atau ke kanan.turn_for– Memutar drone sejumlah derajat tertentu.turn_to– Memutar drone untuk menghadap ke arah tertentu.move_with_vectors– Menggerakkan drone menggunakan nilai x, y, z, dan rotasi berbasis vektor.
Mutator
set_steering_mode– Mengatur POV untuk mengendalikan drone.set_movement_mode– Mengatur gaya pergerakan drone.set_climb_velocity– Mengatur kecepatan pendakian default.set_move_velocity– Mengatur kecepatan gerakan default.set_turn_velocity- Mengatur kecepatan putar default.set_max_z_height- Menetapkan batas ketinggian terbang drone.set_xyz_position– Mengatur posisi drone saat ini.
Penangkap
get_max_z_height– Mengembalikan ketinggian maksimum yang dapat dicapai drone.get_flight_state– Mengembalikan status drone saat ini.get_x_position– Mengembalikan koordinat x drone.get_y_position– Mengembalikan koordinat y drone.get_z_position– Mengembalikan koordinat z drone.get_safe_mode– Mengembalikan status penguncian baling-baling drone.is_climb_active– Mengembalikan apakah drone sedang mendaki.is_move_active– Mengembalikan apakah drone sedang bergerak.is_turn_active– Mengembalikan apakah drone sedang berbelok.is_hovering- Mengembalikan apakah drone saat ini sedang melayang.is_taking_off– Mengembalikan apakah drone sedang lepas landas.is_landing– Mengembalikan apakah drone sedang mendarat.is_landed- Mengembalikan apakah drone saat ini telah mendarat.
Tindakan#
take_off#
Perintah take_off menghidupkan baling-baling dan mengangkat drone ke udara. Metode ini harus digunakan sebelum gerakan lain dapat dilakukan.
Penggunaan:
drone.take_off(climb_to, units, wait)
Parameter |
Keterangan |
|---|---|
|
Posisi z (ketinggian) yang akan dituju oleh drone. |
|
Satuan yang digunakan:
|
|
Opsional. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land menurunkan drone ke tanah. Baling-baling akan terus berputar hingga proyek dihentikan.
Penggunaan:
drone.land(wait)
Parameter |
Keterangan |
|---|---|
|
Opsional. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
Perintah hover menghentikan pergerakan drone ke segala arah dan mempertahankan posisinya saat ini di udara.
Usage:
drone.hover()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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#
Perintah climb menggerakkan drone ke arah vertikal yang ditentukan.
Usage:
drone.climb(direction, velocity)
Parameter |
Keterangan |
|---|---|
|
Arah terbang drone: |
|
Kecepatan naik drone dalam persentase. |
# 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#
Perintah climb_for menggerakkan drone ke arah vertikal tertentu untuk jarak tertentu.
Penggunaan:
drone.climb_for(direction, distance, units, velocity, wait)
Parameter |
Keterangan |
|---|---|
|
Arah terbang drone: |
|
Jarak yang akan ditempuh drone saat terbang. |
|
Opsional. Satuan yang mewakili jarak:
|
|
Opsional. Kecepatan pendakian drone dalam persentase. Jika kecepatan tidak ditentukan, kecepatan default adalah 50%. |
|
Opsional. |
# 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#
Perintah climb_to menggerakkan drone ke posisi z tertentu.
Penggunaan:
drone.climb_to(z, units, velocity, wait)
Parameter |
Keterangan |
|---|---|
|
Posisi z, baik berupa bilangan bulat atau desimal, yang akan dicapai oleh drone. |
|
Opsional. Satuan yang mewakili jarak:
|
|
Opsional. Kecepatan pendakian drone dalam persentase. |
|
Opsional. |
# 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 menggerakkan drone pada sudut dan kecepatan yang ditentukan.
Penggunaan:
drone.move_at(angle, velocity)
Parameter |
Keterangan |
|---|---|
|
Sudut, baik berupa bilangan bulat maupun desimal, di mana drone bergerak, berkisar dari 0 hingga 359 derajat. |
|
Kecepatan pergerakan drone dalam persentase. |
# 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 menggerakkan drone ke arah tertentu untuk jarak tertentu menggunakan set_move_velocity.
Penggunaan:
drone.move_for(angle, distance, units, velocity, wait)
Parameter |
Keterangan |
|---|---|
|
Sudut, sebagai bilangan bulat atau desimal (float), di mana drone bergerak, berkisar dari 0 hingga 359 derajat. |
|
Jarak, baik berupa bilangan bulat maupun desimal, yang akan ditempuh oleh drone. |
|
Opsional. Satuan yang mewakili jarak:
|
|
Opsional. Kecepatan pergerakan drone dalam persentase. |
|
Opsional. |
# 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#
Perintah move_to menggerakkan drone ke posisi tertentu di udara sambil mempertahankan arah yang sama.
Penggunaan:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Parameter |
Keterangan |
|---|---|
|
Koordinat x tempat drone akan bergerak. |
|
Koordinat y tempat drone akan bergerak. |
|
Koordinat z yang akan dituju oleh drone. |
|
Opsional. Satuan yang mewakili jarak:
|
|
Opsional. Kecepatan pergerakan drone dalam persentase. |
|
Opsional. Kecepatan pendakian drone dalam persentase. |
|
Opsional. |
# 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 memutar drone ke arah tertentu menggunakan set_turn_velocity.
Penggunaan:
drone.turn(direction, velocity)
Parameter |
Keterangan |
|---|---|
|
Arah putaran drone: |
|
Opsional. Kecepatan putaran drone dalam persentase. |
# 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 memutar drone ke arah tertentu untuk jarak tertentu relatif terhadap arah hadapnya saat ini menggunakan set_turn_velocity.
Penggunaan:
drone.turn_for(direction, angle, velocity, wait)
Parameter |
Keterangan |
|---|---|
|
Arah putaran drone: |
|
Sudut, sebagai bilangan bulat atau desimal (float), di mana drone berputar, berkisar dari 0 hingga 359 derajat. |
|
Opsional. Kecepatan putaran drone dalam persentase. |
|
Opsional. |
# 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 memutar drone untuk menghadap ke arah tertentu menggunakan set_turn_velocity.
Penggunaan:
drone.turn_to(heading, velocity, wait)
Parameter |
Keterangan |
|---|---|
|
Arah putaran yang akan dihadapi drone berkisar dari 0 hingga 360 derajat. |
|
Opsional. Kecepatan putaran drone dalam persentase. |
|
Opsional. |
# 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 menggerakkan drone menggunakan gerakan berbasis vektor, menggabungkan pergerakan sepanjang sumbu x (horizontal) dan sumbu y (vertikal) sambil juga memutar drone.
Catatan: Metode ini mengatur nilai kecepatan gerak dan putar secara langsung, sehingga tidak menggunakan set_move_velocity atau set_turn_velocity.
Penggunaan:
drone.move_with_vectors(forward, rightward, upward, rotation)
Parameter |
Keterangan |
|---|---|
|
Kecepatan drone sepanjang sumbu Y (pergerakan maju dan mundur). Menerima nilai dari -100 hingga 100 sebagai persentase, di mana nilai negatif bergerak mundur dan nilai positif bergerak maju. |
|
Kecepatan drone sepanjang sumbu X (pergerakan dari sisi ke sisi). Menerima nilai dari -100 hingga 100 sebagai persentase, di mana nilai negatif bergerak ke kiri dan nilai positif bergerak ke kanan. |
|
Kecepatan drone sepanjang sumbu Z (pergerakan naik dan turun). Menerima nilai dari -100 hingga 100 sebagai persentase, di mana nilai negatif bergerak ke bawah dan nilai positif bergerak ke atas. |
|
Kecepatan rotasi drone. Menerima nilai dari -100 hingga 100 sebagai persentase, di mana nilai negatif berputar berlawanan arah jarum jam dan nilai positif berputar searah jarum jam. |
# 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)
Mutator#
set_steering_mode#
set_steering_mode mengatur sudut pandang yang digunakan saat mengendalikan drone.
Penggunaan:
drone.set_steering_mode(style)
Parameter |
Keterangan |
|---|---|
|
Menentukan sudut pandang (POV) yang digunakan untuk mengendalikan 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 mengatur gaya pergerakan drone.
Gaya pergerakan ini digunakan saat menerbangkan drone dengan pengendali.
Penggunaan:
drone.set_movement_mode(style)
Parameter |
Keterangan |
|---|---|
|
Mengatur kecepatan yang digunakan untuk mengendalikan 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 mengatur kecepatan pendakian default sebagai persentase. Ini akan memengaruhi metode selanjutnya yang terkait dengan pendakian. Kecepatan pendakian default adalah 50%.
Penggunaan:
drone.set_climb_velocity(velocity)
Parameter |
Keterangan |
|---|---|
|
Kecepatan naik drone dalam persentase. |
# 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 mengatur kecepatan gerakan default sebagai persentase. Ini akan memengaruhi metode selanjutnya yang terkait dengan pergerakan. Kecepatan gerakan default adalah 50%.
Penggunaan:
drone.set_move_velocity(velocity)
Parameter |
Keterangan |
|---|---|
|
Kecepatan pergerakan drone dalam persentase. |
# 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 mengatur kecepatan belok default sebagai persentase. Ini akan memengaruhi metode selanjutnya yang terkait dengan belok. Kecepatan belok default adalah 50%.
Penggunaan:
drone.set_turn_velocity(velocity)
Parameter |
Keterangan |
|---|---|
|
Kecepatan putaran drone dalam persentase. |
# 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 menetapkan batas ketinggian terbang drone.
Penggunaan:
drone.set_max_z_height(z_height, units)
Parameter |
Keterangan |
|---|---|
|
Nilai maksimum sumbu z, baik berupa bilangan bulat atau desimal, yang tidak akan dilampaui oleh drone, dalam rentang 1000 hingga 5000 mm atau 40 hingga 196 inci. |
|
Opsional. Satuan jaraknya adalah:
|
# 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 mengatur koordinat x, y, atau z drone saat ini ke nilai yang ditentukan.
Penggunaan:
drone.set_xyz_position(x, y, z, units)
Catatan: Semua parameter bersifat opsional, tetapi setidaknya satu (x, y, atau z) harus ditentukan.
Parameter |
Keterangan |
|---|---|
|
Opsional. Koordinat x yang akan diatur untuk drone dalam |
|
Opsional. Koordinat y yang akan diatur untuk drone dalam |
|
Opsional. Koordinat z yang akan diatur untuk drone dalam |
|
Opsional. Satuan yang mewakili jarak:
|
# 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()
Pencari#
get_max_z_height#
get_max_z_height mengembalikan ketinggian maksimum yang dapat dicapai drone sebagai bilangan bulat.
Penggunaan:
drone.get_max_z_height(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan pengukuran:
|
# 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 mengembalikan status terbang drone saat ini sebagai DroneFlightStateType:
MOTOR_OFF- Tidak ada status penerbangan lain yang benar.CALIBRATION- Drone sedang mengkalibrasi sensornya.MOTOR_START- Drone sedang menghidupkan motornya.FLIGHT_READY- Drone siap terbang.FLIGHT- Drone sedang terbang.
Usage:
drone.get_flight_state()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan koordinat x drone sebagai bilangan desimal (float).
Usage:
drone.get_x_position(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan yang mewakili posisi:
|
# 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 mengembalikan koordinat y drone sebagai bilangan desimal (float).
Penggunaan:
drone.get_y_position(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan yang mewakili posisi:
|
# 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 mengembalikan koordinat z drone sebagai bilangan desimal (float).
Penggunaan:
drone.get_z_position(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan yang mewakili posisi:
|
# 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 mengembalikan Boolean yang menunjukkan apakah Penguncian Baling-Baling diaktifkan pada drone.
True– Pengunci Propeller diaktifkan.False– Pengunci baling-baling tidak diaktifkan.
Penggunaan:
drone.get_safe_mode()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan nilai Boolean Boolean yang menunjukkan apakah drone sedang mendaki.
True– Drone saat ini sedang naik.False– Drone tidak sedang naik.
Penggunaan:
drone.is_climb_active()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan Boolean yang menunjukkan apakah drone saat ini menggunakan metode bergerak.
True– Drone saat ini menggunakan metode bergerak.False– Drone saat ini tidak menggunakan metode pergerakan.
Penggunaan:
drone.is_move_active()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan Boolean yang menunjukkan apakah drone sedang berbelok.
True– Drone saat ini sedang berbelok.False– Drone tidak berbelok.
Penggunaan:
drone.is_turn_active()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan Boolean yang menunjukkan apakah drone mempertahankan posisinya (melayang).
True– Drone saat ini mempertahankan posisinya (melayang).False– Drone saat ini sedang mengubah posisinya.
Penggunaan:
drone.is_hovering()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan nilai Boolean Boolean yang menunjukkan apakah drone sedang dalam proses lepas landas.
True– Drone tersebut saat ini sedang dalam proses lepas landas.False– Drone tersebut tidak sedang dalam proses lepas landas.
Penggunaan:
drone.is_taking_off()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan Boolean yang menunjukkan apakah drone sedang dalam proses pendaratan.
True– Drone saat ini sedang dalam proses pendaratan.False– Drone tidak sedang dalam proses pendaratan.
Penggunaan:
drone.is_landing()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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 mengembalikan nilai Boolean Boolean yang menunjukkan apakah drone saat ini telah mendarat.
True– Drone telah mendarat.False– Drone tidak mendarat.
Penggunaan:
drone.is_landed()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# 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)