Pengontrol#

Perkenalan#

Kontroler V5 memiliki tombol, dua joystick, motor getar, dan layar. Metode kontroler dapat digunakan untuk memeriksa penekanan tombol, membaca pergerakan joystick, menggetarkan kontroler, mengaktifkan atau menonaktifkan tindakan kontroler yang telah dikonfigurasi, menjalankan fungsi saat terjadi peristiwa pada kontroler, atau menampilkan teks pada layar kontroler.

Tindakan Controller yang dikonfigurasi adalah perilaku controller yang diatur di menu Perangkat. Gunakan remote_control_code_enabled untuk sementara mengaktifkan atau menonaktifkan tindakan yang dikonfigurasi tersebut selama proyek berlangsung.

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

Berikut adalah daftar semua metode yang tersedia:

Aksi — Getarkan Controller atau aktifkan/nonaktifkan aksi Controller yang telah dikonfigurasi.

  • rumble — Memainkan pola getaran pada Controller.

  • remote_control_code_enabled — Mengaktifkan atau menonaktifkan tindakan Pengontrol yang dikonfigurasi di menu Perangkat.

Layar — Menampilkan teks dan angka pada layar Pengontrol.

  • print — Menampilkan teks, angka, atau nilai variabel pada layar Controller.

  • set_cursor — Memindahkan kursor ke baris dan kolom tertentu pada layar Controller.

  • column — Mengembalikan kolom kursor saat ini pada layar Controller.

  • row — Mengembalikan baris kursor saat ini di layar Controller.

  • clear_screen — Membersihkan layar Pengontrol.

  • clear_row — Menghapus satu baris pada layar Controller.

  • next_row — Memindahkan kursor ke baris berikutnya di layar Controller.

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#

rumble#

rumble memainkan pola getaran pada Controller. Dalam rangkaian pola tersebut, titik adalah getaran pendek, tanda hubung adalah getaran panjang, dan spasi adalah jeda.

Usage:
controller_1.rumble(pattern)

Parameter

Keterangan

pattern

Serangkaian karakter yang terdiri dari titik, tanda hubung, dan spasi yang mewakili pola gemuruh.

# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")

remote_control_code_enabled#

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

Usage:
remote_control_code_enabled = state

Nilai

Keterangan

True

Mengaktifkan tindakan yang dikonfigurasi pada 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_1.axis3.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller_1.axis3.position() < 0:
        drivetrain.drive(REVERSE)
    # Press A to use Controller configured actions again
    elif controller_1.buttonA.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

Layar#

Layar V5 Controller memiliki 3 baris dan 19 kolom untuk menampilkan teks dan angka.

Tangkapan layar dari layar Pengontrol V5, menunjukkan baris dan kolom di area yang dapat dicetak. Baris 1 Kolom 1 dimulai di pojok kiri atas dan baris 3, kolom 19 berada di pojok kanan bawah.

print#

controller_1.screen.print menampilkan teks, angka, atau nilai variabel pada layar Controller menggunakan posisi kursor saat ini.

Usage:
controller_1.screen.print(value, sep, precision)

Parameter

Keterangan

value

Teks, angka, atau nilai variabel yang akan ditampilkan pada layar Controller. Lebih dari satu nilai dapat dicetak dengan memisahkan nilai-nilai tersebut dengan koma.

sep

Opsional. Sebuah string untuk ditempatkan di antara nilai. Ini harus ditulis sebagai argumen kata kunci, seperti sep=”- “. Nilai defaultnya adalah ” “.

precision

Opsional. Jumlah tempat desimal yang akan ditampilkan saat mencetak angka sederhana. Ini harus ditulis sebagai argumen kata kunci, seperti precision=2. Nilai defaultnya adalah 2.

# Print a number on the Controller screen
controller_1.screen.print(1)

# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")

# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)

set_cursor#

set_cursor memindahkan kursor ke baris dan kolom tertentu pada layar Controller. Nilai yang dicetak berikutnya akan muncul di posisi tersebut.

Usage:
controller_1.screen.set_cursor(row, col)

Parameter

Keterangan

row

Baris kursor, dari 1 hingga 3.

col

Kolom kursor, dari 1 hingga 19.

# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")

column#

column mengembalikan kolom saat ini tempat teks akan dicetak pada layar Controller.

Usage:
controller_1.screen.column()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())

row#

row mengembalikan baris saat ini tempat teks akan dicetak di layar Controller.

Usage:
controller_1.screen.row()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())

clear_screen#

clear_screen membersihkan layar Controller dan memindahkan kursor kembali ke posisi awal.

Usage:
controller_1.screen.clear_screen()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()

clear_row#

clear_row menghapus satu baris pada layar Controller.

Usage:
controller_1.screen.clear_row(row)

Parameter

Keterangan

row

Opsional. Baris yang akan dihapus, dari 1 hingga 3Jika tidak ada baris yang diberikan, baris kursor saat ini akan dihapus.

# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)

next_row#

next_row memindahkan kursor ke kolom 1 pada baris berikutnya di layar Controller. Nilai yang dicetak berikutnya akan muncul pada baris tersebut.

Usage:
controller_1.screen.next_row()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")

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_1.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:

Sisi depan dan belakang Kontroler V5 dengan tombol-tombol yang disorot dengan warna kuning. Di permukaan kontroler terdapat tombol panah atas, bawah, kiri, dan kanan di sebelah kiri, dan tombol X, A, B, Y searah jarum jam dari pukul 12 di sebelah kanan. Di sisi belakang kontroler terdapat L1, L2, R1, dan R2 di sisi kiri dan kanan.

Tombol

Memerintah

buttonA

controller_1.buttonA.pressing() — Tombol A

buttonB

controller_1.buttonB.pressing() — Tombol B

buttonX

controller_1.buttonX.pressing() — Tombol X

buttonY

controller_1.buttonY.pressing() — Tombol Y

buttonDown

controller_1.buttonDown.pressing() — Tombol Bawah

buttonUp

controller_1.buttonUp.pressing() — Tombol Naik

buttonLeft

controller_1.buttonLeft.pressing() — Tombol Kiri

buttonRight

controller_1.buttonRight.pressing() — Tombol Kanan

buttonL1

controller_1.buttonL1.pressing() — Tombol L1

buttonL2

controller_1.buttonL2.pressing() — Tombol L2

buttonR1

controller_1.buttonR1.pressing() — Tombol R1

buttonR2

controller_1.buttonR2.pressing() — Tombol R2

Parameter

Keterangan

Metode ini tidak memiliki parameter.

# Turn right while L1 is pressed
while True:
    if controller_1.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_1.axis1.

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

Pengontrol VEX V5 dengan sumbu di sekitar joystick diberi label. Sumbu 1 dan 2 berada di sekitar joystick kanan, dan Sumbu 3 dan 4 berada di sekitar joystick kiri.

Sumbu

Memerintah

axis1

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

axis2

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

axis3

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

axis4

controller_1.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_1.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller_1.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:

Sisi depan dan belakang Kontroler V5 dengan tombol-tombol yang disorot dengan warna kuning. Di permukaan kontroler terdapat tombol panah atas, bawah, kiri, dan kanan di sebelah kiri, dan tombol X, A, B, Y searah jarum jam dari pukul 12 di sebelah kanan. Di sisi belakang kontroler terdapat L1, L2, R1, dan R2 di sisi kiri dan kanan.

Tombol

Memerintah

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.pressed(callback, arg) — Tombol X

buttonY

controller_1.buttonY.pressed(callback, arg) — Tombol Y

buttonDown

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

buttonUp

controller_1.buttonUp.pressed(callback, arg) — Tombol Naik

buttonLeft

controller_1.buttonLeft.pressed(callback, arg) — Tombol Kiri

buttonRight

controller_1.buttonRight.pressed(callback, arg) — Tombol Kanan

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

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

controller_1.buttonA.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:

Sisi depan dan belakang Kontroler V5 dengan tombol-tombol yang disorot dengan warna kuning. Di permukaan kontroler terdapat tombol panah atas, bawah, kiri, dan kanan di sebelah kiri, dan tombol X, A, B, Y searah jarum jam dari pukul 12 di sebelah kanan. Di sisi belakang kontroler terdapat L1, L2, R1, dan R2 di sisi kiri dan kanan.

Tombol

Memerintah

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.released(callback, arg) — Tombol X

buttonY

controller_1.buttonY.released(callback, arg) — Tombol Y

buttonDown

controller_1.buttonDown.released(callback, arg) — Tombol Turun

buttonUp

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

buttonLeft

controller_1.buttonLeft.released(callback, arg) — Tombol Kiri

buttonRight

controller_1.buttonRight.released(callback, arg) — Tombol Kanan

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

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.

# Drive backward when A is released
def back_up():
    drivetrain.drive_for(REVERSE, 100, MM)

controller_1.buttonA.released(back_up)

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

Pengontrol VEX V5 dengan sumbu di sekitar joystick diberi label. Sumbu 1 dan 2 berada di sekitar joystick kanan, dan Sumbu 3 dan 4 berada di sekitar joystick kiri.

Sumbu

Memerintah

axis1

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

axis2

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

axis3

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

axis4

controller_1.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 tada_sound():
    brain.play_sound(SoundType.TADA)

controller_1.axis4.changed(tada_sound)

Konstruktor#

Controller#

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

Usage:
Controller(controller_type)

Parameter

Keterangan

controller_type

Opsional. Tipe Controller yang akan dibuat: PRIMARY untuk Controller utama yang terhubung ke Brain atau PARTNER untuk Controller kedua yang terhubung ke Brain.

# Create the primary Controller
controller_1 = Controller(PRIMARY)

# Create a partner Controller
controller_2 = Controller(PARTNER)