Kontrolör#
giriiş#
VEX EXP Kontrol Cihazı, düğmelere ve iki joystick’e sahiptir. Kontrol cihazı yöntemleri, düğme basımlarını kontrol etmek, joystick hareketlerini okumak, yapılandırılmış kontrol cihazı eylemlerini etkinleştirmek veya devre dışı bırakmak veya kontrol cihazı olayları gerçekleştiğinde işlevleri çalıştırmak için kullanılabilir.
Yapılandırılmış kontrol cihazı eylemleri, Aygıtlar menüsünde ayarlanan kontrol cihazı 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 kontrolcü adı olarak controller kullanılmıştır. Gerektiğinde kendi yapılandırdığınız adla değiştirin.
Aşağıda mevcut tüm yöntemlerin listesi bulunmaktadır:
İşlem — Yapılandırılmış kontrol cihazı işlemlerini açın veya kapatın.
remote_control_code_enabled— Aygıtlar menüsünde yapılandırılmış kontrol cihazı eylemlerini etkinleştirir veya devre dışı bırakı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.
Aksiyon#
remote_control_code_enabled#
remote_control_code_enabled değişkeni, Aygıtlar menüsünde yapılandırılan kumanda eylemlerini etkinleştirir veya devre dışı bırakır. Kumanda 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.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
Getters#
.pressing#
.pressing tuşuna basmak, kumandadaki belirli bir düğmenin şu anda basılı olup olmadığını döndürür. Bu yöntem, controller.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.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.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.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller.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 R1 is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 200, MM)
controller.buttonR1.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. |
# Stop driving when R1 is released
def stop_driving():
drivetrain.stop()
controller.buttonR1.released(stop_driving)
.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 beep():
brain.play_sound(SoundType.TADA)
controller.axis3.changed(beep)
İ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()
Parametreler |
Tanım |
|---|---|
Bu yapıcı fonksiyonun parametresi yoktur. |
# Create a Controller object
my_controller = Controller()