रोबोट-विशिष्ट पायथन#

परिचय#

हीरो बॉट, डेक्स में दो मोटर विकल्प, एक एआई विजन सेंसर, एक ऑप्टिकल सेंसर और एक गेम पोजिशनिंग सिस्टम (जीपीएस) सेंसर शामिल हैं।

सभी मानक VEXcode VR विधियाँ V5 25-26 पुश बैक प्लेग्राउंड में उपयोग के लिए उपलब्ध हैं।

नीचे रोबोट-विशिष्ट सभी उपलब्ध विधियों की सूची दी गई है:

ड्राइवट्रेन – रोबोट को गति देने और मोड़ने का कार्य करता है।

  • कार्यवाही

    • drive — रोबोट को हमेशा के लिए आगे या पीछे ले जाता है।

    • drive_for — रोबोट को एक विशिष्ट दूरी के लिए आगे या पीछे ले जाता है।

    • turn — रोबोट को हमेशा के लिए बाएँ या दाएँ घुमाता है।

    • turn_for — रोबोट को एक विशिष्ट संख्या में डिग्री के लिए बाएँ या दाएँ घुमाता है।

    • turn_to_heading — रोबोट को -359 से 359 डिग्री तक एक विशिष्ट हेडिंग का सामना करने के लिए मोड़ता है।

    • turn_to_rotation — रोबोट को एक विशिष्ट रोटेशन में घुमाता है।

    • stop — रोबोट की गति को रोकता है।

  • म्यूटेटर्स

    • set_heading — रोबोट की वर्तमान दिशा को नई दिशा में बदलता है।

    • set_rotation — रोबोट के वर्तमान रोटेशन को नए रोटेशन में बदलता है।

    • set_timeout — यह निर्धारित करता है कि रोबोट किसी गतिविधि को पूरा करने के लिए कितना समय लेगा।

    • set_drive_velocity — रोबोट को बताता है कि कितनी तेज़ी से ड्राइव करना है।

    • set_turn_velocity — रोबोट को बताता है कि कितनी तेज़ी से मुड़ना है।

  • गेटर्स

    • heading — रोबोट की वर्तमान हेडिंग 0 से 359.99 डिग्री तक लौटाता है।

    • rotation — रोबोट का वर्तमान रोटेशन लौटाता है।

    • is_done — यह बताता है कि रोबोट चलना समाप्त कर चुका है या नहीं, बूलियन मान के रूप में।

    • is_moving — यह बताता है कि रोबोट चल रहा है या नहीं, बूलियन मान के रूप में।

    • velocity — रोबोट कितनी तेज़ी से चल रहा है, यह लौटाता है।

गति – रोबोट के मोटरों को चलाएं और उनकी गति का पता लगाएं।

  • कार्यवाही

    • spin — मोटर को हमेशा के लिए आगे या पीछे घुमाता है।

    • spin_for — एक मोटर को एक विशिष्ट दूरी के लिए घुमाता है।

    • spin_to_position — मोटर को एक विशिष्ट स्थिति में घुमाता है।

    • stop — मोटर को घूमने से रोकता है।

  • म्यूटेटर्स

    • set_position — मोटर की वर्तमान स्थिति को एक नए मान में बदलता है।

    • set_velocity — मोटर को बताता है कि कितनी तेज़ी से घूमना है।

    • set_timeout — यह निर्धारित करता है कि मोटर किसी गति को पूरा करने के लिए कितना समय प्रयास करेगी।

  • गेटर्स

    • is_done — बूलियन मान के रूप में मोटर चलना समाप्त हो गया है या नहीं, लौटाता है।

    • is_spinning — बूलियन मान के रूप में मोटर घूम रही है या नहीं, यह लौटाता है।

    • position — मोटर की वर्तमान स्थिति लौटाता है।

    • velocity — मोटर कितनी तेज़ी से घूम रही है, यह लौटाता है।

एआई विज़न - एआई विज़न सेंसर का उपयोग करके वस्तुओं को कैप्चर और विश्लेषण करें।

  • गेटर्स

    • take_snapshot – एक विशिष्ट हस्ताक्षर के लिए पता लगाए गए ऑब्जेक्ट्स का एक टपल लौटाता है।

  • गुण

    • width – पिक्सेल में पता लगाई गई वस्तु की चौड़ाई।

    • height – पिक्सेल में पता लगाई गई वस्तु की ऊंचाई।

    • centerX – पिक्सेल में वस्तु के केंद्र की X स्थिति।

    • centerY – पिक्सेल में वस्तु के केंद्र की Y स्थिति।

    • originX – पिक्सेल में वस्तु के शीर्ष-बाएँ कोने की X स्थिति।

    • originY – पिक्सेल में वस्तु के शीर्ष-बाएँ कोने की Y स्थिति।

    • id – ऑब्जेक्ट का वर्गीकरण या टैग आईडी।

कंसोल – कंसोल पर प्रिंट करें और मानों की निगरानी करें।

  • प्रिंट

    • brain.screen.print — कंसोल में टेक्स्ट, संख्याएँ या चर मान प्रदर्शित करता है।

    • brain.screen.next_row — कंसोल कर्सर को अगली पंक्ति की शुरुआत में ले जाता है।

    • brain.screen.clear_screen — कंसोल से सभी पंक्तियों को साफ़ करता है।

  • निगरानी करना

    • monitor_variable — मॉनिटर टैब में एक या अधिक पूर्वनिर्धारित चर जोड़ता है।

    • monitor_sensor — मॉनिटर टैब में एक या अधिक सेंसर मान जोड़ता है।

संवेदन - रोबोट के विभिन्न सेंसरों का उपयोग करें।

  • ऑप्टिकल

    • is_near_object – लौटाता है कि क्या ऑप्टिकल सेंसर सीमा के भीतर किसी वस्तु का पता लगाता है।

    • color – ऑप्टिकल सेंसर द्वारा पता लगाया गया रंग लौटाता है।

    • brightness – वस्तु से परावर्तित प्रकाश की मात्रा लौटाता है।

    • hue – ऑप्टिकल सेंसर द्वारा पता लगाए गए रंग को लौटाता है।

    • object_detected – ऑप्टिकल सेंसर द्वारा किसी ऑब्जेक्ट का पता लगाने पर कॉल किए जाने वाले फ़ंक्शन को रजिस्टर करता है।

    • object_lost – ऑप्टिकल सेंसर द्वारा ऑब्जेक्ट खो जाने पर कॉल किए जाने वाले फ़ंक्शन को पंजीकृत करता है।

  • GPS

    • x_position – फ़ील्ड पर जीपीएस सेंसर का वर्तमान x-निर्देशांक लौटाता है।

    • y_position – फ़ील्ड पर जीपीएस सेंसर का वर्तमान y-निर्देशांक लौटाता है।

    • heading – जीपीएस सेंसर की 0 से 359 डिग्री तक की रीडिंग के आधार पर रोबोट वर्तमान में जिस दिशा में है, उसे लौटाता है।

इस पृष्ठ पर दिए गए उदाहरण डिफ़ॉल्ट प्लेग्राउंड प्रारंभ स्थिति का उपयोग करते हैं।

ड्राइवट्रेन#

ड्राइवट्रेन वीआर रोबोट के चलने और मुड़ने के तरीके को नियंत्रित करता है। ड्राइवट्रेन आगे या पीछे जा सकता है, बाएं या दाएं मुड़ सकता है, दिशा बदल सकता है और अपने घूर्णन को ट्रैक कर सकता है।

कार्रवाई#

गाड़ी चलाना#

drive रोबोट को निरंतर आगे या पीछे ले जाता है। रोबोट तब तक चलता रहेगा जब तक उसे कोई और क्रिया, जैसे मुड़ना या रुकना, करने का निर्देश नहीं दिया जाता।

Usage:
drivetrain.drive(direction)

पैरामीटर

विवरण

direction

रोबोट की गति की दिशा: FORWARD या REVERSE।

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

ड्राइव_के लिए#

drive_for कमांड रोबोट को एक निश्चित दूरी तक आगे या पीछे ले जाता है। प्रोजेक्ट रोबोट के चलने के पूरा होने तक प्रतीक्षा करेगा, उसके बाद ही कोड की अगली पंक्ति चलेगी।

Usage:
drivetrain.drive_for(direction, distance, units, wait)

पैरामीटर

विवरण

direction

रोबोट की गति की दिशा: FORWARD या REVERSE।

distance

रोबोट द्वारा तय की गई दूरी। यह integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। दूरी की इकाई: INCHES (डिफ़ॉल्ट) या MM (मिलीमीटर)।

wait

वैकल्पिक। wait=True (डिफ़ॉल्ट) कोड की अगली पंक्ति चलने से पहले रोबोट के चलने के पूरा होने तक प्रोजेक्ट को प्रतीक्षा कराता है। wait=False कोड की अगली पंक्ति तुरंत चलती है।

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

मोड़#

turn रोबोट को हमेशा के लिए बाएँ या दाएँ घुमाता है। रोबोट तब तक घूमता रहेगा जब तक उसे कोई और क्रिया, जैसे चलाना या रोकना, करने को न कहा जाए।

Usage:
drivetrain.turn(direction)

पैरामीटर

विवरण

direction

रोबोट के मुड़ने की दिशा: LEFT या RIGHT।

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

मोड़ के लिए#

turn_for रोबोट को एक निश्चित डिग्री तक बाएँ या दाएँ घुमाता है। यह घुमाव रोबोट की वर्तमान स्थिति के सापेक्ष होता है। रोबोट के पूरा घूमने तक प्रोजेक्ट अगली कोड लाइन नहीं चलाएगा।

Usage:
drivetrain.turn_for(direction, angle, units, wait)

पैरामीटर

विवरण

direction

रोबोट के मुड़ने की दिशा: LEFT या RIGHT।

angle

रोबोट जितने डिग्री घूमता है, उसकी संख्या। यह integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट)।

wait

वैकल्पिक। wait=True (डिफ़ॉल्ट) कोड की अगली पंक्ति चलने से पहले रोबोट के मुड़ने की प्रक्रिया पूरी होने तक प्रोजेक्ट को प्रतीक्षा कराता है। wait=False कोड की अगली पंक्ति तुरंत चलती है।

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

शीर्षक की ओर मुड़ें#

हेडिंग रोबोट की दिशा है, जिसे डिग्री में मापा जाता है। turn_to_heading रोबोट को -359 से 359 डिग्री के बीच किसी विशिष्ट हेडिंग की ओर मोड़ता है। रोबोट लक्ष्य हेडिंग तक पहुँचने के लिए सबसे छोटी दिशा में मुड़ेगा।

रोबोट की प्रारंभिक दिशा 0 डिग्री है।

अगली कोड लाइन चलने से पहले प्रोजेक्ट रोबोट के पूरी तरह से घूमने का इंतजार करेगा।

Usage:
drivetrain.turn_to_heading(angle, units, wait)

पैरामीटर

विवरण

angle

रोबोट का मुख किस दिशा में होना चाहिए, डिग्री में। यह -359 से 359 तक का पूर्णांक ( integer ) या दशमलव (float) मान हो सकता है।

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट)।

wait

वैकल्पिक। wait=True (डिफ़ॉल्ट) कोड की अगली पंक्ति चलने से पहले रोबोट के मुड़ने की प्रक्रिया पूरी होने तक प्रोजेक्ट को प्रतीक्षा कराता है। wait=False कोड की अगली पंक्ति तुरंत चलती है।

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

घुमाव की ओर मुड़ें#

turn_to_rotation रोबोट को एक विशिष्ट रोटेशन में घुमाता है।

रोटेशन वह मात्रा है जो रोबोट ने डिग्री में घुमाई है। किसी प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट किया जाता है। रोटेशन को set_rotation विधि का उपयोग करके भी सेट किया जा सकता है।

घूर्णन मान निरपेक्ष होते हैं। इसका अर्थ है कि मुड़ने की दिशा रोबोट के वर्तमान घूर्णन पर निर्भर करती है। दाईं ओर मुड़ने से घूर्णन बढ़ता है, और बाईं ओर मुड़ने से घूर्णन घटता है।

उदाहरण के लिए, यदि रोबोट 0 डिग्री से शुरू होता है और आप उसे 720 डिग्री घुमाते हैं, तो वह दो बार दाईं ओर मुड़ेगा। यदि आप फिर उसे 360 डिग्री घुमाते हैं, तो वह एक बार बाईं ओर मुड़ेगा, क्योंकि 360, 720 से कम है।

अगली कोड लाइन चलने से पहले प्रोजेक्ट रोबोट के पूरी तरह से घूमने का इंतजार करेगा।

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

पैरामीटर

विवरण

angle

रोबोट जिस डिग्री में घूमेगा, उसका घूर्णन मान। यह integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट)।

wait

वैकल्पिक। wait=True (डिफ़ॉल्ट) कोड की अगली पंक्ति चलने से पहले रोबोट के मुड़ने की प्रक्रिया पूरी होने तक प्रोजेक्ट को प्रतीक्षा कराता है। wait=False कोड की अगली पंक्ति तुरंत चलती है।

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

रुकना#

stop रोबोट की गति को रोक देता है।

Usage:
drivetrain.stop()

पैरामीटर

विवरण

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

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

उत्परिवर्तक#

शीर्षक सेट करें#

हेडिंग वह दिशा है जिस ओर रोबोट का मुख है, जिसे डिग्री में मापा जाता है। set_heading रोबोट की वर्तमान हेडिंग को एक नए हेडिंग मान में बदल देता है।

उदाहरण के लिए, यदि रोबोट दाईं ओर मुड़ गया है, तो दिशा को 0 डिग्री पर सेट करने से वह दाईं ओर की स्थिति ही नई 0 डिग्री बन जाती है। फिर रोबोट उस नई दिशा के आधार पर अन्य स्थितियों में मुड़ सकता है।

Usage:
drivetrain.set_heading(heading, units)

पैरामीटर

विवरण

heading

रोबोट के लिए निर्धारित की जाने वाली दिशा का मान (डिग्री में)। यह integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। हेडिंग इकाई: DEGREES (डिफ़ॉल्ट)।

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

सेट_रोटेशन#

रोटेशन वह मात्रा है जो रोबोट ने डिग्री में घुमाई है। किसी प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट होता है। set_rotation का उपयोग करके रोबोट के वर्तमान रोटेशन को एक नए मान में बदला जा सकता है।

उदाहरण के लिए, यदि रोबोट ने दाईं ओर दो पूरे चक्कर लगा लिए हैं, तो उसका घूर्णन मान 720 डिग्री होगा। घूर्णन को 0 डिग्री पर सेट करने से यह 720 से 0 डिग्री पर रीसेट हो जाएगा। फिर रोबोट उस नए मान के आधार पर घूर्णन कर सकता है।

Usage:
drivetrain.set_rotation(rotation, units)

पैरामीटर

विवरण

rotation

रोबोट के लिए निर्धारित की जाने वाली घूर्णन मान (डिग्री में)। यह integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट)।

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

सेट_टाइमआउट#

set_timeout निर्धारित करता है कि रोबोट किसी गतिविधि को पूरा करने के लिए कितना समय लेगा। यदि रोबोट उस समय में गतिविधि पूरी नहीं कर पाता है, तो वह प्रयास करना बंद कर देगा और कोड की अगली पंक्ति पर चला जाएगा। इससे रोबोट को गतिविधि में अटकने से बचाया जा सकता है।

Usage:
drivetrain.set_timeout(value, units)

पैरामीटर

विवरण

value

रोबोट को किसी गतिविधि को पूरा करने के लिए मिलने वाला समय। यह एक धनात्मक पूर्णांक integer ) या दशमलव (float ) हो सकता है।

units

समय इकाई: SECONDS या MSEC (मिलीसेकंड)।

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

सेट_ड्राइव_वेग#

set_drive_velocity रोबोट को बताता है कि उसे कितनी गति से चलना है। उच्च प्रतिशत होने पर रोबोट तेजी से चलता है और निम्न प्रतिशत होने पर रोबोट धीरे चलता है।

प्रत्येक परियोजना की शुरुआत में रोबोट डिफ़ॉल्ट रूप से 50% वेग से चलता है।

ध्यान दें: अधिक वेग से रोबोट की गति बढ़ जाती है, लेकिन सटीकता कम हो सकती है। कम वेग से रोबोट की गति धीमी हो जाती है, लेकिन सटीकता अधिक हो सकती है।

Usage:
drivetrain.set_drive_velocity(velocity, units)

पैरामीटर

विवरण

velocity

0% से 100% तक की गति, जिसके साथ वाहन चलाना है। यह एक पूर्णांक integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। वेग इकाई: PERCENT (डिफ़ॉल्ट)।

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

सेट_टर्न_वेलोसिटी#

set_turn_velocity रोबोट को बताता है कि उसे कितनी तेज़ी से मुड़ना है। उच्च प्रतिशत होने पर रोबोट तेज़ी से मुड़ता है और निम्न प्रतिशत होने पर रोबोट धीरे मुड़ता है।

प्रत्येक परियोजना की शुरुआत में रोबोट डिफ़ॉल्ट रूप से 50% वेग से घूमना शुरू करता है।

ध्यान दें: अधिक वेग से रोबोट तेजी से मुड़ता है, लेकिन सटीकता कम हो सकती है। कम वेग से रोबोट धीरे मुड़ता है, लेकिन सटीकता अधिक हो सकती है।

Usage:
drivetrain.set_turn_velocity(velocity, units)

पैरामीटर

विवरण

velocity

0% से 100% तक घूमने की गति। यह एक पूर्णांक integer या दशमलव (float ) हो सकता है।

units

वैकल्पिक। वेग इकाई: PERCENT (डिफ़ॉल्ट)।

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

टिककर खेल#

शीर्षक#

हेडिंग रोबोट की दिशा को दर्शाती है, जिसे डिग्री में मापा जाता है। heading रोबोट की वर्तमान हेडिंग को 0 से 359.99 डिग्री के बीच दर्शाती है।

रोबोट की प्रारंभिक दिशा 0 डिग्री है।

Usage:
drivetrain.heading(units)

पैरामीटर

विवरण

units

वैकल्पिक। हेडिंग इकाई: DEGREES (डिफ़ॉल्ट)।

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

ROTATION#

रोटेशन वह मात्रा है जो रोबोट ने डिग्री में घुमाई है। प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट होता है। rotation रोबोट का वर्तमान रोटेशन दिखाता है।

दाहिनी ओर मुड़ने से घूर्णन बढ़ता है, और बाईं ओर मुड़ने से घूर्णन घटता है। उदाहरण के लिए, दाहिनी ओर दो पूरे चक्कर लगाने से 720 डिग्री का घूर्णन प्राप्त होगा।

Usage:
drivetrain.rotation(units)

पैरामीटर

विवरण

units

वैकल्पिक। घूर्णन इकाई: DEGREES (डिफ़ॉल्ट)।

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

कर दिया है#

is_done बूलियन मान के रूप में बताता है कि रोबोट ने चलना समाप्त कर दिया है या नहीं। इसका उपयोग रोबोट की गति के आधार पर अन्य व्यवहारों के समय को नियंत्रित करने के लिए किया जा सकता है।

  • True — रोबोट का चलना समाप्त हो गया है।

  • False — रोबोट अभी भी चल रहा है।

यह विधि निम्नलिखित ड्राइवट्रेन विधियों के साथ मिलकर काम करती है जिनमें wait पैरामीटर है: drive_for, turn_for, turn_to_heading, और turn_to_rotation।

Usage:
drivetrain.is_done()

पैरामीटर

विवरण

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

चल रहा है#

is_moving बूलियन मान के रूप में बताता है कि रोबोट चल रहा है या नहीं। इसका उपयोग रोबोट की गति के आधार पर अन्य व्यवहारों के समय को नियंत्रित करने के लिए किया जा सकता है।

  • True — रोबोट चल रहा है।

  • False — रोबोट हिल नहीं रहा है।

Usage:
drivetrain.is_moving()

पैरामीटर

विवरण

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

वेग#

velocity रोबोट की गति को -100% से 100% तक के प्रतिशत के रूप में दर्शाता है।

Usage:
drivetrain.velocity(units)

पैरामीटर

विवरण

units

वैकल्पिक। वेग इकाई: PERCENT (डिफ़ॉल्ट)।

उदाहरण

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

गति#

डेक्स, ब्लॉक को रोबोट के अंदर खींचने के लिए इनटेक मोटर का उपयोग करता है। कन्वेयर मोटर ब्लॉक को इनटेक से रोबोट के शीर्ष तक ले जाती है ताकि उन्हें लक्ष्य तक पहुंचाया जा सके।

प्रत्येक मोटर की अपनी दिशात्मक व्यवहार क्षमता होती है। दिशा विवरण यह बताता है कि प्रत्येक दिशा में वह मोटर डेक्स पर कैसे चलती है।

कार्रवाई#

घुमाना#

spin मोटर को निरंतर आगे या पीछे घुमाता है। मोटर तब तक घूमती रहेगी जब तक उसे कोई और क्रिया न दी जाए, जैसे कि किसी दूसरी दिशा में घुमाना या रोकना।

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

मोटर

आज्ञा

intake_motor

intake_motor.spin(direction) — इनटेक मोटर

conveyor_motor

conveyor_motor.spin(direction) — कन्वेयर मोटर

पैरामीटर

विवरण

direction

मोटर के घूमने की दिशा:

  • FORWARD — कन्वेयर मोटर को ऊपर की ओर या इनटेक मोटर को इनटेक दिशा में घुमाता है।
  • REVERSE — कन्वेयर मोटर को नीचे की ओर या इनटेक मोटर को आउटटेक दिशा में घुमाता है।

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

स्पिन_फॉर#

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

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

मोटर

आज्ञा

intake_motor

intake_motor.spin_for(direction, distance, units, wait) — इनटेक मोटर

conveyor_motor

conveyor_motor.spin_for(direction, distance, units, wait) — कन्वेयर मोटर

पैरामीटर

विवरण

direction

मोटर के घूमने की दिशा:

  • FORWARD — कन्वेयर मोटर को ऊपर की ओर या इनटेक मोटर को इनटेक दिशा में घुमाता है।
  • REVERSE — कन्वेयर मोटर को नीचे की ओर या इनटेक मोटर को आउटटेक दिशा में घुमाता है।

distance

मोटर के घूमने की दूरी। DEGREES (पूर्णांकों का प्रयोग करें)। TURNS पूर्णांकों या दशमलव संख्याओं का प्रयोग कर सकते हैं)।

units

वैकल्पिक। दूरी इकाई: DEGREES (डिफ़ॉल्ट) या TURNS।

wait

वैकल्पिक।

  • wait=True (डिफ़ॉल्ट) — अगली कोड लाइन चलने से पहले प्रोजेक्ट को मोटर के घूमना बंद होने तक प्रतीक्षा कराता है।
  • wait=False — अगली कोड लाइन तुरंत चलाता है।

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

स्पिन_टू_पोजिशन#

spin_to_position कमांड spin_to_position करके मोटर को एक विशिष्ट स्थिति में घुमाया जाता है।

मोटर की स्थिति उसके घूमने की दूरी को दर्शाती है, जिसे DEGREES या TURNSमें मापा जाता है। एक चक्कर 360 डिग्री के बराबर होता है। किसी प्रोजेक्ट की शुरुआत में, मोटर की स्थिति 0 डिग्री पर सेट होती है। मोटर की स्थिति को set_position विधि का उपयोग करके भी सेट किया जा सकता है।

स्थिति के मान निरपेक्ष होते हैं। इसका अर्थ है कि घूर्णन की दिशा मोटर की वर्तमान स्थिति पर निर्भर करती है।

उदाहरण के लिए, यदि मोटर 0 डिग्री से शुरू होकर 720 डिग्री तक घूमती है, तो वह दो चक्कर आगे की ओर घूमेगी। यदि फिर वह 360 डिग्री तक घूमती है, तो वह एक चक्कर पीछे की ओर घूमेगी, क्योंकि 360, 720 से कम है।

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

मोटर

आज्ञा

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — इनटेक मोटर

conveyor_motor

conveyor_motor.spin_to_position(angle, units, wait=True) — कन्वेयर मोटर

पैरामीटर

विवरण

angle

मोटर जिस स्थिति तक घूमेगी, उसका मान। DEGREES (पूर्णांकों का प्रयोग करें)। TURNS (पूर्णांकों या दशमलव संख्याओं का प्रयोग करें)।

units

वैकल्पिक। स्थिति इकाई: DEGREES (डिफ़ॉल्ट) या TURNS।

wait

वैकल्पिक।

  • wait=True (डिफ़ॉल्ट) — अगली कोड लाइन चलने से पहले प्रोजेक्ट को मोटर के घूमना बंद होने तक प्रतीक्षा कराता है।
  • wait=False — अगली कोड लाइन तुरंत चलाता है।

def main():
    # Pick up a second Block
    conveyor_motor.spin_to_position(150, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

रुकना#

stop मोटर को घूमने से रोकता है।

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

मोटर

आज्ञा

intake_motor

intake_motor.stop() — इनटेक मोटर

conveyor_motor

conveyor_motor.stop() — कन्वेयर मोटर

पैरामीटर

विवरण

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

उत्परिवर्तक#

सेट_स्थिति#

मोटर की स्थिति यह दर्शाती है कि वह कितनी दूर घूमी है, जिसे DEGREES या TURNSमें मापा जाता है। एक चक्कर 360 डिग्री के बराबर होता है। set_position मोटर की वर्तमान स्थिति को एक नए मान में बदल देता है।

उदाहरण के लिए, यदि कोई मोटर 180 डिग्री घूम चुकी है, तो उसकी स्थिति को 0 डिग्री पर सेट करने से वह स्थिति 180 से 0 डिग्री पर रीसेट हो जाएगी। फिर मोटर उस नए मान के आधार पर अलग-अलग स्थितियों में घूम सकती है।

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

मोटर

आज्ञा

intake_motor

intake_motor.set_position(position, units) — इनटेक मोटर

conveyor_motor

conveyor_motor.set_position(position, units) — कन्वेयर मोटर

पैरामीटर

विवरण

position

मोटर के लिए निर्धारित की जाने वाली स्थिति का मान। DEGREES के लिए पूर्णांक मान का उपयोग करें। TURNS के लिए पूर्णांक या दशमलव मानों का उपयोग किया जा सकता है।

units

वैकल्पिक। स्थिति इकाई: DEGREES (डिफ़ॉल्ट) या TURNS।

def main():
    # Pick up a second Block
    conveyor_motor.set_position(-150, DEGREES)
    conveyor_motor.spin_to_position(0, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 350, MM)

# VR threads — Do not delete
vr_thread(main)

सेट_वेग#

set_velocity मोटर को यह बताता है कि उसे कितनी गति से घूमना है। उच्च प्रतिशत मोटर को तेज़ घुमाता है और निम्न प्रतिशत मोटर को धीमा घुमाता है।

प्रत्येक परियोजना की शुरुआत में प्रत्येक मोटर डिफ़ॉल्ट रूप से 50% वेग से घूमती है।

ध्यान दें: अधिक वेग से मोटर की गति तेज हो जाती है, लेकिन इससे सटीकता कम हो सकती है। कम वेग से मोटर की गति धीमी हो जाती है, लेकिन इससे सटीकता बढ़ सकती है।

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

मोटर

आज्ञा

intake_motor

intake_motor.set_velocity(velocity, units) — इनटेक मोटर

conveyor_motor

conveyor_motor.set_velocity(velocity, units) — कन्वेयर मोटर

पैरामीटर

विवरण

velocity

घूमने की गति 0% से 100% तक हो सकती है। यह integer या दशमलव (float ) हो सकता है।

units

वेग इकाई: PERCENT.

def main():
    # Pick up a second Block
    conveyor_motor.set_velocity(90, PERCENT)
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

सेट_टाइमआउट#

set_timeout निर्धारित करता है कि मोटर किसी गतिविधि को पूरा करने के लिए कितना समय लेगी। यदि मोटर उस समय में गतिविधि पूरी नहीं कर पाती है, तो वह प्रयास करना बंद कर देगी और कोड की अगली पंक्ति पर चली जाएगी। इससे मोटर को गतिविधि के दौरान अटकने से बचाया जा सकता है।

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

मोटर

आज्ञा

intake_motor

intake_motor.set_timeout(value, units) — इनटेक मोटर

conveyor_motor

conveyor_motor.set_timeout(value, units) — कन्वेयर मोटर

पैरामीटर

विवरण

value

मोटर किसी गतिविधि को पूरा करने के लिए कितनी देर तक प्रयास कर सकती है। यह एक धनात्मक पूर्णांक integer ) या दशमलव (float ) हो सकता है।

units

समय इकाई: SECONDS या MSEC (मिलीसेकंड)।

def main():
    # Pick up a second Block
    conveyor_motor.set_timeout(0.5, SECONDS)
    conveyor_motor.spin_to_position(1000, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

टिककर खेल#

कर दिया है#

is_done बूलियन मान के रूप में यह बताता है कि मोटर चलना समाप्त हो गया है या नहीं। इसका उपयोग मोटर की गति के आधार पर अन्य कार्यों के समय को नियंत्रित करने के लिए किया जा सकता है।

  • True — मोटर चलना समाप्त हो गया है।

  • False — मोटर अभी भी चल रही है।

यह विधि निम्नलिखित मोशन विधियों के साथ मिलकर काम करती है जिनमें wait पैरामीटर है: spin_for और spin_to_position।

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

मोटर

आज्ञा

intake_motor

intake_motor.is_done() — इनटेक मोटर

conveyor_motor

conveyor_motor.is_done() — कन्वेयर मोटर

पैरामीटर

विवरण

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_to_position(300, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while not conveyor_motor.is_done():
        drivetrain.drive(FORWARD)
        intake_motor.spin(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

is_spinning#

is_spinning मोटर के घूमने की स्थिति को बूलियन मान के रूप में दर्शाता है। इसका उपयोग मोटर की गति के आधार पर अन्य कार्यों के समय को नियंत्रित करने के लिए किया जा सकता है।

  • True — मोटर घूम रही है।

  • False — मोटर नहीं घूम रही है।

यह विधि निम्नलिखित मोशन विधियों के साथ मिलकर काम करती है जिनमें wait पैरामीटर है: spin_for और spin_to_position।

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

मोटर

आज्ञा

intake_motor

intake_motor.is_spinning() — इनटेक मोटर

conveyor_motor

conveyor_motor.is_spinning() — कन्वेयर मोटर

पैरामीटर

विवरण

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

def main():
    # Pick up a second Block
    conveyor_motor.spin_to_position(300, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while conveyor_motor.is_spinning():
        drivetrain.drive_for(FORWARD, 200, MM)
        intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

पद#

मोटर की स्थिति यह दर्शाती है कि वह कितनी दूर घूमी है, जिसे DEGREES या TURNSमें मापा जाता है। एक चक्कर 360 डिग्री के बराबर होता है। position मोटर की वर्तमान स्थिति बताती है।

किसी प्रोजेक्ट की शुरुआत में, मोटर की स्थिति 0 डिग्री पर सेट की जाती है। यदि मोटर एक पूरा चक्कर आगे की ओर घूमती है, तो स्थिति 360 डिग्री या 1 चक्कर होगी। यदि मोटर विपरीत दिशा में घूमती है, तो स्थिति ऋणात्मक होगी।

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

मोटर

आज्ञा

intake_motor

intake_motor.position(units) — इनटेक मोटर

conveyor_motor

conveyor_motor.position(units) — कन्वेयर मोटर

पैरामीटर

विवरण

units

मोटर की स्थिति को वापस लाने के लिए इकाई: DEGREES या TURNS.

def main():
    # Pick up a second Block
    while conveyor_motor.position(DEGREES) < 150:
        conveyor_motor.spin(FORWARD)
        wait(2, MSEC)
    conveyor_motor.stop()
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

वेग#

velocity यह बताता है कि मोटर कितनी तेजी से घूम रही है।

धनात्मक मान का अर्थ है कि मोटर आगे की ओर घूम रही है। ऋणात्मक मान का अर्थ है कि मोटर विपरीत दिशा में घूम रही है।

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

मोटर

आज्ञा

intake_motor

intake_motor.velocity(units) — इनटेक मोटर

conveyor_motor

conveyor_motor.velocity(units) — कन्वेयर मोटर

पैरामीटर

विवरण

units

वापसी के लिए वेग इकाई: PERCENT.

def main():
    # Pick up a second block
    conveyor_motor.set_velocity(100, PERCENT)
    conveyor_motor.spin_to_position(300, DEGREES, wait=False)
    wait(0.2, SECONDS)
    brain.screen.print(conveyor_motor.velocity(PERCENT))
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 400, MM)

# VR threads — Do not delete
vr_thread(main)

एआई विज़न#

टिककर खेल#

आशुचित्र लें#

take_snapshot एआई विज़न सेंसर फ्रेम से डेटा को एक एकल हस्ताक्षर में फ़िल्टर करता है - सेंसर द्वारा पहचाने जा सकने वाली किसी चीज़ का सहेजा गया विवरण, जैसे कि मैदान पर एक खेल तत्व - और एक टपल लौटाता है।

यह टपल, इंडेक्स 0 से शुरू होकर, चौड़ाई के अनुसार सबसे बड़े से सबसे छोटे क्रम में व्यवस्थित वस्तुओं को संग्रहीत करता है। प्रत्येक वस्तु के गुण को उसके इंडेक्स का उपयोग करके एक्सेस किया जा सकता है। यदि कोई मेल खाने वाली वस्तुएँ नहीं मिलती हैं, तो एक खाली टपल लौटाया जाता है।

Usage:
ai_vision.take_snapshot(signature)

पैरामीटर

विवरण

signature

दिए गए सिग्नेचर के डेटा को ही शामिल करने के लिए डेटासेट को फ़िल्टर करता है। उपलब्ध सिग्नेचर हैं:

  • AiVision.ALL_AIOBJS - लाल और नीले ब्लॉक का पता लगाता है।

def main():
    # If an object is detected, pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            intake_motor.spin(FORWARD)
            drivetrain.drive(FORWARD)
            while not bumper.pressing():
                wait(2, MSEC)
            drivetrain.stop()
            break

# VR threads — Do not delete
vr_thread(main)

गुण#

टपल में संग्रहीत प्रत्येक ऑब्जेक्ट के साथ सात गुण शामिल होते हैं take_snapshot का उपयोग किया जाता है।

.id को छोड़कर सभी प्रॉपर्टी मान, AI विज़न सेंसर के दृश्य में पता लगाए गए ऑब्जेक्ट की स्थिति और आकार का वर्णन करते हैं, जिस क्षण take_snapshot का उपयोग किया गया था। ये मान सेंसर के 320 x 240 पिक्सेल रिज़ॉल्यूशन के आधार पर पिक्सेल में मापे जाते हैं।

।चौड़ाई#

.width पिक्सेल में पता लगाए गए ऑब्जेक्ट की चौड़ाई लौटाता है, जो 1 और 320 के बीच एक पूर्णांक है।

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].width > 65:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

।ऊंचाई#

.height पिक्सेल में पता लगाए गए ऑब्जेक्ट की ऊंचाई लौटाता है, जो 1 और 240 के बीच एक पूर्णांक है।

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].height > 55:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.केंद्रएक्स#

.centerX पता लगाए गए ऑब्जेक्ट के केंद्र का x-निर्देशांक पिक्सेल में लौटाता है, जो 0 और 320 के बीच एक पूर्णांक है।

def main():
    # Pick up a Block from the top left group
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    drivetrain.turn_for(LEFT, 80, DEGREES)
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn(LEFT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if 140 < ai_objects[0].centerX < 180:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)
                while not bumper.pressing():
                    wait(2, MSEC)
                drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

.केंद्रवाई#

.centerY पता लगाए गए ऑब्जेक्ट के केंद्र का y-निर्देशांक पिक्सेल में लौटाता है, जो 0 और 240 के बीच एक पूर्णांक है।

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerY > 140:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.originX#

.originX पता लगाए गए ऑब्जेक्ट के बाउंडिंग बॉक्स के ऊपरी-बाएँ कोने का x-निर्देशांक पिक्सेल में लौटाता है, जो 0 और 320 के बीच एक पूर्णांक है।

def main():
    # Pick up a Block from the top left group
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    drivetrain.turn_for(LEFT, 80, DEGREES)
    drivetrain.drive_for(FORWARD, 300, MM)
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn(RIGHT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if 100 < ai_objects[0].originX < 140:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)
                while not bumper.pressing():
                    wait(2, MSEC)
                drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

.originY#

.originY पता लगाए गए ऑब्जेक्ट के बाउंडिंग बॉक्स के ऊपरी-बाएँ कोने का y-निर्देशांक पिक्सेल में लौटाता है, जो 0 और 240 के बीच एक पूर्णांक है।

def main():
    # If an object is detected, approach and pick it up
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].originY > 120:
                drivetrain.stop()
                break
            else:
                intake_motor.spin(FORWARD)
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

।पहचान#

.id पता लगाए गए एआई वर्गीकरण की आईडी को पूर्णांक के रूप में लौटाता है।

एआई वर्गीकरण

पहचान

हस्ताक्षर

ब्लूब्लॉक

1

GameElements.BLUE_BLOCK

रेडब्लॉक

2

GameElements.RED_BLOCK

def main():
    # Pick up a Red Block from the top left group
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    drivetrain.turn_for(LEFT, 80, DEGREES)
    drivetrain.drive_for(FORWARD, 300, MM)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            drivetrain.drive(FORWARD)
            if (ai_objects[0].id) == 2:
                intake_motor.spin(FORWARD)
                while not bumper.pressing():
                    wait(2, MSEC)
                drivetrain.stop()
                break

# VR threads — Do not delete
vr_thread(main)

सांत्वना देना#

प्रोजेक्ट के चलने के दौरान कंसोल टेक्स्ट, संख्याएँ और वेरिएबल मान प्रदर्शित करता है। कंसोल विधियों का उपयोग कर्सर को नई पंक्ति में ले जाने, कंसोल को साफ़ करने और मॉनिटर टैब में वेरिएबल या सेंसर मान जोड़ने के लिए भी किया जा सकता है।

छाप#

ब्रेन.स्क्रीन.प्रिंट#

brain.screen.print वर्तमान कर्सर स्थिति का उपयोग करके कंसोल में टेक्स्ट, संख्याएँ या चर मान प्रदर्शित करता है।

जब आप चाहते हैं कि अगला मुद्रित मान एक नई पंक्ति से शुरू हो, तो brain.screen.next_row का उपयोग करें।

Usage:
brain.screen.print(value)

पैरामीटर

विवरण

value

कंसोल में प्रदर्शित करने के लिए टेक्स्ट, संख्या या वेरिएबल का मान।

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

वीईएक्सकोड कंसोल, कंसोल और "हैलो, रोबोट!" टेक्स्ट प्रदर्शित करते हुए।

ब्रेन.स्क्रीन.नेक्स्ट_रो#

brain.screen.next_row कर्सर को कंसोल में अगली पंक्ति के कॉलम 1 पर ले जाता है। प्रिंट होने वाला अगला मान उसी पंक्ति में दिखाई देगा।

Usage:
brain.screen.next_row()

पैरामीटर

विवरण

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

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

वीईएक्सकोड कंसोल, कंसोल और पहली पंक्ति में "पंक्ति 1" और दूसरी पंक्ति में "पंक्ति 2" पाठ प्रदर्शित करता है।

ब्रेन.स्क्रीन.क्लियर_स्क्रीन#

brain.screen.clear_screen कंसोल से सभी पंक्तियों को साफ़ करता है और कर्सर को वापस पंक्ति 1 पर ले जाता है।

Usage:
brain.screen.clear_screen()

पैरामीटर

विवरण

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

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

निगरानी करना#

मॉनिटर_चर#

monitor_variable VEXcode के मॉनिटर टैब में एक या अधिक पूर्वनिर्धारित चर जोड़ता है। इससे आप प्रोजेक्ट के चलने के दौरान किसी चर के मान में होने वाले परिवर्तन को देख सकते हैं।

वेरिएबल्स को सफलतापूर्वक मॉनिटर करने के लिए monitor_variable प्रत्येक वेरिएबल का नाम स्ट्रिंग के रूप में प्रदान करें।

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

पैरामीटर

विवरण

variable

मॉनिटर किए जाने वाले पूर्वनिर्धारित वैश्विक चर का नाम, स्ट्रिंग के रूप में दिया गया है। एक से अधिक चरों को मॉनिटर करने के लिए, प्रत्येक चर के नाम को अल्पविराम से अलग करें।

def main():
    # Monitor the amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

मॉनिटर_सेंसर#

monitor_sensor VEXcode के मॉनिटर टैब में एक या अधिक सेंसर मान जोड़ता है। इससे आप प्रोजेक्ट के चलने के दौरान सेंसर मानों में होने वाले परिवर्तनों को देख सकते हैं।

प्रत्येक सेंसर का मान एक स्ट्रिंग के रूप में प्रदान करें।

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

पैरामीटर

विवरण

sensor

मॉनिटर किए जाने वाले सेंसर का मान एक स्ट्रिंग के रूप में दिया गया है। एक से अधिक सेंसर मानों को मॉनिटर करने के लिए, प्रत्येक सेंसर मान को अल्पविराम से अलग करें। समर्थित सेंसर पहचानकर्ताओं में शामिल हैं:

  • ब्रेन
    • brain.timer.time
  • ड्राइवट्रेन
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity
  • पुशर मोटर
    • pusher_motor.is_done
    • pusher_motor.is_spinning
    • pusher_motor.position
    • pusher_motor.velocity
  • आर्म मोटर
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position
    • arm_motor.velocity
  • फ्रंट डिस्टेंस सेंसर
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • फ्रंट ऑप्टिकल सेंसर
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • जीपीएस सेंसर
    • gps.position_mm
    • gps.position_inches
    • gps.heading
  • पुशर रोटेशन सेंसर
    • pusher_rotation.angle
    • pusher_rotation.position
  • एआई विजन सेंसर
    • ai_vision.object_count
    • ai_vision.height
    • ai_vision.width
    • ai_vision.centerX
    • ai_vision.centerY
    • ai_vision.originX
    • ai_vision.originY
    • ai_vision.id

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

संवेदन#

ऑप्टिकल#

वस्तु के निकट है#

is_near_object एक बूलियन मान लौटाता है जो यह दर्शाता है कि ऑप्टिकल सेंसर सीमा के भीतर किसी वस्तु का पता लगाता है या नहीं।

  • True – ऑप्टिकल सेंसर किसी वस्तु का पता लगाता है।

  • False – ऑप्टिकल सेंसर किसी वस्तु का पता नहीं लगाता है।

Usage:
optical.is_near_object()

पैरामीटर

विवरण

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

def main():
    # Move the preloaded Block to the top of the Conveyor
    conveyor_motor.spin(FORWARD)
    while not optical.is_near_object():
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

रंग#

color पता लगाए गए ह्यू मान के आधार पर, Color क्लास का एक इंस्टेंस लौटाता है। इनकी तुलना पूर्वनिर्धारित Color ऑब्जेक्ट्स से की जा सकती है ताकि सशर्त कथन बनाए जा सकें।

संभावित रंग ये हैं:

  • NONE

  • RED - 340° - 20° के बीच का रंग मान

  • GREEN - 80° - 140° के बीच का रंग मान

  • BLUE - 200° - 240° के बीच का रंग मान

  • YELLOW - 40° - 60° के बीच का रंग मान

  • ORANGE - 20° - 40° के बीच का रंग मान

  • PURPLE - 240° - 280° के बीच का रंग मान

  • CYAN - 140° - 200° के बीच का रंग मान

नोट: ऑप्टिकल सेंसर निर्दिष्ट रंग से मेल खाने वाली रंग श्रेणियों की तलाश कर रहा है। विशिष्ट रंग श्रेणियों का पता लगाने के लिए, hue देखें।

Usage:
optical.color()

पैरामीटर

विवरण

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

def main():
    # Pick up and move a Blue Block to the top of the Conveyor
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 360, MM)
    conveyor_motor.spin(FORWARD)
    while not optical.color() == BLUE:
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

चमक#

brightness वस्तु से परावर्तित प्रकाश की मात्रा को दशमलव (float) के रूप में लौटाता है जो प्रतिशत का प्रतिनिधित्व करता है।

उच्च प्रतिशत का अर्थ है कि ऑप्टिकल सेंसर पर अधिक प्रकाश परावर्तित होता है। निम्न प्रतिशत का अर्थ है कि कम प्रकाश परावर्तित होता है।

Usage:
optical.brightness()

पैरामीटर

विवरण

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

def main():
    # Move the preloaded Block to the top of the Conveyor
    conveyor_motor.spin(FORWARD)
    while not 0 < optical.brightness():
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

रंग#

hue पता लगाए गए रंग का ह्यू मान दशमलव (float) के रूप में 0 से 359 तक लौटाता है।

ह्यू एक ऐसा तरीका है जिससे रंग चक्र पर संख्याओं का उपयोग करके रंग का वर्णन किया जाता है।

एक गोलाकार रंग चक्र जो परिधि के चारों ओर डिग्री मानों के साथ चिह्नित रंगों के पूर्ण स्पेक्ट्रम को प्रदर्शित करता है, जो ऊपर 0° से 360° तक 30-डिग्री की वृद्धि में बढ़ता है।

Usage:
optical.hue()

पैरामीटर

विवरण

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

def main():
    # Pick up and move a Blue Block to the top of the Conveyor
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive_for(FORWARD, 360, MM)
    conveyor_motor.spin(FORWARD)
    while not 220 < optical.hue() < 260:
        wait(2, MSEC)
    conveyor_motor.stop()

# VR threads — Do not delete
vr_thread(main)

ऑब्जेक्ट का पता चला#

object_detected एक फ़ंक्शन को पंजीकृत करता है जिसे ऑप्टिकल सेंसर द्वारा किसी नई वस्तु का पता लगाने पर कॉल किया जाएगा।

Usage:
optical.object_detected(callback, arg)

पैरामीटर

विवरण

callback

एक पूर्व-परिभाषित फ़ंक्शन जो ऑप्टिकल सेंसर द्वारा एक नई वस्तु का पता लगाने पर निष्पादित होता है।

arg

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

def ready_block():
  # Stop the conveyor when Block is at the Sensor
  conveyor_motor.stop()

def main():
  # Move the preloaded Block near the top of the Conveyor
  conveyor_motor.spin(FORWARD)
  optical.object_detected(ready_block)

# VR threads — Do not delete
vr_thread(main)

वस्तु_खो गई#

object_lost एक फ़ंक्शन को पंजीकृत करता है जिसे ऑप्टिकल सेंसर द्वारा पता लगाए गए ऑब्जेक्ट को खोने पर कॉल किया जाएगा।

Usage:
optical.object_lost(callback, arg)

पैरामीटर

विवरण

callback

एक पूर्व-परिभाषित फ़ंक्शन जो ऑप्टिकल सेंसर द्वारा पता लगाए गए ऑब्जेक्ट को खो देने पर निष्पादित होता है।

arg

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

def ready_block():
  # Stop the conveyor when Block is at the top
  conveyor_motor.stop()

def main():
  # Move the preloaded Block to the top of the Conveyor
  conveyor_motor.spin(FORWARD)
  optical.object_lost(ready_block)

# VR threads — Do not delete
vr_thread(main)

GPS#

x_स्थिति#

x_position मैदान पर स्थित जीपीएस (गेम पोजिशनिंग सिस्टम™) सेंसर का वर्तमान x-निर्देशांक लौटाता है।

Usage:
gps.x_position(units)

पैरामीटर

विवरण

इकाइयां

ऑफसेट मान की इकाई: INCHES या MM

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive(FORWARD)
    while not gps.x_position(MM) > -795:
        wait(2, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

y_position#

y_position मैदान पर स्थित जीपीएस (गेम पोजिशनिंग सिस्टम™) सेंसर का वर्तमान y-निर्देशांक लौटाता है।

Usage:
gps.y_position(units)

पैरामीटर

विवरण

इकाइयां

ऑफसेट मान की इकाई: INCHES या MM

def main():
    # Pick up a second Block
    conveyor_motor.spin_for(FORWARD, 200, DEGREES)
    intake_motor.spin(FORWARD)
    drivetrain.drive(FORWARD)
    while not -450 > gps.y_position(MM):
        wait(2, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

शीर्षक#

heading जीपीएस (गेम पोजिशनिंग सिस्टम™) सेंसर की 0 से 359 डिग्री तक की रीडिंग के आधार पर रोबोट की वर्तमान दिशा को दर्शाता है।

Usage:
gps.heading()

पैरामीटर

विवरण

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

def main():
    # Score the preloaded Block into a Center Goal
    drivetrain.set_turn_velocity(30, PERCENT)
    drivetrain.turn(LEFT)
    while not 40 > gps.heading():
        wait(2, MSEC)
    drivetrain.drive_for(FORWARD, 1000, MM)
    drivetrain.turn(RIGHT)
    while not gps.heading() > 310:
        wait(2, MSEC)
    drivetrain.drive_for(REVERSE, 400, MM)
    conveyor_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)