ड्राइवट्रेन#
परिचय#
ड्राइवट्रेन में पहिए और मोटर शामिल होते हैं जो रोबोट के चलने और मुड़ने को नियंत्रित करते हैं। ड्राइवट्रेन कोड बेस 2.0, सुपर कार या कस्टम रोबोट जैसे मॉडलों में पाए जा सकते हैं।
ड्राइवट्रेन, ब्रेन में मौजूद इनर्शियल सेंसर का उपयोग करके दुर्घटनाओं का पता लगाता है और रोबोट को सटीक रूप से चलने और मुड़ने में मदद करता है। प्रत्येक प्रोजेक्ट की शुरुआत में, ड्राइवट्रेन स्वचालित रूप से इनर्शियल सेंसर को कैलिब्रेट करता है। कैलिब्रेशन के दौरान रोबोट को लगभग 2 सेकंड तक स्थिर रखें, ताकि रोबोट सही ढंग से चल और मुड़ सके।
ड्राइवट्रेन को कोड करने के कई तरीके हैं। नीचे ड्राइवट्रेन से संबंधित सभी तरीकों की सूची दी गई है:
कार्य — रोबोट को हिलाएं और घुमाएं।
drive— रोबोट को हमेशा के लिए आगे या पीछे ले जाता है।drive_for— रोबोट को एक विशिष्ट दूरी के लिए आगे या पीछे ले जाता है।drive_until— रोबोट को तब तक आगे बढ़ाता है जब तक कि आई सेंसर किसी वस्तु का पता नहीं लगा लेता या रोबोट किसी दुर्घटना का पता नहीं लगा लेता।turn— रोबोट को हमेशा के लिए बाएँ या दाएँ घुमाता है।turn_for— रोबोट को एक विशिष्ट संख्या में डिग्री के लिए बाएँ या दाएँ घुमाता है।turn_to_heading— रोबोट को -359 से 359 डिग्री तक किसी विशिष्ट दिशा की ओर मोड़ता है। रोबोट लक्ष्य दिशा तक पहुँचने के लिए सबसे छोटी दिशा में मुड़ेगा।turn_to_rotation— रोबोट को एक विशिष्ट रोटेशन में घुमाता है।stop— रोबोट की गति को रोकता है।
म्यूटेटर्स — ड्राइवट्रेन सेटिंग्स को समायोजित करें।
set_drive_velocity— रोबोट को बताता है कि कितनी तेज़ी से ड्राइव करना है।set_turn_velocity— रोबोट को बताता है कि कितनी तेज़ी से मुड़ना है।set_stopping— बताता है कि रोबोट कैसे चलना बंद करेगा: ब्रेक लगाकर, कोस्टिंग करके या होल्डिंग करके।set_timeout— यह निर्धारित करता है कि रोबोट किसी गतिविधि को पूरा करने के लिए कितनी देर तक प्रयास करेगा।set_heading— रोबोट की वर्तमान दिशा को नई दिशा में बदलता है।set_rotation— रोबोट के वर्तमान रोटेशन को नए रोटेशन में बदलता है।
गेटर्स — गतिविधि की स्थिति जांचें।
get_heading— रोबोट की वर्तमान दिशा 0 से 359 डिग्री तक लौटाता है।get_rotation— रोबोट का वर्तमान रोटेशन लौटाता है।get_velocity— रोबोट कितनी तेज़ी से चल रहा है, यह -100% से 100% तक प्रतिशत के रूप में लौटाता है।get_yaw— रोबोट का वर्तमान यॉ लौटाता है।get_roll— रोबोट का वर्तमान रोल लौटाता है।get_pitch— रोबोट की वर्तमान पिच लौटाता है।get_crashed— यह बताता है कि रोबोट ने क्रैश का पता लगाया है या नहीं, बूलियन मान के रूप में।is_stopped— यह बताता है कि रोबोट चलना समाप्त कर चुका है या नहीं, बूलियन मान के रूप में।
कार्रवाई#
drive#
drive रोबोट को निरंतर आगे या पीछे ले जाता है। रोबोट तब तक चलता रहेगा जब तक उसे कोई और क्रिया, जैसे मुड़ना या रुकना, करने का निर्देश नहीं दिया जाता।
Usage:
drivetrain.drive(direction)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट की गति की दिशा: |
# Build Used: Code Base 2.0
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
drive_for#
drive_for रोबोट को एक विशिष्ट दूरी के लिए आगे या पीछे ले जाता है।
Usage:
drivetrain.drive_for(direction, distance, units, wait)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट की गति की दिशा: |
|
रोबोट द्वारा तय की गई दूरी। यह एक पूर्णांक या दशमलव संख्या हो सकती है। |
|
वैकल्पिक। दूरी की इकाई: |
|
वैकल्पिक। |
# Build Used: Code Base 2.0
def main():
# Drive back and forth
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.drive_for(REVERSE, 4, INCHES)
# Start threads — Do not delete
start_thread(main)
drive_until#
drive_until रोबोट को तब तक आगे बढ़ाता है जब तक कि आई सेंसर किसी वस्तु का पता नहीं लगा लेता या रोबोट किसी दुर्घटना का पता नहीं लगा लेता।
Usage:
drivetrain.drive_until(condition, wait)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट को रोकने की स्थिति: |
|
वैकल्पिक। |
# Build Used: Code Base 2.0
def main():
# Turn right after a crash
drivetrain.drive_until(CRASH)
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
turn#
turn रोबोट को हमेशा के लिए बाएं या दाएं घुमाता है। रोबोट तब तक घूमता रहेगा जब तक उसे कोई और क्रिया न दी जाए, जैसे कि चलना या रुकना।
Usage:
drivetrain.turn(direction)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के मुड़ने की दिशा: |
# Build Used: Code Base 2.0
def main():
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
turn_for#
turn_for कमांड रोबोट को एक निश्चित संख्या में डिग्री तक बाएँ या दाएँ घुमाता है। यह घुमाव रोबोट की वर्तमान स्थिति के सापेक्ष होता है।
Usage:
drivetrain.turn_for(direction, angle, wait)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के मुड़ने की दिशा: |
|
रोबोट जितने डिग्री घूमता है, उसकी संख्या। यह एक पूर्णांक या दशमलव संख्या हो सकती है। |
|
वैकल्पिक। |
# Build Used: Code Base 2.0
def main():
# Turn right then left
drivetrain.turn_for(RIGHT, 90)
drivetrain.turn_for(LEFT, 90)
# Start threads — Do not delete
start_thread(main)
turn_to_heading#
हेडिंग वह दिशा है जिस ओर रोबोट का मस्तिष्क स्थित है, जिसे डिग्री में मापा जाता है। turn_to_heading रोबोट को -359 से 359 डिग्री के बीच किसी विशिष्ट हेडिंग की ओर मोड़ता है। रोबोट लक्ष्य हेडिंग तक पहुँचने के लिए सबसे छोटी दिशा में मुड़ेगा।
प्रारंभिक दिशा 0 डिग्री है।

Usage:
drivetrain.turn_to_heading(angle, wait)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट का मुख किस दिशा में होना चाहिए, यह -359 से 359 डिग्री के बीच एक पूर्णांक के रूप में अंकित होना चाहिए। |
|
वैकल्पिक। |
# Build Used: Code Base 2.0
def main():
# Turn to face the cardinal directions
drivetrain.turn_to_heading(90)
wait(1, SECONDS)
drivetrain.turn_to_heading(180)
wait(1, SECONDS)
drivetrain.turn_to_heading(270)
wait(1, SECONDS)
drivetrain.turn_to_heading(0)
# Start threads — Do not delete
start_thread(main)
turn_to_rotation#
turn_to_rotation रोबोट को एक विशिष्ट रोटेशन में घुमाता है।
रोटेशन वह मात्रा है जो रोबोट घूम चुका है, जिसे डिग्री में मापा जाता है। किसी प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट किया जाता है। रोटेशन को set_rotation का उपयोग करके भी सेट किया जा सकता है।
घूर्णन मान निरपेक्ष होते हैं। इसका अर्थ है कि मुड़ने की दिशा रोबोट के वर्तमान घूर्णन पर निर्भर करती है। दाईं ओर मुड़ने से घूर्णन बढ़ता है, और बाईं ओर मुड़ने से घूर्णन घटता है।
उदाहरण के लिए, यदि रोबोट 0 डिग्री से शुरू होता है और आप उसे 720 डिग्री घुमाते हैं, तो वह दो बार दाईं ओर मुड़ेगा। यदि आप फिर उसे 360 डिग्री घुमाते हैं, तो वह एक बार बाईं ओर मुड़ेगा, क्योंकि 360, 720 से कम है।

Usage:
drivetrain.turn_to_rotation(angle, wait)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के घूमने का मान (डिग्री में)। यह एक पूर्णांक हो सकता है। |
|
वैकल्पिक। |
# Build Used: Code Base 2.0
def main():
# Make one full turn to the right
drivetrain.turn_to_rotation(360)
# Make another full turn to the right
drivetrain.turn_to_rotation(720)
# Make one full turn to the left, returning to 360 degrees
drivetrain.turn_to_rotation(360)
# Start threads — Do not delete
start_thread(main)
stop#
stop रोबोट की गति को रोक देता है।
Usage:
drivetrain.stop()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Code Base 2.0
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
उत्परिवर्तक#
set_drive_velocity#
set_drive_velocity रोबोट को बताता है कि उसे कितनी गति से चलना है। उच्च प्रतिशत होने पर रोबोट तेजी से चलता है और निम्न प्रतिशत होने पर रोबोट धीरे चलता है।
प्रत्येक परियोजना की शुरुआत में रोबोट डिफ़ॉल्ट रूप से 50% वेग से चलता है।
ध्यान दें: अधिक वेग से रोबोट की गति बढ़ जाती है, लेकिन सटीकता कम हो सकती है। कम वेग से रोबोट की गति धीमी हो जाती है, लेकिन सटीकता अधिक होती है।
Usage:
drivetrain.set_drive_velocity(velocity)
पैरामीटर |
विवरण |
|---|---|
|
गाड़ी चलाने की गति 0% से 100% तक। |
# Build Used: Code Base 2.0
def main():
# Drive at different velocities
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive slow
drivetrain.set_drive_velocity(20)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive fast
drivetrain.set_drive_velocity(100)
drivetrain.drive_for(FORWARD, 100, MM)
# Start threads — Do not delete
start_thread(main)
set_turn_velocity#
set_turn_velocity रोबोट को बताता है कि उसे कितनी तेज़ी से मुड़ना है। उच्च प्रतिशत होने पर रोबोट तेज़ी से मुड़ता है और निम्न प्रतिशत होने पर रोबोट धीरे मुड़ता है।
प्रत्येक परियोजना की शुरुआत में रोबोट डिफ़ॉल्ट रूप से 50% वेग से घूमना शुरू करता है।
ध्यान दें: अधिक वेग से रोबोट तेजी से मुड़ता है, लेकिन सटीकता कम हो सकती है। कम वेग से रोबोट धीरे मुड़ता है, लेकिन सटीकता अधिक होती है।
Usage:
drivetrain.set_turn_velocity(velocity)
पैरामीटर |
विवरण |
|---|---|
|
0% से 100% तक मुड़ने की गति। |
# Build Used: Code Base 2.0
def main():
# Turn at different velocities
drivetrain.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn fast
drivetrain.set_turn_velocity(100)
drivetrain.turn_for(RIGHT, 180)
# Start threads — Do not delete
start_thread(main)
set_stopping#
set_stopping यह निर्धारित करता है कि रोबोट कैसे चलना बंद करेगा: ब्रेक लगाकर, बिना एक्सीलरेटर दबाए चलते हुए या रुककर।
Usage:
drivetrain.set_stopping(brake)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट कैसे रुकेगा:
|
यदि इस विधि का उपयोग नहीं किया जाता है, तो रोबोट रुकते समय BRAKE का उपयोग करेगा।
# Build Used: Code Base 2.0
def main():
# Drive, then coast to a stop
drivetrain.set_drive_velocity(100)
drivetrain.set_stopping(COAST)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_timeout#
set_timeout निर्धारित करता है कि रोबोट किसी गतिविधि को पूरा करने के लिए कितनी देर तक प्रयास करेगा। यदि रोबोट उस समय में गतिविधि पूरी नहीं कर पाता है, तो वह प्रयास करना बंद कर देगा और कोड की अगली पंक्ति पर चला जाएगा। इससे रोबोट को गतिविधि में अटकने से बचाया जा सकता है।
Usage:
drivetrain.set_timeout(value, units)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट को किसी गतिविधि को पूरा करने के लिए मिलने वाला समय। यह एक पूर्ण संख्या या दशमलव संख्या हो सकती है। |
|
वैकल्पिक। समय की इकाई: |
# Build Used: Code Base 2.0
def main():
# Drive as far as possible for 1 second before turning right
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
set_heading#
हेडिंग वह दिशा है जिस ओर रोबोट का मस्तिष्क स्थित है, जिसे डिग्री में मापा जाता है। set_heading रोबोट की वर्तमान हेडिंग को एक नए हेडिंग मान में बदल देता है।
उदाहरण के लिए, यदि रोबोट दाईं ओर मुड़ गया है, तो दिशा को 0 डिग्री पर सेट करने से वह दाईं ओर की स्थिति ही नई 0 डिग्री बन जाती है। फिर रोबोट उस नई दिशा के आधार पर अन्य स्थितियों में मुड़ सकता है।
Usage:
drivetrain.set_heading(value)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के लिए निर्धारित की जाने वाली दिशा का मान (डिग्री में)। यह 0 से 359 तक की कोई भी पूर्णांक संख्या हो सकती है। |
# Build Used: Code Base 2.0
def main():
# Face the new 0 degree heading
drivetrain.set_heading(90)
drivetrain.turn_to_heading(0)
# Start threads — Do not delete
start_thread(main)
set_rotation#
रोटेशन वह मात्रा है जो रोबोट ने डिग्री में घुमाई है। किसी प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट होता है। set_rotation का उपयोग करके रोबोट के वर्तमान रोटेशन को एक नए मान में बदला जा सकता है।
उदाहरण के लिए, यदि रोबोट ने दाईं ओर दो पूरे चक्कर लगा लिए हैं, तो उसका घूर्णन मान 720 डिग्री होगा। घूर्णन को 0 डिग्री पर सेट करने से यह 720 से 0 डिग्री पर रीसेट हो जाएगा। फिर रोबोट उस नए मान के आधार पर घूर्णन कर सकता है।
Usage:
drivetrain.set_rotation(value)
पैरामीटर |
विवरण |
|---|---|
|
रोबोट के लिए निर्धारित की जाने वाली घूर्णन मान (डिग्री में)। यह एक पूर्णांक हो सकता है। |
# Build Used: Code Base 2.0
def main():
# Spin counterclockwise two times
drivetrain.set_rotation(720)
drivetrain.turn_to_rotation(0)
# Start threads — Do not delete
start_thread(main)
टिककर खेल#
get_heading#
हेडिंग रोबोट के मस्तिष्क की दिशा को दर्शाती है, जिसे डिग्री में मापा जाता है। get_heading 0 से 359 डिग्री तक की दिशा को लौटाता है।
रोबोट की प्रारंभिक दिशा 0 डिग्री है।

Usage:
drivetrain.get_heading()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Code Base 2.0
def main():
# Display the heading while turning
monitor_sensor("drivetrain.get_heading")
drivetrain.turn_for(RIGHT, 450)
# Start threads — Do not delete
start_thread(main)
get_rotation#
रोटेशन वह मात्रा है जो रोबोट ने डिग्री में घुमाई है। प्रोजेक्ट की शुरुआत में, रोटेशन का मान 0 डिग्री पर सेट होता है। get_rotation रोबोट का वर्तमान रोटेशन लौटाता है।
दाहिनी ओर मुड़ने से घूर्णन बढ़ता है, और बाईं ओर मुड़ने से घूर्णन घटता है। उदाहरण के लिए, दाहिनी ओर दो पूरे चक्कर लगाने से 720 डिग्री का घूर्णन प्राप्त होगा।

Usage:
drivetrain.get_rotation()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Code Base 2.0
def main():
# Display the rotation while turning
monitor_sensor("drivetrain.get_rotation")
drivetrain.turn_for(RIGHT, 450)
# Start threads — Do not delete
start_thread(main)
get_velocity#
get_velocity रोबोट की गति को -100% से 100% तक के प्रतिशत के रूप में दर्शाता है।
धनात्मक मान का अर्थ है कि रोबोट आगे की ओर चल रहा है। ऋणात्मक मान का अर्थ है कि रोबोट पीछे की ओर चल रहा है।
Usage:
drivetrain.get_velocity()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Code Base 2.0
def main():
# Display the velocity of the robot before and while moving
console.print("Start: ")
console.print(drivetrain.get_velocity())
console.new_line()
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
console.print("Moving: ")
console.print(drivetrain.get_velocity())
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_yaw#
यॉ वह मात्रा है जिससे रोबोट अपनी प्रारंभिक स्थिति से बाएँ या दाएँ मुड़ा है, जिसे डिग्री में मापा जाता है। get_yaw रोबोट का वर्तमान यॉ मान लौटाता है।
दाहिनी ओर मुड़ने से यॉ वैल्यू बढ़ती है, और बाईं ओर मुड़ने से यॉ वैल्यू घटती है।
Usage:
drivetrain.get_yaw()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the yaw while
# moving the robot by hand
monitor_sensor("drivetrain.get_yaw")
while True:
if drivetrain.get_yaw() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_yaw() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_roll#
रोल वह मात्रा है जिससे रोबोट बाएँ या दाएँ झुकता है, जिसे डिग्री में मापा जाता है। get_roll रोबोट का वर्तमान रोल मान लौटाता है।
मस्तिष्क को आगे की ओर रखते हुए, बाईं ओर झुकाने से रोल का मूल्य बढ़ता है, और दाईं ओर झुकाने से रोल का मूल्य घटता है।
Usage:
drivetrain.get_roll()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the roll while
# moving the robot by hand
monitor_sensor("drivetrain.get_roll")
while True:
if drivetrain.get_roll() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_roll() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_pitch#
पिच वह मात्रा है जिससे रोबोट आगे या पीछे की ओर झुकता है, जिसे डिग्री में मापा जाता है। get_pitch रोबोट का वर्तमान पिच मान लौटाता है।
मस्तिष्क को आगे की ओर रखते हुए, आगे की ओर झुकाने से पिच का मान बढ़ता है, और पीछे की ओर झुकाने से पिच का मान घटता है।
Usage:
drivetrain.get_pitch()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Super Code Base 2.0
def main():
# Change the LED color based on the pitch while
# moving the robot by hand
monitor_sensor("drivetrain.get_pitch")
while True:
if drivetrain.get_pitch() > 0:
bumper.set_color(GREEN)
elif drivetrain.get_pitch() < 0:
bumper.set_color(RED)
else:
bumper.set_color(NONE)
# Start threads — Do not delete
start_thread(main)
get_crashed#
get_crashed यह बताता है कि रोबोट ने क्रैश का पता लगाया है या नहीं, यह एक बूलियन मान के रूप में होता है।
True— दुर्घटना का पता चला है।False— दुर्घटना का पता नहीं चला है।
Usage:
drivetrain.get_crashed()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Super Code Base 2.0
def main():
# Drive until a crash
drivetrain.drive(FORWARD)
while not drivetrain.get_crashed():
wait(50, MSEC)
drivetrain.stop()
drivetrain.turn_for(RIGHT, 90)
# Start threads — Do not delete
start_thread(main)
is_stopped#
is_stopped बूलियन मान के रूप में यह बताता है कि रोबोट ने चलना समाप्त कर दिया है या नहीं। इसका उपयोग रोबोट की गति के आधार पर अन्य व्यवहारों के समय को नियंत्रित करने के लिए किया जा सकता है।
True— रोबोट का चलना समाप्त हो गया है।False— रोबोट अभी भी चल रहा है।
यह विधि निम्नलिखित ड्राइवट्रेन विधियों के साथ मिलकर काम करती है जिनमें wait पैरामीटर है: drive_for, drive_until, turn_for, turn_to_heading, और turn_to_rotation।
Usage:
drivetrain.is_stopped()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Build Used: Code Base 2.0
def main():
# Turn when the drivetrain is done moving forward
drivetrain.drive_for(FORWARD, 100, MM, wait=False)
wait(0.25, SECONDS)
while True:
if drivetrain.is_stopped():
drivetrain.turn_for(RIGHT, 180)
break
else:
console.print("Still moving...")
wait(0.1, SECONDS)
console.clear()
# Start threads — Do not delete
start_thread(main)