Pengontrol#

Perkenalan#

Pengontrol Drone VEX AIR memiliki tata letak 12 tombol dan dua joystick. Input ini memungkinkan drone untuk mendeteksi penekanan tombol dan pergerakan joystick, sehingga memungkinkan kontrol yang interaktif dan responsif.

Berikut adalah daftar semua metode yang tersedia:

Getter – Membaca tombol, joystick, dan status koneksi.

  • pressing – Mengembalikan nilai true jika tombol tertentu sedang ditekan.

  • position – Mengembalikan posisi joystick sepanjang sumbu yang ditentukan.

  • is_drone_connected – Mengembalikan apakah pengontrol terhubung ke drone.

  • get_battery_level – Mengembalikan level baterai pengontrol.

Callback – Merespons perubahan input tombol atau joystick.

  • pressed – Menjalankan fungsi ketika tombol tertentu ditekan.

  • released – Menjalankan fungsi ketika tombol tertentu dilepaskan.

  • changed – Menjalankan fungsi ketika posisi joystick berubah sepanjang sumbu yang ditentukan.

Pencari#

pressing#

Metode pressing mengembalikan nilai Boolean yang menunjukkan apakah tombol tertentu pada controller sedang ditekan. Metode ini harus dipanggil pada objek tombol tertentu, seperti button5 (lihat daftar lengkap objek tombol di bawah).

  • True - Tombol yang ditentukan sedang ditekan.

  • False - Tombol yang ditentukan tidak ditekan.

Cara Penggunaan:
Salah satu dari delapan tombol yang tersedia, bernomor 5 hingga 12, dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

Tombol

Memerintah

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

Pengontrol Drone VEX AIR yang menunjukkan tombol 5 hingga 12. Tombol 5 dan 6 terletak di bagian belakang sisi kanan pengontrol, tegak lurus dengan joystick. Tombol 7 dan 8 berada di posisi yang sama di sisi kiri. Tombol 9 hingga 12 terletak di permukaan bawah pengontrol, dengan 9 di pojok kanan atas di atas 10, dan 11 di pojok kiri atas di atas 12.

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan posisi sumbu joystick yang ditentukan, sebagai persentase dari –100% hingga 100%.

Penggunaan:

Salah satu dari empat sumbu yang tersedia dapat digunakan dengan metode ini, yang diberi nomor 1 hingga 4.

Sumbu

Memerintah

axis1

controller.axis1.position() — Sumbu vertikal joystick kiri

axis2

controller.axis2.position() — Sumbu horizontal joystick kiri

axis3

controller.axis3.position() — Sumbu horizontal joystick kanan

axis4

controller.axis4.position() — Sumbu vertikal joystick kanan

Pengontrol Drone VEX AIR dengan label Sumbu 1 dan 2 disorot di sekitar joystick kiri, dan label Sumbu 3 dan 4 disorot di sekitar joystick kanan.

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan nilai Boolean yang menunjukkan apakah drone terhubung atau tidak.

  • True - Drone terhubung.

  • False - Drone tidak terhubung.

Penggunaan:

controller.is_drone_connected()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# 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 mengembalikan level baterai Controller, sebagai persentase dari 0% hingga 100%.

Penggunaan:

controller.get_battery_level()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

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

Panggilan balik#

pressed#

pressed menjalankan sebuah fungsi ketika tombol yang ditentukan ditekan. Setelah digunakan, fungsi tersebut akan berjalan secara otomatis setiap kali tombol tersebut ditekan.

Cara Penggunaan:
Salah satu dari delapan tombol yang tersedia dapat digunakan dengan metode ini, bernomor 5 hingga 12.

Tombol

Memerintah

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

Pengontrol Drone VEX AIR yang menunjukkan tombol 5 hingga 12. Tombol 5 dan 6 terletak di bagian belakang sisi kanan pengontrol, tegak lurus dengan joystick. Tombol 7 dan 8 berada di posisi yang sama di sisi kiri. Tombol 9 hingga 12 terletak di permukaan bawah pengontrol, dengan 9 di pojok kanan atas di atas 10, dan 11 di pojok kiri atas di atas 12.

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya untuk dijalankan setiap kali tombol yang ditentukan ditekan.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Menggunakan Event dengan Parameter untuk informasi lebih lanjut.

# 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 menjalankan sebuah fungsi ketika tombol yang ditentukan dilepaskan. Setelah digunakan, fungsi tersebut akan berjalan secara otomatis setiap kali tombol tersebut dilepaskan.

Cara Penggunaan:
Salah satu dari delapan tombol yang tersedia dapat digunakan dengan metode ini, bernomor 5 hingga 12.

Tombol

Memerintah

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

Pengontrol Drone VEX AIR yang menunjukkan tombol 5 hingga 12. Tombol 5 dan 6 terletak di bagian belakang sisi kanan pengontrol, tegak lurus dengan joystick. Tombol 7 dan 8 berada di posisi yang sama di sisi kiri. Tombol 9 hingga 12 terletak di permukaan bawah pengontrol, dengan 9 di pojok kanan atas di atas 10, dan 11 di pojok kiri atas di atas 12.

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya untuk dijalankan setiap kali tombol yang ditentukan dilepas.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Menggunakan Fungsi dengan Parameter untuk informasi lebih lanjut.

# 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 menjalankan sebuah fungsi ketika posisi joystick berubah sepanjang sumbu yang ditentukan. Setelah digunakan, fungsi tersebut akan berjalan secara otomatis setiap kali posisi joystick berubah sepanjang sumbu tersebut.

Penggunaan:

Salah satu dari empat sumbu yang tersedia dapat digunakan dengan metode ini, yang diberi nomor 1 hingga 4.

Sumbu

Memerintah

axis1

controller.axis1.position() — Sumbu vertikal joystick kiri

axis2

controller.axis2.position() — Sumbu horizontal joystick kiri

axis3

controller.axis3.position() — Sumbu horizontal joystick kanan

axis4

controller.axis4.position() — Sumbu vertikal joystick kanan

Pengontrol Drone VEX AIR dengan label Sumbu 1 dan 2 disorot di sekitar joystick kiri, dan label Sumbu 3 dan 4 disorot di sekitar joystick kanan.

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya untuk dijalankan setiap kali posisi joystick berubah sepanjang sumbu yang ditentukan.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Menggunakan Fungsi dengan Parameter untuk informasi lebih lanjut.

# 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)