ড্রাইভট্রেন#

ভূমিকা#

VEX IQ (২য় প্রজন্ম) রোবটটি চলতে ও ঘুরতে একটি ড্রাইভট্রেন ব্যবহার করে। ড্রাইভট্রেনটি মোটর ও চাকা দিয়ে গঠিত, যা রোবটটিকে চালনা করার জন্য একত্রে কাজ করে।

একটি কনফিগার করা ড্রাইভট্রেন একটি সংযুক্ত জাইরো সেন্সর, ব্রেইনের অন্তর্নির্মিত ইনার্শিয়াল সেন্সর, অথবা কোনো সেন্সর ব্যবহার করতে পারে। যখন একটি সেন্সর ব্যবহার করা হয়, তখন ড্রাইভট্রেনটি রোবটকে নির্ভুলভাবে চলতে এবং ঘুরতে সাহায্য করার জন্য এটি ব্যবহার করে। প্রতিটি প্রকল্পের শুরুতে, ড্রাইভট্রেন স্বয়ংক্রিয়ভাবে সেন্সরটি ক্যালিব্রেট করে। ক্যালিব্রেশনের সময় রোবটটিকে প্রায় 2 সেকেন্ডের জন্য স্থির রাখুন, যাতে রোবটটি সঠিকভাবে চলতে এবং ঘুরতে পারে।

এই পৃষ্ঠায় উদাহরণস্বরূপ ড্রাইভট্রেনের নাম হিসেবে drivetrain ব্যবহার করা হয়েছে। প্রয়োজন অনুযায়ী এটিকে আপনার নিজস্ব কনফিগার করা নাম দিয়ে প্রতিস্থাপন করুন।

ড্রাইভট্রেন কোড করার অনেক উপায় আছে। নিচে সমস্ত ড্রাইভট্রেন পদ্ধতির একটি তালিকা দেওয়া হলো:

ক্রিয়াকলাপ — রোবটটিকে চালনা ও ঘোরানো।

  • drive — রোবটটিকে অনির্দিষ্টকালের জন্য সামনে বা পিছনে চালনা করে।

  • drive_for — রোবটটিকে একটি নির্দিষ্ট দূরত্বে সামনে বা পিছনে নিয়ে যায়।

  • turn — রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়।

  • turn_for — রোবটটিকে নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়।

  • turn_to_heading — রোবটটিকে -359 থেকে 359 ডিগ্রির মধ্যে একটি নির্দিষ্ট দিকে মুখ করে ঘোরায়। রোবটটি লক্ষ্যস্থলে পৌঁছানোর জন্য সবচেয়ে ছোট দিকটি বেছে নেবে।

  • turn_to_rotation — রোবটটিকে একটি নির্দিষ্ট ঘূর্ণনে ঘোরায়।

  • stop — রোবটের চলাচল থামিয়ে দেয়।

  • calibrate_drivetrain — ড্রাইভট্রেনের সাথে কনফিগার করা সেন্সরটি ক্যালিব্রেট করে।

মিউটেটর — ড্রাইভট্রেইন সেটিংস সমন্বয় করুন।

  • set_drive_velocity — রোবটকে বলে দেয় কত দ্রুত চালাতে হবে।

  • set_turn_velocity — রোবটকে বলে দেয় কত দ্রুত ঘুরতে হবে।

  • set_stopping — রোবটটি কীভাবে চলা বন্ধ করবে তা নির্দেশ করে: ব্রেক করে, গতি না কমিয়ে, অথবা স্থির থেকে।

  • set_timeout — রোবট একটি মুভমেন্ট শেষ করার জন্য কত সময় চেষ্টা করবে তা সেট করে।

  • set_heading — রোবটের বর্তমান দিক পরিবর্তন করে একটি নতুন দিকে নিয়ে যায়।

  • set_rotation — রোবটের বর্তমান ঘূর্ণনকে একটি নতুন ঘূর্ণনে পরিবর্তন করে।

  • set_turn_threshold — একটি মোড় সম্পূর্ণ হওয়ার আগে রোবটকে লক্ষ্য কোণের কতটা কাছাকাছি যেতে হবে তা নির্দেশ করে।

  • set_turn_constant — রোবট কতটা জোরালোভাবে তার মোড় সংশোধন করবে তা পরিবর্তন করে।

গেটার্স — গতিবিধির অবস্থা পরীক্ষা করুন।

  • heading — রোবটের বর্তমান হেডিং 0 থেকে 359 ডিগ্রির মধ্যে ফেরত দেয়।

  • rotation — রোবটের বর্তমান ঘূর্ণন ফেরত দেয়।

  • velocity — রোবটটি কত দ্রুত চলছে তা ফেরত দেয়।

  • current — ড্রাইভট্রেন কী পরিমাণ বৈদ্যুতিক কারেন্ট ব্যবহার করছে তা ফেরত দেয়।

  • is_moving — রোবটটি চলছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।

  • is_done — রোবটটির চলাচল শেষ হয়েছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।

  • is_turning — রোবটটি ঘুরছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।

  • power — ড্রাইভট্রেনটি কত দ্রুত শক্তি ব্যবহার করছে তা ফেরত দেয়।

  • torque — ড্রাইভট্রেন কী পরিমাণ টর্ক ব্যবহার করছে তা ফেরত দেয়।

  • efficiency — ড্রাইভট্রেনটি কতটা দক্ষতার সাথে শক্তি ব্যবহার করছে তা ফেরত দেয়।

  • temperature — ড্রাইভট্রেনটি কতটা উষ্ণ তা ফেরত দেয়।

নির্মাতা — ম্যানুয়ালি ড্রাইভট্রেন তৈরি এবং কনফিগার করুন।

  • DriveTrain — জাইরো সেন্সর বা ইনার্শিয়াল সেন্সর ছাড়া একটি ড্রাইভট্রেন তৈরি করে।

  • SmartDrive — জাইরো সেন্সর বা ইনার্শিয়াল সেন্সর দিয়ে একটি ড্রাইভট্রেন তৈরি করে।

কর্ম#

drive#

ড্রাইভ drive রোবটটিকে অনির্দিষ্টকালের জন্য সামনে বা পেছনে চালায়। রোবটটি ততক্ষণ চলতে থাকবে যতক্ষণ না এটিকে মোড় নেওয়া বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়।

Usage:
drivetrain.drive(direction, velocity, units)

প্যারামিটার

বর্ণনা

direction

রোবটটি যেদিকে চলে: FORWARD বা REVERSE।

velocity

ঐচ্ছিক। PERCENTব্যবহার করলে চালনার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। এটি একটি integer বা দশমিক (float) হতে পারে। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান চালনার বেগে চলে।

units

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট), RPM (প্রতি মিনিটে ঘূর্ণন), অথবা VelocityUnits.DPS (প্রতি সেকেন্ডে ডিগ্রি)।

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

# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

drive_for#

drive_for রোবটটিকে একটি নির্দিষ্ট দূরত্ব পর্যন্ত সামনে বা পিছনে নিয়ে যায়। রোবটটির চলা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।

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

প্যারামিটার

বর্ণনা

direction

রোবটটি যেদিকে চলে: FORWARD বা REVERSE।

distance

রোবটটি যে দূরত্ব অতিক্রম করে। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float ) হতে পারে।

units

ঐচ্ছিক। দূরত্বের একক: INCHES (ডিফল্ট), MM (মিলিমিটার), অথবা DistanceUnits.CM (সেন্টিমিটার)।

velocity

ঐচ্ছিক। PERCENTব্যবহার করলে চালনার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। এটি একটি integer বা দশমিক (float) হতে পারে। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান চালনার বেগে চলে।

units_v

ঐচ্ছিক। বেগের একক: RPM (ঘূর্ণন প্রতি মিনিট, ডিফল্ট), PERCENT, অথবা VelocityUnits.DPS (ডিগ্রি প্রতি সেকেন্ড)।

wait

ঐচ্ছিক। wait=True (ডিফল্ট) পরবর্তী কোড লাইন চলার আগে রোবটের নড়াচড়া শেষ না হওয়া পর্যন্ত প্রজেক্টকে অপেক্ষা করায়। wait=False পরবর্তী কোড লাইনকে সাথে সাথে চালিয়ে দেয়।

# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)

# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)

turn#

turn রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়। রোবটটি ততক্ষণ ঘুরতে থাকবে যতক্ষণ না এটিকে চালানো বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়।

Usage:
drivetrain.turn(direction, velocity, units)

প্যারামিটার

বর্ণনা

direction

রোবটটি যেদিকে ঘোরে: LEFT বা RIGHT।

velocity

ঐচ্ছিক। PERCENTব্যবহার করলে মোড় নেওয়ার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। এটি একটি integer বা দশমিক (float) হতে পারে। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান মোড় নেওয়ার বেগে ঘুরবে।

units

ঐচ্ছিক। বেগের একক: RPM (ঘূর্ণন প্রতি মিনিট, ডিফল্ট), PERCENT, অথবা VelocityUnits.DPS (ডিগ্রি প্রতি সেকেন্ড)।

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

# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

turn_for রোবটটিকে একটি নির্দিষ্ট সংখ্যক ডিগ্রি বা ঘূর্ণনের জন্য বামে বা ডানে ঘোরায়। এই ঘূর্ণনটি রোবটের বর্তমান অবস্থানের সাপেক্ষে হয়। রোবটের ঘূর্ণন শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।

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

প্যারামিটার

বর্ণনা

direction

রোবটটি যেদিকে ঘোরে: LEFT বা RIGHT।

angle

রোবটটি যে পরিমাণ ঘোরে। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float ) হতে পারে।

units

ঐচ্ছিক। ঘূর্ণনের একক: DEGREES (ডিফল্ট) অথবা TURNSএক ঘূর্ণন ৩৬০ ডিগ্রির সমান।

velocity

ঐচ্ছিক। PERCENTব্যবহার করলে মোড় নেওয়ার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। এটি একটি integer বা দশমিক (float) হতে পারে। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান মোড় নেওয়ার বেগে ঘুরবে।

units_v

ঐচ্ছিক। বেগের একক: RPM (ঘূর্ণন প্রতি মিনিট, ডিফল্ট), PERCENT, অথবা VelocityUnits.DPS (ডিগ্রি প্রতি সেকেন্ড)।

wait

ঐচ্ছিক। wait=True (ডিফল্ট) পরবর্তী কোড লাইন চলার আগে রোবটের ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টকে অপেক্ষা করায়। wait=False পরবর্তী কোড লাইনকে সাথে সাথে চালিয়ে দেয়।

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

# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)

turn_to_heading#

হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। turn_to_heading রোবটকে -359 থেকে 359 ডিগ্রির মধ্যে একটি নির্দিষ্ট হেডিং-এর দিকে ঘোরায়। রোবটটি লক্ষ্য হেডিং-এ পৌঁছানোর জন্য সবচেয়ে ছোট পথটি বেছে নেবে।

রোবটটির প্রারম্ভিক অভিমুখ ০ ডিগ্রি।

রোবটটির ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।

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

প্যারামিটার

বর্ণনা

angle

রোবটটি যে দিকে মুখ করবে, তা ডিগ্রিতে পরিমাপ করতে হবে। এটি integer (ফ্লোট), অথবা -৩৫৯ থেকে ৩৫৯ পর্যন্ত দশমিক (float) সংখ্যা হতে পারে।

units

ঐচ্ছিক। শিরোনামের একক: DEGREES (ডিফল্ট)।

velocity

ঐচ্ছিক। PERCENTব্যবহার করলে মোড় নেওয়ার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। এটি একটি integer বা দশমিক (float) হতে পারে। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান মোড় নেওয়ার বেগে ঘুরবে।

units_v

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট), RPM (প্রতি মিনিটে ঘূর্ণন), অথবা VelocityUnits.DPS (প্রতি সেকেন্ডে ডিগ্রি)।

wait

ঐচ্ছিক। wait=True (ডিফল্ট) পরবর্তী কোড লাইন চলার আগে রোবটের ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টকে অপেক্ষা করায়। wait=False পরবর্তী কোড লাইনকে সাথে সাথে চালিয়ে দেয়।

# 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)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation রোবটটিকে একটি নির্দিষ্ট ঘূর্ণনে ঘোরায়।

ঘূর্ণন হল রোবটটি কতটা ঘুরেছে, যা ডিগ্রি বা ঘূর্ণনে পরিমাপ করা হয়। একটি প্রকল্পের শুরুতে, ঘূর্ণনের মান 0 ডিগ্রিতে সেট করা হয়। set_rotation পদ্ধতি ব্যবহার করেও ঘূর্ণন সেট করা যেতে পারে।

ঘূর্ণনের মান পরম। এর মানে হলো, মোড় নেওয়ার দিকটি রোবটের বর্তমান ঘূর্ণনের উপর নির্ভর করে। ডানদিকে ঘুরলে ঘূর্ণন বাড়ে এবং বামদিকে ঘুরলে ঘূর্ণন কমে।

উদাহরণস্বরূপ, যদি রোবটটি ০ ডিগ্রি থেকে শুরু করে এবং আপনি এটিকে ৭২০ ডিগ্রি ঘোরান, তবে এটি দুইবার ডানদিকে ঘুরবে। এরপর যদি আপনি এটিকে ৩৬০ ডিগ্রি ঘোরান, তবে এটি একবার বামদিকে ঘুরবে, কারণ ৩৬০ হলো ৭২০-এর চেয়ে কম।

রোবটটির ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।

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

প্যারামিটার

বর্ণনা

angle

রোবটটি যে ঘূর্ণন মানে (ডিগ্রি বা পাক সংখ্যায়) ঘুরবে। এটি integer বা দশমিক (float ) হতে পারে।

units

ঐচ্ছিক। ঘূর্ণনের একক: DEGREES (ডিফল্ট) অথবা TURNSএক পাক ৩৬০ ডিগ্রির সমান।

velocity

ঐচ্ছিক। PERCENTব্যবহার করলে মোড় নেওয়ার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। এটি একটি integer বা দশমিক (float) হতে পারে। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান মোড় নেওয়ার বেগে ঘুরবে।

units_v

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট), RPM (প্রতি মিনিটে ঘূর্ণন), অথবা VelocityUnits.DPS (প্রতি সেকেন্ডে ডিগ্রি)।

wait

ঐচ্ছিক। wait=True (ডিফল্ট) পরবর্তী কোড লাইন চলার আগে রোবটের ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টকে অপেক্ষা করায়। wait=False পরবর্তী কোড লাইনকে সাথে সাথে চালিয়ে দেয়।

# 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)

# Turn left then slowly spin in a
# circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop রোবটের চলাচল থামিয়ে দেয়।

Usage:
drivetrain.stop(mode)

প্যারামিটার

বর্ণনা

mode

ঐচ্ছিক। রোবটটি কীভাবে থামবে: BRAKE (ডিফল্ট), BRAKE, অথবা COAST

  • COAST — সাথে সাথে থেমে যায়।
  • HOLD — ধীরে ধীরে থেমে যায়।
  • HOLD — সাথে সাথে থেমে যায় এবং চাকার অবস্থান ধরে রাখে।

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

# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)

calibrate_drivetrain#

calibrate_drivetrain একটি বিল্ট-ইন ফাংশন যা ড্রাইভট্রেনের সাথে কনফিগার করা জাইরো সেন্সর বা ইনার্শিয়াল সেন্সরকে ক্যালিব্রেট করে।

ক্যালিব্রেশন সেন্সরকে নড়াচড়া সঠিকভাবে পরিমাপ করতে সাহায্য করে। ক্যালিব্রেশনের সময় রোবটটিকে প্রায় ২ সেকেন্ডের জন্য স্থির রাখুন। ক্যালিব্রেশনের সময় রোবটটি নড়াচড়া করলে, সেন্সরটি নড়াচড়া সঠিকভাবে পরিমাপ করতে নাও পারে।

পরবর্তী কোড লাইনটি চলার আগে প্রজেক্টটি ক্যালিব্রেশন সম্পন্ন হওয়া পর্যন্ত অপেক্ষা করবে।

দ্রষ্টব্য: এই ফাংশনটি VS Code-এর ভিতরে ব্যবহার করা যাবে না।

Usage:
calibrate_drivetrain()

প্যারামিটার

বর্ণনা

এই ফাংশনটির কোনো প্যারামিটার নেই।

মিউটেটর#

set_drive_velocity#

set_drive_velocity রোবটকে বলে দেয় সে কত দ্রুত চলবে। উচ্চতর শতাংশ রোবটকে দ্রুত চালায় এবং নিম্নতর শতাংশ রোবটকে ধীরে চালায়।

প্রতিটি প্রকল্প ডিফল্টরূপে রোবটের ৫০% গতিতে চলার মাধ্যমে শুরু হয়।

দ্রষ্টব্য: উচ্চ বেগ রোবটকে দ্রুত চলতে সাহায্য করে, কিন্তু এর নির্ভুলতা কম হতে পারে। কম বেগ রোবটকে ধীরে চলতে সাহায্য করে, কিন্তু এর নির্ভুলতা বেশি হতে পারে।

Usage:
drivetrain.set_drive_velocity(velocity, units)

প্যারামিটার

বর্ণনা

velocity

PERCENTব্যবহার করলে ০% থেকে ১০০% পর্যন্ত, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম পর্যন্ত, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড পর্যন্ত চালনার গতি। এটি একটি integer বা দশমিক (float ) হতে পারে।

units

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট), RPM (প্রতি মিনিটে ঘূর্ণন), অথবা VelocityUnits.DPS (প্রতি সেকেন্ডে ডিগ্রি)।

# 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)

set_turn_velocity#

set_turn_velocity set_turn_velocity রোবটকে বলে দেয় সে কত দ্রুত ঘুরবে। উচ্চতর শতাংশ রোবটকে দ্রুত ঘোরায় এবং নিম্নতর শতাংশ রোবটকে ধীরে ঘোরায়।

প্রতিটি প্রকল্প ডিফল্টরূপে রোবটের ৫০% গতিতে ঘোরার মাধ্যমে শুরু হয়।

দ্রষ্টব্য: উচ্চ বেগ রোবটকে দ্রুত ঘোরাতে পারে, কিন্তু তা কম নির্ভুল হতে পারে। নিম্ন বেগ রোবটকে ধীরে ঘোরাতে পারে, কিন্তু তা আরও নির্ভুল হতে পারে।

Usage:
drivetrain.set_turn_velocity(velocity, units)

প্যারামিটার

বর্ণনা

velocity

PERCENTব্যবহার করলে মোড় নেওয়ার বেগ ০% থেকে ১০০%, RPMব্যবহার করলে ০ থেকে ১২০ আরপিএম, অথবা VelocityUnits.DPSব্যবহার করলে ০ থেকে ৭২০ ডিগ্রি প্রতি সেকেন্ড। এটি একটি integer অথবা দশমিক (float ) হতে পারে।

units

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট), RPM (প্রতি মিনিটে ঘূর্ণন), অথবা VelocityUnits.DPS (প্রতি সেকেন্ডে ডিগ্রি)।

# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)

set_stopping#

set_stopping নির্ধারণ করে রোবটটি কীভাবে চলা বন্ধ করবে: ব্রেক করে, গতি না কমিয়ে, বা থেমে গিয়ে।

Usage:
drivetrain.set_stopping(mode)

প্যারামিটার

বর্ণনা

mode

রোবটটি যেভাবে থামবে:

  • BRAKE — সাথে সাথে থেমে যায়।
  • COAST — ধীরে ধীরে থেমে যায়।
  • HOLD — সাথে সাথে থেমে যায় এবং চাকাগুলোর অবস্থান ধরে রাখে।

এই পদ্ধতি ব্যবহার না করা হলে, রোবটটি থামার সময় BRAKE ব্যবহার করবে।

set_timeout#

set_timeout নির্ধারণ করে যে রোবট একটি মুভমেন্ট শেষ করার জন্য কতটুকু সময় চেষ্টা করবে। যদি রোবট সেই সময়ের মধ্যে কাজটি শেষ করতে না পারে, তবে এটি চেষ্টা করা বন্ধ করে দেবে এবং কোডের পরবর্তী লাইনে চলে যাবে। এটি রোবটকে কোনো একটি মুভমেন্টে আটকে যাওয়া থেকে রক্ষা করে।

Usage:
drivetrain.set_timeout(value, units)

প্যারামিটার

বর্ণনা

value

রোবটটি একটি নড়াচড়া শেষ করার জন্য যে পরিমাণ সময় চেষ্টা করতে পারে। এটি একটি ধনাত্মক integer অথবা দশমিক (float ) সংখ্যা হতে পারে।

units

ঐচ্ছিক। সময়ের একক: MSEC (ডিফল্ট) অথবা SECONDS

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

set_heading#

হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। set_heading রোবটের বর্তমান হেডিং পরিবর্তন করে একটি নতুন হেডিং মানে সেট করে।

উদাহরণস্বরূপ, যদি রোবটটি ডানদিকে মুখ করে থাকে, তবে হেডিং ০ ডিগ্রিতে সেট করলে সেই ডানমুখী অবস্থানটিই নতুন ০ ডিগ্রি হয়ে যায়। এরপর রোবটটি সেই নতুন হেডিং-এর উপর ভিত্তি করে অন্যান্য অবস্থানে ঘুরতে পারে।

Usage:
drivetrain.set_heading(heading, units)

প্যারামিটার

বর্ণনা

heading

রোবটের জন্য যে হেডিং ভ্যালুটি ডিগ্রি বা টার্নে সেট করতে হবে। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float ) হতে পারে।

units

ঐচ্ছিক। হেডিং ইউনিট: DEGREES (ডিফল্ট) অথবা TURNSএক পাক ৩৬০ ডিগ্রির সমান।

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

set_rotation#

ঘূর্ণন হলো রোবটটি কতটা ঘুরেছে, যা ডিগ্রি বা ঘূর্ণন সংখ্যা দ্বারা পরিমাপ করা হয়। একটি প্রকল্পের শুরুতে, ঘূর্ণনের মান ০ ডিগ্রিতে সেট করা থাকে। set_rotation রোবটের বর্তমান ঘূর্ণনকে একটি নতুন মানে পরিবর্তন করে।

উদাহরণস্বরূপ, যদি রোবটটি ডানদিকে দুটি পূর্ণ পাক ঘুরে থাকে, তবে এর ঘূর্ণন মান হবে ৭২০ ডিগ্রি। ঘূর্ণন মান ০ ডিগ্রিতে সেট করলে তা ৭২০ থেকে ০ ডিগ্রিতে রিসেট হয়ে যাবে। এরপর রোবটটি সেই নতুন মানের উপর ভিত্তি করে ঘুরতে পারবে।

Usage:
drivetrain.set_rotation(rotation, units)

প্যারামিটার

বর্ণনা

rotation

রোবটের জন্য যে ঘূর্ণন মান ডিগ্রি বা পাক সংখ্যায় নির্ধারণ করতে হবে। এটি integer একক) বা দশমিক (float ) হতে পারে।

units

ঐচ্ছিক। ঘূর্ণনের একক: DEGREES (ডিফল্ট) অথবা TURNSএক পাক ৩৬০ ডিগ্রির সমান।

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

set_turn_threshold#

set_turn_threshold set_turn_threshold নির্ধারণ করে যে একটি মোড় সম্পূর্ণ হওয়ার আগে রোবটকে একটি লক্ষ্য কোণের কতটা কাছাকাছি যেতে হবে।

একটি ছোট থ্রেশহোল্ড বাঁক নেওয়াকে আরও নির্ভুল করতে পারে, কিন্তু রোবটটির বাঁক নেওয়া শেষ করতে বেশি সময় লাগতে পারে। একটি বড় থ্রেশহোল্ড বাঁক নেওয়াকে দ্রুত শেষ করতে পারে, কিন্তু সেগুলো কম নির্ভুল হতে পারে।

Usage:
drivetrain.set_turn_threshold(value)

প্যারামিটার

বর্ণনা

value

মোড় নেওয়ার সীমা, ডিগ্রিতে। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float) হতে পারে। ডিফল্ট মোড় নেওয়ার সীমা হলো ১ ডিগ্রি।

# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)

set_turn_constant#

set_turn_constant 1 রোবটের মোড় নেওয়ার সময় তার সংশোধনের তীব্রতা পরিবর্তন করে।

উচ্চতর মান রোবটকে আরও জোরালোভাবে মোড় নিতে সাহায্য করে। নিম্নতর মান রোবটকে আরও আলতোভাবে মোড় নিতে সাহায্য করে। ডিফল্ট মান হলো ১.০।

Usage:
drivetrain.set_turn_constant(value)

প্যারামিটার

বর্ণনা

value

টার্ন কনস্ট্যান্ট। এটি ০.১ থেকে ৪.০ পর্যন্ত একটি দশমিক সংখ্যা (float) হতে পারে। এর ডিফল্ট মান হলো ১.০।

# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)

গেটার্স#

heading#

হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। heading রোবটের বর্তমান হেডিং ০ থেকে ৩৫৯ ডিগ্রির মধ্যে ফেরত দেয়।

রোবটটির প্রারম্ভিক অভিমুখ ০ ডিগ্রি।

Usage:
drivetrain.heading(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। দিক পরিবর্তনের একক: DEGREES (ডিফল্ট) অথবা TURNSএক পাক ৩৬০ ডিগ্রির সমান।

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

rotation#

ঘূর্ণন হলো রোবটটি কতটা ঘুরেছে, যা ডিগ্রি বা ঘূর্ণন সংখ্যায় পরিমাপ করা হয়। একটি প্রকল্পের শুরুতে, ঘূর্ণনের মান ০ ডিগ্রিতে সেট করা থাকে। rotation রোবটটির বর্তমান ঘূর্ণন ফেরত দেয়।

ডানদিকে ঘুরলে ঘূর্ণন বাড়ে এবং বামদিকে ঘুরলে ঘূর্ণন কমে। উদাহরণস্বরূপ, ডানদিকে দুটি পূর্ণ পাক দিলে ৭২০ ডিগ্রি ঘূর্ণন ঘটবে।

Usage:
drivetrain.rotation(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। ঘূর্ণনের একক: DEGREES (ডিফল্ট) অথবা TURNSএক পাক ৩৬০ ডিগ্রির সমান।

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

velocity#

বেগ velocity নির্দেশ করে রোবটটি কত দ্রুত চলছে।

এটি বেগ শতাংশ হিসাবে -১০০% থেকে ১০০%, RPM হিসাবে -১২৭ rpm থেকে ১২৭ rpm, অথবা VelocityUnits.DPS (ডিগ্রি প্রতি সেকেন্ড) হিসাবে দেখাতে পারে। একটি ধনাত্মক মান মানে রোবটটি সামনের দিকে চলছে। একটি ঋণাত্মক মান মানে রোবটটি পেছনের দিকে চলছে।

Usage:
drivetrain.velocity(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। বেগ যে এককে ফেরত দেওয়া হবে: PERCENT (ডিফল্ট), RPM (প্রতি মিনিটে ঘূর্ণন), অথবা VelocityUnits.DPS (প্রতি সেকেন্ডে ডিগ্রি)।

current#

ড্রাইভট্রেনটি কী পরিমাণ বৈদ্যুতিক কারেন্ট ব্যবহার করছে তা কারেন্ট current দ্বারা দেখানো হয়, যা অ্যাম্পিয়ার (অ্যাম্পিয়ার) এককে পরিমাপ করা হয়। কারেন্ট হলো ড্রাইভট্রেনের মধ্য দিয়ে প্রবাহিত বিদ্যুতের পরিমাণ।

কারেন্টের মান বেশি হওয়ার অর্থ হলো ড্রাইভট্রেইনটি বেশি বিদ্যুৎ ব্যবহার করছে। রোবট যখন কোনো বস্তুকে ধাক্কা দেয় অথবা আটকে যাওয়ার পর নড়াচড়া করার চেষ্টা করে, তখন এমনটা হতে পারে।

চলাচলের সময় ড্রাইভট্রেনটি কোনো সমস্যায় পড়ছে কিনা, তা পরীক্ষা করতে এটি ব্যবহার করা যেতে পারে। যদি কারেন্ট বেশি থাকে, তাহলে ড্রাইভট্রেনটি গরম হয়ে যেতে পারে অথবা কম দক্ষতার সাথে শক্তি ব্যবহার করতে পারে।

Usage:
drivetrain.current(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। কারেন্ট ফেরত দেওয়ার একক: CurrentUnits.AMP (অ্যাম্পিয়ার, ডিফল্ট)।

is_moving#

is_moving রোবটটি চলছে কিনা তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়। রোবটের চলাচলের উপর ভিত্তি করে অন্যান্য আচরণের সময় নিয়ন্ত্রণ করতে এটি ব্যবহার করা যেতে পারে।

  • True — রোবটটি চলছে।

  • False — রোবটটি নড়ছে না।

এই পদ্ধতিটি নিম্নলিখিত ড্রাইভট্রেন পদ্ধতিগুলির সাথে একত্রে কাজ করে যেগুলিতে wait প্যারামিটার রয়েছে: drive_for, turn_for, turn_to_heading, এবং turn_to_rotation।

Usage:
drivetrain.is_moving()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

is_done#

is_done একটি বুলিয়ান মান হিসাবে ফেরত দেয় যে রোবটটির চলাচল শেষ হয়েছে কিনা। রোবটের চলাচলের উপর ভিত্তি করে অন্যান্য আচরণের সময় নিয়ন্ত্রণ করতে এটি ব্যবহার করা যেতে পারে।

  • True — রোবটটির চলাচল শেষ হয়েছে।

  • False — রোবটটি এখনও চলছে।

এই পদ্ধতিটি নিম্নলিখিত ড্রাইভট্রেন পদ্ধতিগুলির সাথে একত্রে কাজ করে যেগুলিতে wait প্যারামিটার রয়েছে: drive_for, turn_for, turn_to_heading, এবং turn_to_rotation।

Usage:
drivetrain.is_done()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

is_turning#

is_turning রোবটটি ঘুরছে কিনা তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়। রোবটের নড়াচড়ার উপর ভিত্তি করে অন্যান্য আচরণের সময় নিয়ন্ত্রণ করতে এটি ব্যবহার করা যেতে পারে।

  • True — রোবটটি ঘুরছে।

  • False — রোবটটি ঘুরছে না।

এই পদ্ধতিটি নিম্নলিখিত ড্রাইভট্রেন পদ্ধতিগুলির সাথে একত্রে কাজ করে যেগুলিতে wait প্যারামিটার রয়েছে: turn_for, turn_to_heading, এবং turn_to_rotation।

Usage:
drivetrain.is_turning()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

power#

পাওয়ার power দেখায়। পাওয়ার দেখায় ড্রাইভট্রেনটি কত দ্রুত শক্তি ব্যবহার করছে।

পাওয়ারের মান বেশি হওয়ার অর্থ হলো ড্রাইভট্রেইনটি দ্রুত শক্তি ব্যবহার করছে। এমনটা হতে পারে যখন রোবট কোনো বস্তুকে ধাক্কা দেয় অথবা আটকে যাওয়ার পর নড়াচড়া করার চেষ্টা করে।

এটি নড়াচড়া তুলনা করতে বা ড্রাইভট্রেনটি সমস্যায় পড়ছে কিনা তা পরীক্ষা করতে ব্যবহার করা যেতে পারে। যদি পাওয়ার বেশি থাকে, তাহলে ড্রাইভট্রেনটি গরম হয়ে যেতে পারে অথবা কম দক্ষতার সাথে শক্তি ব্যবহার করতে পারে।

Usage:
drivetrain.power()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

torque#

টর্ক দেখায় যে চাকা ঘোরার সময় ড্রাইভট্রেন কতটা জোরে ধাক্কা দিতে বা টানতে পারে।

torque ড্রাইভট্রেন কী পরিমাণ টর্ক ব্যবহার করছে তা দেখায়, যা নিউটন-মিটার (Nm) বা ইঞ্চি-পাউন্ড (InLb) এককে পরিমাপ করা হয়।

টর্কের মান বেশি হওয়ার অর্থ হলো ড্রাইভট্রেনটি আরও জোরে ধাক্কা দিচ্ছে বা টানছে। এমনটা হতে পারে যখন রোবট কোনো বস্তুকে ধাক্কা দেয় অথবা আটকে যাওয়ার পর নড়াচড়া করার চেষ্টা করে।

ড্রাইভট্রেনটি ঠিকমতো কাজ করছে কিনা তা পরীক্ষা করতে অথবা বিভিন্ন নড়াচড়ার জন্য কতটা ধাক্কা প্রয়োজন তা তুলনা করতে এটি ব্যবহার করা যেতে পারে।

Usage:
drivetrain.torque(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। টর্ক প্রদানের একক: TorqueUnits.NM (নিউটন মিটার, ডিফল্ট) অথবা TorqueUnits.INLB (ইঞ্চি পাউন্ড)।

efficiency#

ড্রাইভট্রেইনটি efficiency শতাংশ হিসাবে দেখায়।

দক্ষতা দেখায় যে ড্রাইভট্রেনের শক্তির কতটা চলাচলের জন্য ব্যবহৃত হচ্ছে। দক্ষতার মান যত বেশি হবে, ড্রাইভট্রেনের শক্তির বেশি অংশ চলাচলের জন্য ব্যবহৃত হচ্ছে তা তত বেশি হবে। দক্ষতার মান কম হতে পারে যখন ড্রাইভট্রেন কঠোর পরিশ্রম করেও খুব বেশি নড়াচড়া করে না, যেমন যখন রোবটটি আটকে যায় বা কোনো বস্তুকে ধাক্কা দেয়।

এটি নড়াচড়া তুলনা করতে অথবা ড্রাইভট্রেনটি চলাচলের জন্য শক্তি ব্যবহার না করে অপচয় করছে কিনা তা পরীক্ষা করতে ব্যবহার করা যেতে পারে।

Usage:
drivetrain.efficiency()

প্যারামিটার

বর্ণনা

এই পদ্ধতিতে কোনো প্যারামিটার নেই।

temperature#

temperature নির্বাচিত তাপমাত্রা এককে ড্রাইভট্রেনের গড় তাপমাত্রা ফেরত দেয়।

তাপমাত্রা থেকে বোঝা যায় ড্রাইভট্রেইন মোটরগুলো কতটা গরম। তাপমাত্রা বেশি হওয়ার অর্থ হলো, কাজ করার সময় মোটরগুলো গরম হচ্ছে। পূর্ণ কর্মক্ষমতায় কাজ চালিয়ে যাওয়ার জন্য মোটরগুলোর তাপমাত্রা ৫৫° সেলসিয়াসের নিচে থাকা উচিত।

মোটরগুলো অতিরিক্ত গরম হয়ে গেলে, নিজেদের সুরক্ষার জন্য সেগুলো সর্বোচ্চ কারেন্ট কমিয়ে দেবে। ৭০° সেলসিয়াস তাপমাত্রায়, মোটরগুলো ঠান্ডা না হওয়া পর্যন্ত চলা বন্ধ করে দেবে।

বারবার নড়াচড়া, দীর্ঘক্ষণ চলা, বা কোনো বস্তুকে ধাক্কা দেওয়ার সময় ড্রাইভট্রেনটি অতিরিক্ত গরম হয়ে যাচ্ছে কিনা, তা পরীক্ষা করতে এটি ব্যবহার করা যেতে পারে।

Usage:
drivetrain.temperature(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। তাপমাত্রা যে এককে ফেরত দেওয়া হবে: TemperatureUnits.CELSIUS (ডিফল্ট) অথবা TemperatureUnits.FAHRENHEIT।

নির্মাণকারী#

কোডে DriveTrain এবং SmartDrive SmartDrive

ড্রাইভট্রেন তৈরি করার আগে কমপক্ষে দুটি Motor অথবা MotorGroup অবজেক্ট তৈরি করতে হবে।

DriveTrain#

DriveTrain একটি ড্রাইভট্রেন তৈরি করে যেখানে কোন জাইরো সেন্সর বা ইনার্শিয়াল সেন্সর নেই।

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

প্যারামিটার

বর্ণনা

lm

বাম মোটর অথবা মোটর গ্রুপ।

rm

ডান মোটর অথবা মোটর গ্রুপ।

wheelTravel

ঐচ্ছিক। ড্রাইভট্রেন চাকাগুলোর পরিধি। পূর্বনির্ধারিত মান হলো ৩০০ মিলিমিটার।

trackWidth

ঐচ্ছিক। বাম ও ডান চাকার মধ্যবর্তী প্রস্থ। পূর্বনির্ধারিত মান হলো ৩২০ মিলিমিটার।

wheelBase

ঐচ্ছিক। সামনের ও পেছনের চাকার মধ্যবর্তী দূরত্ব। এর স্বাভাবিক মান হলো ৩২০ মিলিমিটার।

units

ঐচ্ছিক। wheelTravel, trackWidth, এবং wheelBaseএর জন্য একক: MM (মিলিমিটার, ডিফল্ট), INCHES, অথবা DistanceUnits.CM (সেন্টিমিটার)।

externalGearRatio

ঐচ্ছিক। গিয়ার ব্যবহার করা হলে, ড্রাইভের দূরত্ব সমন্বয় করার জন্য ব্যবহৃত গিয়ার অনুপাত। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float) হতে পারে। ডিফল্ট মান হলো ১.০।

# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)

'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

# Create two motor group objects for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT3, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

SmartDrive#

SmartDrive একটি জাইরো সেন্সর অথবা ইনার্শিয়াল সেন্সর দিয়ে একটি ড্রাইভট্রেন তৈরি করে।

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

প্যারামিটার

বর্ণনা

lm

বাম মোটর অথবা মোটর গ্রুপ।

rm

ডান মোটর অথবা মোটর গ্রুপ।

g

ড্রাইভট্রেন দ্বারা ব্যবহৃত জাইরো সেন্সর অথবা ইনার্শিয়াল সেন্সর।

wheelTravel

ঐচ্ছিক। ড্রাইভট্রেন চাকাগুলোর পরিধি। পূর্বনির্ধারিত মান হলো ৩০০ মিলিমিটার।

trackWidth

ঐচ্ছিক। বাম ও ডান চাকার মধ্যবর্তী প্রস্থ। পূর্বনির্ধারিত মান হলো ৩২০ মিলিমিটার।

wheelBase

ঐচ্ছিক। সামনের ও পেছনের চাকার মধ্যবর্তী দূরত্ব। এর স্বাভাবিক মান হলো ৩২০ মিলিমিটার।

units

ঐচ্ছিক। wheelTravel, trackWidth, এবং wheelBaseএর জন্য একক: MM (মিলিমিটার, ডিফল্ট), INCHES, অথবা DistanceUnits.CM (সেন্টিমিটার)।

externalGearRatio

ঐচ্ছিক। গিয়ার ব্যবহার করা হলে, ড্রাইভের দূরত্ব সমন্বয় করার জন্য ব্যবহৃত গিয়ার অনুপাত। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float) হতে পারে। ডিফল্ট মান হলো ১.০।

# Create the Inertial Sensor
brain_inertial = Inertial()

# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)

# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)

একাধিক মোটর ব্যবহার করে স্মার্ট ড্রাইভট্রেন তৈরি করার ক্ষেত্রে, মোটরগুলোকে একটি গ্রুপে অন্তর্ভুক্ত করার আগে সেগুলোকে আলাদাভাবে তৈরি করতে হবে।

# Create the Inertial Sensor
brain_inertial = Inertial()

# Create two motor groups for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)