Kontrolör#
giriiş#
V5 Kontrol Cihazı, düğmelere, iki joystick’e, bir titreşim motoruna ve bir ekrana sahiptir. Kontrol cihazı yöntemleri, düğme basımlarını kontrol etmek, joystick hareketlerini okumak, kontrol cihazını titreştirmek, yapılandırılmış kontrol cihazı eylemlerini etkinleştirmek veya devre dışı bırakmak, kontrol cihazı olayları gerçekleştiğinde işlevleri çalıştırmak veya kontrol cihazı ekranında metin görüntülemek için kullanılabilir.
Yapılandırılmış Denetleyici eylemleri, Aygıtlar menüsünde ayarlanan denetleyici davranışlarıdır. Bir proje sırasında bu yapılandırılmış eylemleri geçici olarak etkinleştirmek veya devre dışı bırakmak için remote_control_code_enabled komutunu kullanın.
Bu sayfada örnek denetleyici adı olarak controller_1 kullanılmıştır. Gerektiğinde bunu kendi yapılandırdığınız adla değiştirin.
Aşağıda mevcut tüm yöntemlerin listesi bulunmaktadır:
İşlemler — Kumandayı titreştirin veya yapılandırılmış kumanda işlemlerini etkinleştirin/devre dışı bırakın.
rumble— Kontrol cihazında titreşim deseni çalar.remote_control_code_enabled— Cihazlar menüsünde yapılandırılmış Denetleyici eylemlerini etkinleştirir veya devre dışı bırakır.
Ekran — Kontrol ünitesi ekranında metin ve sayıları görüntüleyin.
print— Kontrolör ekranında metin, sayı veya değişken değerleri görüntüler.set_cursor— İmleci Denetleyici ekranında belirtilen bir satır ve sütuna taşır.column— Denetleyici ekranındaki geçerli imleç sütununu döndürür.row— Denetleyici ekranındaki geçerli imleç satırını döndürür.clear_screen— Kontrolör ekranını temizler.clear_row— Kontrolör ekranındaki bir satırı temizler.next_row— İmleci Kontrol Ekranındaki bir sonraki satıra taşır.
Getters — Düğme durumlarını ve joystick konumlarını okur.
.pressing— Belirtilen bir düğmenin basılıp basılmadığını döndürür..position— Belirtilen joystick ekseninin konumunu döndürür.
Geri Çağrı Fonksiyonları — Kontrolcü girişinde değişiklik olduğunda fonksiyonları çalıştırın.
.pressed— Belirtilen bir düğmeye basıldığında bir fonksiyon çalıştırır..released— Belirtilen bir düğme bırakıldığında bir fonksiyon çalıştırır..changed— Joystick’in konumu belirtilen bir eksen boyunca değiştiğinde bir fonksiyon çalıştırır.
Yapıcı Metot — Bir Denetleyici nesnesini manuel olarak oluşturun.
Controller— Bir Denetleyici nesnesi oluşturur.
Eylemler#
rumble#
rumble komutu, kontrol cihazında titreşimli bir desen çalar. Desen dizesinde, noktalar kısa titreşimleri, tireler uzun titreşimleri ve boşluklar duraklamaları temsil eder.
Usage:
controller_1.rumble(pattern)
Parametre |
Tanım |
|---|---|
|
Noktalardan, tirelerden ve boşluklardan oluşan ve gürültü desenini temsil eden bir karakter dizisi. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled değişkeni, Aygıtlar menüsünde yapılandırılan Denetleyici eylemlerini etkinleştirir veya devre dışı bırakır. Denetleyici tarafından yapılandırılan eylemler varsayılan olarak etkindir.
Usage:
remote_control_code_enabled = state
Değer |
Tanım |
|---|---|
|
Denetleyici tarafından yapılandırılmış eylemleri etkinleştirir. |
|
Denetleyici tarafından yapılandırılmış eylemleri devre dışı bırakır. |
# 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
Ekran#
V5 Kontrol Cihazı ekranı, metin ve sayıları görüntülemek için 3 satır ve 19 sütuna sahiptir.

print#
controller_1.screen.print , geçerli imleç konumunu kullanarak Kontrolör ekranında metin, sayı veya değişken değerleri görüntüler.
Usage:
controller_1.screen.print(value, sep, precision)
Parametre |
Tanım |
|---|---|
|
Kontrol ünitesi ekranında görüntülenecek metin, sayı veya değişken değeri. Değerleri virgülle ayırarak birden fazla değer yazdırabilirsiniz. |
|
İsteğe bağlı. Değerler arasına yerleştirilecek bir dize. Bu, |
|
İsteğe bağlı. Basit sayıları yazdırırken görüntülenecek ondalık basamak sayısı. Bu, |
# 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 komutu, imleci Kontrol Ekranı’nda belirtilen satır ve sütuna taşır. Bir sonraki yazdırılan değer o konumda görünecektir.
Usage:
controller_1.screen.set_cursor(row, col)
Parametre |
Tanım |
|---|---|
|
İmlecin bulunduğu satır, |
|
İmlecin bulunduğu sütun, |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column denetleyici ekranında metnin yazdırılacağı geçerli sütunu döndürür.
Usage:
controller_1.screen.column()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row denetleyici ekranında metnin yazdırılacağı geçerli satırı döndürür.
Usage:
controller_1.screen.row()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen komutu, Kontrolör ekranını temizler ve imleci başlangıç konumuna geri taşır.
Usage:
controller_1.screen.clear_screen()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# 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 komutu, Kontrol Ekranındaki bir satırı temizler.
Usage:
controller_1.screen.clear_row(row)
Parametre |
Tanım |
|---|---|
|
İsteğe bağlı. Temizlenecek satır, |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row komutu, imleci Kontrolör ekranının bir sonraki satırındaki 1. sütuna taşır. Yazdırılacak bir sonraki değer o satırda görünecektir.
Usage:
controller_1.screen.next_row()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
Getters#
.pressing#
.pressing basmak, Kontrol Cihazı üzerindeki belirli bir düğmenin şu anda basılı olup olmadığını döndürür. Bu yöntem, controller_1.buttonA gibi belirli bir düğme nesnesi üzerinde çağrılmalıdır.
True— Belirtilen düğmeye basılıyor.False— Belirtilen düğmeye basılmıyor.
Usage:
One of the available button objects can be used with this method:

Düğme |
Emretmek |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position , bir joystick ekseninin konumunu -100 ile 100 arasında bir sayı olarak döndürür.
Bu yöntem, controller_1.axis1 gibi belirli bir eksen nesnesi üzerinde çağrılmalıdır.
Kullanım:
Bu yöntemle mevcut eksen nesnelerinden biri kullanılabilir:

Eksen |
Emretmek |
|---|---|
|
|
|
|
|
|
|
|
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# 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)
Geri aramalar#
.pressed#
.pressed belirtilen düğmeye basıldığında bir işlevi çalıştırır. Bir kez kullanıldıktan sonra, bu işlev düğmeye her basıldığında otomatik olarak çalışacaktır.
Usage:
One of the available button objects can be used with this method:

Düğme |
Emretmek |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametre |
Tanım |
|---|---|
|
Belirtilen düğmeye her basıldığında çalıştırılacak önceden tanımlanmış bir fonksiyon. |
|
İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Olayları Kullanma bölümüne bakın. |
# Drive forward when A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released belirtilen düğme bırakıldığında bir işlevi çalıştırır. Bir kez kullanıldıktan sonra, bu işlev düğme her bırakıldığında otomatik olarak çalışacaktır.
Usage:
One of the available button objects can be used with this method:

Düğme |
Emretmek |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametre |
Tanım |
|---|---|
|
Belirtilen düğme her bırakıldığında çalıştırılacak önceden tanımlanmış bir fonksiyon. |
|
İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Olayları Kullanma bölümüne bakın. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
.changed joystick’in konumu belirtilen eksen boyunca değiştiğinde bir fonksiyonu çalıştırır. Bir kez kullanıldıktan sonra, joystick’in konumu o eksen boyunca her değiştiğinde fonksiyon otomatik olarak çalışacaktır.
Kullanım:
Bu yöntemle mevcut eksen nesnelerinden biri kullanılabilir:

Eksen |
Emretmek |
|---|---|
|
|
|
|
|
|
|
|
Parametre |
Tanım |
|---|---|
|
Joystick’in konumu belirtilen eksen boyunca her değiştiğinde çalıştırılacak önceden tanımlanmış bir fonksiyon. |
|
İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Olayları Kullanma bölümüne bakın. |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
İnşaatçılar#
Controller#
Controller bir Denetleyici nesnesi oluşturur. Bir Denetleyici nesnesinin manuel olarak oluşturulması yalnızca VEXcode dışında bir denetleyici yapılandırılırken gereklidir.
Usage:
Controller(controller_type)
Parametre |
Tanım |
|---|---|
|
İsteğe bağlı. Oluşturulacak Kontrol Cihazı türü: Beyne bağlı birincil Kontrol Cihazı için |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)