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.
remote_control_code_enabled— Mengaktifkan atau menonaktifkan tindakan pengontrol yang dikonfigurasi di menu Perangkat.
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.
Controller— Membuat objek Controller.
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 |
|---|---|
|
Mengaktifkan tindakan yang dikonfigurasi oleh controller. |
|
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:
Tombol |
Memerintah |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
Sumbu |
Memerintah |
|---|---|
|
|
|
|
|
|
|
|
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:
Tombol |
Memerintah |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Sebuah fungsi yang telah didefinisikan sebelumnya untuk dijalankan setiap kali tombol yang ditentukan ditekan. |
|
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:
Tombol |
Memerintah |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Sebuah fungsi yang telah didefinisikan sebelumnya untuk dijalankan setiap kali tombol yang ditentukan dilepas. |
|
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:
Sumbu |
Memerintah |
|---|---|
|
|
|
|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Sebuah fungsi yang telah didefinisikan sebelumnya untuk dijalankan setiap kali posisi joystick berubah sepanjang sumbu yang ditentukan. |
|
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()