Pengontrol#

Perkenalan#

Kontroler VEX IQ (generasi ke-2) 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 saat terjadi peristiwa pada kontroler.

IQ Brain (generasi ke-2) dapat terhubung ke IQ Controller (generasi ke-2) atau IQ Controller (generasi ke-1). IQ Controller (generasi ke-1) harus memiliki Smart Radio berwarna biru yang terpasang.

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.

# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False

while True:
    if controller.axisA.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axisA.position() < 0:
        drivetrain.drive(REVERSE)
    elif controller.buttonEUp.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.buttonEUp.

  • True — Tombol yang ditentukan sedang ditekan.

  • False — Tombol yang ditentukan tidak ditekan.

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

Tampilan depan dan belakang Kontroler IQ generasi ke-2 dengan semua tombol disorot kuning. Permukaan kontroler berisi dua tombol joystick di sudut kiri atas dan kanan atas, dengan E atas dan bawah di bawah joystick kiri dan F atas dan bawah di bawah joystick kanan. Di bagian belakang kontroler terdapat L atas dan bawah serta R atas dan bawah di sisi kiri dan kanan masing-masing.

Tombol

Memerintah

buttonEDown

controller.buttonEDown.pressing() — Tombol E ▼

buttonEUp

controller.buttonEUp.pressing() — Tombol E ▲

buttonFDown

controller.buttonFDown.pressing() — Tombol F ▼

buttonFUp

controller.buttonFUp.pressing() — Tombol F ▲

buttonL3

controller.buttonL3.pressing() — Tombol Joystick Kiri, Hanya untuk Controller IQ (generasi ke-2)

buttonLDown

controller.buttonLDown.pressing() — Tombol L ▼

buttonLUp

controller.buttonLUp.pressing() — Tombol L ▲

buttonR3

controller.buttonR3.pressing() — Tombol Joystick Kanan, Hanya untuk Controller IQ (generasi ke-2)

buttonRDown

controller.buttonRDown.pressing() — Tombol R ▼

buttonRUp

controller.buttonRUp.pressing() — Tombol R ▲

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Turn right while E Up is held
while True:
    if controller.buttonEUp.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.axisA.

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

Kontroler IQ generasi ke-2 dengan empat sumbu joystick disorot. Pada joystick kiri, Sumbu A vertikal dan Sumbu B horizontal. Pada joystick kanan, Sumbu C horizontal dan Sumbu D vertikal.

Sumbu

Memerintah

axisA

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

axisB

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

axisC

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

axisD

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

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller.axisB.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller.axisB.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:

Tampilan depan dan belakang Kontroler IQ generasi ke-2 dengan semua tombol disorot kuning. Permukaan kontroler berisi dua tombol joystick di sudut kiri atas dan kanan atas, dengan E atas dan bawah di bawah joystick kiri dan F atas dan bawah di bawah joystick kanan. Di bagian belakang kontroler terdapat L atas dan bawah serta R atas dan bawah di sisi kiri dan kanan masing-masing.

Tombol

Memerintah

buttonEDown

controller.buttonEDown.pressed(callback, arg) — Tombol E ▼

buttonEUp

controller.buttonEUp.pressed(callback, arg) — Tombol E ▲

buttonFDown

controller.buttonFDown.pressed(callback, arg) — Tombol F ▼

buttonFUp

controller.buttonFUp.pressed(callback, arg) — Tombol F ▲

buttonL3

controller.buttonL3.pressed(callback, arg) — Tombol Joystick Kiri, Hanya untuk Controller IQ (generasi ke-2)

buttonLDown

controller.buttonLDown.pressed(callback, arg) — Tombol L ▼

buttonLUp

controller.buttonLUp.pressed(callback, arg) — Tombol L ▲

buttonR3

controller.buttonR3.pressed(callback, arg) — Tombol Joystick Kanan, Hanya untuk Controller IQ (generasi ke-2)

buttonRDown

controller.buttonRDown.pressed(callback, arg) — Tombol R ▼

buttonRUp

controller.buttonRUp.pressed(callback, arg) — Tombol R ▲

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 E Up is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

controller.buttonEUp.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:

Tampilan depan dan belakang Kontroler IQ generasi ke-2 dengan semua tombol disorot kuning. Permukaan kontroler berisi dua tombol joystick di sudut kiri atas dan kanan atas, dengan E atas dan bawah di bawah joystick kiri dan F atas dan bawah di bawah joystick kanan. Di bagian belakang kontroler terdapat L atas dan bawah serta R atas dan bawah di sisi kiri dan kanan masing-masing.

Tombol

Memerintah

buttonEDown

controller.buttonEDown.released(callback, arg) — Tombol E ▼

buttonEUp

controller.buttonEUp.released(callback, arg) — Tombol E ▲

buttonFDown

controller.buttonFDown.released(callback, arg) — Tombol F ▼

buttonFUp

controller.buttonFUp.released(callback, arg) — Tombol F ▲

buttonL3

controller.buttonL3.released(callback, arg) — Tombol Joystick Kiri, Hanya untuk Controller IQ (generasi ke-2)

buttonLDown

controller.buttonLDown.released(callback, arg) — Tombol L ▼

buttonLUp

controller.buttonLUp.released(callback, arg) — Tombol L ▲

buttonR3

controller.buttonR3.released(callback, arg) — Tombol Joystick Kanan, Hanya untuk Controller IQ (generasi ke-2)

buttonRDown

controller.buttonRDown.released(callback, arg) — Tombol R ▼

buttonRUp

controller.buttonRUp.released(callback, arg) — Tombol R ▲

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 E Up is released
def stop_driving():
    drivetrain.stop()

controller.buttonEUp.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:

Kontroler IQ generasi ke-2 dengan empat sumbu joystick disorot. Pada joystick kiri, Sumbu A vertikal dan Sumbu B horizontal. Pada joystick kanan, Sumbu C horizontal dan Sumbu D vertikal.

Sumbu

Memerintah

axisA

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

axisB

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

axisC

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

axisD

controller.axisD.changed(callback, arg) — Sumbu vertikal 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 Event dengan Parameter untuk informasi selengkapnya.

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

controller.axisD.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()