Valdiklis#

Įvadas#

„VEX AIR“ drono valdiklis turi 12 mygtukų išdėstymą ir dvi valdymo svirtis. Šios įvesties duomenys leidžia dronui aptikti mygtukų paspaudimus ir valdymo svirčių judesius, todėl valdymas yra interaktyvus ir reaguoja greitai.

Žemiau pateikiamas visų galimų metodų sąrašas:

Getteriai – skaitymo mygtukas, valdymo svirtis ir ryšio būsena.

  • pressing – Grąžina, ar šiuo metu paspaudžiamas konkretus mygtukas.

  • position – Grąžina valdymo svirties padėtį išilgai nurodytos ašies.

  • is_drone_connected – Grąžina, ar valdiklis prijungtas prie drono.

  • get_battery_level – Grąžina valdiklio akumuliatoriaus lygį.

Atgaliniai iškvietimai – reaguoti į mygtuko arba valdymo svirties įvesties pakeitimus.

  • pressed – Paleidžia funkciją, kai paspaudžiamas nurodytas mygtukas.

  • released – Vykdo funkciją, kai atleidžiamas nurodytas mygtukas.

  • changed – Vykdo funkciją, kai vairasvirtės padėtis pasikeičia išilgai nurodytos ašies.

Getteriai#

pressing#

pressing grąžina loginę reikšmę, nurodančią, ar šiuo metu paspaudžiamas konkretus valdiklio mygtukas. Šis metodas turi būti iškviestas konkrečiam mygtuko objektui, pvz., button5 (žr. visą mygtukų objektų sąrašą žemiau).

  • True – Paspaudžiamas nurodytas mygtukas.

  • False – Nurodytas mygtukas nėra paspaudžiamas.

Naudojimas:
Šiuo metodu galima naudoti vieną iš aštuonių galimų mygtukų, sunumeruotų nuo 5 iki 12, kaip parodyta toliau:

Mygtukas

Komanda

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

„VEX AIR“ drono valdiklis, kuriame matyti mygtukai nuo 5 iki 12. 5 ir 6 mygtukai yra valdiklio dešinėje pusėje, statmenai valdymo svirtiai. 7 ir 8 mygtukai yra toje pačioje vietoje kairėje pusėje. 9–12 mygtukai yra valdiklio apačioje, 9 yra viršutiniame dešiniajame kampe virš 10, o 11 – viršutiniame kairiajame kampe virš 12.

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Fly using the controller sticks
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )

    # Capture an image from the forward camera when button 5 is pressed.
    if controller.button5.pressing():
        drone.camera.capture_image(FORWARD_CAMERA)

    wait(5, MSEC)

position#

position grąžina nurodytos valdymo svirties ašies padėtį procentais nuo –100 % iki 100 %.

Naudojimas:

Šiuo metodu galima naudoti vieną iš keturių galimų ašių, sunumeruotų nuo 1 iki 4.

Ašis

Komanda

axis1

controller.axis1.position() — Kairiojo vairasvirtės vertikali ašis

axis2

controller.axis2.position() — Kairiosios vairasvirtės horizontalioji ašis

axis3

controller.axis3.position() — Dešinės vairasvirtės horizontalioji ašis

axis4

controller.axis4.position() — Dešinės vairasvirtės vertikali ašis

„VEX AIR“ drono valdiklis, kurio kairiajame valdymo svirties krašte paryškintos 1 ir 2 ašių etiketės, o dešiniajame valdymo svirties krašte – 3 ir 4 ašių etiketės.

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
    if controller.axis1.position() > 0:
        drone.climb(direction=UP, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

is_drone_connected#

is_drone_connected grąžina loginę reikšmę, nurodančią, ar dronas yra prijungtas.

  • True – Dronas prijungtas.

  • False – Dronas neprijungtas.

Naudojimas:

controller.is_drone_connected()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# Print controller connection status on screen.
while True:
    if controller.is_drone_connected():
        controller.screen.clear_screen()
        controller.screen.set_cursor(1, 1)
        controller.screen.print("Controller connected")
    wait(0.5, SECONDS)

get_battery_level#

get_battery_level grąžina valdiklio akumuliatoriaus lygį procentais nuo 0% iki 100%.

Naudojimas:

controller.get_battery_level()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# Show controller's battery level.
if controller.get_battery_level() > 50:
    controller.screen.print("Battery level ok")
else:
    controller.screen.print("Battery level low")

Atgaliniai skambučiai#

pressed#

pressed vykdo funkciją, kai paspaudžiamas nurodytas mygtukas. Kai jis naudojamas, funkcija bus paleista automatiškai kiekvieną kartą paspaudus tą mygtuką.

Naudojimas:
Šiuo metodu galima naudoti vieną iš aštuonių galimų mygtukų, sunumeruotų nuo 5 iki 12.

Mygtukas

Komanda

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

„VEX AIR“ drono valdiklis, kuriame matyti mygtukai nuo 5 iki 12. 5 ir 6 mygtukai yra valdiklio dešinėje pusėje, statmenai valdymo svirtiai. 7 ir 8 mygtukai yra toje pačioje vietoje kairėje pusėje. 9–12 mygtukai yra valdiklio apačioje, 9 yra viršutiniame dešiniajame kampe virš 10, o 11 – viršutiniame kairiajame kampe virš 12.

Parametrai

Aprašymas

callback

Anksčiau apibrėžta function, kuri bus vykdoma kiekvieną kartą paspaudus nurodytą mygtuką.

arg

Pasirinktinai. Tuple su argumentais, kuriuos reikia perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Įvykių su parametrais naudojimas.

# Take a picture when button 5 is pressed.
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

# Run take_picture each time button 5 is pressed.
controller.button5.pressed(take_picture)

# Fly using the controller sticks.
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)

released#

released vykdo funkciją, kai atleidžiamas nurodytas mygtukas. Kai jis naudojamas, funkcija bus paleista automatiškai kiekvieną kartą atleidus tą mygtuką.

Naudojimas:
Šiuo metodu galima naudoti vieną iš aštuonių galimų mygtukų, sunumeruotų nuo 5 iki 12.

Mygtukas

Komanda

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

„VEX AIR“ drono valdiklis, kuriame matyti mygtukai nuo 5 iki 12. 5 ir 6 mygtukai yra valdiklio dešinėje pusėje, statmenai valdymo svirtiai. 7 ir 8 mygtukai yra toje pačioje vietoje kairėje pusėje. 9–12 mygtukai yra valdiklio apačioje, 9 yra viršutiniame dešiniajame kampe virš 10, o 11 – viršutiniame kairiajame kampe virš 12.

Parametrai

Aprašymas

callback

Anksčiau apibrėžta function, kuri bus vykdoma kiekvieną kartą atleidus nurodytą mygtuką.

arg

Pasirinktinai. Tuple su argumentais, kuriuos reikia perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijų su parametrais naudojimas.

# Take a picture when button 5 is released.
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

# Run take_picture each time button 5 is released.
controller.button5.released(take_picture)

# Fly using the controller sticks.
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)

changed#

changed vykdo funkciją, kai vairasvirtės padėtis pasikeičia išilgai nurodytos ašies. Kai ši funkcija bus panaudota, ji bus vykdoma automatiškai kiekvieną kartą, kai vairasvirtės padėtis pasikeičia išilgai tos ašies.

Naudojimas:

Šiuo metodu galima naudoti vieną iš keturių galimų ašių, sunumeruotų nuo 1 iki 4.

Ašis

Komanda

axis1

controller.axis1.position() — Kairiojo vairasvirtės vertikali ašis

axis2

controller.axis2.position() — Kairiosios vairasvirtės horizontalioji ašis

axis3

controller.axis3.position() — Dešinės vairasvirtės horizontalioji ašis

axis4

controller.axis4.position() — Dešinės vairasvirtės vertikali ašis

„VEX AIR“ drono valdiklis, kurio kairiajame valdymo svirties krašte paryškintos 1 ir 2 ašių etiketės, o dešiniajame valdymo svirties krašte – 3 ir 4 ašių etiketės.

Parametrai

Aprašymas

callback

Anksčiau apibrėžta function, kuri paleidžiama kiekvieną kartą, kai vairasvirtės padėtis pasikeičia išilgai nurodytos ašies.

arg

Pasirinktinai. Tuple su argumentais, kuriuos reikia perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijų su parametrais naudojimas.

# Move forward when the left joystick moves.
def on_axis1_changed():
    drone.move_for(direction=0, distance=200, velocity=50, units=MM)

drone.take_off(climb_to=500)
controller.axis1.changed(on_axis1_changed)