കൺട്രോളർ#

ആമുഖം#

VEX AIM വൺ സ്റ്റിക്ക് കൺട്രോളറിൽ നാല് ബട്ടണുകളും ഒരു ജോയ്സ്റ്റിക്കും ഉണ്ട്. ജോയ്സ്റ്റിക്ക് രണ്ട് അക്ഷങ്ങളിലൂടെ നീക്കാനും ഒരു ബട്ടൺ പോലെ അമർത്താനും കഴിയും.

കൺട്രോളർ രീതികൾ ഉപയോഗിച്ച് ബട്ടൺ അമർത്തലുകൾ പരിശോധിക്കാനും, ജോയിസ്റ്റിക്ക് ചലനം വായിക്കാനും, കണക്ഷനും ബാറ്ററി നിലയും പരിശോധിക്കാനും, കൺട്രോളർ ഇവന്റുകൾ സംഭവിക്കുമ്പോൾ ഫംഗ്ഷനുകൾ പ്രവർത്തിപ്പിക്കാനും കഴിയും.

എല്ലാ രീതികളുടെയും ഒരു ലിസ്റ്റ് താഴെ കൊടുക്കുന്നു:

ഗെറ്ററുകൾ — റീഡ് ബട്ടൺ, ജോയിസ്റ്റിക്ക്, കണക്ഷൻ, ബാറ്ററി നില.

  • .pressing — ഒരു നിർദ്ദിഷ്ട ബട്ടൺ അമർത്തുന്നുണ്ടോ എന്ന് നൽകുന്നു.

  • .position — ഒരു നിർദ്ദിഷ്ട അക്ഷത്തിൽ ജോയിസ്റ്റിക്ക് സ്ഥാനം നൽകുന്നു.

  • is_connected — കൺട്രോളർ ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് നൽകുന്നു.

  • get_battery_level — കൺട്രോളറിന്റെ ബാറ്ററി ലെവൽ തിരികെ നൽകുന്നു.

കോൾബാക്കുകൾ — കൺട്രോളർ ഇൻപുട്ട് മാറുമ്പോൾ ഫംഗ്ഷനുകൾ പ്രവർത്തിപ്പിക്കുക.

  • .pressed — ഒരു നിർദ്ദിഷ്ട ബട്ടൺ അമർത്തുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.

  • .released — ഒരു നിർദ്ദിഷ്ട ബട്ടൺ റിലീസ് ചെയ്യുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.

  • .changed — ജോയിസ്റ്റിക്കിന്റെ സ്ഥാനം ഒരു നിർദ്ദിഷ്ട അക്ഷത്തിൽ മാറുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു.

ഗെറ്ററുകൾ#

.pressing#

.pressing അമർത്തുന്നത് കൺട്രോളറിലെ ഒരു പ്രത്യേക ബട്ടൺ നിലവിൽ അമർത്തുന്നുണ്ടോ എന്ന് നൽകുന്നു. ഈ രീതി controller.button_up പോലുള്ള ഒരു പ്രത്യേക ബട്ടൺ ഒബ്ജക്റ്റിലാണ് വിളിക്കേണ്ടത്.

  • True — നിർദ്ദിഷ്ട ബട്ടൺ അമർത്തിക്കൊണ്ടിരിക്കുന്നു.

  • False — വ്യക്തമാക്കിയ ബട്ടൺ അമർത്തുന്നില്ല.

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ അഞ്ച് ബട്ടൺ ഒബ്‌ജക്റ്റുകളിൽ ഒന്ന് ഉപയോഗിക്കാം:

ബട്ടൺ

കമാൻഡ്

button_up

controller.button_up.pressing() — മുകളിലേക്കുള്ള ബട്ടൺ

button_down

controller.button_down.pressing() — ഡൗൺ ബട്ടൺ

button_left

controller.button_left.pressing() — ഇടത് ബട്ടൺ

button_right

controller.button_right.pressing() — വലത് ബട്ടൺ

button_stick

controller.button_stick.pressing() — ജോയ്സ്റ്റിക്ക് ബട്ടൺ

ഇടതുവശത്ത് ഒരു ജോയ്സ്റ്റിക്കും വലതുവശത്ത് നാല് ബട്ടണുകളും ഉള്ള VEX AIM വൺ സ്റ്റിക്ക് കൺട്രോളർ. ജോയ്സ്റ്റിക്കും നാല് ബട്ടണുകളും ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Move forward while the Up button is being pressed
while True:
    if controller.button_up.pressing():
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

.position#

.position ഒരു ജോയിസ്റ്റിക്ക് അച്ചുതണ്ടിന്റെ സ്ഥാനം -100 മുതൽ 100 വരെയുള്ള ഒരു സംഖ്യയായി നൽകുന്നു.

ഈ രീതി controller.axis1 പോലുള്ള ഒരു പ്രത്യേക അച്ചുതണ്ട് വസ്തുവിൽ വിളിക്കണം.

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ രണ്ട് ആക്സിസ് ഒബ്ജക്റ്റുകളിൽ ഒന്ന് ഉപയോഗിക്കാം:

അച്ചുതണ്ട്

കമാൻഡ്

axis1

controller.axis1.position() — ലംബ അക്ഷം

axis2

controller.axis2.position() — തിരശ്ചീന അക്ഷം

ഇടതുവശത്ത് ഒരു ജോയ്സ്റ്റിക്കും വലതുവശത്ത് നാല് ബട്ടണുകളും ഉള്ള VEX AIM കൺട്രോളർ. ജോയ്സ്റ്റിക്കിനുള്ള 1 ഉം 2 ഉം അക്ഷങ്ങൾ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Move forward when the joystick is moved up
while True:
    if controller.axis1.position() > 0:
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

is_connected#

is_connected കൺട്രോളർ ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് നൽകുന്നു.

  • True — കൺട്രോളർ ബന്ധിപ്പിച്ചിരിക്കുന്നു.

  • False — കൺട്രോളർ ബന്ധിപ്പിച്ചിട്ടില്ല.

Usage:
controller.is_connected()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Stop the robot if the controller disconnects
robot.move_at(0)

while True:
    if not controller.is_connected():
        robot.stop_all_movement()

    wait(100, MSEC)

get_battery_level#

get_battery_level കൺട്രോളറിന്റെ ബാറ്ററി ലെവൽ 0 മുതൽ 100 വരെയുള്ള ഒരു സംഖ്യയായി നൽകുന്നു.

Usage:
controller.get_battery_level()

പാരാമീറ്ററുകൾ

വിവരണം

ഈ രീതിക്ക് പാരാമീറ്ററുകൾ ഇല്ല.

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

കോൾബാക്കുകൾ#

.pressed#

.pressed നിർദ്ദിഷ്ട ബട്ടൺ അമർത്തുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു. ഒരിക്കൽ ഉപയോഗിച്ചുകഴിഞ്ഞാൽ, ആ ബട്ടൺ അമർത്തുമ്പോഴെല്ലാം ഫംഗ്ഷൻ യാന്ത്രികമായി പ്രവർത്തിക്കും.

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ അഞ്ച് ബട്ടൺ ഒബ്‌ജക്റ്റുകളിൽ ഒന്ന് ഉപയോഗിക്കാം:

ബട്ടൺ

കമാൻഡ്

button_up

controller.button_up.pressed(callback, arg) — മുകളിലേക്ക് ബട്ടൺ

button_down

controller.button_down.pressed(callback, arg) — ഡൗൺ ബട്ടൺ

button_left

controller.button_left.pressed(callback, arg) — ഇടത് ബട്ടൺ

button_right

controller.button_right.pressed(callback, arg) — വലത് ബട്ടൺ

button_stick

controller.button_stick.pressed(callback, arg) — ജോയ്സ്റ്റിക്ക് ബട്ടൺ

ഇടതുവശത്ത് ഒരു ജോയ്സ്റ്റിക്കും വലതുവശത്ത് നാല് ബട്ടണുകളും ഉള്ള VEX AIM വൺ സ്റ്റിക്ക് കൺട്രോളർ. ജോയ്സ്റ്റിക്കും നാല് ബട്ടണുകളും ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.

പാരാമീറ്റർ

വിവരണം

callback

നിർദ്ദിഷ്ട ബട്ടൺ അമർത്തുമ്പോഴെല്ലാം പ്രവർത്തിപ്പിക്കുന്നതിനായി മുമ്പ് നിർവചിച്ച ഒരു ഫംഗ്ഷൻ.

arg

ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഇവന്റുകൾ ഉപയോഗിക്കുന്നു കാണുക.

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.released#

.released നിർദ്ദിഷ്ട ബട്ടൺ റിലീസ് ചെയ്യുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു. ഒരിക്കൽ ഉപയോഗിച്ചുകഴിഞ്ഞാൽ, ആ ബട്ടൺ റിലീസ് ചെയ്യുമ്പോഴെല്ലാം ഫംഗ്ഷൻ യാന്ത്രികമായി പ്രവർത്തിക്കും.

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ അഞ്ച് ബട്ടൺ ഒബ്‌ജക്റ്റുകളിൽ ഒന്ന് ഉപയോഗിക്കാം:

ബട്ടൺ

കമാൻഡ്

button_up

controller.button_up.released(callback, arg) — മുകളിലേക്ക് ബട്ടൺ

button_down

controller.button_down.released(callback, arg) — ഡൗൺ ബട്ടൺ

button_left

controller.button_left.released(callback, arg) — ഇടത് ബട്ടൺ

button_right

controller.button_right.released(callback, arg) — വലത് ബട്ടൺ

button_stick

controller.button_stick.released(callback, arg) — ജോയ്സ്റ്റിക്ക് ബട്ടൺ

ഇടതുവശത്ത് ഒരു ജോയ്സ്റ്റിക്കും വലതുവശത്ത് നാല് ബട്ടണുകളും ഉള്ള VEX AIM വൺ സ്റ്റിക്ക് കൺട്രോളർ. ജോയ്സ്റ്റിക്കും നാല് ബട്ടണുകളും ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.

പാരാമീറ്റർ

വിവരണം

callback

നിർദ്ദിഷ്ട ബട്ടൺ റിലീസ് ചെയ്യുമ്പോഴെല്ലാം പ്രവർത്തിപ്പിക്കുന്നതിനായി മുമ്പ് നിർവചിച്ച ഒരു ഫംഗ്ഷൻ.

arg

ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഇവന്റുകൾ ഉപയോഗിക്കുന്നു കാണുക.

# Clear the screen after the Up button is released
def clear_screen():
    robot.screen.clear_screen()

controller.button_up.released(clear_screen)

robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")

.changed#

.changed ജോയിസ്റ്റിക്കിന്റെ സ്ഥാനം നിർദ്ദിഷ്ട അക്ഷത്തിൽ മാറുമ്പോൾ ഒരു ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കുന്നു. ഒരിക്കൽ ഉപയോഗിച്ചുകഴിഞ്ഞാൽ, ആ അക്ഷത്തിൽ ജോയിസ്റ്റിക്കിന്റെ സ്ഥാനം മാറുമ്പോഴെല്ലാം ഫംഗ്ഷൻ യാന്ത്രികമായി പ്രവർത്തിക്കും.

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ രണ്ട് ആക്സിസ് ഒബ്ജക്റ്റുകളിൽ ഒന്ന് ഉപയോഗിക്കാം:

അച്ചുതണ്ട്

കമാൻഡ്

axis1

controller.axis1.changed(callback, arg) — ലംബ അക്ഷം

axis2

controller.axis2.changed(callback, arg) — തിരശ്ചീന അക്ഷം

ഇടതുവശത്ത് ഒരു ജോയ്സ്റ്റിക്കും വലതുവശത്ത് നാല് ബട്ടണുകളും ഉള്ള VEX AIM കൺട്രോളർ. ജോയ്സ്റ്റിക്കിനുള്ള 1 ഉം 2 ഉം അക്ഷങ്ങൾ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.

പാരാമീറ്റർ

വിവരണം

callback

ജോയിസ്റ്റിക്കിന്റെ സ്ഥാനം നിർദ്ദിഷ്ട അക്ഷത്തിൽ മാറുമ്പോഴെല്ലാം പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് നിർവചിച്ച ഒരു ഫംഗ്ഷൻ.

arg

ഓപ്ഷണൽ. കോൾബാക്ക് ഫംഗ്ഷനിലേക്ക് കൈമാറുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ അടങ്ങിയ ഒരു ട്യൂപ്പിൾ. കൂടുതൽ വിവരങ്ങൾക്ക് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് ഇവന്റുകൾ ഉപയോഗിക്കുന്നു കാണുക.

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)