ड्राइवट्रेन#
परिचय#
ड्राइवट्रेन वीआर रोबोट के चलने और मुड़ने के तरीके को नियंत्रित करता है। ड्राइवट्रेन आगे या पीछे जा सकता है, बाएं या दाएं मुड़ सकता है, दिशा बदल सकता है और अपने घूर्णन को ट्रैक कर सकता है।
ड्राइवट्रेन को कोड करने के कई तरीके हैं। नीचे ड्राइवट्रेन से संबंधित सभी तरीकों की सूची दी गई है:
कार्य — रोबोट को हिलाएं और घुमाएं।
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— रोबोट को बताता है कि कितनी तेज़ी से मुड़ना है।
गेटर्स — ड्राइवट्रेन की स्थिति जांचें।
कार्रवाई#
drive#
drive रोबोट को निरंतर आगे या पीछे ले जाता है। रोबोट तब तक चलता रहेगा जब तक उसे कोई और क्रिया, जैसे मुड़ना या रुकना, करने का निर्देश नहीं दिया जाता।
Usage:
drivetrain.drive(direction)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट की गति की दिशा: |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट की गति की दिशा: |
|
रोबोट द्वारा तय की गई दूरी। यह |
|
वैकल्पिक। दूरी की इकाई: |
|
वैकल्पिक। |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के मुड़ने की दिशा: |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के मुड़ने की दिशा: |
|
रोबोट जितने डिग्री घूमता है, उसकी संख्या। यह |
|
वैकल्पिक। घूर्णन इकाई: |
|
वैकल्पिक। |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट का मुख किस दिशा में होना चाहिए, डिग्री में। यह -359 से 359 तक का पूर्णांक ( |
|
वैकल्पिक। घूर्णन इकाई: |
|
वैकल्पिक। |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट जिस डिग्री में घूमेगा, उसका घूर्णन मान। यह |
|
वैकल्पिक। घूर्णन इकाई: |
|
वैकल्पिक। |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के लिए निर्धारित की जाने वाली दिशा का मान (डिग्री में)। यह |
|
वैकल्पिक। हेडिंग इकाई: |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के लिए निर्धारित की जाने वाली घूर्णन मान (डिग्री में)। यह |
|
वैकल्पिक। घूर्णन इकाई: |
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)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट को किसी गतिविधि को पूरा करने के लिए मिलने वाला समय। यह एक धनात्मक पूर्णांक |
|
वैकल्पिक। समय इकाई: |
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)
पैरामीटर |
विवरण |
|---|---|
|
0% से 100% तक की गति, जिसके साथ वाहन चलाना है। यह एक पूर्णांक |
|
वैकल्पिक। वेग इकाई: |
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)
पैरामीटर |
विवरण |
|---|---|
|
0% से 100% तक घूमने की गति। यह एक पूर्णांक |
|
वैकल्पिक। वेग इकाई: |
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)
पैरामीटर |
विवरण |
|---|---|
|
वैकल्पिक। हेडिंग इकाई: |
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)
पैरामीटर |
विवरण |
|---|---|
|
वैकल्पिक। घूर्णन इकाई: |
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()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |