नियंत्रक#

परिचय#

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

एक VEX AIR ड्रोन कंट्रोलर जिसमें बटन 5 से 12 दिखाए गए हैं। बटन 5 और 6 कंट्रोलर के दाहिनी ओर पीछे की तरफ, जॉयस्टिक के लंबवत स्थित हैं। बटन 7 और 8 बाईं ओर उसी स्थिति में हैं। बटन 9 से 12 कंट्रोलर की निचली सतह पर हैं, जिसमें 9 ऊपरी दाहिने कोने में 10 के ऊपर और 11 ऊपरी बाएं कोने में 12 के ऊपर स्थित है।

पैरामीटर

विवरण

इस विधि के कोई मानदंड नहीं हैं।

# 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() — दाएँ जॉयस्टिक का ऊर्ध्वाधर अक्ष

एक VEX AIR ड्रोन कंट्रोलर जिसमें बाएं जॉयस्टिक के चारों ओर एक्सिस 1 और 2 लेबल हाइलाइट किए गए हैं, और दाएं जॉयस्टिक के चारों ओर एक्सिस 3 और 4 लेबल हाइलाइट किए गए हैं।

पैरामीटर

विवरण

इस विधि के कोई मानदंड नहीं हैं।

# 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

एक VEX AIR ड्रोन कंट्रोलर जिसमें बटन 5 से 12 दिखाए गए हैं। बटन 5 और 6 कंट्रोलर के दाहिनी ओर पीछे की तरफ, जॉयस्टिक के लंबवत स्थित हैं। बटन 7 और 8 बाईं ओर उसी स्थिति में हैं। बटन 9 से 12 कंट्रोलर की निचली सतह पर हैं, जिसमें 9 ऊपरी दाहिने कोने में 10 के ऊपर और 11 ऊपरी बाएं कोने में 12 के ऊपर स्थित है।

पैरामीटर

विवरण

callback

निर्दिष्ट बटन दबाए जाने पर प्रत्येक बार चलाने के लिए पहले से परिभाषित फ़ंक्शन।

arg

वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ इवेंट का उपयोग करना देखें।

# 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

एक VEX AIR ड्रोन कंट्रोलर जिसमें बटन 5 से 12 दिखाए गए हैं। बटन 5 और 6 कंट्रोलर के दाहिनी ओर पीछे की तरफ, जॉयस्टिक के लंबवत स्थित हैं। बटन 7 और 8 बाईं ओर उसी स्थिति में हैं। बटन 9 से 12 कंट्रोलर की निचली सतह पर हैं, जिसमें 9 ऊपरी दाहिने कोने में 10 के ऊपर और 11 ऊपरी बाएं कोने में 12 के ऊपर स्थित है।

पैरामीटर

विवरण

callback

निर्दिष्ट बटन जारी होने पर प्रत्येक बार चलाने के लिए पहले से परिभाषित फ़ंक्शन।

arg

वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ फ़ंक्शन का उपयोग करना देखें।

# 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() — दाएँ जॉयस्टिक का ऊर्ध्वाधर अक्ष

एक VEX AIR ड्रोन कंट्रोलर जिसमें बाएं जॉयस्टिक के चारों ओर एक्सिस 1 और 2 लेबल हाइलाइट किए गए हैं, और दाएं जॉयस्टिक के चारों ओर एक्सिस 3 और 4 लेबल हाइलाइट किए गए हैं।

पैरामीटर

विवरण

callback

पहले से परिभाषित फ़ंक्शन जो प्रत्येक बार जॉयस्टिक की स्थिति निर्दिष्ट अक्ष के साथ बदलती है, तब चलता है।

arg

वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ फ़ंक्शन का उपयोग करना देखें।

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