नियंत्रक#

परिचय#

VEX EXP कंट्रोलर में बटन और दो जॉयस्टिक हैं। कंट्रोलर विधियों का उपयोग बटन दबाने की जाँच करने, जॉयस्टिक की गति को पढ़ने, कॉन्फ़िगर किए गए कंट्रोलर कार्यों को सक्षम या अक्षम करने, या कंट्रोलर इवेंट होने पर फ़ंक्शन चलाने के लिए किया जा सकता है।

कॉन्फ़िगर किए गए कंट्रोलर एक्शन, डिवाइस मेनू में सेट किए गए कंट्रोलर व्यवहार हैं। प्रोजेक्ट के दौरान इन कॉन्फ़िगर किए गए एक्शन को अस्थायी रूप से सक्षम या अक्षम करने के लिए remote_control_code_enabled का उपयोग करें।

इस पृष्ठ पर उदाहरण के तौर पर controller कंट्रोलर नाम का उपयोग किया गया है। आवश्यकतानुसार इसे अपने स्वयं के कॉन्फ़िगर किए गए नाम से बदलें।

नीचे उपलब्ध सभी तरीकों की सूची दी गई है:

कार्रवाई — कॉन्फ़िगर किए गए कंट्रोलर कार्यों को चालू या बंद करें।

  • remote_control_code_enabled — डिवाइस मेनू में कॉन्फ़िगर किए गए नियंत्रक क्रियाओं को सक्षम या अक्षम करता है।

गेटर्स — बटन की स्थिति और जॉयस्टिक की पोजीशन पढ़ें।

  • .pressing — यह बताता है कि कोई निर्दिष्ट बटन दबाया जा रहा है या नहीं।

  • .position — निर्दिष्ट जॉयस्टिक अक्ष की स्थिति लौटाता है।

कॉलबैक — कंट्रोलर इनपुट में परिवर्तन होने पर फ़ंक्शन चलाएँ।

  • .pressed — निर्दिष्ट बटन दबाए जाने पर एक फ़ंक्शन चलाता है।

  • .released — निर्दिष्ट बटन छोड़े जाने पर एक फ़ंक्शन चलाता है।

  • .changed — जब जॉयस्टिक की स्थिति एक निर्दिष्ट अक्ष के साथ बदलती है तो एक फ़ंक्शन चलता है।

कंस्ट्रक्टर — मैन्युअल रूप से एक कंट्रोलर ऑब्जेक्ट बनाएं।

  • Controller — एक नियंत्रक ऑब्जेक्ट बनाता है।

कार्रवाई#

remote_control_code_enabled#

remote_control_code_enabled एक वेरिएबल है जो डिवाइसेस मेनू में कॉन्फ़िगर किए गए कंट्रोलर एक्शन को सक्षम या अक्षम करता है। कंट्रोलर द्वारा कॉन्फ़िगर किए गए एक्शन डिफ़ॉल्ट रूप से सक्षम होते हैं।

Usage:
remote_control_code_enabled = state

कीमत

विवरण

True

नियंत्रक द्वारा कॉन्फ़िगर की गई कार्रवाइयों को सक्षम करता है।

False

नियंत्रक द्वारा कॉन्फ़िगर की गई कार्रवाइयों को अक्षम करता है।

# Drive forward or backward using the left joystick
remote_control_code_enabled = False

while True:
    if controller.axis3.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axis3.position() < 0:
        drivetrain.drive(REVERSE)
    # Press A to use controller configured actions again
    elif controller.buttonA.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

टिककर खेल#

.pressing#

.pressing यह बताता है कि कंट्रोलर पर कोई विशिष्ट बटन वर्तमान में दबाया जा रहा है या नहीं। इस विधि को किसी विशिष्ट बटन ऑब्जेक्ट पर कॉल किया जाना चाहिए, जैसे कि controller.buttonA.

  • True — निर्दिष्ट बटन दबाया जा रहा है।

  • False — निर्दिष्ट बटन दबाया नहीं जा रहा है।

उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

EXP कंट्रोलर के सामने और ऊपरी हिस्से में जॉयस्टिक, तीर बटन और एक्शन बटन पीले रंग में हाइलाइट किए गए हैं। कंट्रोलर की सतह पर बाईं और दाईं ओर दो जॉयस्टिक हैं, बाईं ओर ऊपर और नीचे तीर बटन और दाईं ओर A और B बटन हैं। कंट्रोलर के ऊपरी हिस्से में बाईं ओर L1 और L2 और दाईं ओर R1 और R2 बटन हैं।

बटन

आज्ञा

buttonA

controller.buttonA.pressing() — A बटन

buttonB

controller.buttonB.pressing() — B बटन

buttonDown

controller.buttonDown.pressing() — डाउन बटन

buttonUp

controller.buttonUp.pressing() — ऊपर वाला बटन

buttonL1

controller.buttonL1.pressing() — L1 बटन

buttonL2

controller.buttonL2.pressing() — L2 बटन

buttonL3

controller.buttonL3.pressing() — L3 बटन

buttonR1

controller.buttonR1.pressing() — R1 बटन

buttonR2

controller.buttonR2.pressing() — R2 बटन

buttonR3

controller.buttonR3.pressing() — R3 बटन

पैरामीटर

विवरण

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

# Turn right while L1 is pressed
while True:
    if controller.buttonL1.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

.position#

.position जॉयस्टिक अक्ष की स्थिति को -100 से 100 तक की संख्या के रूप में लौटाता है।

इस विधि को किसी विशिष्ट अक्ष ऑब्जेक्ट पर कॉल किया जाना चाहिए, जैसे कि controller.axis1।

उपयोग:
इस विधि के साथ उपलब्ध अक्ष वस्तुओं में से किसी एक का उपयोग किया जा सकता है:

EXP कंट्रोलर का सामने का भाग, जिसमें जॉयस्टिक के अक्ष क्रमांक लाल रंग में हाइलाइट किए गए हैं। कंट्रोलर की सतह पर, बाएँ जॉयस्टिक को बाएँ और दाएँ गति के लिए अक्ष 4 और ऊपर और नीचे गति के लिए अक्ष 3 के रूप में चिह्नित किया गया है, जबकि दाएँ जॉयस्टिक को बाएँ और दाएँ गति के लिए अक्ष 1 और ऊपर और नीचे गति के लिए अक्ष 2 के रूप में चिह्नित किया गया है।

अक्ष

आज्ञा

axis1

controller.axis1.position() — दाएँ जॉयस्टिक का क्षैतिज अक्ष

axis2

controller.axis2.position() — दाएँ जॉयस्टिक का ऊर्ध्वाधर अक्ष

axis3

controller.axis3.position() — बाएँ जॉयस्टिक का ऊर्ध्वाधर अक्ष

axis4

controller.axis4.position() — बाएँ जॉयस्टिक का क्षैतिज अक्ष

पैरामीटर

विवरण

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

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller.axis4.position() < -10:
        drivetrain.turn(LEFT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

कॉलबैक#

.pressed#

.pressed निर्दिष्ट बटन दबाए जाने पर एक फ़ंक्शन चलाता है। एक बार उपयोग हो जाने के बाद, यह फ़ंक्शन हर बार उस बटन को दबाए जाने पर स्वचालित रूप से चलेगा।

उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

EXP कंट्रोलर के सामने और ऊपरी हिस्से में जॉयस्टिक, तीर बटन और एक्शन बटन पीले रंग में हाइलाइट किए गए हैं। कंट्रोलर की सतह पर बाईं और दाईं ओर दो जॉयस्टिक हैं, बाईं ओर ऊपर और नीचे तीर बटन और दाईं ओर A और B बटन हैं। कंट्रोलर के ऊपरी हिस्से में बाईं ओर L1 और L2 और दाईं ओर R1 और R2 बटन हैं।

बटन

आज्ञा

buttonA

controller.buttonA.pressed(callback, arg) — A बटन

buttonB

controller.buttonB.pressed(callback, arg) — B बटन

buttonDown

controller.buttonDown.pressed(callback, arg) — डाउन बटन

buttonUp

controller.buttonUp.pressed(callback, arg) — ऊपर वाला बटन

buttonL1

controller.buttonL1.pressed(callback, arg) — L1 बटन

buttonL2

controller.buttonL2.pressed(callback, arg) — L2 बटन

buttonL3

controller.buttonL3.pressed(callback, arg) — L3 बटन

buttonR1

controller.buttonR1.pressed(callback, arg) — R1 बटन

buttonR2

controller.buttonR2.pressed(callback, arg) — R2 बटन

buttonR3

controller.buttonR3.pressed(callback, arg) — R3 बटन

पैरामीटर

विवरण

callback

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

arg

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

# Drive forward when R1 is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 200, MM)

controller.buttonR1.pressed(drive_forward)

.released#

.released निर्दिष्ट बटन के रिलीज़ होने पर एक फ़ंक्शन चलाता है। एक बार इसका उपयोग हो जाने के बाद, यह फ़ंक्शन हर बार उस बटन के रिलीज़ होने पर स्वचालित रूप से चलेगा।

उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

EXP कंट्रोलर के सामने और ऊपरी हिस्से में जॉयस्टिक, तीर बटन और एक्शन बटन पीले रंग में हाइलाइट किए गए हैं। कंट्रोलर की सतह पर बाईं और दाईं ओर दो जॉयस्टिक हैं, बाईं ओर ऊपर और नीचे तीर बटन और दाईं ओर A और B बटन हैं। कंट्रोलर के ऊपरी हिस्से में बाईं ओर L1 और L2 और दाईं ओर R1 और R2 बटन हैं।

बटन

आज्ञा

buttonA

controller.buttonA.released(callback, arg) — A बटन

buttonB

controller.buttonB.released(callback, arg) — B बटन

buttonDown

controller.buttonDown.released(callback, arg) — डाउन बटन

buttonUp

controller.buttonUp.released(callback, arg) — ऊपर बटन

buttonL1

controller.buttonL1.released(callback, arg) — L1 बटन

buttonL2

controller.buttonL2.released(callback, arg) — L2 बटन

buttonL3

controller.buttonL3.released(callback, arg) — L3 बटन

buttonR1

controller.buttonR1.released(callback, arg) — R1 बटन

buttonR2

controller.buttonR2.released(callback, arg) — R2 बटन

buttonR3

controller.buttonR3.released(callback, arg) — R3 बटन

पैरामीटर

विवरण

callback

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

arg

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

# Stop driving when R1 is released
def stop_driving():
    drivetrain.stop()

controller.buttonR1.released(stop_driving)

.changed#

.changed निर्दिष्ट अक्ष के अनुदिश जॉयस्टिक की स्थिति में परिवर्तन होने पर एक फ़ंक्शन चलाता है। एक बार उपयोग हो जाने के बाद, जॉयस्टिक की स्थिति में उस अक्ष के अनुदिश परिवर्तन होने पर यह फ़ंक्शन स्वचालित रूप से चलेगा।

उपयोग:
इस विधि के साथ उपलब्ध अक्ष वस्तुओं में से किसी एक का उपयोग किया जा सकता है:

EXP कंट्रोलर का सामने का भाग, जिसमें जॉयस्टिक के अक्ष क्रमांक लाल रंग में हाइलाइट किए गए हैं। कंट्रोलर की सतह पर, बाएँ जॉयस्टिक को बाएँ और दाएँ गति के लिए अक्ष 4 और ऊपर और नीचे गति के लिए अक्ष 3 के रूप में चिह्नित किया गया है, जबकि दाएँ जॉयस्टिक को बाएँ और दाएँ गति के लिए अक्ष 1 और ऊपर और नीचे गति के लिए अक्ष 2 के रूप में चिह्नित किया गया है।

अक्ष

आज्ञा

axis1

controller.axis1.changed(callback, arg) — दाएँ जॉयस्टिक का क्षैतिज अक्ष

axis2

controller.axis2.changed(callback, arg) — दाएँ जॉयस्टिक का ऊर्ध्वाधर अक्ष

axis3

controller.axis3.changed(callback, arg) — बाएँ जॉयस्टिक का ऊर्ध्वाधर अक्ष

axis4

controller.axis4.changed(callback, arg) — बाएँ जॉयस्टिक का क्षैतिज अक्ष

पैरामीटर

विवरण

callback

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

arg

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

# Play a sound when the left joystick moves
def beep():
    brain.play_sound(SoundType.TADA)

controller.axis3.changed(beep)

कंस्ट्रक्टर्स#

Controller#

Controller एक कंट्रोलर ऑब्जेक्ट बनाता है। कंट्रोलर ऑब्जेक्ट को मैन्युअल रूप से बनाने की आवश्यकता केवल तभी होती है जब VEXcode के बाहर किसी कंट्रोलर को कॉन्फ़िगर किया जा रहा हो।

Usage:
Controller()

पैरामीटर

विवरण

इस कंस्ट्रक्टर में कोई पैरामीटर नहीं है।

# Create a Controller object
my_controller = Controller()