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

True

Denetleyici tarafından yapılandırılmış eylemleri etkinleştirir.

False

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:

EXP kumandasının ön ve üst yüzünde joystickler, ok tuşları ve aksiyon tuşları sarı renkle vurgulanmıştır. Kumandanın yüzeyinde sol ve sağda iki joystick, solda yukarı ve aşağı ok tuşları, sağda ise A ve B tuşları bulunmaktadır. Kumandanın üst kısmında sol tarafta L1 ve L2, sağ tarafta ise R1 ve R2 tuşları yer almaktadır.

Düğme

Emretmek

buttonA

controller.buttonA.pressing() — A düğmesi

buttonB

controller.buttonB.pressing() — B düğmesi

buttonDown

controller.buttonDown.pressing() — Aşağı düğmesi

buttonUp

controller.buttonUp.pressing() — Yukarı düğmesi

buttonL1

controller.buttonL1.pressing() — L1 düğmesi

buttonL2

controller.buttonL2.pressing() — L2 düğmesi

buttonL3

controller.buttonL3.pressing() — L3 düğmesi

buttonR1

controller.buttonR1.pressing() — R1 düğmesi

buttonR2

controller.buttonR2.pressing() — R2 düğmesi

buttonR3

controller.buttonR3.pressing() — R3 düğmesi

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:

EXP kumandasının ön yüzünde, joystick eksen numaraları kırmızı renkle vurgulanmıştır. Kumandanın yüzeyinde, sol joystick sola ve sağa hareket için Eksen 4, yukarı ve aşağı hareket için ise Eksen 3 olarak etiketlenmiştir; sağ joystick ise sola ve sağa hareket için Eksen 1, yukarı ve aşağı hareket için ise Eksen 2 olarak etiketlenmiştir.

Eksen

Emretmek

axis1

controller.axis1.position() — Sağ joystick’in yatay ekseni

axis2

controller.axis2.position() — Sağ joystick’in dikey ekseni

axis3

controller.axis3.position() — Sol joystick’in dikey ekseni

axis4

controller.axis4.position() — Sol joystick’in yatay ekseni

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:

EXP kumandasının ön ve üst yüzünde joystickler, ok tuşları ve aksiyon tuşları sarı renkle vurgulanmıştır. Kumandanın yüzeyinde sol ve sağda iki joystick, solda yukarı ve aşağı ok tuşları, sağda ise A ve B tuşları bulunmaktadır. Kumandanın üst kısmında sol tarafta L1 ve L2, sağ tarafta ise R1 ve R2 tuşları yer almaktadır.

Düğme

Emretmek

buttonA

controller.buttonA.pressed(callback, arg) — A düğmesi

buttonB

controller.buttonB.pressed(callback, arg) — B düğmesi

buttonDown

controller.buttonDown.pressed(callback, arg) — Aşağı düğmesi

buttonUp

controller.buttonUp.pressed(callback, arg) — Yukarı düğmesi

buttonL1

controller.buttonL1.pressed(callback, arg) — L1 düğmesi

buttonL2

controller.buttonL2.pressed(callback, arg) — L2 düğmesi

buttonL3

controller.buttonL3.pressed(callback, arg) — L3 düğmesi

buttonR1

controller.buttonR1.pressed(callback, arg) — R1 düğmesi

buttonR2

controller.buttonR2.pressed(callback, arg) — R2 düğmesi

buttonR3

controller.buttonR3.pressed(callback, arg) — R3 düğmesi

Parametre

Tanım

callback

Belirtilen düğmeye her basıldığında çalıştırılacak önceden tanımlanmış bir fonksiyon.

arg

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

EXP kumandasının ön ve üst yüzünde joystickler, ok tuşları ve aksiyon tuşları sarı renkle vurgulanmıştır. Kumandanın yüzeyinde sol ve sağda iki joystick, solda yukarı ve aşağı ok tuşları, sağda ise A ve B tuşları bulunmaktadır. Kumandanın üst kısmında sol tarafta L1 ve L2, sağ tarafta ise R1 ve R2 tuşları yer almaktadır.

Düğme

Emretmek

buttonA

controller.buttonA.released(callback, arg) — A düğmesi

buttonB

controller.buttonB.released(callback, arg) — B düğmesi

buttonDown

controller.buttonDown.released(callback, arg) — Aşağı düğmesi

buttonUp

controller.buttonUp.released(callback, arg) — Yukarı düğmesi

buttonL1

controller.buttonL1.released(callback, arg) — L1 düğmesi

buttonL2

controller.buttonL2.released(callback, arg) — L2 düğmesi

buttonL3

controller.buttonL3.released(callback, arg) — L3 düğmesi

buttonR1

controller.buttonR1.released(callback, arg) — R1 düğmesi

buttonR2

controller.buttonR2.released(callback, arg) — R2 düğmesi

buttonR3

controller.buttonR3.released(callback, arg) — R3 düğmesi

Parametre

Tanım

callback

Belirtilen düğme her bırakıldığında çalıştırılacak önceden tanımlanmış bir fonksiyon.

arg

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

EXP kumandasının ön yüzünde, joystick eksen numaraları kırmızı renkle vurgulanmıştır. Kumandanın yüzeyinde, sol joystick sola ve sağa hareket için Eksen 4, yukarı ve aşağı hareket için ise Eksen 3 olarak etiketlenmiştir; sağ joystick ise sola ve sağa hareket için Eksen 1, yukarı ve aşağı hareket için ise Eksen 2 olarak etiketlenmiştir.

Eksen

Emretmek

axis1

controller.axis1.changed(callback, arg) — Sağ joystick’in yatay ekseni

axis2

controller.axis2.changed(callback, arg) — Sağ joystick’in dikey ekseni

axis3

controller.axis3.changed(callback, arg) — Sol joystick’in dikey ekseni

axis4

controller.axis4.changed(callback, arg) — Sol joystick’in yatay ekseni

Parametre

Tanım

callback

Joystick’in konumu belirtilen eksen boyunca her değiştiğinde çalıştırılacak önceden tanımlanmış bir fonksiyon.

arg

İ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()