ড্রাইভট্রেন#
ভূমিকা#
১২৩ রোবটটিতে একটি দ্বি-চাকার ড্রাইভট্রেন রয়েছে যা এটিকে চলতে ও ঘুরতে সাহায্য করে। এই ড্রাইভট্রেন পদ্ধতিগুলোই রোবটটির চলাচল নিয়ন্ত্রণ করে।
ড্রাইভট্রেনটি দুইভাবে দূরত্ব পরিমাপ করতে পারে: ধাপ এবং মিলিমিটার। একটি ধাপ হলো 123 ফিল্ডের একটি বর্গক্ষেত্র।
ড্রাইভট্রেন কোড করার অনেক উপায় আছে। নিচে সমস্ত ড্রাইভট্রেন পদ্ধতির একটি তালিকা দেওয়া হলো:
ক্রিয়াকলাপ — রোবটটিকে চালনা ও ঘোরানো।
drive— রোবটটিকে অনির্দিষ্টকালের জন্য সামনে বা পিছনে চালনা করে।drive_for— রোবটটিকে একটি নির্দিষ্ট দূরত্বে সামনে বা পিছনে নিয়ে যায়।drive_until— কোনো বস্তু, সংঘর্ষ, বা দড়ি শনাক্ত না করা পর্যন্ত রোবটটিকে সামনে বা পিছনে চালিত করে।turn— রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়।turn_for— রোবটটিকে নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়।turn_to_heading— রোবটটিকে -359 থেকে 359 ডিগ্রির মধ্যে একটি নির্দিষ্ট দিকে মুখ করে ঘোরায়।stop— রোবটের চলাচল থামিয়ে দেয়।
মিউটেটর — ড্রাইভট্রেইন সেটিংস সমন্বয় করুন।
set_timeout— রোবট একটি নড়াচড়া শেষ করার জন্য কতক্ষণ চেষ্টা করবে তা নির্ধারণ করে।set_heading— রোবটের বর্তমান দিক পরিবর্তন করে একটি নতুন দিকে নিয়ে যায়।
গেটার্স — গতিবিধির অবস্থা পরীক্ষা করুন।
is_stopped— রোবটটি চলা বন্ধ করেছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।get_heading— রোবটের বর্তমান হেডিং ০ থেকে ৩৫৯ ডিগ্রির মধ্যে ফেরত দেয়।
কর্ম#
drive#
ড্রাইভ drive রোবটটিকে অনির্দিষ্টকালের জন্য সামনে বা পেছনে চালায়। রোবটটি ততক্ষণ চলতে থাকবে যতক্ষণ না এটিকে মোড় নেওয়া বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়।
Usage:
robot.drive(direction)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে চলে: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
drive_for রোবটটিকে একটি নির্দিষ্ট দূরত্ব পর্যন্ত সামনে বা পিছনে নিয়ে যায়। রোবটটির চলা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
Usage:
robot.drive_for(direction, distance, unit)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে চলে: |
|
রোবটটি যে দূরত্ব অতিক্রম করে। এটি একটি পূর্ণসংখ্যা বা দশমিক সংখ্যা হতে পারে। |
|
দূরত্বের একক: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until রোবটটিকে সামনে বা পেছনে ততক্ষণ পর্যন্ত চালায় যতক্ষণ না এটি কোনো বস্তু, সংঘর্ষ বা রেখা শনাক্ত করে।
Usage:
robot.drive_until(direction)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে চলে: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়। রোবটটি ততক্ষণ ঘুরতে থাকবে যতক্ষণ না এটিকে চালানো বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়।
Usage:
robot.turn(direction)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে ঘোরে: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for রোবটটিকে একটি নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়। রোবটটির ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
Usage:
robot.turn_for(direction, degrees)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে ঘোরে: |
|
কত ডিগ্রি ঘোরাতে হবে। এটি একটি পূর্ণসংখ্যা বা দশমিক সংখ্যা হতে পারে। |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading রোবটটিকে -359 থেকে 359 ডিগ্রির মধ্যে একটি নির্দিষ্ট দিকে মুখ করে ঘোরায়। রোবটটি লক্ষ্যস্থলে পৌঁছানোর জন্য সবচেয়ে ছোট পথটি বেছে নেবে।
প্রারম্ভিক কোণ ০ ডিগ্রি।
রোবটটির ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
Usage:
robot.turn_to_heading(heading)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটির অভিমুখ হবে -৩৫৯ থেকে ৩৫৯ ডিগ্রির মধ্যে। |
# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)
stop#
stop রোবটের চলাচল থামিয়ে দেয়।
Usage:
robot.stop()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
মিউটেটর#
set_timeout#
set_timeout নির্ধারণ করে যে রোবটটি একটি মুভমেন্ট শেষ করার জন্য কত সেকেন্ড চেষ্টা করবে। যদি রোবটটি সেই সময়ের মধ্যে কাজটি শেষ করতে না পারে, তবে এটি চেষ্টা করা বন্ধ করে দেবে এবং কোডের পরবর্তী লাইনে চলে যাবে। এটি রোবটকে কোনো একটি মুভমেন্টে আটকে যাওয়া থেকে রক্ষা করে।
Usage:
robot.set_timeout(time, unit)
প্যারামিটার |
বর্ণনা |
|---|---|
|
কোনো নড়াচড়ার জন্য প্রয়োজনীয় সময়। এটি একটি পূর্ণসংখ্যা বা দশমিক সংখ্যা হতে পারে। |
|
সময়ের একক: |
# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)
set_heading#
set_heading রোবটের বর্তমান হেডিং পরিবর্তন করে একটি নতুন হেডিং ভ্যালুতে সেট করে।
উদাহরণস্বরূপ, যদি রোবটটি ডানদিকে মুখ করে, তাহলে হেডিং ০ ডিগ্রিতে সেট করলে সেই ডানমুখী অবস্থানটিই নতুন ০ ডিগ্রি হয়ে যায়।
Usage:
robot.set_heading(heading)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটের জন্য নির্ধারণ করার হেডিং মান, ডিগ্রিতে। |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
গেটার্স#
is_stopped#
is_stopped একটি Boolean ফেরত দেয় যা জানায় রোবটটি চলা বন্ধ করেছে কিনা।
True— রোবটটি থেমে আছে।False— রোবটটি এখনও চলছে।
Usage:
robot.is_stopped()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
if robot.is_stopped():
robot.led.glow(BLUE)
else:
robot.led.glow(GREEN)
wait(0.05, SECONDS)
get_heading#
get_heading কমান্ডটি রোবটটি বর্তমানে যেদিকে মুখ করে আছে, সেই দিকটি ০ থেকে ৩৫৯ ডিগ্রির মধ্যে একটি পূর্ণ সংখ্যা হিসেবে ফেরত দেয়।
রোবটটির প্রারম্ভিক অভিমুখ ০ ডিগ্রি।
Usage:
robot.get_heading()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())