Pengontrol#

Perkenalan#

Kontroler VEX EXP memiliki tombol dan dua joystick. Metode kontroler dapat digunakan untuk memeriksa penekanan tombol, membaca pergerakan joystick, mengaktifkan atau menonaktifkan tindakan kontroler yang telah dikonfigurasi, atau menjalankan fungsi ketika terjadi peristiwa pada kontroler.

Aksi pengontrol yang dikonfigurasi adalah perilaku pengontrol yang diatur di menu Perangkat. Gunakan remote_control_code_enabled untuk sementara mengaktifkan atau menonaktifkan aksi yang dikonfigurasi tersebut selama proyek berlangsung.

Halaman ini menggunakan controller sebagai contoh nama controller. Ganti dengan nama yang Anda konfigurasi sendiri sesuai kebutuhan.

Berikut adalah daftar semua metode yang tersedia:

Aksi — Mengaktifkan atau menonaktifkan aksi pengontrol yang telah dikonfigurasi.

Getter — Membaca status tombol dan posisi joystick.

  • .pressing — Mengembalikan apakah tombol yang ditentukan sedang ditekan.

  • .position — Mengembalikan posisi sumbu joystick yang ditentukan.

Callback — Menjalankan fungsi saat input controller berubah.

  • .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.

Konstruktor — Membuat objek Controller secara manual.

Tindakan#

remote_control_code_enabled#

remote_control_code_enabled adalah variabel yang mengaktifkan atau menonaktifkan tindakan pengontrol yang dikonfigurasi di menu Perangkat. Tindakan pengontrol yang dikonfigurasi diaktifkan secara default.

Usage:
remote_control_code_enabled = state

Nilai

Keterangan

True

Mengaktifkan tindakan yang dikonfigurasi oleh controller.

False

Menonaktifkan tindakan yang dikonfigurasi pada controller.

# Drive forward or backward using the left joystick
remote_control_code_enabled = False

while True:
    if controller.axis3.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axis3.position() < 0:
        drivetrain.drive(REVERSE)
    # Press A to use controller configured actions again
    elif controller.buttonA.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

Pencari#

.pressing#

.pressing mengembalikan nilai boolean yang menunjukkan apakah tombol tertentu pada controller sedang ditekan. Metode ini harus dipanggil pada objek tombol tertentu, seperti controller.buttonA.

  • True — Tombol yang ditentukan sedang ditekan.

  • False — Tombol yang ditentukan tidak ditekan.

Penggunaan:
Salah satu objek tombol yang tersedia dapat digunakan dengan metode ini:

Bagian depan dan atas dari EXP Controller dengan joystick, tombol panah, dan tombol aksi yang disorot dengan warna kuning. Di permukaan controller terdapat dua joystick di kiri dan kanan, dengan tombol panah atas dan bawah di sebelah kiri dan tombol A dan B di sebelah kanan. Di bagian atas controller terdapat L1 dan L2 di sisi kiri dan R1 dan R2 di sisi kanan.

Tombol

Memerintah

buttonA

controller.buttonA.pressing() — Tombol A

buttonB

controller.buttonB.pressing() — Tombol B

buttonDown

controller.buttonDown.pressing() — Tombol Bawah

buttonUp

controller.buttonUp.pressing() — Tombol Naik

buttonL1

controller.buttonL1.pressing() — Tombol L1

buttonL2

controller.buttonL2.pressing() — Tombol L2

buttonL3

controller.buttonL3.pressing() — Tombol L3

buttonR1

controller.buttonR1.pressing() — Tombol R1

buttonR2

controller.buttonR2.pressing() — Tombol R2

buttonR3

controller.buttonR3.pressing() — Tombol R3

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Turn right while L1 is pressed
while True:
    if controller.buttonL1.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

.position#

.position mengembalikan posisi sumbu joystick sebagai angka dari -100 hingga 100.

Metode ini harus dipanggil pada objek sumbu tertentu, seperti controller.axis1.

Penggunaan:
Salah satu objek sumbu yang tersedia dapat digunakan dengan metode ini:

Sisi depan EXP Controller dengan nomor sumbu joystick yang disorot dengan warna merah. Pada permukaan controller, joystick kiri diberi label Sumbu 4 untuk gerakan kiri dan kanan serta Sumbu 3 untuk gerakan atas dan bawah, sedangkan joystick kanan diberi label Sumbu 1 untuk gerakan kiri dan kanan serta Sumbu 2 untuk gerakan atas dan bawah.

Sumbu

Memerintah

axis1

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

axis2

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

axis3

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

axis4

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

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller.axis4.position() < -10:
        drivetrain.turn(LEFT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

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.

Penggunaan:
Salah satu objek tombol yang tersedia dapat digunakan dengan metode ini:

Bagian depan dan atas dari EXP Controller dengan joystick, tombol panah, dan tombol aksi yang disorot dengan warna kuning. Di permukaan controller terdapat dua joystick di kiri dan kanan, dengan tombol panah atas dan bawah di sebelah kiri dan tombol A dan B di sebelah kanan. Di bagian atas controller terdapat L1 dan L2 di sisi kiri dan R1 dan R2 di sisi kanan.

Tombol

Memerintah

buttonA

controller.buttonA.pressed(callback, arg) — Tombol A

buttonB

controller.buttonB.pressed(callback, arg) — Tombol B

buttonDown

controller.buttonDown.pressed(callback, arg) — Tombol Bawah

buttonUp

controller.buttonUp.pressed(callback, arg) — Tombol Atas

buttonL1

controller.buttonL1.pressed(callback, arg) — Tombol L1

buttonL2

controller.buttonL2.pressed(callback, arg) — Tombol L2

buttonL3

controller.buttonL3.pressed(callback, arg) — Tombol L3

buttonR1

controller.buttonR1.pressed(callback, arg) — Tombol R1

buttonR2

controller.buttonR2.pressed(callback, arg) — Tombol R2

buttonR3

controller.buttonR3.pressed(callback, arg) — Tombol R3

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 selengkapnya.

# Drive forward when R1 is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 200, MM)

controller.buttonR1.pressed(drive_forward)

.released#

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

Penggunaan:
Salah satu objek tombol yang tersedia dapat digunakan dengan metode ini:

Bagian depan dan atas dari EXP Controller dengan joystick, tombol panah, dan tombol aksi yang disorot dengan warna kuning. Di permukaan controller terdapat dua joystick di kiri dan kanan, dengan tombol panah atas dan bawah di sebelah kiri dan tombol A dan B di sebelah kanan. Di bagian atas controller terdapat L1 dan L2 di sisi kiri dan R1 dan R2 di sisi kanan.

Tombol

Memerintah

buttonA

controller.buttonA.released(callback, arg) — Tombol A

buttonB

controller.buttonB.released(callback, arg) — Tombol B

buttonDown

controller.buttonDown.released(callback, arg) — Tombol Bawah

buttonUp

controller.buttonUp.released(callback, arg) — Tombol Naik

buttonL1

controller.buttonL1.released(callback, arg) — Tombol L1

buttonL2

controller.buttonL2.released(callback, arg) — Tombol L2

buttonL3

controller.buttonL3.released(callback, arg) — Tombol L3

buttonR1

controller.buttonR1.released(callback, arg) — Tombol R1

buttonR2

controller.buttonR2.released(callback, arg) — Tombol R2

buttonR3

controller.buttonR3.released(callback, arg) — Tombol R3

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 Event dengan Parameter untuk informasi selengkapnya.

# Stop driving when R1 is released
def stop_driving():
    drivetrain.stop()

controller.buttonR1.released(stop_driving)

.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 objek sumbu yang tersedia dapat digunakan dengan metode ini:

Sisi depan EXP Controller dengan nomor sumbu joystick yang disorot dengan warna merah. Pada permukaan controller, joystick kiri diberi label Sumbu 4 untuk gerakan kiri dan kanan serta Sumbu 3 untuk gerakan atas dan bawah, sedangkan joystick kanan diberi label Sumbu 1 untuk gerakan kiri dan kanan serta Sumbu 2 untuk gerakan atas dan bawah.

Sumbu

Memerintah

axis1

controller.axis1.changed(callback, arg) — Sumbu horizontal joystick kanan

axis2

controller.axis2.changed(callback, arg) — Sumbu vertikal joystick kanan

axis3

controller.axis3.changed(callback, arg) — Sumbu vertikal joystick kiri

axis4

controller.axis4.changed(callback, arg) — Sumbu horizontal joystick kiri

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 Event dengan Parameter untuk informasi selengkapnya.

# Play a sound when the left joystick moves
def beep():
    brain.play_sound(SoundType.TADA)

controller.axis3.changed(beep)

Konstruktor#

Controller#

Controller membuat objek Controller. Pembuatan objek Controller secara manual hanya diperlukan saat mengkonfigurasi controller di luar VEXcode.

Usage:
Controller()

Parameter

Keterangan

Konstruktor ini tidak memiliki parameter.

# Create a Controller object
my_controller = Controller()