vezérlő#
Bevezetés#
A V5 vezérlő gombokkal, két joystick-kal, egy rezgőmotorral és egy képernyővel rendelkezik. A vezérlőmetódusok segítségével ellenőrizhető a gombnyomások jelzése, leolvasható a joystick mozgása, rezegtethető a vezérlő, engedélyezhető vagy letiltható a konfigurált vezérlőműveletek, funkciók futtathatók vezérlőesemények bekövetkeztekor, vagy szöveg jeleníthető meg a vezérlő képernyőjén.
A konfigurált vezérlőműveletek az Eszközök menüben beállított vezérlőviselkedések. remote_control_code_enabled paraméterrel ideiglenesen engedélyezheti vagy letilthatja ezeket a konfigurált műveleteket egy projekt során.
Ez az oldal controller_1 nevet használja példaként a vezérlő nevére. Szükség szerint cserélje ki a saját konfigurált névre.
Az alábbiakban felsoroljuk az összes elérhető módszert:
Műveletek – A kontroller rezegtetése, illetve a konfigurált kontrollerműveletek engedélyezése/letiltása.
rumble— Morajló mintát játszik le a vezérlőn.remote_control_code_enabled— Engedélyezi vagy letiltja az Eszközök menüben konfigurált vezérlőműveleteket.
Képernyő – Szöveg és számok megjelenítése a vezérlő képernyőjén.
print— Szöveget, számokat vagy változóértékeket jelenít meg a Vezérlő képernyőjén.set_cursor— A kurzort a megadott sorra és oszlopra mozgatja a Vezérlő képernyőjén.column— Visszaadja az aktuális kurzor oszlopot a Vezérlő képernyőjén.row— Visszaadja az aktuális kurzor sorát a Vezérlő képernyőjén.clear_screen— Törli a Vezérlő képernyőjét.clear_row— Töröl egy sort a Vezérlő képernyőjén.next_row— A kurzort a vezérlőképernyő következő sorába mozgatja.
Getterek – Gombállapotok és joystick pozíciók beolvasása.
.pressing— Visszaadja, hogy egy adott gombot lenyomnak-e..position— Visszaadja a megadott joystick tengely pozícióját.
Visszahívások — Függvények futtatása, amikor a vezérlő bemenete megváltozik.
.pressed— Egy függvényt futtat, amikor egy megadott gombot megnyomnak..released— Egy függvényt futtat, amikor egy megadott gombot elengednek..changed— Függvényt futtat, amikor a joystick helyzete egy megadott tengely mentén megváltozik.
Konstruktor — Controller objektum manuális létrehozása.
Controller— Létrehoz egy Controller objektumot.
Műveletek#
rumble#
rumble Az 1-es beállítás egy rumble mintát játszik le a vezérlőn. A minta karakterláncban a pontok rövid rumble-öket, a kötőjelek hosszú rumble-öket, a szóközök pedig szüneteket jelölnek.
Usage:
controller_1.rumble(pattern)
Paraméter |
Leírás |
|---|---|
|
Pontokból, kötőjelekből és szóközökből álló karakterlánc, amely a morajlási mintát jelöli. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled egy változó, amely engedélyezi vagy letiltja az Eszközök menüben konfigurált vezérlőműveleteket. A vezérlő által konfigurált műveletek alapértelmezés szerint engedélyezve vannak.
Usage:
remote_control_code_enabled = state
Érték |
Leírás |
|---|---|
|
Engedélyezi a vezérlő által konfigurált műveleteket. |
|
Letiltja a vezérlő által konfigurált műveleteket. |
# 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
Képernyő#
A V5 vezérlő képernyője 3 sorral és 19 oszloppal rendelkezik a szöveg és a számok megjelenítéséhez.

print#
controller_1.screen.print szöveget, számokat vagy változó értékeket jelenít meg a vezérlő képernyőjén az aktuális kurzorpozíció felhasználásával.
Usage:
controller_1.screen.print(value, sep, precision)
Paraméter |
Leírás |
|---|---|
|
A vezérlő képernyőjén megjelenítendő szöveg, szám vagy változó értéke. Egynél több érték is kinyomtatható vesszővel elválasztva. |
|
Opcionális. Egy karakterlánc, amelyet az értékek közé kell helyezni. Ezt kulcsszó argumentumként kell megírni, például |
|
Opcionális. Az egyszerű számok nyomtatásakor megjelenítendő tizedesjegyek száma. Ezt kulcsszó argumentumként kell megadni, például |
# 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 A kurzort a megadott sorra és oszlopba mozgatja a vezérlő képernyőjén. A következő kinyomtatott érték ezen a pozíción fog megjelenni.
Usage:
controller_1.screen.set_cursor(row, col)
Paraméter |
Leírás |
|---|---|
|
A kurzor sora, |
|
A kurzor oszlopa, |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
A column visszaadja az aktuális oszlopot, ahová a szöveg ki lesz nyomtatva a vezérlő képernyőjén.
Usage:
controller_1.screen.column()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row visszaadja az aktuális sort, ahová a szöveg ki lesz nyomtatva a vezérlő képernyőjén.
Usage:
controller_1.screen.row()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen parancs törli a vezérlő képernyőjét, és visszahelyezi a kurzort a kiindulási pozícióba.
Usage:
controller_1.screen.clear_screen()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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 Kitöröl egy sort a Vezérlő képernyőjén.
Usage:
controller_1.screen.clear_row(row)
Paraméter |
Leírás |
|---|---|
|
Opcionális. A törlendő sor |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row parancs a kurzort a Vezérlő képernyő következő sorának 1. oszlopába mozgatja. A következő kinyomtatott érték ezen a sorban fog megjelenni.
Usage:
controller_1.screen.next_row()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
Getterek#
.pressing#
.pressing visszaadja, hogy a Controller egy adott gombja jelenleg le van-e nyomva. Ezt a metódust egy adott gomb objektumon kell meghívni, például controller_1.buttonA metóduson.
True— A megadott gombot megnyomják.False— A megadott gombot nem nyomják meg.
Használat:
Az egyik elérhető gombobjektum használható ezzel a metódussal:

Gomb |
Parancs |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position függvény visszaadja a joystick tengelyének pozícióját -100 és 100 közötti számként.
Ezt a metódust egy adott tengelyobjektumon kell meghívni, például controller_1.axis1 értéken.
Használat:
Az egyik elérhető tengelyobjektum használható ezzel a metódussal:

Tengely |
Parancs |
|---|---|
|
|
|
|
|
|
|
|
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# 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)
Visszahívások#
.pressed#
.pressed parancs futtat egy függvényt, amikor a megadott gombot megnyomják. Használat után a függvény minden alkalommal automatikusan lefut, amikor a gombot megnyomják.
Használat:
Az egyik elérhető gombobjektum használható ezzel a metódussal:

Gomb |
Parancs |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paraméter |
Leírás |
|---|---|
|
Egy korábban definiált függvény, amely a megadott gomb minden megnyomásakor lefut. |
|
Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd: Események használata paraméterekkel. |
# Drive forward when A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released függvény a megadott gomb elengedésekor futtat egy függvényt. Használat után a függvény minden alkalommal automatikusan lefut, amikor a gombot elengedjük.
Használat:
Az egyik elérhető gombobjektum használható ezzel a metódussal:

Gomb |
Parancs |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Paraméter |
Leírás |
|---|---|
|
Egy korábban definiált function, amely minden alkalommal lefut, amikor a megadott gombot elengedik. |
|
Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd: Események használata paraméterekkel. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
.changed függvény akkor futtat le egy függvényt, amikor a joystick pozíciója megváltozik a megadott tengely mentén. Használat után a függvény automatikusan lefut minden alkalommal, amikor a joystick pozíciója megváltozik az adott tengely mentén.
Használat:
Az egyik elérhető tengelyobjektum használható ezzel a metódussal:

Tengely |
Parancs |
|---|---|
|
|
|
|
|
|
|
|
Paraméter |
Leírás |
|---|---|
|
Egy korábban definiált függvény, amely minden alkalommal lefut, amikor a joystick pozíciója a megadott tengely mentén megváltozik. |
|
Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd: Események használata paraméterekkel. |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
Konstruktorok#
Controller#
Controller vezérlő létrehoz egy Controller objektumot. A Controller objektum manuális létrehozására csak akkor van szükség, ha a vezérlőt a VEXcode-on kívül konfiguráljuk.
Usage:
Controller(controller_type)
Paraméter |
Leírás |
|---|---|
|
Opcionális. A létrehozandó Vezérlő típusa: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)