Judesys#
Įvadas#
„VEX AIR“ dronas turi keturis sraigtus, leidžiančius jam judėti bet kuria kryptimi ir suktis nepriklausomai. Judėjimas suteikia judėjimo, posūkio, greičio reguliavimo ir padėties stebėjimo būdus.

Žemiau pateikiamas visų galimų metodų sąrašas:
Veiksmai
take_off– Pakelia droną į nurodytą aukštį.land– Nuleidžia droną.hover– Išlaiko droną savo pozicijoje.climb– Dronas juda nurodyta vertikalia kryptimi.climb_for– Dronas judina nurodytą vertikalią kryptį tam tikru atstumu.climb_to– Perkelia droną į nurodytą aukštį.move_at– Dronas juda nurodyta kryptimi ir greičiu.move_for– Dronas juda nurodyta kryptimi nurodytą atstumą.move_to– Dronas perkeliamas į nurodytą padėtį išlaikant tą pačią kryptį.turn– Pasuka droną į kairę arba į dešinę.turn_for– Pasuka droną nustatytu laipsnių skaičiumi.turn_to– Pasuka droną konkrečia kryptimi.move_with_vectors– Dronas judinamas naudojant vektoriais pagrįstas x, y, z ir sukimosi vertes.
Mutatoriai
set_steering_mode– Nustato drono vairavimo perspektyvą (POV).set_movement_mode– Nustato drono judėjimo stilių.set_climb_velocity– Nustato numatytąjį kopimo greitį.set_move_velocity– Nustato numatytąjį judėjimo greitį.set_turn_velocity– Nustato numatytąjį posūkio greitį.set_max_z_height– Nustato drono skrydžio aukščio ribą.set_xyz_position– Nustato dabartinę drono padėtį.
Getteriai
get_max_z_height– Grąžina maksimalų aukštį, kurį gali pasiekti dronas.get_flight_state– Grąžina dabartinę drono būseną.get_x_position– Grąžina drono x koordinatę.get_y_position– Grąžina drono y koordinatę.get_z_position– Grąžina drono z koordinatę.get_safe_mode– Grąžina drono propelerio užrakto būseną.is_climb_active– Grąžina, ar dronas šiuo metu kyla.is_move_active– Grąžina, ar dronas šiuo metu juda.is_turn_active– Grąžina, ar dronas šiuo metu sukasi.is_hovering– Grąžina, ar dronas šiuo metu kybo ore.is_taking_off– Grąžina, ar dronas šiuo metu kyla.is_landing– Grąžina, ar dronas šiuo metu leidžiasi.is_landed– Grąžina, ar dronas šiuo metu yra nusileidęs.
Veiksmai#
take_off#
take_off paleidžia sraigtus ir pakelia droną į orą. Šis metodas turi būti naudojamas prieš atliekant kitus judesius.
Naudojimas:
drone.take_off(climb_to, units, wait)
Parametrai |
Aprašymas |
|---|---|
|
Z padėtis (aukštis), į kurią dronas skris. |
|
Naudojami vienetai:
|
|
Pasirinktinai. |
# Fly for 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
land#
land nusileidimas nuleidžia droną ant žemės. Propeleriai suksis tol, kol projektas bus sustabdytas.
Naudojimas:
drone.land(wait)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. |
# Land after 1 second
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
hover#
hover sustabdo drono judėjimą bet kuria kryptimi ir išlaiko dabartinę savo padėtį ore.
Usage:
drone.hover()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 dronas juda nurodyta vertikalia kryptimi.
Usage:
drone.climb(direction, velocity)
Parametrai |
Aprašymas |
|---|---|
|
Drono skrydžio kryptis: |
|
Greitis, kuriuo dronas kils procentais. |
# 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 droną judina nurodyta vertikalia kryptimi tam tikru atstumu.
Naudojimas:
drone.climb_for(direction, distance, units, velocity, wait)
Parametrai |
Aprašymas |
|---|---|
|
Drono skrydžio kryptis: |
|
Atstumas, kurį dronas nuskris. |
|
Pasirinktinai. Atstumo matavimo vienetas:
|
|
Pasirinktinai. Greitis, kuriuo dronas kils procentais. Jei greitis nenurodytas, numatytasis greitis yra 50 %. |
|
Pasirinktinai. |
# 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 perkelia droną į konkrečią z padėtį.
Naudojimas:
drone.climb_to(z, units, velocity, wait)
Parametrai |
Aprašymas |
|---|---|
|
Z padėtis, pateikiama sveikuoju arba dešimtainiu skaičiumi, į kurią dronas pakils. |
|
Pasirinktinai. Atstumo matavimo vienetas:
|
|
Pasirinktinai. Drono kilimo greitis procentais. |
|
Pasirinktinai. |
# 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 judina droną nurodytu kampu ir greičiu.
Naudojimas:
drone.move_at(angle, velocity)
Parametrai |
Aprašymas |
|---|---|
|
Drono judėjimo kampas (sveikasis arba dešimtainis skaičius) nuo 0 iki 359 laipsnių. |
|
Drono judėjimo greitis procentais. |
# 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 droną judina tam tikra kryptimi tam tikru atstumu, naudodamas dabartinę set_move_velocity.
Naudojimas:
drone.move_for(angle, distance, units, velocity, wait)
Parametrai |
Aprašymas |
|---|---|
|
Kampas, nurodytas sveikuoju arba dešimtainiu skaičiumi (float), kuriuo dronas juda, svyruoja nuo 0 iki 359 laipsnių. |
|
Atstumas, nurodytas sveikuoju arba dešimtainiu skaičiumi, kurį dronas nukeliaus. |
|
Pasirinktinai. Atstumo matavimo vienetas:
|
|
Pasirinktinai. Drono judėjimo greitis procentais. |
|
Pasirinktinai. |
# 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 perkelia droną į nurodytą padėtį ore, išlaikydamas tą pačią kryptį.
Naudojimas:
drone.move_to(x, y, z, units, move_velocity, climb_velocity, wait)
Parametrai |
Aprašymas |
|---|---|
|
X koordinatė, į kurią dronas judės. |
|
Y koordinatė, į kurią dronas judės. |
|
Z koordinatė, į kurią dronas judės. |
|
Pasirinktinai. Atstumo matavimo vienetas:
|
|
Pasirinktinai. Drono judėjimo greitis procentais. |
|
Pasirinktinai. Drono kilimo greitis procentais. |
|
Pasirinktinai. |
# 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 pasuka droną tam tikra kryptimi, naudodamas srovę set_turn_velocity.
Naudojimas:
drone.turn(direction, velocity)
Parametrai |
Aprašymas |
|---|---|
|
Drono sukimosi kryptis: |
|
Pasirinktinai. Drono apsisukimo greitis procentais. |
# 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 pasuka droną nurodyta kryptimi nustatytu atstumu, palyginti su dabartine jo skriejimo kryptimi, naudojant dabartinę set_turn_velocity.
Naudojimas:
drone.turn_for(direction, angle, velocity, wait)
Parametrai |
Aprašymas |
|---|---|
|
Drono sukimosi kryptis: |
|
Drono posūkio kampas (sveikasis arba dešimtainis skaičius (float)), svyruojantis nuo 0 iki 359 laipsnių. |
|
Pasirinktinai. Drono apsisukimo greitis procentais. |
|
Pasirinktinai. |
# 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 pasuka droną tam tikra kryptimi, naudodamas dabartinę set_turn_velocity.
Naudojimas:
drone.turn_to(heading, velocity, wait)
Parametrai |
Aprašymas |
|---|---|
|
Kryptis, kuria dronas pasisuks nuo 0 iki 360 laipsnių. |
|
Pasirinktinai. Drono apsisukimo greitis procentais. |
|
Pasirinktinai. |
# 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 judina droną naudodamas vektorių pagrindu veikiantį judesį, derindamas judėjimą išilgai x ašies (horizontalios) ir y ašies (vertikalios), tuo pačiu metu sukdamas droną.
Pastaba: Šis metodas nustato judėjimo ir posūkio greičio vertes tiesiogiai, todėl nenaudoja set_move_velocity arba set_turn_velocity.
Naudojimas:
drone.move_with_vectors(forward, rightward, upward, rotation)
Parametrai |
Aprašymas |
|---|---|
|
Drono greitis išilgai Y ašies (judėjimas pirmyn ir atgal). Priima reikšmę nuo -100 iki 100 kaip procentą, kur neigiamos reikšmės juda atgal, o teigiamos – į priekį. |
|
Drono greitis išilgai X ašies (judėjimas iš vienos pusės į kitą). Priima reikšmę nuo -100 iki 100 kaip procentą, kur neigiamos reikšmės juda į kairę, o teigiamos – į dešinę. |
|
Drono greitis išilgai Z ašies (judėjimas aukštyn ir žemyn). Priima reikšmę nuo -100 iki 100 kaip procentą, kur neigiamos reikšmės juda žemyn, o teigiamos reikšmės – aukštyn. |
|
Drono sukimosi greitis. Priima reikšmę nuo -100 iki 100 kaip procentą, kur neigiamos reikšmės sukasi prieš laikrodžio rodyklę, o teigiamos – pagal laikrodžio rodyklę. |
# 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)
Mutatoriai#
set_steering_mode#
set_steering_mode nustato požiūrio tašką, naudojamą vairuojant droną.
Naudojimas:
drone.set_steering_mode(style)
Parametrai |
Aprašymas |
|---|---|
|
Nustato drono valdymo perspektyvą (POV). |
# 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 nustato drono judėjimo stilių.
Šis judėjimo stilius naudojamas, kai dronas skraido su valdikliu.
Naudojimas:
drone.set_movement_mode(style)
Parametrai |
Aprašymas |
|---|---|
|
Nustato greitį, naudojamą dronui valdyti.
|
# 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 nustato numatytąjį kopimo greitį procentais. Tai paveiks visus kitus su kopimu susijusius metodus. Numatytasis kopimo greitis yra 50 %.
Naudojimas:
drone.set_climb_velocity(velocity)
Parametrai |
Aprašymas |
|---|---|
|
Greitis, kuriuo dronas kils procentais. |
# 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 nustato numatytąjį judėjimo greitį procentais. Tai paveiks visus kitus su judėjimu susijusius metodus. Numatytasis judėjimo greitis yra 50 %.
Naudojimas:
drone.set_move_velocity(velocity)
Parametrai |
Aprašymas |
|---|---|
|
Drono judėjimo greitis procentais. |
# 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 nustato numatytąjį posūkio greitį procentais. Tai paveiks visus kitus su posūkiu susijusius metodus. Numatytasis posūkio greitis yra 50 %.
Naudojimas:
drone.set_turn_velocity(velocity)
Parametrai |
Aprašymas |
|---|---|
|
Drono apsisukimo greitis procentais. |
# 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 nustato ribą, kokiam aukščiui dronas gali skristi.
Naudojimas:
drone.set_max_z_height(z_height, units)
Parametrai |
Aprašymas |
|---|---|
|
Didžiausia z ašies vertė, išreikšta sveikuoju arba dešimtainiu skaičiumi, virš kurios dronas neskraidys, diapazone nuo 1000 iki 5000 mm arba nuo 40 iki 196 colių. |
|
Pasirinktinai. Atstumo vienetai:
|
# 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 nustato drono dabartinę x, y arba z koordinatę į nurodytą reikšmę.
Naudojimas:
drone.set_xyz_position(x, y, z, units)
Pastaba: Visi parametrai yra neprivalomi, bet turi būti nurodytas bent vienas (x, yarba z).
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Drono x koordinatė, kurią reikia nustatyti |
|
Pasirinktinai. Drono y koordinatė, kurią reikia nustatyti |
|
Pasirinktinai. Drono z koordinatė, kurią reikia nustatyti |
|
Pasirinktinai. Atstumo matavimo vienetas:
|
# 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()
Getteriai#
get_max_z_height#
get_max_z_height grąžina maksimalų drono pasiekiamą aukštį kaip sveikąjį skaičių.
Naudojimas:
drone.get_max_z_height(units)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Matavimo vienetas:
|
# 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 grąžina dabartinę drono skrydžio būseną kaip „DroneFlightStateType“:
MOTOR_OFF– Jokia kita skrydžio būsena nėra teisinga.CALIBRATION– Dronas kalibruoja savo jutiklius.MOTOR_START- Dronas užveda variklius.FLIGHT_READY– Dronas pasiruošęs skristi.FLIGHT- Dronas skrenda.
Usage:
drone.get_flight_state()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina drono x koordinatę dešimtainiu tikslumu (float).
Usage:
drone.get_x_position(units)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Vienetas, rodantis padėtį:
|
# 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 grąžina drono y koordinatę dešimtainiu tikslumu (float).
Naudojimas:
drone.get_y_position(units)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Vienetas, rodantis padėtį:
|
# 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 grąžina drono z koordinatę dešimtainiu tikslumu (float).
Naudojimas:
drone.get_z_position(units)
Parametrai |
Aprašymas |
|---|---|
|
Pasirinktinai. Vienetas, rodantis padėtį:
|
# 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 grąžina loginę reikšmę Boolean , nurodančią, ar drone įjungtas propelerio užraktas.
True– Propelerio užraktas įjungtas.False– Propelerio užraktas neįjungtas.
Naudojimas:
drone.get_safe_mode()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean rodančią, ar dronas kyla.
True– Dronas šiuo metu kyla.False– Dronas nekyla.
Naudojimas:
drone.is_climb_active()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean rodančią, ar dronas šiuo metu naudoja perkėlimo metodą.
True– Dronas šiuo metu naudoja judėjimo metodą.False– Dronas šiuo metu nenaudoja judėjimo metodo.
Naudojimas:
drone.is_move_active()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean rodančią, ar dronas sukasi.
True– Dronas šiuo metu sukasi.False– Dronas nesisuka.
Naudojimas:
drone.is_turn_active()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean , rodančią, ar dronas išlaiko savo poziciją (kybo virš oro).
True– Dronas šiuo metu išlaiko savo poziciją (kybo ore).False– Dronas šiuo metu keičia savo padėtį.
Naudojimas:
drone.is_hovering()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean nurodančią, ar dronas kyla.
True– Dronas šiuo metu kyla.False– Dronas nekyla.
Naudojimas:
drone.is_taking_off()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean nurodančią, ar dronas leidžiasi.
True– Dronas šiuo metu leidžiasi.False– Dronas nevyksta nusileidimo procese.
Naudojimas:
drone.is_landing()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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 grąžina loginę reikšmę Boolean nurodančią, ar dronas šiuo metu yra nusileidęs.
True– Dronas nusileido.False– Dronas nenusileido.
Naudojimas:
drone.is_landed()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# 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)