नियंत्रक#
परिचय#
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
कीमत |
विवरण |
|---|---|
|
नियंत्रक द्वारा कॉन्फ़िगर की गई कार्रवाइयों को सक्षम करता है। |
|
नियंत्रक द्वारा कॉन्फ़िगर की गई कार्रवाइयों को अक्षम करता है। |
# 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— निर्दिष्ट बटन दबाया नहीं जा रहा है।
उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

बटन |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# 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।
उपयोग:
इस विधि के साथ उपलब्ध अक्ष वस्तुओं में से किसी एक का उपयोग किया जा सकता है:

अक्ष |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# 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 निर्दिष्ट बटन दबाए जाने पर एक फ़ंक्शन चलाता है। एक बार उपयोग हो जाने के बाद, यह फ़ंक्शन हर बार उस बटन को दबाए जाने पर स्वचालित रूप से चलेगा।
उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

बटन |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
|
निर्दिष्ट बटन दबाए जाने पर प्रत्येक बार चलाने के लिए पहले से परिभाषित फ़ंक्शन। |
|
वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ इवेंट का उपयोग करना देखें। |
# Drive forward when E Up is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller.buttonEUp.pressed(drive_forward)
.released#
.released निर्दिष्ट बटन के रिलीज़ होने पर एक फ़ंक्शन चलाता है। एक बार इसका उपयोग हो जाने के बाद, यह फ़ंक्शन हर बार उस बटन के रिलीज़ होने पर स्वचालित रूप से चलेगा।
उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

बटन |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
|
निर्दिष्ट बटन जारी होने पर प्रत्येक बार चलाने के लिए पहले से परिभाषित फ़ंक्शन। |
|
वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ इवेंट का उपयोग करना देखें। |
# Stop driving when E Up is released
def stop_driving():
drivetrain.stop()
controller.buttonEUp.released(stop_driving)
.changed#
.changed निर्दिष्ट अक्ष के अनुदिश जॉयस्टिक की स्थिति में परिवर्तन होने पर एक फ़ंक्शन चलाता है। एक बार उपयोग हो जाने के बाद, जॉयस्टिक की स्थिति में उस अक्ष के अनुदिश परिवर्तन होने पर यह फ़ंक्शन स्वचालित रूप से चलेगा।
उपयोग:
इस विधि के साथ उपलब्ध अक्ष वस्तुओं में से किसी एक का उपयोग किया जा सकता है:

अक्ष |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
|
पहले से परिभाषित फ़ंक्शन जो प्रत्येक बार जॉयस्टिक की स्थिति निर्दिष्ट अक्ष के साथ बदलती है, तब चलता है। |
|
वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ इवेंट का उपयोग करना देखें। |
# 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()