Kontrolör#

giriiş#

VEX IQ (2. nesil) kumandasında düğmeler ve iki joystick bulunur. Kumanda yöntemleri, düğme basımlarını kontrol etmek, joystick hareketlerini okumak, yapılandırılmış kumanda eylemlerini etkinleştirmek veya devre dışı bırakmak ya da kumanda olayları gerçekleştiğinde işlevleri çalıştırmak için kullanılabilir.

IQ (2. nesil) Beyin, IQ (2. nesil) veya IQ (1. nesil) Kontrol Cihazına bağlanabilir. IQ (1. nesil) Kontrol Cihazında mavi bir Akıllı Radyo takılı olmalıdır.

Yapılandırılmış kontrolcü eylemleri, Aygıtlar menüsünde ayarlanan kontrolcü 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.

# 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

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

IQ 2. nesil kumandanın ön ve arka yan görünümü, tüm düğmeler sarı renkle vurgulanmıştır. Kumandanın yüzeyinde sol ve sağ üst köşelerde iki joystick düğmesi bulunur; sol joystickin altında E yukarı ve aşağı, sağ joystickin altında ise F yukarı ve aşağı düğmeleri yer alır. Kumandanın arkasında ise sol ve sağ taraflarda sırasıyla L yukarı ve aşağı, R yukarı ve aşağı düğmeleri bulunur.

Düğme

Emretmek

buttonEDown

controller.buttonEDown.pressing() — E ▼ düğmesi

buttonEUp

controller.buttonEUp.pressing() — E ▲ düğmesi

buttonFDown

controller.buttonFDown.pressing() — F ▼ düğmesi

buttonFUp

controller.buttonFUp.pressing() — F ▲ düğmesi

buttonL3

controller.buttonL3.pressing() — Sol Joystick düğmesi, yalnızca IQ (2. nesil) kumanda

buttonLDown

controller.buttonLDown.pressing() — L ▼ düğmesi

buttonLUp

controller.buttonLUp.pressing() — L ▲ düğmesi

buttonR3

controller.buttonR3.pressing() — Sağ Joystick düğmesi, yalnızca IQ (2. nesil) kumandası

buttonRDown

controller.buttonRDown.pressing() — R ▼ düğmesi

buttonRUp

controller.buttonRUp.pressing() — R ▲ düğmesi

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Turn right while E Up is held
while True:
    if controller.buttonEUp.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.axisA gibi belirli bir eksen nesnesi üzerinde çağrılmalıdır.

Kullanım:
Bu yöntemle mevcut eksen nesnelerinden biri kullanılabilir:

Dört joystick ekseni vurgulanmış IQ 2. nesil Kontrol Cihazı. Sol joystick'te A ekseni dikey, B ekseni yataydır. Sağ joystick'te C ekseni yatay, D ekseni dikeydir.

Eksen

Emretmek

axisA

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

axisB

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

axisC

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

axisD

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

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# 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)

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:

IQ 2. nesil kumandanın ön ve arka yan görünümü, tüm düğmeler sarı renkle vurgulanmıştır. Kumandanın yüzeyinde sol ve sağ üst köşelerde iki joystick düğmesi bulunur; sol joystickin altında E yukarı ve aşağı, sağ joystickin altında ise F yukarı ve aşağı düğmeleri yer alır. Kumandanın arkasında ise sol ve sağ taraflarda sırasıyla L yukarı ve aşağı, R yukarı ve aşağı düğmeleri bulunur.

Düğme

Emretmek

buttonEDown

controller.buttonEDown.pressed(callback, arg) — E ▼ düğmesi

buttonEUp

controller.buttonEUp.pressed(callback, arg) — E ▲ düğmesi

buttonFDown

controller.buttonFDown.pressed(callback, arg) — F ▼ düğmesi

buttonFUp

controller.buttonFUp.pressed(callback, arg) — F ▲ düğmesi

buttonL3

controller.buttonL3.pressed(callback, arg) — Sol Joystick düğmesi, yalnızca IQ (2. nesil) kumandası

buttonLDown

controller.buttonLDown.pressed(callback, arg) — L ▼ düğmesi

buttonLUp

controller.buttonLUp.pressed(callback, arg) — L ▲ düğmesi

buttonR3

controller.buttonR3.pressed(callback, arg) — Sağ Joystick düğmesi, yalnızca IQ (2. nesil) kumandası

buttonRDown

controller.buttonRDown.pressed(callback, arg) — R ▼ düğmesi

buttonRUp

controller.buttonRUp.pressed(callback, arg) — R ▲ 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 E Up is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

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

IQ 2. nesil kumandanın ön ve arka yan görünümü, tüm düğmeler sarı renkle vurgulanmıştır. Kumandanın yüzeyinde sol ve sağ üst köşelerde iki joystick düğmesi bulunur; sol joystickin altında E yukarı ve aşağı, sağ joystickin altında ise F yukarı ve aşağı düğmeleri yer alır. Kumandanın arkasında ise sol ve sağ taraflarda sırasıyla L yukarı ve aşağı, R yukarı ve aşağı düğmeleri bulunur.

Düğme

Emretmek

buttonEDown

controller.buttonEDown.released(callback, arg) — E ▼ düğmesi

buttonEUp

controller.buttonEUp.released(callback, arg) — E ▲ düğmesi

buttonFDown

controller.buttonFDown.released(callback, arg) — F ▼ düğmesi

buttonFUp

controller.buttonFUp.released(callback, arg) — F ▲ düğmesi

buttonL3

controller.buttonL3.released(callback, arg) — Sol Joystick düğmesi, yalnızca IQ (2. nesil) kumandasında

buttonLDown

controller.buttonLDown.released(callback, arg) — L ▼ düğmesi

buttonLUp

controller.buttonLUp.released(callback, arg) — L ▲ düğmesi

buttonR3

controller.buttonR3.released(callback, arg) — Sağ Joystick düğmesi, yalnızca IQ (2. nesil) kumandası

buttonRDown

controller.buttonRDown.released(callback, arg) — R ▼ düğmesi

buttonRUp

controller.buttonRUp.released(callback, arg) — R ▲ 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 E Up is released
def stop_driving():
    drivetrain.stop()

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

Dört joystick ekseni vurgulanmış IQ 2. nesil Kontrol Cihazı. Sol joystick'te A ekseni dikey, B ekseni yataydır. Sağ joystick'te C ekseni yatay, D ekseni dikeydir.

Eksen

Emretmek

axisA

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

axisB

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

axisC

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

axisD

controller.axisD.changed(callback, arg) — Sağ joystick’in dikey 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 right joystick moves
def beep():
    brain.play_sound(SoundType.TADA)

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