রোবট-নির্দিষ্ট পাইথন#

ভূমিকা#

হিরো বট ফ্লেক্স-এ একটি ক্ল মোটর, একটি আর্ম মোটর, একটি এআই ভিশন সেন্সর, একটি ডিসটেন্স সেন্সর এবং একটি গেম পজিশনিং সিস্টেম (জিপিএস) সেন্সর অন্তর্ভুক্ত রয়েছে।

V5 26-27 ওভাররাইড প্লেগ্রাউন্ডে সমস্ত স্ট্যান্ডার্ড VEXcode VR পদ্ধতি ব্যবহারের জন্য উপলব্ধ।

নিম্নে সকল উপলব্ধ রোবট-নির্দিষ্ট পদ্ধতির একটি তালিকা দেওয়া হলো:

ড্রাইভট্রেন – রোবটটিকে চালনা ও ঘোরানোর কাজ করে।

  • কর্ম

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

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

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

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

    • turn_to_heading — রোবটটিকে -359 থেকে 359 ডিগ্রির মধ্যে একটি নির্দিষ্ট দিকে মুখ করে ঘোরায়।

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

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

  • Mutators

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

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

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

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

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

  • গেটার্স

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

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

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

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

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

গতি – রোবটের মোটরগুলোকে চালনা ও অনুসরণ করা।

  • কর্ম

    • spin — একটি মোটরকে অনির্দিষ্টকালের জন্য সামনে বা পিছনে ঘোরায়।

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

    • spin_to_position — একটি মোটরকে একটি নির্দিষ্ট অবস্থানে ঘোরায়।

    • stop — মোটরের ঘূর্ণন থামিয়ে দেয়।

  • Mutators

    • set_position — মোটরের বর্তমান অবস্থান একটি নতুন মানে পরিবর্তন করে।

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

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

  • গেটার্স

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

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

    • position — মোটরের বর্তমান অবস্থান ফেরত দেয়।

    • velocity — মোটরটি কত দ্রুত ঘুরছে তা ফেরত দেয়।

এআই ভিশন – এআই ভিশন সেন্সর ব্যবহার করে বস্তুসমূহ ধারণ ও বিশ্লেষণ করুন।

  • গেটার্স

    • take_snapshot – একটি নির্দিষ্ট সিগনেচারের জন্য সনাক্ত করা অবজেক্টগুলির একটি টাপল ফেরত দেয়।

  • সম্পত্তিসমূহ

    • .width – সনাক্ত করা বস্তুর প্রস্থ, পিক্সেলে।

    • .height – সনাক্ত করা বস্তুর উচ্চতা পিক্সেলে।

    • .centerX – পিক্সেলে বস্তুর কেন্দ্রের X অবস্থান।

    • .centerY – পিক্সেলে বস্তুর কেন্দ্রের Y অবস্থান।

    • .originX – অবজেক্টের উপরের-বাম কোণার X অবস্থান, পিক্সেলে।

    • .originY – অবজেক্টের উপরের-বাম কোণার Y অবস্থান, পিক্সেলে।

    • .id – সনাক্তকৃত বস্তুর শ্রেণিবিন্যাস আইডি।

কনসোল – কনসোলে প্রিন্ট করুন এবং মানগুলো পর্যবেক্ষণ করুন।

  • প্রিন্ট

    • brain.screen.print — কনসোলে টেক্সট, সংখ্যা, অথবা ভেরিয়েবলের মান প্রদর্শন করে।

    • brain.screen.next_row — কনসোল কার্সারকে পরবর্তী সারির শুরুতে নিয়ে যায়।

    • brain.screen.clear_screen — কনসোল থেকে সমস্ত সারি মুছে ফেলে।

  • মনিটর

    • monitor_variable — মনিটর ট্যাবে এক বা একাধিক পূর্বনির্ধারিত ভেরিয়েবল যোগ করে।

    • monitor_sensor — মনিটর ট্যাবে এক বা একাধিক সেন্সর মান যোগ করে।

সংবেদন – রোবটের বিভিন্ন সেন্সর ব্যবহার করুন।

  • দূরত্ব

    • found_object – দূরত্ব সেন্সর সীমার মধ্যে কোনও বস্তু সনাক্ত করতে পেরেছে কিনা তা ফেরত দেয়।

    • object_distance – ডিস্টেন্স সেন্সর এবং নিকটতম শনাক্তকৃত বস্তুর মধ্যে দূরত্ব ফেরত দেয়।

  • জিপিএস

    • x_position – মাঠে থাকা GPS সেন্সরের বর্তমান x-স্থানাঙ্ক ফেরত দেয়।

    • y_position – মাঠে থাকা GPS সেন্সরের বর্তমান y-স্থানাঙ্ক ফেরত দেয়।

    • heading – GPS সেন্সরের উপর ভিত্তি করে রোবটটি বর্তমানে যে দিকে মুখ করে আছে তা ফেরত দেয়।

এই পৃষ্ঠার উদাহরণগুলিতে প্লেগ্রাউন্ডের প্রি-ম্যাচ চেকলিস্ট থেকে স্টার্টিং লোকেশন C ব্যবহার করা হয়েছে।

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

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

কর্ম#

ড্রাইভ#

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

Usage:
drivetrain.drive(direction)

প্যারামিটার

বর্ণনা

direction

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

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive(FORWARD)
    wait(0.5, SECONDS)
    drivetrain.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ড্রাইভের জন্য#

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

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

প্যারামিটার

বর্ণনা

direction

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

distance

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

units

ঐচ্ছিক। দূরত্বের একক: INCHES (ডিফল্ট) অথবা MM।

wait

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

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

পালা#

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

Usage:
drivetrain.turn(direction)

প্যারামিটার

বর্ণনা

direction

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

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn(LEFT)
    wait(0.78, SECONDS)
    drivetrain.stop()
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

পালা_জন্য#

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

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

প্যারামিটার

বর্ণনা

direction

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

angle

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

units

ঐচ্ছিক। কোণের একক: DEGREES (ডিফল্ট)।

wait

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

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

শিরোনামে ঘুরুন#

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

প্রারম্ভিক কোণ ০ ডিগ্রি।

Usage:
drivetrain.turn_to_heading(heading, units, wait)

প্যারামিটার

বর্ণনা

heading

রোবটটির অভিমুখ হবে -৩৫৯ থেকে ৩৫৯ ডিগ্রির মধ্যে।

units

ঐচ্ছিক। কোণের একক: DEGREES (ডিফল্ট)।

wait

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

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_to_heading(-110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ঘূর্ণনে পরিণত করুন#

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

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

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

Usage:
drivetrain.turn_to_rotation(rotation, units, wait)

প্যারামিটার

বর্ণনা

rotation

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

units

ঐচ্ছিক। কোণের একক: DEGREES (ডিফল্ট)।

wait

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

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_to_rotation(-110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

থামুন#

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

Usage:
drivetrain.stop()

প্যারামিটার

বর্ণনা

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

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn(LEFT)
    wait(0.78, SECONDS)
    drivetrain.stop()
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

মিউটেটর#

শিরোনাম সেট করুন#

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

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

Usage:
drivetrain.set_heading(heading, units)

প্যারামিটার

বর্ণনা

heading

রোবটের জন্য নির্ধারণ করার হেডিং মান, ডিগ্রিতে।

units

ঐচ্ছিক। কোণের একক: DEGREES (ডিফল্ট)।

def main():
    # Make facing the Neutral Goal the new heading
    drivetrain.set_heading(110, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ঘূর্ণন সেট করুন#

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

Usage:
drivetrain.set_rotation(rotation, units)

প্যারামিটার

বর্ণনা

rotation

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

units

ঐচ্ছিক। কোণের একক: DEGREES (ডিফল্ট)।

def main():
    # Make facing the Neutral Goal the new rotation
    drivetrain.set_rotation(110, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

সেট_টাইমআউট#

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

Usage:
drivetrain.set_timeout(time, units)

প্যারামিটার

বর্ণনা

time

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

units

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

def main():
    # Turn to face the Neutral Goal
    drivetrain.set_timeout(0.8, SECONDS)
    drivetrain.turn_for(LEFT, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

সেট_ড্রাইভ_বেগ#

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

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

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

Usage:
drivetrain.set_drive_velocity(velocity, units)

প্যারামিটার

বর্ণনা

velocity

০% থেকে ১০০% পর্যন্ত চালনার বেগ। এটি একটি পূর্ণসংখ্যা integer অথবা দশমিক সংখ্যা (float ) হতে পারে।

units

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট)।

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

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

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

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

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

Usage:
drivetrain.set_turn_velocity(velocity, units)

প্যারামিটার

বর্ণনা

velocity

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

units

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট)।

def main():
    # Turn to face the Neutral Goal faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(LEFT, 110, DEGREES)

# VR threads — Do not delete
vr_thread(main)

গেটার্স#

শিরোনাম#

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

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

Usage:
drivetrain.heading(units)

প্যারামিটার

বর্ণনা

units

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

def main():
    # Turn to the Goal, then show heading
    drivetrain.turn_for(LEFT, 110, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

ঘূর্ণন#

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

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

Usage:
drivetrain.rotation(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। ঘূর্ণন একক: DEGREES (ডিফল্ট)।

def main():
    # Spin to find a Pin, then show rotation
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

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

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

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

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

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

Usage:
drivetrain.is_done()

প্যারামিটার

বর্ণনা

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

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
    wait(0.5, SECONDS)
    while not drivetrain.is_done():
        wait(5, MSEC)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

চলমান#

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

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

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

Usage:
drivetrain.is_moving()

প্যারামিটার

বর্ণনা

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

def main():
    # Raise the Arm once stopped near the Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
    wait (0.5, SEC)
    while drivetrain.is_moving():
        wait(5, MSEC)
    arm_motor.spin_for(FORWARD, 800, DEGREES)

# VR threads — Do not delete
vr_thread(main)

বেগ#

বেগ velocity রোবটটি কত দ্রুত চলছে তা শতাংশ হিসাবে দেখায়, যা -100% থেকে 100% পর্যন্ত হয়ে থাকে।

Usage:
drivetrain.velocity(units)

প্যারামিটার

বর্ণনা

units

ঐচ্ছিক। বেগের একক: PERCENT (ডিফল্ট)।

def main():
    # Show speed while driving to the Goal
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

গতি#

Flex তার হাত উপরে তুলতে ও নিচে নামাতে Arm Motor এবং নখর খুলতে ও বন্ধ করতে Claw Motor ব্যবহার করে।

প্রতিটি মোটরের নিজস্ব দিকনির্দেশক আচরণ রয়েছে। দিকনির্দেশের বিবরণগুলো ব্যাখ্যা করে যে, Flex-এর উপর প্রতিটি দিক কীভাবে সেই মোটরটিকে চালনা করে।

কর্ম#

স্পিন#

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.spin(direction) — আর্ম মোটর

claw_motor

claw_motor.spin(direction) — ক্ল মোটর

প্যারামিটার

বর্ণনা

direction

মোটরের ঘোরার দিক:

  • FORWARD — আর্ম মোটরকে উপরে তোলে অথবা ক্ল মোটর বন্ধ করে।
  • REVERSE — আর্ম মোটরকে নিচে তোলে অথবা ক্ল মোটর খোলে।

def main():
    # Raise the Arm before driving toward a Pin
    arm_motor.spin(FORWARD)
    wait(1, SECONDS)
    arm_motor.stop()

# VR threads — Do not delete
vr_thread(main)

স্পিন_ফর#

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.spin_for(direction, distance, units, wait) — মোটরকে সক্রিয় করুন

claw_motor

claw_motor.spin_for(direction, distance, units, wait) — ক্ল মোটর

প্যারামিটার

বর্ণনা

direction

মোটরের ঘোরার দিক:

  • FORWARD — আর্ম মোটরকে উপরে তোলে অথবা ক্ল মোটর বন্ধ করে।
  • REVERSE — আর্ম মোটরকে নিচে তোলে অথবা ক্ল মোটর খোলে।

distance

মোটরের ঘূর্ণন দূরত্ব। DEGREES পূর্ণসংখ্যা ব্যবহার করুন। TURNS পূর্ণসংখ্যা বা দশমিক ব্যবহার করা যেতে পারে।

units

ঐচ্ছিক। দূরত্বের একক: DEGREES (ডিফল্ট) অথবা TURNS।

wait

ঐচ্ছিক।

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

def main():
    # Raise the Arm to carry the Pin to the Goal
    arm_motor.spin_for(FORWARD, 800, DEGREES)

# VR threads — Do not delete
vr_thread(main)

অবস্থান ঘোরানো#

spin_to_position একটি মোটরকে একটি নির্দিষ্ট অবস্থানে ঘোরায়।

একটি মোটরের অবস্থান হলো এটি কতটুকু ঘুরেছে, যা DEGREES বা TURNSএককে পরিমাপ করা হয়। এক পাক 360 ডিগ্রির সমান। একটি প্রকল্পের শুরুতে, আর্ম মোটরের অবস্থান 0 ডিগ্রিতে সেট করা হয়। ক্ল মোটরটি এর ব্যতিক্রম — এটি 467 ডিগ্রিতে (সম্পূর্ণ বন্ধ) শুরু হয়। মোটরের অবস্থান set_position পদ্ধতি ব্যবহার করেও সেট করা যেতে পারে।

অবস্থানের মানগুলো পরম। এর মানে হলো, ঘূর্ণনের দিক মোটরের বর্তমান অবস্থানের উপর নির্ভর করে।

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.spin_to_position(angle, units, wait=True) — আর্ম মোটর

claw_motor

claw_motor.spin_to_position(angle, units, wait=True) — ক্ল মোটর

প্যারামিটার

বর্ণনা

angle

মোটরটি যে অবস্থানে ঘুরবে। DEGREES এর জন্য পূর্ণসংখ্যা ব্যবহার করুন। TURNS এর জন্য পূর্ণসংখ্যা বা দশমিক ব্যবহার করা যেতে পারে।

units

ঐচ্ছিক। অবস্থানের একক: DEGREES (ডিফল্ট) অথবা TURNS।

wait

ঐচ্ছিক।

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

def main():
    # Raise the Arm, then release the Pin
    arm_motor.spin_to_position(800, DEGREES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

থামুন#

stop একটি মোটরের ঘূর্ণন থামিয়ে দেয়।

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.stop() — মোটর চালু করুন

claw_motor

claw_motor.stop() — ক্ল মোটর

প্যারামিটার

বর্ণনা

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

def main():
    # Raise the Arm partway to hold the Pin
    arm_motor.spin(FORWARD)
    wait(1, SECONDS)
    arm_motor.stop()

# VR threads — Do not delete
vr_thread(main)

মিউটেটর#

সেট_পজিশন#

একটি মোটরের অবস্থান হলো এটি কতটুকু ঘুরেছে, যা DEGREES বা TURNSএককে পরিমাপ করা হয়। এক পাক ৩৬০ ডিগ্রির সমান। set_position মোটরের বর্তমান অবস্থানকে একটি নতুন মানে পরিবর্তন করে।

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.set_position(position, units) — আর্ম মোটর

claw_motor

claw_motor.set_position(position, units) — ক্ল মোটর

প্যারামিটার

বর্ণনা

position

মোটরের জন্য যে অবস্থানের মান নির্ধারণ করতে হবে। DEGREES পূর্ণসংখ্যা ব্যবহার করুন। TURNS পূর্ণসংখ্যা বা দশমিক ব্যবহার করা যেতে পারে।

units

ঐচ্ছিক। অবস্থানের একক: DEGREES (ডিফল্ট) অথবা TURNS।

def main():
    # Reset encoder, raise Arm, place Pin
    arm_motor.set_position(0, DEGREES)
    arm_motor.spin_to_position(800, DEGREES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

সেট_বেগ#

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

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

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.set_velocity(velocity, units) — আর্ম মোটর

claw_motor

claw_motor.set_velocity(velocity, units) — ক্ল মোটর

প্যারামিটার

বর্ণনা

velocity

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

units

বেগের একক: PERCENT।

def main():
    # Raise the Arm fast to release the Pin
    arm_motor.set_velocity(100, PERCENT)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

সেট_টাইমআউট#

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.set_timeout(value, units) — আর্ম মোটর

claw_motor

claw_motor.set_timeout(value, units) — ক্ল মোটর

প্যারামিটার

বর্ণনা

value

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

units

সময়ের একক: SECONDS বা MSEC।

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.set_timeout(1, SECONDS)
    arm_motor.spin_for(FORWARD, 1800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

গেটার্স#

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

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

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

  • False — মোটরটি এখনও ঘুরছে।

এই পদ্ধতিটি নিম্নলিখিত মোশন পদ্ধতিগুলির সাথে একত্রে কাজ করে যেগুলির wait প্যারামিটার রয়েছে: spin_for এবং spin_to_position।

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.is_done() — মোটর চালু করুন

claw_motor

claw_motor.is_done() — ক্ল মোটর

প্যারামিটার

বর্ণনা

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

def main():
    # Raise the Arm while driving to the Goal
    arm_motor.spin_to_position(800, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while not arm_motor.is_done():
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

ঘুরছে#

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

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

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

এই পদ্ধতিটি নিম্নলিখিত মোশন পদ্ধতিগুলির সাথে একত্রে কাজ করে যেগুলির wait প্যারামিটার রয়েছে: spin_for এবং spin_to_position।

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.is_spinning() — আর্ম মোটর

claw_motor

claw_motor.is_spinning() — ক্ল মোটর

প্যারামিটার

বর্ণনা

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

def main():
    # Raise the Arm while driving to the Goal, then release the Pin
    arm_motor.spin_to_position(800, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while arm_motor.is_spinning():
        drivetrain.drive_for(FORWARD, 25, MM)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

অবস্থান#

একটি মোটরের অবস্থান হলো এটি কতটুকু ঘুরেছে, যা DEGREES বা TURNSএককে পরিমাপ করা হয়। এক পাক ৩৬০ ডিগ্রির সমান। position মোটরের বর্তমান অবস্থান ফিরিয়ে দেয়।

প্রজেক্টের শুরুতে, আর্ম মোটরের অবস্থান ০ ডিগ্রিতে সেট করা থাকে। ক্ল মোটর এর ব্যতিক্রম — এটি ৪৬৭ ডিগ্রিতে (সম্পূর্ণ বন্ধ অবস্থায়) শুরু হয়। যদি মোটরটি সামনের দিকে এক পূর্ণ পাক ঘোরে, তবে এর অবস্থান বেড়ে যায়। আর যদি মোটরটি বিপরীত দিকে ঘোরে, তবে এর অবস্থান কমে যায়।

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.position(units) — আর্ম মোটর

claw_motor

claw_motor.position(units) — ক্ল মোটর

প্যারামিটার

বর্ণনা

units

মোটরের অবস্থান ফেরানোর একক: DEGREES বা TURNS পাক।

def main():
    # Raise the Arm, then release the Pin
    while arm_motor.position(DEGREES) < 800:
        arm_motor.spin(FORWARD)
        wait(2, MSEC)
    arm_motor.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

বেগ#

velocity মোটরটি কত দ্রুত ঘুরছে তা নির্দেশ করে।

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

ব্যবহারবিধি: এই পদ্ধতিতে দুটি উপলব্ধ মোটর অবজেক্টের মধ্যে
একটি ব্যবহার করা যেতে পারে, যেমনটি নিচে দেখানো হয়েছে:

মোটর

আদেশ

arm_motor

arm_motor.velocity(units) — আর্ম মোটর

claw_motor

claw_motor.velocity(units) — Claw Motor

প্যারামিটার

বর্ণনা

units

ফেরত দেওয়ার বেগের একক: PERCENT।

def main():
    # Show Arm Motor velocity while raising
    arm_motor.set_velocity(100, PERCENT)
    arm_motor.spin_to_position(800, DEGREES, wait=False)
    wait(0.2, SECONDS)
    brain.screen.print(arm_motor.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

এআই ভিশন#

গেটার্স#

টেক_স্ন্যাপশট#

take_snapshot এআই ভিশন সেন্সর ফ্রেম থেকে ডেটা ফিল্টার করে একটি একক সিগনেচারে নিয়ে আসে — যা হলো সেন্সর দ্বারা শনাক্তযোগ্য কোনো কিছুর একটি সংরক্ষিত বিবরণ, যেমন মাঠের কোনো গেম এলিমেন্ট — এবং একটি টাপল রিটার্ন করে।

টাপলটি অবজেক্টগুলিকে প্রস্থ অনুসারে বৃহত্তম থেকে ক্ষুদ্রতম ক্রমে সংরক্ষণ করে, যা সূচক 0 থেকে শুরু হয়। প্রতিটি অবজেক্টের বৈশিষ্ট্য তার সূচক ব্যবহার করে অ্যাক্সেস করা যেতে পারে। যদি কোনও মিলে যাওয়া অবজেক্ট সনাক্ত করা না যায় তবে একটি খালি টাপল ফেরত দেওয়া হয়।

Usage:
ai_vision.take_snapshot(signature)

প্যারামিটার

বর্ণনা

signature

প্রদত্ত সিগনেচারের ডেটা অন্তর্ভুক্ত করার জন্য ডেটাসেট ফিল্টার করে। উপলব্ধ সিগনেচারগুলো হলো:

  • AiVision.ALL_AIOBJS - গেমের সমস্ত উপাদান সনাক্ত করে।
  • GameElements.RED_BLUE_PIN - RedBluePin গেমের উপাদানগুলো সনাক্ত করে।
  • GameElements.BLUE_YELLOW_PIN - BlueYellowPin গেমের উপাদানগুলো সনাক্ত করে।
  • GameElements.RED_YELLOW_PIN - RedYellowPin গেমের উপাদানগুলো সনাক্ত করে।
  • GameElements.YELLOW_PIN - YellowPin গেমের উপাদানগুলো সনাক্ত করে।
  • GameElements.CUP - Cup গেমের উপাদানগুলো সনাক্ত করে।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Turn to face the Pin
    drivetrain.set_turn_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerX < 140:
                drivetrain.turn(LEFT)
            elif ai_objects[0].centerX > 180:
                drivetrain.turn(RIGHT)
            else:
                drivetrain.stop()
                break

# VR threads — Do not delete
vr_thread(main)

বৈশিষ্ট্য#

take_snapshot ব্যবহার করার পরে একটি টাপলে সংরক্ষিত প্রতিটি অবজেক্টের সাথে সাতটি বৈশিষ্ট্য অন্তর্ভুক্ত থাকে।

.id ব্যতীত অন্য সকল প্রপার্টি ভ্যালু, take_snapshot ব্যবহৃত হওয়ার মুহূর্তে এআই ভিশন সেন্সরের ভিউতে শনাক্তকৃত অবজেক্টটির অবস্থান এবং আকার বর্ণনা করে। এই ভ্যালুগুলো সেন্সরটির 320 বাই 240 পিক্সেল রেজোলিউশনের উপর ভিত্তি করে পিক্সেলে পরিমাপ করা হয়।

প্রস্থ#

.width শনাক্ত করা অবজেক্টটির প্রস্থ পিক্সেলে ফেরত দেয়, যা ১ থেকে ৩২০-এর মধ্যে একটি পূর্ণসংখ্যা।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].width > 140:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

উচ্চতা#

.height শনাক্ত করা বস্তুটির উচ্চতা পিক্সেলে ফেরত দেয়, যা ১ থেকে ২৪০-এর মধ্যে একটি পূর্ণসংখ্যা।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].height > 200:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.centerX#

.centerX শনাক্তকৃত বস্তুর কেন্দ্রের x-স্থানাঙ্ক পিক্সেলে ফেরত দেয়, যা 0 থেকে 320-এর মধ্যে একটি পূর্ণসংখ্যা।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Turn and approach the next Cup and Pin
    drivetrain.set_turn_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerX < 140:
                drivetrain.turn_for(LEFT, 5, DEGREES)
            else: 
                drivetrain.drive_for(FORWARD, 25, INCHES)
                break

# VR threads — Do not delete
vr_thread(main)

.centerY#

.centerY শনাক্তকৃত বস্তুর কেন্দ্রের y-স্থানাঙ্ক পিক্সেলে ফেরত দেয়, যা 0 থেকে 240-এর মধ্যে একটি পূর্ণসংখ্যা।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerY > 230:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.originX#

.originX শনাক্ত করা বস্তুর বাউন্ডিং বক্সের উপরের-বাম কোণার x-স্থানাঙ্ক পিক্সেলে ফেরত দেয়, যা 0 থেকে 320-এর মধ্যে একটি পূর্ণসংখ্যা।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Turn and approach the next Cup and Pin
    drivetrain.set_turn_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].originX < 100:
                drivetrain.turn_for(LEFT, 5, DEGREES)
            else:
                drivetrain.drive_for(FORWARD, 25, INCHES)
                break

# VR threads — Do not delete
vr_thread(main)

.originY#

.originY শনাক্ত করা বস্তুর বাউন্ডিং বক্সের উপরের-বাম কোণার y-স্থানাঙ্ক পিক্সেলে ফেরত দেয়, যা 0 থেকে 240-এর মধ্যে একটি পূর্ণসংখ্যা।

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].originY > 140:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.id#

.id শনাক্তকৃত এআই ক্লাসিফিকেশনের আইডি একটি পূর্ণসংখ্যা হিসেবে ফেরত দেয়।

এআই শ্রেণিবিন্যাস

আইডি

স্বাক্ষর

রেডব্লুপিন

০

GameElements.RED_BLUE_PIN

নীল-হলুদ পিন

১

GameElements.BLUE_YELLOW_PIN

লাল হলুদ পিন

২

GameElements.RED_YELLOW_PIN

ইয়েলোপিন

৩

GameElements.YELLOW_PIN

কাপ

৪

GameElements.CUP

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Display the ID of the next closest object
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            brain.screen.print(ai_objects[0].id)
            break

# VR threads — Do not delete
vr_thread(main)

কনসোল#

প্রজেক্ট চলার সময় কনসোল টেক্সট, সংখ্যা এবং ভেরিয়েবলের মান প্রদর্শন করে। কনসোল মেথড ব্যবহার করে কার্সারকে নতুন সারিতে সরানো, কনসোল পরিষ্কার করা এবং মনিটর ট্যাবে ভেরিয়েবল বা সেন্সরের মান যোগ করা যায়।

প্রিন্ট#

মস্তিষ্ক.স্ক্রিন.প্রিন্ট#

brain.screen.print বর্তমান কার্সার অবস্থান ব্যবহার করে কনসোলে টেক্সট, সংখ্যা বা ভেরিয়েবলের মান প্রদর্শন করে।

পরবর্তী মুদ্রিত মানটি একটি নতুন সারিতে শুরু করতে চাইলে brain.screen.next_row ব্যবহার করুন।

Usage:
brain.screen.print(value)

প্যারামিটার

বর্ণনা

value

কনসোলে প্রদর্শন করার জন্য টেক্সট, সংখ্যা, বা ভেরিয়েবলের মান।

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

brain.screen.next_row#

brain.screen.next_row কার্সারকে কনসোলের পরবর্তী সারির প্রথম কলামে নিয়ে যায়। পরবর্তী যে মানটি প্রিন্ট করা হবে, তা সেই সারিতে প্রদর্শিত হবে।

Usage:
brain.screen.next_row()

প্যারামিটার

বর্ণনা

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

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

brain.screen.clear_screen#

brain.screen.clear_screen কনসোল থেকে সমস্ত সারি মুছে দেয় এবং কার্সারকে সারি ১-এ ফিরিয়ে নিয়ে যায়।

Usage:
brain.screen.clear_screen()

প্যারামিটার

বর্ণনা

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

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

মনিটর#

মনিটর_ভেরিয়েবল#

monitor_variable VEXcode-এর মনিটর ট্যাবে এক বা একাধিক পূর্বনির্ধারিত ভেরিয়েবল যোগ করে। এর মাধ্যমে, কোনো প্রজেক্ট চলার সময় আপনি একটি ভেরিয়েবলের মানের পরিবর্তন পর্যবেক্ষণ করতে পারবেন।

সফলভাবে মনিটর করার জন্য ভেরিয়েবলগুলোকে অবশ্যই গ্লোবাল হতে হবে monitor_variable

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

প্যারামিটার

বর্ণনা

variable

পর্যবেক্ষণ করার জন্য একটি পূর্বনির্ধারিত গ্লোবাল ভেরিয়েবলের নাম, যা একটি স্ট্রিং হিসাবে দেওয়া হয়। একাধিক ভেরিয়েবল পর্যবেক্ষণ করতে, প্রতিটি ভেরিয়েবলের নাম কমা দিয়ে আলাদা করুন।

def main():
    # Monitor the number of loops
    global loops
    monitor_variable("loops")

    # Turn in a full circle 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

মনিটর_সেন্সর#

monitor_sensor VEXcode-এর মনিটর ট্যাবে এক বা একাধিক সেন্সর মান যোগ করে। এর মাধ্যমে, কোনো প্রজেক্ট চলার সময় আপনি সেন্সর মানগুলোর পরিবর্তন পর্যবেক্ষণ করতে পারবেন।

প্রতিটি সেন্সর মান স্ট্রিং হিসেবে প্রদান করুন।

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

প্যারামিটার

বর্ণনা

sensor

The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:

  • Brain
    • brain.timer.time
  • Drivetrain
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity
  • Arm Motor
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position
    • arm_motor.velocity
  • Claw Motor
    • claw_motor.is_done
    • claw_motor.is_spinning
    • claw_motor.position
    • claw_motor.velocity
  • Distance Sensor
    • distance.is_object_detected
    • distance.object_distance_mm
    • distance.object_distance_inches
  • GPS Sensor
    • gps.position_mm
    • gps.position_inches
    • gps.heading
  • AI Vision Sensor
    • ai_vision.object_count
    • ai_vision.height
    • ai_vision.width
    • ai_vision.centerX
    • ai_vision.centerY
    • ai_vision.originX
    • ai_vision.originY
    • ai_vision.id

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

সংবেদন#

দূরত্ব#

পাওয়া_বস্তু#

found_object রিটার্ন করে যে ডিস্টেন্স সেন্সরটি বর্তমানে ২০০০ মিমি-এর মধ্যে কোনো বস্তু শনাক্ত করছে কিনা।

  • True — দূরত্ব সেন্সরটি একটি বস্তু শনাক্ত করে।

  • False — দূরত্ব সেন্সরটি কোনো বস্তু শনাক্ত করতে পারছে না।

Usage:
distance.found_object()

প্যারামিটার

বর্ণনা

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

def main():
    # Turn until something is detected, then release the Pin
    drivetrain.turn(RIGHT)
    while True:
        wait(5, MSEC)
        if distance.found_object():
            drivetrain.stop()
            break
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

বস্তুর দূরত্ব#

object_distance ডিস্টেন্স সেন্সর এবং নিকটতম শনাক্তকৃত বস্তুর মধ্যবর্তী দূরত্ব ফেরত দেয়।

Usage:
distance.object_distance(units)

প্যারামিটার

বর্ণনা

units

দূরত্বের একক: MM বা INCHES।

def main():
    # Drive until 200 mm from the Goal, then release the Pin
    while distance.object_distance(MM) > 200:
        wait(5, MSEC)
        drivetrain.drive(FORWARD)
    drivetrain.stop()
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

জিপিএস#

x_অবস্থান#

x_position মাঠে থাকা একটি GPS (গেম পজিশনিং সিস্টেম™) সেন্সরের বর্তমান x-স্থানাঙ্ক ফেরত দেয়।

Usage:
gps.x_position(units)

প্যারামিটার

বর্ণনা

ইউনিট

অফসেট মানের একক: INCHES বা MM

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive(FORWARD)
    while not gps.x_position(MM) > -1370:
        wait(2, MSEC)
    drivetrain.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

y_অবস্থান#

y_position মাঠে থাকা একটি GPS (গেম পজিশনিং সিস্টেম™) সেন্সরের বর্তমান y-স্থানাঙ্ক ফেরত দেয়।

Usage:
gps.y_position(units)

প্যারামিটার

বর্ণনা

ইউনিট

অফসেট মানের একক: INCHES বা MM

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive(FORWARD)
    while not gps.y_position(MM) < -450:
        wait(2, MSEC)
    drivetrain.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

শিরোনাম#

heading , জিপিএস (গেম পজিশনিং সিস্টেম™) সেন্সরের ০ থেকে ৩৫৯ ডিগ্রি পর্যন্ত রিডিংয়ের উপর ভিত্তি করে রোবটটির বর্তমান অভিমুখ নির্দেশ করে।

Usage:
gps.heading()

প্যারামিটার

বর্ণনা

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

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    monitor_sensor("gps.heading")
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    # Turn left to face the Neutral Goal
    drivetrain.set_turn_velocity(30, PERCENT)
    drivetrain.turn(LEFT)
    while not gps.heading() < 18:
        wait(2, MSEC)
    drivetrain.stop()


# VR threads — Do not delete
vr_thread(main)