കൺട്രോളർ#

ആമുഖം#

VEX AIR ഡ്രോൺ കൺട്രോളറിൽ 12-ബട്ടൺ ലേഔട്ടും രണ്ട് ജോയ്‌സ്റ്റിക്കുകളും ഉണ്ട്. ഈ ഇൻപുട്ടുകൾ ഡ്രോണിന് ബട്ടൺ അമർത്തലുകളും ജോയ്‌സ്റ്റിക്ക് ചലനങ്ങളും കണ്ടെത്താൻ അനുവദിക്കുന്നു, ഇത് സംവേദനാത്മകവും പ്രതികരിക്കുന്നതുമായ നിയന്ത്രണം സാധ്യമാക്കുന്നു.

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

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

  • pressingഅമർത്തുന്നു – ഒരു പ്രത്യേക ബട്ടൺ നിലവിൽ അമർത്തുന്നുണ്ടെങ്കിൽ തിരികെ നൽകുന്നു.

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

  • is_drone_connected – കൺട്രോളർ ഡ്രോണുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് നൽകുന്നു.

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

കോൾബാക്കുകൾ – ബട്ടൺ അല്ലെങ്കിൽ ജോയിസ്റ്റിക്ക് ഇൻപുട്ട് മാറ്റങ്ങളോട് പ്രതികരിക്കുക.

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

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

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

ഗെറ്ററുകൾ#

pressing#

pressing അമർത്തുന്നത് കൺട്രോളറിലെ ഒരു പ്രത്യേക ബട്ടൺ നിലവിൽ അമർത്തുന്നുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ നൽകുന്നു. ഈ രീതി button5 പോലുള്ള ഒരു പ്രത്യേക ബട്ടൺ ഒബ്‌ജക്റ്റിലാണ് വിളിക്കേണ്ടത് (താഴെ ബട്ടൺ ഒബ്‌ജക്റ്റുകളുടെ പൂർണ്ണ പട്ടിക കാണുക).

  • True - വ്യക്തമാക്കിയ ബട്ടൺ അമർത്തിക്കൊണ്ടിരിക്കുന്നു.

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

ഉപയോഗം:
5 മുതൽ 12 വരെ അക്കങ്ങളുള്ള എട്ട് ലഭ്യമായ ബട്ടണുകളിൽ ഒന്ന്, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ, ഈ രീതി ഉപയോഗിച്ച് ഉപയോഗിക്കാം:

ബട്ടൺ

കമാൻഡ്

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

5 മുതൽ 12 വരെയുള്ള ബട്ടണുകൾ കാണിക്കുന്ന ഒരു VEX AIR ഡ്രോൺ കൺട്രോളർ. 5 ഉം 6 ഉം ബട്ടണുകൾ കൺട്രോളറിന്റെ വലതുവശത്തിന്റെ പിൻഭാഗത്താണ്, ജോയിസ്റ്റിക്ക് ലംബമായി. 7 ഉം 8 ഉം ബട്ടണുകൾ ഇടതുവശത്ത് ഒരേ സ്ഥാനത്താണ്. 9 മുതൽ 12 വരെയുള്ള ബട്ടണുകൾ കൺട്രോളറിന്റെ അടിഭാഗത്താണ്, 10 ന് മുകളിൽ മുകളിൽ വലത് കോണിൽ 9 ഉം, 12 ന് മുകളിൽ മുകളിൽ ഇടത് കോണിൽ 11 ഉം ഉണ്ട്.

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

വിവരണം

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

# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Fly using the controller sticks
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )

    # Capture an image from the forward camera when button 5 is pressed.
    if controller.button5.pressing():
        drone.camera.capture_image(FORWARD_CAMERA)

    wait(5, MSEC)

position#

position ജോയിസ്റ്റിക്കിന്റെ നിർദ്ദിഷ്ട അച്ചുതണ്ടിന്റെ സ്ഥാനം –100% മുതൽ 100% വരെയുള്ള ശതമാനമായി നൽകുന്നു.

ഉപയോഗം:

1 മുതൽ 4 വരെ അക്കമിട്ട നാല് അക്ഷങ്ങളിൽ ഒന്ന് ഈ രീതിയിൽ ഉപയോഗിക്കാം.

അച്ചുതണ്ട്

കമാൻഡ്

axis1

controller.axis1.position() — ഇടത് ജോയിസ്റ്റിക്ക് ലംബ അക്ഷം

axis2

controller.axis2.position() — ഇടത് ജോയിസ്റ്റിക്ക് തിരശ്ചീന അക്ഷം

axis3

controller.axis3.position() — വലത് ജോയിസ്റ്റിക്ക് തിരശ്ചീന അക്ഷം

axis4

controller.axis4.position() — വലത് ജോയിസ്റ്റിക്ക് ലംബ അക്ഷം

ഇടത് ജോയ്‌സ്റ്റിക്കിന് ചുറ്റും ആക്സിസ് 1 ഉം 2 ലേബലുകളും വലത് ജോയ്‌സ്റ്റിക്കിന് ചുറ്റും ആക്സിസ് 3 ഉം 4 ലേബലുകളും ഹൈലൈറ്റ് ചെയ്തിട്ടുള്ള ഒരു VEX AIR ഡ്രോൺ കൺട്രോളർ.

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

വിവരണം

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

# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
    if controller.axis1.position() > 0:
        drone.climb(direction=UP, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

is_drone_connected#

is_drone_connected ഡ്രോൺ ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്ന ഒരു ബൂളിയൻ നൽകുന്നു.

  • True - ഡ്രോൺ ബന്ധിപ്പിച്ചിരിക്കുന്നു.

  • False - ഡ്രോൺ ബന്ധിപ്പിച്ചിട്ടില്ല.

ഉപയോഗം:

controller.is_drone_connected()

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

വിവരണം

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

# Print controller connection status on screen.
while True:
    if controller.is_drone_connected():
        controller.screen.clear_screen()
        controller.screen.set_cursor(1, 1)
        controller.screen.print("Controller connected")
    wait(0.5, SECONDS)

get_battery_level#

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

ഉപയോഗം:

controller.get_battery_level()

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

വിവരണം

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

# Show controller's battery level.
if controller.get_battery_level() > 50:
    controller.screen.print("Battery level ok")
else:
    controller.screen.print("Battery level low")

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

pressed#

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

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ എട്ട് ബട്ടണുകളിൽ ഒന്ന് ഉപയോഗിക്കാം, 5 മുതൽ 12 വരെ അക്കമിട്ടിരിക്കുന്നു.

ബട്ടൺ

കമാൻഡ്

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

5 മുതൽ 12 വരെയുള്ള ബട്ടണുകൾ കാണിക്കുന്ന ഒരു VEX AIR ഡ്രോൺ കൺട്രോളർ. 5 ഉം 6 ഉം ബട്ടണുകൾ കൺട്രോളറിന്റെ വലതുവശത്തിന്റെ പിൻഭാഗത്താണ്, ജോയിസ്റ്റിക്ക് ലംബമായി. 7 ഉം 8 ഉം ബട്ടണുകൾ ഇടതുവശത്ത് ഒരേ സ്ഥാനത്താണ്. 9 മുതൽ 12 വരെയുള്ള ബട്ടണുകൾ കൺട്രോളറിന്റെ അടിഭാഗത്താണ്, 10 ന് മുകളിൽ മുകളിൽ വലത് കോണിൽ 9 ഉം, 12 ന് മുകളിൽ മുകളിൽ ഇടത് കോണിൽ 11 ഉം ഉണ്ട്.

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

വിവരണം

callback

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

arg

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

# Take a picture when button 5 is pressed.
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

# Run take_picture each time button 5 is pressed.
controller.button5.pressed(take_picture)

# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

released#

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

ഉപയോഗം:
ഈ രീതി ഉപയോഗിച്ച് ലഭ്യമായ എട്ട് ബട്ടണുകളിൽ ഒന്ന് ഉപയോഗിക്കാം, 5 മുതൽ 12 വരെ അക്കമിട്ടിരിക്കുന്നു.

ബട്ടൺ

കമാൻഡ്

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

5 മുതൽ 12 വരെയുള്ള ബട്ടണുകൾ കാണിക്കുന്ന ഒരു VEX AIR ഡ്രോൺ കൺട്രോളർ. 5 ഉം 6 ഉം ബട്ടണുകൾ കൺട്രോളറിന്റെ വലതുവശത്തിന്റെ പിൻഭാഗത്താണ്, ജോയിസ്റ്റിക്ക് ലംബമായി. 7 ഉം 8 ഉം ബട്ടണുകൾ ഇടതുവശത്ത് ഒരേ സ്ഥാനത്താണ്. 9 മുതൽ 12 വരെയുള്ള ബട്ടണുകൾ കൺട്രോളറിന്റെ അടിഭാഗത്താണ്, 10 ന് മുകളിൽ മുകളിൽ വലത് കോണിൽ 9 ഉം, 12 ന് മുകളിൽ മുകളിൽ ഇടത് കോണിൽ 11 ഉം ഉണ്ട്.

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

വിവരണം

callback

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

arg

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

# Take a picture when button 5 is released.
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

# Run take_picture each time button 5 is released.
controller.button5.released(take_picture)

# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

changed#

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

ഉപയോഗം:

1 മുതൽ 4 വരെ അക്കമിട്ട നാല് അക്ഷങ്ങളിൽ ഒന്ന് ഈ രീതിയിൽ ഉപയോഗിക്കാം.

അച്ചുതണ്ട്

കമാൻഡ്

axis1

controller.axis1.position() — ഇടത് ജോയിസ്റ്റിക്ക് ലംബ അക്ഷം

axis2

controller.axis2.position() — ഇടത് ജോയിസ്റ്റിക്ക് തിരശ്ചീന അക്ഷം

axis3

controller.axis3.position() — വലത് ജോയിസ്റ്റിക്ക് തിരശ്ചീന അക്ഷം

axis4

controller.axis4.position() — വലത് ജോയിസ്റ്റിക്ക് ലംബ അക്ഷം

ഇടത് ജോയ്‌സ്റ്റിക്കിന് ചുറ്റും ആക്സിസ് 1 ഉം 2 ലേബലുകളും വലത് ജോയ്‌സ്റ്റിക്കിന് ചുറ്റും ആക്സിസ് 3 ഉം 4 ലേബലുകളും ഹൈലൈറ്റ് ചെയ്തിട്ടുള്ള ഒരു VEX AIR ഡ്രോൺ കൺട്രോളർ.

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

വിവരണം

callback

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

arg

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

# Move forward when the left joystick moves.
def on_axis1_changed():
    drone.move_for(direction=0, distance=200, velocity=50, units=MM)

drone.take_off(climb_to=500)
controller.axis1.changed(on_axis1_changed)