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

ভূমিকা#

drivetrain একটি রোবটের চালনা ও মোড় নেওয়ার পদ্ধতি নিয়ন্ত্রণ করে। একটি ড্রাইভট্রেন মোটর এবং চাকা দিয়ে গঠিত, যা রোবটটিকে চালনা করার জন্য একত্রে কাজ করে।

একটি drivetrain হেডিং-ভিত্তিক বা ঘূর্ণন-ভিত্তিক মোড় নেওয়ার জন্য ইনার্শিয়াল সেন্সর বা জাইরো সেন্সর ব্যবহার করে না। এটি সামনে বা পিছনে যেতে পারে এবং বাম বা ডানে ঘুরতে পারে, কিন্তু এটি একটি নির্দিষ্ট হেডিং বা ঘূর্ণনে ঘুরতে পারে না। হেডিং-ভিত্তিক এবং ঘূর্ণন-ভিত্তিক মোড় নেওয়ার জন্য, smartdrive ক্লাস ব্যবহার করুন।

উদ্ভূত শ্রেণী#

drivetrain ক্লাসটি নিম্নলিখিত ডিরাইভড ক্লাসগুলির জন্য একটি বেস ক্লাস হিসেবে কাজ করে:

  • smartdrive - এই ক্লাসটি হেডিং-ভিত্তিক এবং ঘূর্ণন-ভিত্তিক বাঁক সক্ষম করার জন্য ইনার্শিয়াল সেন্সর বা জাইরো সেন্সর সমর্থন যোগ করে।

ক্লাস কনস্ট্রাক্টর#

1 - বাম (&l) এবং ডান (&r) দিকের জন্য বিদ্যমান motor_group অবজেক্ট ব্যবহার করে একটি ড্রাইভট্রেন তৈরি করে।

drivetrain(
    motor_group      &l,
    motor_group      &r,
    double           wheelTravel = 320,
    double           trackWidth = 320,
    double           wheelBase = 130,
    distanceUnits    unit = mm,
    double           externalGearRatio = 1.0 );

2 - বাম (&l) এবং ডান (&r) দিকের জন্য বিদ্যমান motor অবজেক্ট ব্যবহার করে একটি ড্রাইভট্রেন তৈরি করে।

drivetrain(
    motor            &l,
    motor            &r,
    double           wheelTravel = 320,
    double           trackWidth = 320,
    double           wheelBase = 130,
    distanceUnits    unit = mm,
    double           externalGearRatio = 1.0 );

ক্লাস ডেস্ট্রাক্টর#

drivetrain অবজেক্টটি ধ্বংস করে এবং সংশ্লিষ্ট রিসোর্সসমূহ মুক্ত করে।

virtual ~drivetrain();

প্যারামিটার#

প্যারামিটার

প্রকার

বর্ণনা

&l / &r

motor_group / motor

বাম এবং ডান মোটর বা মোটর গ্রুপ। উভয় প্যারামিটার অবশ্যই একই ধরনের হতে হবে: হয় দুটি motor_group অবজেক্ট অথবা দুটি motor অবজেক্ট।

wheelTravel

double

ড্রাইভট্রেন চাকাগুলোর পরিধি। এর ডিফল্ট মান হলো 320

trackWidth

double

বাম এবং ডান চাকার মধ্যবর্তী দূরত্ব। এর ডিফল্ট মান হলো 320

wheelBase

double

সামনের ও পেছনের চাকার মধ্যবর্তী দূরত্ব। এর ডিফল্ট মান হলো 130।

unit

distanceUnits

wheelTravel, trackWidth, এবং wheelBaseএর একক হলো: mm (মিলিমিটার, ডিফল্ট) অথবা inches।

externalGearRatio

double

গিয়ার ব্যবহার করা হলে, ড্রাইভের দূরত্ব সমন্বয় করার জন্য এই গিয়ার অনুপাতটি ব্যবহৃত হয়। এর ডিফল্ট মান হলো 1.0।

উদাহরণ#

// Create the left and right motor objects
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);

// Create the drivetrain object
drivetrain myDrivetrain = drivetrain(
    leftMotor,  // left motor object
    rightMotor, // right motor object
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

সদস্যদের কার্যাবলী#

ড্রাইভট্রেন কোড করার অনেক উপায় আছে। নিচে সমস্ত drivetrain মেম্বার ফাংশনগুলোর একটি তালিকা দেওয়া হলো:

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

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

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

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

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

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

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

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

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

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

  • setTimeout - রোবট একটি মুভমেন্ট শেষ করার জন্য কত সেকেন্ড চেষ্টা করবে তা সেট করে।

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

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

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

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

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

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

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

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

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

  • voltage - ড্রাইভট্রেনে সরবরাহ করা বৈদ্যুতিক ভোল্টেজ ফেরত দেয়।

যেকোনো drivetrain মেম্বার ফাংশন কল করার আগে, একটি drivetrain অবজেক্ট তৈরি করতে হবে, যেমনটি নিচে দেখানো হয়েছে:

/* This constructor is required when using VS Code.
Drivetrain configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the left and right motor objects
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);

// Create the drivetrain object
drivetrain myDrivetrain = drivetrain(
    leftMotor,  // left motor object
    rightMotor, // right motor object
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

কর্ম#

ড্রাইভ#

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

Available Functions

1 - বর্তমানে কনফিগার করা ড্রাইভ বেগ ব্যবহার করে ড্রাইভগুলি।

void drive(
    directionType dir );

2 - নির্দিষ্ট গতিতে গাড়ি চালায়।

void drive(
    directionType dir,
    double        velocity,
    velocityUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

dir

directionType

রোবটটি যেদিকে চলে: forward বা reverse।

velocity

double

velocityUnits::pctব্যবহার করলে চালনার বেগ 0% থেকে 100%, rpmব্যবহার করলে 0 থেকে 600 rpm, অথবা dpsব্যবহার করলে 0 থেকে 3600 ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হয়। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান চালনার বেগে চলে।

units

velocityUnits

বেগের একক: velocityUnits::pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Notes
  • ড্রাইভ drive সাথে সাথেই প্রজেক্টটি কোডের পরবর্তী লাইনটি চালানো শুরু করবে।

  • stop কল না করা পর্যন্ত অথবা অন্য কোনো ড্রাইভট্রেন মুভমেন্ট ফাংশন (যেমন driveFor অথবা turn) এক্সিকিউট না করা পর্যন্ত ড্রাইভট্রেনটি চলতে থাকবে।

  • isDone এবং isMoving এর মতো ফাংশনগুলি driveএর ক্ষেত্রে প্রযোজ্য নয়, কারণ এটি লক্ষ্য-ভিত্তিক চলাচল ব্যবহার করে না (এর distance প্যারামিটার নেই)।

Examples
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

ড্রাইভফর#

driveFor রোবটকে একটি নির্দিষ্ট দূরত্ব পর্যন্ত সামনে বা পেছনে চালনা করে। ডিফল্টরূপে, পরবর্তী কোড লাইনটি চলার আগে প্রজেক্টটি রোবটের চলাচল শেষ হওয়া পর্যন্ত অপেক্ষা করবে। RPM বা DPS-এর সীমা ড্রাইভট্রেনের গিয়ার রেশিও দ্বারা পরিবর্তিত হয়।

Available Functions

1 - বর্তমানে কনফিগার করা চালনার বেগ ব্যবহার করে নির্দিষ্ট দিকে একটি দূরত্ব পর্যন্ত চালনা করে।

bool driveFor(
    directionType dir,
    double        distance,
    distanceUnits units,
    bool          waitForCompletion = true );

2 - বর্তমানে কনফিগার করা ড্রাইভ বেগ ব্যবহার করে দূরত্বের উপর নির্ভর করে একটি দিকে চালিত হয়।

bool driveFor(
    double        distance,
    distanceUnits units,
    bool          waitForCompletion = true );

3 - নির্দিষ্ট বেগে দূরত্বের উপর নির্ভর করে একটি নির্দিষ্ট দিকে চালিত হয়।

bool driveFor(
    double        distance,
    distanceUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

4 - নির্দিষ্ট দিকে নির্দিষ্ট বেগে একটি দূরত্ব অতিক্রম করে।

bool driveFor(
    directionType dir,
    double        distance,
    distanceUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

dir

directionType

রোবটটি যেদিকে চলে: forward বা reverse।

distance

double

রোবটটি যে দূরত্ব অতিক্রম করে।

units

distanceUnits

দূরত্বের একক: mm (মিলিমিটার), inches, বা cm (সেন্টিমিটার)।

velocity

double

velocityUnits::pctব্যবহার করলে চালনার বেগ 0% থেকে 100%, rpmব্যবহার করলে 0 থেকে 600 rpm, অথবা dpsব্যবহার করলে 0 থেকে 3600 ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হয়। যদি কোনো বেগ প্রদান করা না হয়, তবে রোবটটি বর্তমান চালনার বেগে চলে।

units_v

velocityUnits

বেগের একক: velocityUnits::pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

waitForCompletion

bool

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

Return Values

রোবটটি নির্ধারিত দূরত্বে পৌঁছেছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।

  • true - রোবটটি নির্ধারিত দূরত্বে পৌঁছেছে।

  • false - রোবটটি তার চলাচল শেষ করেনি, অথবা চলাচল সম্পূর্ণ হওয়ার আগেই ফাংশনটি রিটার্ন করেছে কারণ waitForCompletion false -এ সেট করা হয়েছিল।

Notes
  • driveFor চলাকালীন অন্য কোনো ড্রাইভট্রেন মুভমেন্ট ফাংশন (যেমন drive অথবা turnFor) সম্পাদন করলে বর্তমান মুভমেন্টটি বাধাগ্রস্ত হবে।

  • যেহেতু driveFor লক্ষ্য-ভিত্তিক (একটি distance প্যারামিটার ব্যবহার করে), isDone এবং isMoving এর মতো ফাংশন driveFor এর সাথে কাজ করে।

Examples
// Drive 200 mm, then back 200 mm
myDrivetrain.driveFor(forward, 200, mm);
myDrivetrain.driveFor(reverse, 200, mm);

পালা#

turn রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়। রোবটটি ততক্ষণ ঘুরতে থাকবে যতক্ষণ না এটিকে চালানো বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়। RPM বা DPS-এর সীমা ড্রাইভট্রেনের গিয়ার রেশিও দ্বারা পরিবর্তিত হয়।

Available Functions

1 - বর্তমানে কনফিগার করা বাঁকের বেগ ব্যবহার করে বাঁক নেয়।

void turn(
    turnType dir );

2 - নির্দিষ্ট বেগে মোড় নেয়।

void turn(
    turnType     dir,
    double       velocity,
    velocityUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

dir

turnType

রোবটটি যেদিকে ঘোরে: left বা right।

velocity

double

velocityUnits::pctব্যবহার করলে ঘোরার গতি 0% থেকে 100%, rpmব্যবহার করলে 0 থেকে 600 rpm, অথবা dpsব্যবহার করলে 0 থেকে 3600 ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। যদি কোনো গতি প্রদান করা না হয়, তবে রোবটটি বর্তমান ঘোরার গতিতে ঘোরে।

units

velocityUnits

বেগের একক: velocityUnits::pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

Return Values This function does not return a value. Notes
  • turn হলো একটি নন-ওয়েটিং ব্যবস্থা; কল করার সাথে সাথেই প্রজেক্টটি কোডের পরবর্তী লাইনটি চালানো শুরু করবে।

  • stop কল না করা পর্যন্ত অথবা অন্য কোনো ড্রাইভট্রেন মুভমেন্ট ফাংশন (যেমন turnFor অথবা drive) এক্সিকিউট না করা পর্যন্ত ড্রাইভট্রেনটি ঘুরতে থাকবে।

  • isDone এবং isMoving এর মতো ফাংশনগুলি turnএর জন্য প্রযোজ্য নয়, কারণ এটি লক্ষ্য-ভিত্তিক চলাচল ব্যবহার করে না (এর angle প্যারামিটার নেই)।

Examples
// Turn right, then left, then stop
myDrivetrain.turn(right);
wait(2, seconds);
myDrivetrain.turn(left);
wait(2, seconds);
myDrivetrain.stop();

টার্নফর#

turnFor রোবটকে একটি নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়। এই মোড়টি রোবটের বর্তমান অবস্থানের সাপেক্ষে হয়। ডিফল্টরূপে, পরবর্তী কোড লাইনটি চলার আগে রোবটের মোড় নেওয়া শেষ হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে। RPM বা DPS-এর সীমা ড্রাইভট্রেনের গিয়ার রেশিও দ্বারা পরিবর্তিত হয়।

Available Functions

1 - বর্তমানে কনফিগার করা বাঁকের বেগ ব্যবহার করে নির্দিষ্ট কোণে বাঁক নেয়।

bool turnFor(
    double        angle,
    rotationUnits units,
    bool          waitForCompletion = true );

2 - বর্তমানে কনফিগার করা বাঁকের বেগ ব্যবহার করে নির্দিষ্ট দিকে একটি কোণে ঘোরে।

bool turnFor(
    turnType      dir,
    double        angle,
    rotationUnits units,
    bool          waitForCompletion = true );

3 - নির্দিষ্ট বেগে নির্দিষ্ট কোণে মোড় নেয়।

bool turnFor(
    double        angle,
    rotationUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

4 - নির্দিষ্ট বেগে নির্দিষ্ট দিকে একটি কোণে মোড় নেয়।

bool turnFor(
    turnType      dir,
    double        angle,
    rotationUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

dir

turnType

রোবটটি যেদিকে ঘোরে: left বা right।

angle

double

রোবটটি যে কোণে ঘোরে।

units

rotationUnits

ঘূর্ণনের একক: deg (ডিগ্রি), rev (ঘূর্ণন), অথবা raw (র ইউনিট)। এক ঘূর্ণন ৩৬০ ডিগ্রির সমান।

velocity

double

velocityUnits::pctব্যবহার করলে ঘোরার গতি 0% থেকে 100%, rpmব্যবহার করলে 0 থেকে 600 rpm, অথবা dpsব্যবহার করলে 0 থেকে 3600 ডিগ্রি প্রতি সেকেন্ড পর্যন্ত হতে পারে। যদি কোনো গতি প্রদান করা না হয়, তবে রোবটটি বর্তমান ঘোরার গতিতে ঘোরে।

units_v

velocityUnits

বেগের একক: velocityUnits::pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

waitForCompletion

bool

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

Return Values

রোবটটি লক্ষ্যমাত্রার কোণে পৌঁছেছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।

  • true - রোবটটি লক্ষ্য কোণে পৌঁছেছে।

  • false - রোবটটি তার পালা শেষ করেনি, অথবা পালা সম্পূর্ণ হওয়ার আগেই ফাংশনটি রিটার্ন করেছে কারণ waitForCompletion false -এ সেট করা হয়েছিল।

Notes
  • turnFor চলাকালীন অন্য কোনো ড্রাইভট্রেন মুভমেন্ট ফাংশন (যেমন turn অথবা drive) সম্পাদন করলে বর্তমান মুভমেন্টটি বাধাগ্রস্ত হবে।

  • যেহেতু turnFor লক্ষ্য-ভিত্তিক (একটি angle প্যারামিটার ব্যবহার করে), isDone এবং isMoving এর মতো ফাংশনগুলি turnFor এর সাথে কাজ করে।

Examples
// Turn right then left
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
myDrivetrain.turnFor(left, 90, degrees);

থামুন#

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

Available Functions

1 - বর্তমানে কনফিগার করা থামানোর মোড ব্যবহার করে ড্রাইভট্রেন বন্ধ করে।

void stop();

2 - নির্দিষ্ট ব্রেক মোড ব্যবহার করে ড্রাইভট্রেন বন্ধ করে।

void stop(
    brakeType mode );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

mode

brakeType

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

  • brake - সাথে সাথে থেমে যায়।
  • coast - ধীরে ধীরে থেমে যায়।
  • hold - সাথে সাথে থেমে যায় এবং চাকাগুলোর অবস্থান ধরে রাখে।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Examples
// Drive forward, then coast to a stop
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);

মিউটেটর#

সেটড্রাইভভেলোসিটি#

setDriveVelocity setDriveVelocity রোবটকে বলে দেয় সে কত দ্রুত চলবে। উচ্চতর শতাংশ রোবটকে আরও দ্রুত এবং নিম্নতর শতাংশ রোবটকে আরও ধীরে চালায়। RPM বা DPS-এর ক্ষেত্রে, ড্রাইভট্রেনের গিয়ার রেশিও দ্বারা সীমা পরিবর্তন করা হয়।

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

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

Available Functions
void  setDriveVelocity(
  double velocity,
  velocityUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

velocity

double

velocityUnits::pctব্যবহার করলে চালনার গতি 0% থেকে 100%, rpmব্যবহার করলে 0 থেকে 600 rpm, অথবা dps ব্যবহার করলে 0 থেকে 3600 ডিগ্রি প্রতি সেকেন্ড।

units

velocityUnits

বেগের একক: velocityUnits::pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Notes
  • ফাংশন কলে কোনো নির্দিষ্ট বেগ প্রদান করা না থাকলে, ড্রাইভ বেগ পরবর্তী সমস্ত ড্রাইভট্রেন মুভমেন্ট ফাংশনে (যেমন drive এবং driveFor) প্রযোজ্য হবে।

Examples
// Drive forward, then coast to a stop
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);

সেটটার্নভেলোসিটি#

setTurnVelocity setTurnVelocity রোবটকে বলে দেয় সে কত দ্রুত ঘুরবে। উচ্চতর শতাংশ রোবটকে দ্রুত ঘোরায় এবং নিম্নতর শতাংশ রোবটকে ধীরে ঘোরায়। RPM বা DPS-এর ক্ষেত্রে, ড্রাইভট্রেনের গিয়ার রেশিও দ্বারা সীমা পরিবর্তন করা হয়।

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

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

Available Functions
void  setTurnVelocity(
  double velocity,
  velocityUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

velocity

double

velocityUnits::pctব্যবহার করলে ঘোরার গতি 0% থেকে 100%, rpmব্যবহার করলে 0 থেকে 600 rpm, অথবা dps ব্যবহার করলে 0 থেকে 3600 ডিগ্রি প্রতি সেকেন্ড।

units

velocityUnits

বেগের একক: percent বা pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Notes
  • ফাংশন কলে কোনো নির্দিষ্ট বেগ প্রদান করা না থাকলে, মোড় নেওয়ার বেগ পরবর্তী সমস্ত ড্রাইভট্রেন মোড় নেওয়ার ফাংশনগুলিতে (যেমন turn এবং turnFor) প্রযোজ্য হবে।

Examples
// Try default, slow, then fast
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(20, percent);
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(100, percent);
myDrivetrain.turnFor(right, 360, degrees);

সেটস্টপিং#

setStopping সেট করে রোবটটি কীভাবে থামবে: ব্রেক করে, গতি না বাড়িয়ে, বা স্থির হয়ে।

Available Functions
void setStopping(
  brakeType mode );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

mode

brakeType

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

  • brake - সাথে সাথে থেমে যায়।
  • coast - ধীরে ধীরে থেমে যায়।
  • hold - সাথে সাথে থেমে যায় এবং চাকাগুলোর অবস্থান ধরে রাখে।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Notes
  • ফাংশন কলে কোনো নির্দিষ্ট স্টপিং মোড প্রদান করা না থাকলে, এই স্টপিং মোড পরবর্তী সকল stop কলের ক্ষেত্রে প্রযোজ্য হবে।

setTimeout#

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

Available Functions
void  setTimeout(
  int32_t time,
  timeUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

time

int32_t

একটি নড়াচড়া শেষ করার জন্য রোবটটি যে পরিমাণ সময় চেষ্টা করতে পারে। এটি একটি ধনাত্মক পূর্ণ সংখ্যা হওয়া উচিত।

units

timeUnits

সময়ের একক: sec (সেকেন্ড) অথবা msec (মিলিসেকেন্ড)।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Notes
  • টাইমআউট শুধুমাত্র টার্গেট-ভিত্তিক ড্রাইভট্রেন মুভমেন্ট ফাংশনগুলিতে প্রযোজ্য (যেমন driveFor এবং turnFor)।

Examples
// Start turning if driving takes too long
myDrivetrain.setTimeout(1, seconds);
myDrivetrain.driveFor(forward, 25, inches);
myDrivetrain.turnFor(right, 90, degrees);

গেটার্স#

সম্পন্ন হয়েছে#

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

Available Functions
bool isDone( void );

Parameters

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

Return Values
  • true - রোবটটির চলাচল শেষ হয়েছে।

  • false - রোবটটি এখনও চলছে।

Notes
  • isDone লক্ষ্য-ভিত্তিক ড্রাইভট্রেন মুভমেন্টের সাথে সামঞ্জস্যপূর্ণ (যেসব ফাংশন একটি লক্ষ্যের দিকে যায়, যেমন driveFor এবং turnFor)।

  • isDone , drive এবং turn এর মতো ফাংশনগুলির সাথে সামঞ্জস্যপূর্ণ নয়, কারণ তারা লক্ষ্য-ভিত্তিক চলাচল ব্যবহার করে না।

সরছে#

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

Available Functions
virtual bool isMoving( void );

Parameters

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

Return Values
  • true - রোবটটি চলছে।

  • false - রোবটটি নড়ছে না।

Notes
  • isMoving টার্গেট-ভিত্তিক ড্রাইভট্রেন মুভমেন্টের সাথে সামঞ্জস্যপূর্ণ (যেসব ফাংশন একটি টার্গেটের দিকে যায়, যেমন driveFor এবং turnFor)।

  • isMoving , drive এবং turn এর মতো ফাংশনগুলির সাথে সামঞ্জস্যপূর্ণ নয়, কারণ তারা লক্ষ্য-ভিত্তিক চলাচল ব্যবহার করে না।

বেগ#

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

ধনাত্মক মান মানে রোবটটি সামনের দিকে চলছে। ঋণাত্মক মান মানে রোবটটি পেছনের দিকে চলছে।

Available Functions
double velocity(
  velocityUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

velocityUnits

বেগের একক: percent বা pct (শতাংশ), rpm (প্রতি মিনিটে ঘূর্ণন), অথবা dps (প্রতি সেকেন্ডে ডিগ্রি)।

Return Values

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

Examples
// Show velocity before and during motion
Brain.Screen.print("Resting: %f", myDrivetrain.velocity(percent));
myDrivetrain.drive(forward, 100, velocityUnits::pct);
wait(1, seconds);
Brain.Screen.newLine();
Brain.Screen.print("Moving: %f", myDrivetrain.velocity(percent));
myDrivetrain.stop();

বর্তমান#

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

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

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

Available Functions

1 - ড্রাইভট্রেনের বৈদ্যুতিক প্রবাহ অ্যাম্পিয়ারে ফেরত দেয়।

double current(
    currentUnits units = currentUnits::amp );

2 - ড্রাইভট্রেনের বৈদ্যুতিক প্রবাহকে সর্বোচ্চের শতাংশ হিসাবে ফেরত দেয়।

double current(
    percentUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

currentUnits

ইনপুট কারেন্ট ফেরত দেওয়ার একক: amp (অ্যাম্পিয়ার, ডিফল্ট)।

units

percentUnits

ফেরত দেওয়ার একক: percent বা pct।

Return Values

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

ক্ষমতা#

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

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

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

Available Functions
double power(
  powerUnits units = powerUnits::watt );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

powerUnits

পাওয়ার ইউনিট: watt (ওয়াট, ডিফল্ট)।

Return Values

ড্রাইভট্রেইন শক্তিকে ওয়াটে double হিসেবে ফেরত দেয়।

টর্ক#

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

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

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

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

Available Functions
double torque(
  torqueUnits units = torqueUnits::nm );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

torqueUnits

টর্ক প্রদানের একক: Nm (নিউটন মিটার, ডিফল্ট) অথবা InLb (ইঞ্চি পাউন্ড)।

Return Values

ড্রাইভট্রেইন টর্ককে নির্বাচিত এককে double হিসেবে ফেরত দেয়।

দক্ষতা#

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

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

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

Available Functions
double efficiency(
  percentUnits units = percentUnits::pct );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

percentUnits

দক্ষতা ফেরত দেওয়ার একক: percent বা pct (ডিফল্ট)।

Return Values

নির্বাচিত ইউনিটে ড্রাইভট্রেন দক্ষতা double হিসাবে ফেরত দেয়।

তাপমাত্রা#

temperature ড্রাইভট্রেনের গড় তাপমাত্রা ০% থেকে ১০০% পর্যন্ত শতাংশ হিসাবে ফেরত দেয়।

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

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

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

Available Functions
double temperature(
  percentUnits units );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

percentUnits

তাপমাত্রা ফেরত দেওয়ার একক: percent বা pct।

Return Values

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

Notes
  • 50% এর একটি ফেরত মান নির্দেশ করে যে গড় মোটর তাপমাত্রা আনুমানিক 45°C (113°F)।

  • ড্রাইভট্রেনের সাধারণ কার্যকরী তাপমাত্রার পরিসীমা হল প্রায় 20°C (68°F) থেকে 70°C (158°F)।

ভোল্টেজ#

voltage ড্রাইভট্রেনে সরবরাহকৃত বৈদ্যুতিক ভোল্টেজ ফিরিয়ে দেয়।

ভোল্টেজ হলো ড্রাইভট্রেন মোটরগুলিতে সরবরাহ করা বৈদ্যুতিক চাপ। ড্রাইভট্রেন কীভাবে বৈদ্যুতিক শক্তি ব্যবহার করছে তা বোঝার জন্য এটিকে কারেন্ট এবং পাওয়ারের মানের সাথে ব্যবহার করা যেতে পারে।

Available Functions
double  voltage(
  voltageUnits units = voltageUnits::volt );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

units

voltageUnits

ভোল্টেজ ফেরত দেওয়ার একক: volt (ভোল্ট, ডিফল্ট) অথবা voltageUnits::mV (মিলিভোল্ট)।

Return Values

ড্রাইভট্রেন ভোল্টেজকে নির্বাচিত এককে double হিসেবে ফেরত দেয়।