नियंत्रक#

परिचय#

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

IQ (दूसरी पीढ़ी) ब्रेन को IQ (दूसरी पीढ़ी) या IQ (पहली पीढ़ी) कंट्रोलर से कनेक्ट किया जा सकता है। IQ (पहली पीढ़ी) कंट्रोलर में ब्लू स्मार्ट रेडियो इंस्टॉल होना आवश्यक है।

कॉन्फ़िगर किए गए कंट्रोलर एक्शन, डिवाइस मेनू में सेट किए गए कंट्रोलर व्यवहार हैं। प्रोजेक्ट के दौरान इन कॉन्फ़िगर किए गए एक्शन को अस्थायी रूप से सक्षम या अक्षम करने के लिए 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

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

# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False

while True:
    if controller.axisA.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axisA.position() < 0:
        drivetrain.drive(REVERSE)
    elif controller.buttonEUp.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

टिककर खेल#

.pressing#

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

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

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

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

IQ द्वितीय पीढ़ी के कंट्रोलर का आगे और पीछे का दृश्य, जिसमें सभी बटन पीले रंग से हाइलाइट किए गए हैं। कंट्रोलर की सतह पर ऊपरी बाएँ और दाएँ कोनों में दो जॉयस्टिक बटन हैं, बाएँ जॉयस्टिक के नीचे E ऊपर और नीचे और दाएँ जॉयस्टिक के नीचे F ऊपर और नीचे बटन हैं। कंट्रोलर के पीछे बाएँ और दाएँ ओर क्रमशः L ऊपर और नीचे और R ऊपर और नीचे बटन हैं।

बटन

आज्ञा

buttonEDown

controller.buttonEDown.pressing() — E ▼ बटन

buttonEUp

controller.buttonEUp.pressing() — E ▲ बटन

buttonFDown

controller.buttonFDown.pressing() — F ▼ बटन

buttonFUp

controller.buttonFUp.pressing() — F ▲ बटन

buttonL3

controller.buttonL3.pressing() — केवल IQ (दूसरी पीढ़ी) कंट्रोलर के लिए बायां जॉयस्टिक बटन

buttonLDown

controller.buttonLDown.pressing() — L ▼ बटन

buttonLUp

controller.buttonLUp.pressing() — L ▲ बटन

buttonR3

controller.buttonR3.pressing() — दायां जॉयस्टिक बटन, केवल IQ (दूसरी पीढ़ी) कंट्रोलर के लिए

buttonRDown

controller.buttonRDown.pressing() — R ▼ बटन

buttonRUp

controller.buttonRUp.pressing() — R ▲ बटन

पैरामीटर

विवरण

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

# Turn right while E Up is held
while True:
    if controller.buttonEUp.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

.position#

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

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

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

IQ द्वितीय पीढ़ी का कंट्रोलर जिसमें चारों जॉयस्टिक अक्ष हाइलाइट किए गए हैं। बाएँ जॉयस्टिक पर, अक्ष A ऊर्ध्वाधर है और अक्ष B क्षैतिज है। दाएँ जॉयस्टिक पर, अक्ष C क्षैतिज है और अक्ष D ऊर्ध्वाधर है।

अक्ष

आज्ञा

axisA

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

axisB

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

axisC

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

axisD

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

पैरामीटर

विवरण

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

# Turn with the left joystick
remote_control_code_enabled = False

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

    wait(20, MSEC)

कॉलबैक#

.pressed#

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

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

IQ द्वितीय पीढ़ी के कंट्रोलर का आगे और पीछे का दृश्य, जिसमें सभी बटन पीले रंग से हाइलाइट किए गए हैं। कंट्रोलर की सतह पर ऊपरी बाएँ और दाएँ कोनों में दो जॉयस्टिक बटन हैं, बाएँ जॉयस्टिक के नीचे E ऊपर और नीचे और दाएँ जॉयस्टिक के नीचे F ऊपर और नीचे बटन हैं। कंट्रोलर के पीछे बाएँ और दाएँ ओर क्रमशः L ऊपर और नीचे और R ऊपर और नीचे बटन हैं।

बटन

आज्ञा

buttonEDown

controller.buttonEDown.pressed(callback, arg) — E ▼ बटन

buttonEUp

controller.buttonEUp.pressed(callback, arg) — E ▲ बटन

buttonFDown

controller.buttonFDown.pressed(callback, arg) — F ▼ बटन

buttonFUp

controller.buttonFUp.pressed(callback, arg) — F ▲ बटन

buttonL3

controller.buttonL3.pressed(callback, arg) — केवल IQ (दूसरी पीढ़ी) कंट्रोलर के लिए बायां जॉयस्टिक बटन

buttonLDown

controller.buttonLDown.pressed(callback, arg) — L ▼ बटन

buttonLUp

controller.buttonLUp.pressed(callback, arg) — L ▲ बटन

buttonR3

controller.buttonR3.pressed(callback, arg) — दायां जॉयस्टिक बटन, केवल IQ (दूसरी पीढ़ी) कंट्रोलर के लिए

buttonRDown

controller.buttonRDown.pressed(callback, arg) — R ▼ बटन

buttonRUp

controller.buttonRUp.pressed(callback, arg) — R ▲ बटन

पैरामीटर

विवरण

callback

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

arg

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

# Drive forward when E Up is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

controller.buttonEUp.pressed(drive_forward)

.released#

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

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

IQ द्वितीय पीढ़ी के कंट्रोलर का आगे और पीछे का दृश्य, जिसमें सभी बटन पीले रंग से हाइलाइट किए गए हैं। कंट्रोलर की सतह पर ऊपरी बाएँ और दाएँ कोनों में दो जॉयस्टिक बटन हैं, बाएँ जॉयस्टिक के नीचे E ऊपर और नीचे और दाएँ जॉयस्टिक के नीचे F ऊपर और नीचे बटन हैं। कंट्रोलर के पीछे बाएँ और दाएँ ओर क्रमशः L ऊपर और नीचे और R ऊपर और नीचे बटन हैं।

बटन

आज्ञा

buttonEDown

controller.buttonEDown.released(callback, arg) — E ▼ बटन

buttonEUp

controller.buttonEUp.released(callback, arg) — E ▲ बटन

buttonFDown

controller.buttonFDown.released(callback, arg) — F ▼ बटन

buttonFUp

controller.buttonFUp.released(callback, arg) — F ▲ बटन

buttonL3

controller.buttonL3.released(callback, arg) — बायां जॉयस्टिक बटन, केवल IQ (दूसरी पीढ़ी) कंट्रोलर के लिए

buttonLDown

controller.buttonLDown.released(callback, arg) — L ▼ बटन

buttonLUp

controller.buttonLUp.released(callback, arg) — L ▲ बटन

buttonR3

controller.buttonR3.released(callback, arg) — दायां जॉयस्टिक बटन, केवल IQ (दूसरी पीढ़ी) कंट्रोलर के लिए

buttonRDown

controller.buttonRDown.released(callback, arg) — R ▼ बटन

buttonRUp

controller.buttonRUp.released(callback, arg) — R ▲ बटन

पैरामीटर

विवरण

callback

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

arg

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

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

controller.buttonEUp.released(stop_driving)

.changed#

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

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

IQ द्वितीय पीढ़ी का कंट्रोलर जिसमें चारों जॉयस्टिक अक्ष हाइलाइट किए गए हैं। बाएँ जॉयस्टिक पर, अक्ष A ऊर्ध्वाधर है और अक्ष B क्षैतिज है। दाएँ जॉयस्टिक पर, अक्ष C क्षैतिज है और अक्ष D ऊर्ध्वाधर है।

अक्ष

आज्ञा

axisA

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

axisB

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

axisC

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

axisD

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

पैरामीटर

विवरण

callback

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

arg

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

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

controller.axisD.changed(beep)

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

Controller#

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

Usage:
Controller()

पैरामीटर

विवरण

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

# Create a Controller object
my_controller = Controller()