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

परिचय#

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

ड्राइवट्रेन को कोड करने के कई तरीके हैं। नीचे ड्राइवट्रेन से संबंधित सभी तरीकों की सूची दी गई है:

कार्य — रोबोट को हिलाएं और घुमाएं।

  • 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 — यह बताता है कि रोबोट चल रहा है या नहीं, बूलियन मान के रूप में।

कार्रवाई#

drive#

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#

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#

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#

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#

हेडिंग रोबोट की दिशा है, जिसे डिग्री में मापा जाता है। 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#

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#

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#

हेडिंग वह दिशा है जिस ओर रोबोट का मुख है, जिसे डिग्री में मापा जाता है। 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)

set_rotation#

रोटेशन वह मात्रा है जो रोबोट ने डिग्री में घुमाई है। किसी प्रोजेक्ट की शुरुआत में, रोटेशन का मान 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#

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#

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#

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#

हेडिंग रोबोट की दिशा को दर्शाती है, जिसे डिग्री में मापा जाता है। 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.print("Heading: ")
    brain.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.print("Rotation: ")
    brain.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

is_done#

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

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

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

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

Usage:
drivetrain.is_done()

पैरामीटर

विवरण

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

is_moving#

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

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

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

Usage:
drivetrain.is_moving()

पैरामीटर

विवरण

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