ড্রাইভট্রেন#
ভূমিকা#
VEX V5 রোবটটি চলতে ও ঘুরতে একটি ড্রাইভট্রেন ব্যবহার করে। ড্রাইভট্রেনটি মোটর এবং চাকা দিয়ে গঠিত, যা রোবটটিকে চালনা করার জন্য একত্রে কাজ করে।
একটি কনফিগার করা ড্রাইভট্রেন একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, জাইরো সেন্সর ব্যবহার করতে পারে অথবা কোনো সেন্সর ব্যবহার নাও করতে পারে। যখন একটি সেন্সর ব্যবহার করা হয়, তখন ড্রাইভট্রেনটি রোবটকে নির্ভুলভাবে চলতে এবং ঘুরতে সাহায্য করার জন্য এটি ব্যবহার করে। প্রতিটি প্রকল্পের শুরুতে, ড্রাইভট্রেন স্বয়ংক্রিয়ভাবে সেন্সরটি ক্যালিব্রেট করে। ক্যালিব্রেশনের সময় রোবটকে স্থির রাখুন, যাতে রোবটটি সঠিকভাবে চলতে এবং ঘুরতে পারে।
ড্রাইভট্রেন কোড করার অনেক উপায় আছে। এই পৃষ্ঠায় উদাহরণস্বরূপ ড্রাইভট্রেনের নাম হিসেবে 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– রোবট কতটা জোরালোভাবে তার মোড় সংশোধন করবে তা পরিবর্তন করে।set_turn_direction_reverse– স্মার্ট ড্রাইভট্রেনের মোড় নেওয়ার দিক বিপরীত হবে কিনা তা পরিবর্তন করে।
গেটার্স — ড্রাইভট্রেনের অবস্থা পরীক্ষা করুন।
is_done— রোবটটির চলাচল শেষ হয়েছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।is_moving— রোবটটি চলছে কিনা, তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়।heading— রোবটের বর্তমান হেডিং 0 থেকে 359.99 ডিগ্রির মধ্যে ফেরত দেয়।rotation— রোবটের বর্তমান ঘূর্ণন ফেরত দেয়।velocity— রোবটটি কত দ্রুত চলছে তা ফেরত দেয়।current— ড্রাইভট্রেন কী পরিমাণ বৈদ্যুতিক কারেন্ট ব্যবহার করছে তা ফেরত দেয়।power— ড্রাইভট্রেনটি কত দ্রুত শক্তি ব্যবহার করছে তা ফেরত দেয়।torque— ড্রাইভট্রেন কী পরিমাণ টর্ক ব্যবহার করছে তা ফেরত দেয়।efficiency— ড্রাইভট্রেনটি কতটা দক্ষতার সাথে শক্তি ব্যবহার করছে তা ফেরত দেয়।temperature— ড্রাইভট্রেনটি কতটা উষ্ণ তা ফেরত দেয়।get_timeout– বর্তমান টাইমআউট সেটিং ফেরত দেয়।
নির্মাতা – ম্যানুয়ালি ড্রাইভট্রেন তৈরি এবং কনফিগার করুন।
DriveTrain– ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, বা জাইরো সেন্সর ছাড়া একটি ড্রাইভট্রেন তৈরি করে।SmartDrive– একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা একটি ড্রাইভট্রেন তৈরি করে।
কর্ম#
drive#
ড্রাইভ drive রোবটটিকে অনির্দিষ্টকালের জন্য সামনে বা পেছনে চালায়। রোবটটি ততক্ষণ চলতে থাকবে যতক্ষণ না এটিকে মোড় নেওয়া বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়। আরপিএম (RPM) বা ডিগ্রি প্রতি সেকেন্ডের সীমা ড্রাইভট্রেনের গিয়ার অনুপাতের মাধ্যমে পরিবর্তন করা হয়।
Usage:
drivetrain.drive(direction, velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে চলে: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)
drive_for#
drive_for রোবটটিকে একটি নির্দিষ্ট দূরত্ব পর্যন্ত সামনে বা পেছনে চালনা করে। পরবর্তী কোড লাইনটি চলার আগে, রোবটটির চলাচল শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে। RPM বা ডিগ্রি প্রতি সেকেন্ডের সীমাটি ড্রাইভট্রেনের গিয়ার রেশিও দ্বারা পরিবর্তিত হয়।
Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে চলে: |
|
রোবটটি যে দূরত্ব অতিক্রম করে। এটি একটি পূর্ণসংখ্যা |
|
ঐচ্ছিক। দূরত্বের একক: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)
turn#
turn রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়। রোবটটি ততক্ষণ ঘুরতে থাকবে যতক্ষণ না এটিকে চালানো বা থামানোর মতো অন্য কোনো কাজ দেওয়া হয়। আরপিএম বা ডিগ্রি প্রতি সেকেন্ডের সীমা ড্রাইভট্রেনের গিয়ার অনুপাত দ্বারা পরিবর্তিত হয়।
Usage:
drivetrain.turn(direction, velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে ঘোরে: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()
turn_for#
turn_for রোবটটিকে একটি নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়। এই মোড়টি রোবটের বর্তমান অবস্থানের সাপেক্ষে হয়। পরবর্তী কোড লাইনটি চলার আগে, রোবটের মোড় নেওয়া শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে। RPM বা ডিগ্রি প্রতি সেকেন্ডের সীমা ড্রাইভট্রেনের গিয়ার অনুপাত দ্বারা পরিবর্তিত হয়।
Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে ঘোরে: |
|
রোবটটি যত ডিগ্রি ঘোরে। এটি একটি পূর্ণসংখ্যা |
|
ঐচ্ছিক। ঘূর্ণনের একক: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)
turn_to_heading#
হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। turn_to_heading রোবটকে -359 থেকে 359 ডিগ্রির মধ্যে একটি নির্দিষ্ট হেডিং-এর দিকে ঘোরায়। রোবটটি লক্ষ্য হেডিং-এ পৌঁছানোর জন্য সবচেয়ে ছোট পথটি বেছে নেবে।
রোবটটির প্রারম্ভিক অভিমুখ ০ ডিগ্রি।
রোবটটির ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
দ্রষ্টব্য: এই ফাংশনটি শুধুমাত্র তখনই উপলব্ধ হবে যদি ডিভাইসেস উইন্ডোতে ড্রাইভট্রেনটি একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা থাকে।
Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যে দিকে মুখ করবে, তা ডিগ্রিতে পরিমাপ করতে হবে। এটি |
|
ঐচ্ছিক। শিরোনামের একক: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# 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)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যে ঘূর্ণন মানে (ডিগ্রি বা পাক সংখ্যায়) ঘুরবে। এটি |
|
ঐচ্ছিক। ঘূর্ণনের একক: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# 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)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। রোবটটি কীভাবে থামবে:
|
# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
calibrate_drivetrain#
calibrate_drivetrain একটি বিল্ট-ইন ফাংশন যা ড্রাইভট্রেনের কনফিগার করা ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর ক্যালিব্রেট করে।
ক্যালিব্রেশন সেন্সরকে নড়াচড়া সঠিকভাবে পরিমাপ করতে সাহায্য করে। ক্যালিব্রেশনের সময় রোবটটিকে প্রায় ২ সেকেন্ডের জন্য স্থির রাখুন। ক্যালিব্রেশনের সময় রোবটটি নড়াচড়া করলে, সেন্সরটি নড়াচড়া সঠিকভাবে পরিমাপ করতে নাও পারে।
পরবর্তী কোড লাইনটি চলার আগে প্রজেক্টটি ক্যালিব্রেশন সম্পন্ন হওয়া পর্যন্ত অপেক্ষা করবে।
দ্রষ্টব্য: এই ফাংশনটি শুধুমাত্র তখনই উপলব্ধ হবে যদি ডিভাইসেস উইন্ডোতে ড্রাইভট্রেনটি একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা থাকে।
Usage:
calibrate_drivetrain()
প্যারামিটার |
বর্ণনা |
|---|---|
এই ফাংশনটির কোনো প্যারামিটার নেই। |
মিউটেটর#
set_drive_velocity#
set_drive_velocity set_drive_velocity রোবটকে বলে দেয় সে কত দ্রুত চলবে। উচ্চতর শতাংশ রোবটকে আরও দ্রুত এবং নিম্নতর শতাংশ রোবটকে আরও ধীরে চালায়। RPM বা ডিগ্রি প্রতি সেকেন্ডের সীমা ড্রাইভট্রেনের গিয়ার অনুপাত দ্বারা পরিবর্তিত হয়।
প্রতিটি প্রকল্প ডিফল্টরূপে রোবটের ৫০% গতিতে চলার মাধ্যমে শুরু হয়।
দ্রষ্টব্য: উচ্চ বেগ রোবটকে দ্রুত চলতে সাহায্য করে, কিন্তু এর নির্ভুলতা কম হতে পারে। কম বেগ রোবটকে ধীরে চলতে সাহায্য করে, কিন্তু এর নির্ভুলতা বেশি হতে পারে।
Usage:
drivetrain.set_drive_velocity(velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
|
|
ঐচ্ছিক। বেগের একক: |
# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)
set_turn_velocity#
set_turn_velocity set_turn_velocity রোবটকে বলে দেয় সে কত দ্রুত ঘুরবে। উচ্চতর শতাংশ রোবটকে দ্রুত ঘোরায় এবং নিম্নতর শতাংশ রোবটকে ধীরে ঘোরায়। RPM বা ডিগ্রি প্রতি সেকেন্ডের সীমা ড্রাইভট্রেনের গিয়ার অনুপাত দ্বারা পরিবর্তিত হয়।
প্রতিটি প্রকল্প ডিফল্টরূপে রোবটের ৫০% গতিতে ঘোরার মাধ্যমে শুরু হয়।
দ্রষ্টব্য: উচ্চ বেগ রোবটকে দ্রুত ঘোরাতে পারে, কিন্তু তা কম নির্ভুল হতে পারে। নিম্ন বেগ রোবটকে ধীরে ঘোরাতে পারে, কিন্তু তা আরও নির্ভুল হতে পারে।
Usage:
drivetrain.set_turn_velocity(velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
|
|
ঐচ্ছিক। বেগের একক: |
# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)
set_stopping#
set_stopping নির্ধারণ করে রোবটটি কীভাবে চলা বন্ধ করবে: ব্রেক করে, গতি না কমিয়ে, বা থেমে গিয়ে।
Usage:
drivetrain.set_stopping(mode)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেভাবে থামবে:
|
এই পদ্ধতি ব্যবহার না করা হলে, রোবটটি থামার সময় BRAKE ব্যবহার করবে।
set_timeout#
set_timeout নির্ধারণ করে যে রোবটটি একটি মুভমেন্ট শেষ করার জন্য কত সেকেন্ড চেষ্টা করবে। যদি রোবটটি সেই সময়ের মধ্যে কাজটি শেষ করতে না পারে, তবে এটি চেষ্টা করা বন্ধ করে দেবে এবং কোডের পরবর্তী লাইনে চলে যাবে। এটি রোবটকে কোনো একটি মুভমেন্টে আটকে যাওয়া থেকে রক্ষা করে।
Usage:
drivetrain.set_timeout(value, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি একটি নড়াচড়া শেষ করার জন্য যে পরিমাণ সময় চেষ্টা করতে পারে। এটি একটি ধনাত্মক |
|
ঐচ্ছিক। সময়ের একক: |
set_heading#
হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। set_heading রোবটের বর্তমান হেডিং পরিবর্তন করে একটি নতুন হেডিং মানে সেট করে।
উদাহরণস্বরূপ, যদি রোবটটি ডানদিকে মুখ করে থাকে, তবে হেডিং ০ ডিগ্রিতে সেট করলে সেই ডানমুখী অবস্থানটিই নতুন ০ ডিগ্রি হয়ে যায়। এরপর রোবটটি সেই নতুন হেডিং-এর উপর ভিত্তি করে অন্যান্য অবস্থানে ঘুরতে পারে।
দ্রষ্টব্য: এই পদ্ধতিটি শুধুমাত্র তখনই উপলব্ধ হবে যদি ডিভাইসেস উইন্ডোতে ড্রাইভট্রেনটি একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা থাকে।
Usage:
drivetrain.set_heading(heading, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটের জন্য যে হেডিং ভ্যালুটি ডিগ্রি বা টার্নে সেট করতে হবে। এটি একটি পূর্ণসংখ্যা |
|
ঐচ্ছিক। হেডিং ইউনিট: |
# 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)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটের জন্য যে ঘূর্ণন মান ডিগ্রি বা পাক সংখ্যায় নির্ধারণ করতে হবে। এটি |
|
ঐচ্ছিক। ঘূর্ণনের একক: |
# 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)
প্যারামিটার |
বর্ণনা |
|---|---|
|
মোড় নেওয়ার সীমা, ডিগ্রিতে। এটি একটি পূর্ণসংখ্যা |
set_turn_constant#
set_turn_constant 1 রোবটের মোড় নেওয়ার সময় তার সংশোধনের তীব্রতা পরিবর্তন করে।
উচ্চতর মান রোবটকে আরও জোরালোভাবে মোড় নিতে সাহায্য করে। নিম্নতর মান রোবটকে আরও আলতোভাবে মোড় নিতে সাহায্য করে। ডিফল্ট মান হলো ১.০।
দ্রষ্টব্য: এই পদ্ধতিটি শুধুমাত্র তখনই উপলব্ধ হবে যদি ডিভাইসেস উইন্ডোতে ড্রাইভট্রেনটি একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা থাকে।
Usage:
drivetrain.set_turn_constant(value)
প্যারামিটার |
বর্ণনা |
|---|---|
|
টার্ন কনস্ট্যান্ট। এটি ০.১ থেকে ৪.০ পর্যন্ত একটি দশমিক সংখ্যা ( |
set_turn_direction_reverse#
set_turn_direction_reverse স্মার্ট ড্রাইভট্রেনের মোড় নেওয়ার দিক বিপরীত হবে কিনা তা পরিবর্তন করে।
কোডে ম্যানুয়ালি কনফিগার করার পর ড্রাইভট্রেনটি প্রত্যাশার বিপরীত দিকে ঘুরলে এটি ব্যবহার করা যেতে পারে। এই পদ্ধতিটি একটি SmartDrive তৈরি করার সময় reverse প্যারামিটারটিকে True -তে সেট করার মতোই কাজ করে।
দ্রষ্টব্য: এই পদ্ধতিটি শুধুমাত্র তখনই উপলব্ধ হবে যদি ডিভাইসেস উইন্ডোতে ড্রাইভট্রেনটি একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা থাকে।
Usage:
drivetrain.set_turn_direction_reverse(value)
প্যারামিটার |
বর্ণনা |
|---|---|
|
স্মার্ট ড্রাইভট্রেনের মোড় নেওয়ার দিক উল্টানো হবে কিনা: |
গেটার্স#
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— রোবটটি নড়ছে না।
ব্যবহার:
drivetrain.is_moving()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
heading#
হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। heading রোবটের বর্তমান হেডিং ০ থেকে ৩৫৯.৯৯ ডিগ্রির মধ্যে ফেরত দেয়।
রোবটটির প্রারম্ভিক অভিমুখ ০ ডিগ্রি।
দ্রষ্টব্য: এই পদ্ধতিটি শুধুমাত্র তখনই উপলব্ধ হবে যদি ডিভাইসেস উইন্ডোতে ড্রাইভট্রেনটি একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা থাকে।
Usage:
drivetrain.heading(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। দিক পরিবর্তনের একক: |
# 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)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। ঘূর্ণনের একক: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())
velocity#
বেগ velocity নির্দেশ করে রোবটটি কত দ্রুত চলছে।
এটি বেগ -100% থেকে 100% পর্যন্ত শতাংশ হিসাবে, RPM, অথবা VelocityUnits.DPS (ডিগ্রি প্রতি সেকেন্ড) হিসাবে ফেরত দিতে পারে। একটি ধনাত্মক মান মানে রোবটটি সামনের দিকে চলছে। একটি ঋণাত্মক মান মানে রোবটটি পিছনের দিকে চলছে।
Usage:
drivetrain.velocity(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। বেগের একক: |
current#
ড্রাইভট্রেনটি কী পরিমাণ বৈদ্যুতিক কারেন্ট ব্যবহার করছে তা কারেন্ট current দ্বারা দেখানো হয়, যা অ্যাম্পিয়ার (অ্যাম্পিয়ার) এককে পরিমাপ করা হয়। কারেন্ট হলো ড্রাইভট্রেনের মধ্য দিয়ে প্রবাহিত বিদ্যুতের পরিমাণ।
কারেন্টের মান বেশি হওয়ার অর্থ হলো ড্রাইভট্রেইনটি বেশি বিদ্যুৎ ব্যবহার করছে। রোবট যখন কোনো বস্তুকে ধাক্কা দেয় অথবা আটকে যাওয়ার পর নড়াচড়া করার চেষ্টা করে, তখন এমনটা হতে পারে।
চলাচলের সময় ড্রাইভট্রেনটি কোনো সমস্যায় পড়ছে কিনা, তা পরীক্ষা করতে এটি ব্যবহার করা যেতে পারে। যদি কারেন্ট বেশি থাকে, তাহলে ড্রাইভট্রেনটি গরম হয়ে যেতে পারে অথবা কম দক্ষতার সাথে শক্তি ব্যবহার করতে পারে।
Usage:
drivetrain.current(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। কারেন্ট ফেরত দেওয়ার একক: |
power#
পাওয়ার power দেখায়। পাওয়ার দেখায় ড্রাইভট্রেনটি কত দ্রুত শক্তি ব্যবহার করছে।
পাওয়ারের মান বেশি হওয়ার অর্থ হলো ড্রাইভট্রেইনটি দ্রুত শক্তি ব্যবহার করছে। এমনটা হতে পারে যখন রোবট কোনো বস্তুকে ধাক্কা দেয় অথবা আটকে যাওয়ার পর নড়াচড়া করার চেষ্টা করে।
এটি নড়াচড়া তুলনা করতে বা ড্রাইভট্রেনটি সমস্যায় পড়ছে কিনা তা পরীক্ষা করতে ব্যবহার করা যেতে পারে। যদি পাওয়ার বেশি থাকে, তাহলে ড্রাইভট্রেনটি গরম হয়ে যেতে পারে অথবা কম দক্ষতার সাথে শক্তি ব্যবহার করতে পারে।
Usage:
drivetrain.power()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
torque#
টর্ক দেখায় যে চাকা ঘোরার সময় ড্রাইভট্রেন কতটা জোরে ধাক্কা দিতে বা টানতে পারে।
torque ড্রাইভট্রেন কী পরিমাণ টর্ক ব্যবহার করছে তা দেখায়, যা নিউটন-মিটার (Nm) বা ইঞ্চি-পাউন্ড (InLb) এককে পরিমাপ করা হয়।
টর্কের মান বেশি হওয়ার অর্থ হলো ড্রাইভট্রেনটি আরও জোরে ধাক্কা দিচ্ছে বা টানছে। এমনটা হতে পারে যখন রোবট কোনো বস্তুকে ধাক্কা দেয় অথবা আটকে যাওয়ার পর নড়াচড়া করার চেষ্টা করে।
ড্রাইভট্রেনটি ঠিকমতো কাজ করছে কিনা তা পরীক্ষা করতে অথবা বিভিন্ন নড়াচড়ার জন্য কতটা ধাক্কা প্রয়োজন তা তুলনা করতে এটি ব্যবহার করা যেতে পারে।
Usage:
drivetrain.torque(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। টর্ক প্রদানের একক: |
efficiency#
ড্রাইভট্রেইনটি efficiency ০% থেকে ১% শতাংশ হিসাবে দেখায়।
দক্ষতা দেখায় যে ড্রাইভট্রেনের শক্তির কতটা চলাচলের জন্য ব্যবহৃত হচ্ছে। দক্ষতার মান যত বেশি হবে, ড্রাইভট্রেনের শক্তির বেশি অংশ চলাচলের জন্য ব্যবহৃত হচ্ছে তা তত বেশি হবে। দক্ষতার মান কম হতে পারে যখন ড্রাইভট্রেন কঠোর পরিশ্রম করেও খুব বেশি নড়াচড়া করে না, যেমন যখন রোবটটি আটকে যায় বা কোনো বস্তুকে ধাক্কা দেয়।
এটি নড়াচড়া তুলনা করতে অথবা ড্রাইভট্রেনটি চলাচলের জন্য শক্তি ব্যবহার না করে অপচয় করছে কিনা তা পরীক্ষা করতে ব্যবহার করা যেতে পারে।
Usage:
drivetrain.efficiency()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
temperature#
temperature নির্বাচিত তাপমাত্রা এককে ড্রাইভট্রেনের গড় তাপমাত্রা ফেরত দেয়।
তাপমাত্রা থেকে বোঝা যায় ড্রাইভট্রেইন মোটরগুলো কতটা গরম। তাপমাত্রা বেশি হওয়ার অর্থ হলো, কাজ করার সময় মোটরগুলো গরম হচ্ছে। পূর্ণ কর্মক্ষমতায় কাজ চালিয়ে যাওয়ার জন্য মোটরগুলোর তাপমাত্রা ৫৫° সেলসিয়াসের নিচে থাকা উচিত।
মোটরগুলো অতিরিক্ত গরম হয়ে গেলে, নিজেদের সুরক্ষার জন্য সেগুলো সর্বোচ্চ কারেন্ট কমিয়ে দেবে। ৭০° সেলসিয়াস তাপমাত্রায়, মোটরগুলো ঠান্ডা না হওয়া পর্যন্ত চলা বন্ধ করে দেবে।
বারবার নড়াচড়া, দীর্ঘক্ষণ চলা, বা কোনো বস্তুকে ধাক্কা দেওয়ার সময় ড্রাইভট্রেনটি অতিরিক্ত গরম হয়ে যাচ্ছে কিনা, তা পরীক্ষা করতে এটি ব্যবহার করা যেতে পারে।
Usage:
drivetrain.temperature(units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
ঐচ্ছিক। তাপমাত্রা যে এককে ফেরত দেওয়া হবে: |
get_timeout#
get_timeout বর্তমানে সেট করা timeout মিলিসেকেন্ডে ফেরত দেয়।
Usage:
drivetrain.get_timeout()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
নির্মাণকারী#
VEXcode-এর বাইরে একটি ড্রাইভট্রেন কনফিগার করার জন্য প্রয়োজনীয় DriveTrain এবং SmartDrive অবজেক্টগুলো তৈরি করতে কনস্ট্রাক্টর ব্যবহার হয়।
ড্রাইভট্রেন তৈরি করার আগে কমপক্ষে দুটি Motor অথবা MotorGroup অবজেক্ট তৈরি করতে হবে।
DriveTrain#
DriveTrain একটি ড্রাইভট্রেন তৈরি করে ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, বা জাইরো সেন্সর ছাড়া।
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
প্যারামিটার |
বর্ণনা |
|---|---|
|
বাম মোটর অথবা মোটর গ্রুপ। |
|
ডান মোটর অথবা মোটর গ্রুপ। |
|
ঐচ্ছিক। ড্রাইভট্রেন চাকাগুলোর পরিধি। পূর্বনির্ধারিত মান হলো ৩০০ মিলিমিটার। |
|
ঐচ্ছিক। বাম ও ডান চাকার মধ্যবর্তী প্রস্থ। পূর্বনির্ধারিত মান হলো ৩২০ মিলিমিটার। |
|
ঐচ্ছিক। সামনের ও পেছনের চাকার মধ্যবর্তী দূরত্ব। এর স্বাভাবিক মান হলো ৩২০ মিলিমিটার। |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। গিয়ার ব্যবহার করা হলে, ড্রাইভের দূরত্ব সমন্বয় করার জন্য ব্যবহৃত গিয়ার অনুপাত। এটি একটি পূর্ণসংখ্যা |
# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)
# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)
SmartDrive#
SmartDrive একটি ড্রাইভট্রেন তৈরি করে যা একটি ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর দিয়ে কনফিগার করা হয়েছে।
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
প্যারামিটার |
বর্ণনা |
|---|---|
|
বাম মোটর অথবা মোটর গ্রুপ। |
|
ডান মোটর অথবা মোটর গ্রুপ। |
|
ড্রাইভট্রেন দ্বারা ব্যবহৃত ইনার্শিয়াল সেন্সর, জিপিএস সেন্সর, অথবা জাইরো সেন্সর। |
|
ঐচ্ছিক। ড্রাইভট্রেন চাকাগুলোর পরিধি। পূর্বনির্ধারিত মান হলো ৩০০ মিলিমিটার। |
|
ঐচ্ছিক। বাম ও ডান চাকার মধ্যবর্তী প্রস্থ। পূর্বনির্ধারিত মান হলো ৩২০ মিলিমিটার। |
|
ঐচ্ছিক। সামনের ও পেছনের চাকার মধ্যবর্তী দূরত্ব। এর স্বাভাবিক মান হলো ৩২০ মিলিমিটার। |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। গিয়ার ব্যবহার করা হলে, ড্রাইভের দূরত্ব সমন্বয় করার জন্য ব্যবহৃত গিয়ার অনুপাত। এটি একটি পূর্ণসংখ্যা |
# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)
# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)
# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)
"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)