नियंत्रक#
परिचय#
V5 कंट्रोलर में बटन, दो जॉयस्टिक, एक रंबल मोटर और एक स्क्रीन है। कंट्रोलर विधियों का उपयोग बटन दबाने की जाँच करने, जॉयस्टिक की गति को पढ़ने, कंट्रोलर को वाइब्रेट करने, कॉन्फ़िगर किए गए कंट्रोलर कार्यों को सक्षम या अक्षम करने, कंट्रोलर इवेंट होने पर फ़ंक्शन चलाने या कंट्रोलर स्क्रीन पर टेक्स्ट प्रदर्शित करने के लिए किया जा सकता है।
कॉन्फ़िगर किए गए कंट्रोलर एक्शन, डिवाइस मेनू में सेट किए गए कंट्रोलर व्यवहार हैं। प्रोजेक्ट के दौरान इन कॉन्फ़िगर किए गए एक्शन को अस्थायी रूप से सक्षम या अक्षम करने के लिए remote_control_code_enabled का उपयोग करें।
इस पृष्ठ पर उदाहरण के तौर पर कंट्रोलर का नाम controller_1 दिया गया है। आवश्यकतानुसार इसे अपने कॉन्फ़िगर किए गए नाम से बदलें।
नीचे उपलब्ध सभी तरीकों की सूची दी गई है:
कार्य — कंट्रोलर को वाइब्रेट करें या कॉन्फ़िगर किए गए कंट्रोलर कार्यों को सक्षम/अक्षम करें।
rumble— कंट्रोलर पर रंबल पैटर्न बजाता है।remote_control_code_enabled— डिवाइस मेनू में कॉन्फ़िगर किए गए नियंत्रक कार्यों को सक्षम या अक्षम करता है।
स्क्रीन — कंट्रोलर स्क्रीन पर टेक्स्ट और नंबर प्रदर्शित करें।
print— नियंत्रक स्क्रीन पर पाठ, संख्याएँ या चर मान प्रदर्शित करता है।set_cursor— कंट्रोलर स्क्रीन पर कर्सर को निर्दिष्ट पंक्ति और कॉलम पर ले जाता है।column— कंट्रोलर स्क्रीन पर वर्तमान कर्सर कॉलम लौटाता है।row— नियंत्रक स्क्रीन पर वर्तमान कर्सर पंक्ति लौटाता है।clear_screen— कंट्रोलर स्क्रीन साफ़ करता है।clear_row— कंट्रोलर स्क्रीन पर एक पंक्ति साफ़ करता है।next_row— कंट्रोलर स्क्रीन पर कर्सर को अगली पंक्ति में ले जाता है।
गेटर्स — बटन की स्थिति और जॉयस्टिक की पोजीशन पढ़ें।
.pressing— यह बताता है कि कोई निर्दिष्ट बटन दबाया जा रहा है या नहीं।.position— निर्दिष्ट जॉयस्टिक अक्ष की स्थिति लौटाता है।
कॉलबैक — कंट्रोलर इनपुट में परिवर्तन होने पर फ़ंक्शन चलाएँ।
.pressed— निर्दिष्ट बटन दबाए जाने पर एक फ़ंक्शन चलाता है।.released— निर्दिष्ट बटन छोड़े जाने पर एक फ़ंक्शन चलाता है।.changed— जब जॉयस्टिक की स्थिति एक निर्दिष्ट अक्ष के साथ बदलती है तो एक फ़ंक्शन चलता है।
कंस्ट्रक्टर — मैन्युअल रूप से एक कंट्रोलर ऑब्जेक्ट बनाएं।
Controller— एक नियंत्रक ऑब्जेक्ट बनाता है।
कार्रवाई#
rumble#
rumble कंट्रोलर पर एक रंबल पैटर्न बजाता है। पैटर्न स्ट्रिंग में, पीरियड छोटे रंबल होते हैं, हाइफ़न लंबे रंबल होते हैं, और स्पेस विराम होते हैं।
Usage:
controller_1.rumble(pattern)
पैरामीटर |
विवरण |
|---|---|
|
एक स्ट्रिंग जो पीरियड, हाइफ़न और स्पेस से बनी होती है और रंबल पैटर्न को दर्शाती है। |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled एक वेरिएबल है जो डिवाइसेस मेनू में कॉन्फ़िगर किए गए कंट्रोलर एक्शन को सक्षम या अक्षम करता है। कंट्रोलर द्वारा कॉन्फ़िगर किए गए एक्शन डिफ़ॉल्ट रूप से सक्षम होते हैं।
Usage:
remote_control_code_enabled = state
कीमत |
विवरण |
|---|---|
|
कंट्रोलर द्वारा कॉन्फ़िगर किए गए कार्यों को सक्षम करता है। |
|
कंट्रोलर द्वारा कॉन्फ़िगर की गई कार्रवाइयों को अक्षम करता है। |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
स्क्रीन#
V5 कंट्रोलर स्क्रीन में टेक्स्ट और नंबर प्रदर्शित करने के लिए 3 पंक्तियाँ और 19 कॉलम हैं।

print#
controller_1.screen.print वर्तमान कर्सर स्थिति का उपयोग करके कंट्रोलर स्क्रीन पर टेक्स्ट, संख्याएँ या चर मान प्रदर्शित करता है।
Usage:
controller_1.screen.print(value, sep, precision)
पैरामीटर |
विवरण |
|---|---|
|
कंट्रोलर स्क्रीन पर प्रदर्शित होने वाला टेक्स्ट, संख्या या वेरिएबल मान। एक से अधिक मानों को अल्पविराम से अलग करके प्रिंट किया जा सकता है। |
|
वैकल्पिक। मानों के बीच रखने के लिए एक स्ट्रिंग। इसे कीवर्ड तर्क के रूप में लिखा जाना चाहिए, जैसे |
|
यह वैकल्पिक है। साधारण संख्याओं को प्रिंट करते समय प्रदर्शित होने वाले दशमलव स्थानों की संख्या। इसे कीवर्ड आर्गुमेंट के रूप में लिखा जाना चाहिए, जैसे कि |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
set_cursor का उपयोग करने पर कर्सर कंट्रोलर स्क्रीन पर निर्दिष्ट पंक्ति और स्तंभ पर चला जाता है। अगला मुद्रित मान उसी स्थान पर दिखाई देगा।
Usage:
controller_1.screen.set_cursor(row, col)
पैरामीटर |
विवरण |
|---|---|
|
कर्सर की पंक्ति, |
|
कर्सर का कॉलम, |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column वर्तमान कॉलम को लौटाता है जहां कंट्रोलर स्क्रीन पर टेक्स्ट प्रिंट किया जाएगा।
Usage:
controller_1.screen.column()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row वर्तमान पंक्ति लौटाता है जहां कंट्रोलर स्क्रीन पर टेक्स्ट प्रिंट किया जाएगा।
Usage:
controller_1.screen.row()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen कंट्रोलर स्क्रीन को साफ़ करता है और कर्सर को शुरुआती स्थिति में वापस ले जाता है।
Usage:
controller_1.screen.clear_screen()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row कंट्रोलर स्क्रीन पर एक पंक्ति साफ़ करता है।
Usage:
controller_1.screen.clear_row(row)
पैरामीटर |
विवरण |
|---|---|
|
वैकल्पिक। |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row कर्सर को कंट्रोलर स्क्रीन की अगली पंक्ति के कॉलम 1 पर ले जाता है। अगला मुद्रित मान उसी पंक्ति में दिखाई देगा।
Usage:
controller_1.screen.next_row()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
टिककर खेल#
.pressing#
.pressing यह बताता है कि कंट्रोलर पर कोई विशिष्ट बटन वर्तमान में दबाया जा रहा है या नहीं। इस विधि को किसी विशिष्ट बटन ऑब्जेक्ट पर कॉल किया जाना चाहिए, जैसे कि controller_1.buttonA.
True— निर्दिष्ट बटन दबाया जा रहा है।False— निर्दिष्ट बटन दबाया नहीं जा रहा है।
उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

बटन |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position जॉयस्टिक अक्ष की स्थिति को -100 से 100 तक की संख्या के रूप में लौटाता है।
इस विधि को किसी विशिष्ट अक्ष ऑब्जेक्ट पर कॉल किया जाना चाहिए, जैसे कि controller_1.axis1.
उपयोग:
इस विधि के साथ उपलब्ध अक्ष वस्तुओं में से किसी एक का उपयोग किया जा सकता है:

अक्ष |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
कॉलबैक#
.pressed#
.pressed निर्दिष्ट बटन दबाए जाने पर एक फ़ंक्शन चलाता है। एक बार उपयोग हो जाने के बाद, यह फ़ंक्शन हर बार उस बटन को दबाए जाने पर स्वचालित रूप से चलेगा।
उपयोग:
इस विधि के साथ उपलब्ध बटन ऑब्जेक्ट्स में से किसी एक का उपयोग किया जा सकता है:

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

बटन |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
|
निर्दिष्ट बटन जारी होने पर प्रत्येक बार चलाने के लिए पहले से परिभाषित फ़ंक्शन। |
|
वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ इवेंट का उपयोग करना देखें। |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
.changed निर्दिष्ट अक्ष के अनुदिश जॉयस्टिक की स्थिति में परिवर्तन होने पर एक फ़ंक्शन चलाता है। एक बार उपयोग हो जाने के बाद, जॉयस्टिक की स्थिति में उस अक्ष के अनुदिश परिवर्तन होने पर यह फ़ंक्शन स्वचालित रूप से चलेगा।
उपयोग:
इस विधि के साथ उपलब्ध अक्ष वस्तुओं में से किसी एक का उपयोग किया जा सकता है:

अक्ष |
आज्ञा |
|---|---|
|
|
|
|
|
|
|
|
पैरामीटर |
विवरण |
|---|---|
|
पहले से परिभाषित फ़ंक्शन जो प्रत्येक बार जॉयस्टिक की स्थिति निर्दिष्ट अक्ष के साथ बदलती है, तब चलता है। |
|
वैकल्पिक। कॉलबैक फ़ंक्शन को पास करने के लिए तर्क युक्त एक टपल। अधिक जानकारी के लिए पैरामीटर के साथ इवेंट का उपयोग करना देखें। |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
कंस्ट्रक्टर्स#
Controller#
Controller एक कंट्रोलर ऑब्जेक्ट बनाता है। कंट्रोलर ऑब्जेक्ट को मैन्युअल रूप से बनाने की आवश्यकता केवल तभी होती है जब VEXcode के बाहर किसी कंट्रोलर को कॉन्फ़िगर किया जा रहा हो।
Usage:
Controller(controller_type)
पैरामीटर |
विवरण |
|---|---|
|
वैकल्पिक। बनाने के लिए नियंत्रक प्रकार: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)