Skip to main content

পাঠ ২: '৫' নম্বরে গাড়ি চালান

এই পাঠে, ভিআর রোবটটি নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড-এ '5' নম্বরে গাড়ি চালিয়ে '1' নম্বরে ফিরে যাবে!

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপরের নিচের ছবি। ১ নম্বরের নীচের বাম কোণে ভিআর রোবটটি দেখা যাবে। ৫ নম্বরের নীচের সারির মাঝখানে একটি কলআউট দেখা যাবে।

লক্ষ্য করুন যে VR রোবট X অক্ষ বরাবর ভ্রমণ করবে এবং X মান বৃদ্ধি পাবে নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড-এ '5' নম্বরে যেতে।

খেলার মাঠের কেন্দ্র জুড়ে x অক্ষ সহ নম্বর গ্রিড মানচিত্রের খেলার মাঠ। প্রতিটি বর্গক্ষেত্রের কেন্দ্রটি X অক্ষের মান দিয়ে চিহ্নিত করা হয়েছে, বাম দিকে -900 দিয়ে শুরু করে এবং ডান দিকে প্রতিটি বর্গক্ষেত্র 200 করে বৃদ্ধি পেয়ে 900 হয়। নীচের বাম কোণে ১ নম্বরে একটি ভিআর রোবট দেখা যাচ্ছে যার তীর ৫ নম্বরের দিকে নির্দেশ করছে।

ভিআর রোবটটি নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড-এ '5' নম্বরের অবস্থানে চলে যাবে। যাইহোক, ভিআর রোবট সেই নম্বরে নেভিগেট করার আগে, ভিআর রোবটকে সেই নম্বরটির অবস্থান কোথায় তা জানাতে হবে। খেলার মাঠের কেন্দ্র থেকে শুরু করে, '5' নম্বরের স্থানাঙ্কগুলি হল (-100, -900)।

x এবং y অক্ষের উপর পূর্বের নম্বর গ্রিড ম্যাপ খেলার মাঠের নীচের বাম কোণে। x অক্ষে ঋণাত্মক 100 থেকে 5 নম্বর পর্যন্ত এবং y অক্ষে ঋণাত্মক 900 থেকে 5 নম্বর পর্যন্ত একটি তীর দেখানো হয়েছে। ভিআর রোবটটি এখনও ১ নম্বরে রয়েছে, স্থানাঙ্কগুলি নেতিবাচক ৯০০, রোবটের নীচে নেতিবাচক ৯০০।

  • শুরু করার জন্য, VR রোবটটিকে '5' নম্বরের মুখোমুখি হতে হবে। টেনে আনুন বা টাইপ করুন একটি turn_for কমান্ড।
# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)
  • turn_forকমান্ডের অধীনে একটি while লুপ টেনে আনুন। আপনার প্রকল্পটি দেখতে এরকম হওয়া উচিত:
# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while condition:
        wait(5, MSEC)
  • ঠিক দূরত্ব সেন্সর ইউনিটের মতো, এই প্রকল্পটি নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ডনেভিগেট করতে তুলনা অপারেটরের সাথে অবস্থান সেন্সর অবস্থানের অবস্থা ব্যবহার করবে। while লুপের জন্য শর্তটি অবস্থান কমান্ডে X-অক্ষে -100 মিলিমিটার (মিমি) এর কম সেট করুন। আপনার প্রকল্পটি দেখতে এরকম হওয়া উচিত:
# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        wait(5, MSEC)
  • while লুপের ভিতরে নন-ওয়েটিং ড্রাইভ কমান্ড টেনে আনুন বা টাইপ করুন। আপনার প্রকল্পটি দেখতে এরকম হওয়া উচিত:
# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • মনে রাখবেন যে অপারেটরের চেয়ে কম অপারেটরের পরিবর্তে ব্যবহার করা হয়েছে কারণ VR রোবটটি খেলার মাঠের বাম দিক থেকে ডানদিকে ড্রাইভ করছে। VR রোবট -900 মিলিমিটার (মিমি) এর X-মানে শুরু হচ্ছে। VR রোবট এগিয়ে যাওয়ার সাথে সাথে X-মান বৃদ্ধি পায়, এবং এইভাবে রোবটটি এগিয়ে যেতে থাকবে যখন X-মান -100-এর কম হবে।

x এবং y অক্ষের উপর পূর্বের নম্বর গ্রিড ম্যাপ খেলার মাঠের নীচের বাম কোণে। x অক্ষে ঋণাত্মক 100 থেকে 5 নম্বর পর্যন্ত এবং y অক্ষে ঋণাত্মক 900 থেকে 5 নম্বর পর্যন্ত একটি তীর দেখানো হয়েছে। ভিআর রোবটটি এখনও ১ নম্বরে রয়েছে, স্থানাঙ্কগুলি নেতিবাচক ৯০০, রোবটের নীচে নেতিবাচক ৯০০।

আপনার তথ্যের জন্য

আপনি VR রোবট X বা Y অক্ষ বরাবর ভ্রমণ করতে চান তার উপর নির্ভর করে আপনার প্রকল্পে কোন তুলনা অপারেটর ব্যবহার করতে হবে তা চয়ন করতে হবে। যখন VR রোবটটি বৃহত্তর মানের দিকে যাত্রা করবে, তখন (<) এর চেয়ে কম অপারেটরটিwhile লুপের সাথে ব্যবহার করা হবে; এবং যখন VR রোবটটি বৃহত্তর মানের দিকে যাত্রা করবে, তখন (>) এর চেয়ে বড় অপারেটরটিwhile লুপের সাথে ব্যবহার করা হবে।

খেলার মাঠের দিকে তাকালে এটি বাম এবং ডান নড়াচড়ার সাথে সামঞ্জস্যপূর্ণ। যদি VR রোবটটি বাম থেকে ডানে অথবা নীচে থেকে উপরে (বৃহত্তর মান) সরানো হয়, তাহলে লক্ষ্য মানের চেয়ে অবস্থান কম হলে ড্রাইভ করার জন্য less than অপারেটর ব্যবহার করা হয়। 

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপর থেকে নীচের দুটি দৃশ্য। প্রথমটিতে, VR রোবটটি ৫১ নম্বরে দেখানো হয়েছে এবং একটি তীর চিহ্ন নির্দেশ করছে যে রোবটটি ৬০ নম্বরের ডানদিকে সরে যাচ্ছে। উপরের লেখাটিতে লেখা আছে 'ড্রাইভ যখন পজিশন কম'। দ্বিতীয়টিতে, VR রোবটটি 6 নম্বরে দেখানো হয়েছে এবং একটি তীর চিহ্ন নির্দেশ করছে যে রোবটটি 96 নম্বরে উপরে যেতে চলেছে। উপরের লেখাটিতে লেখা আছে 'ড্রাইভ যখন পজিশন কম'।

যদি VR রোবটটি ডান থেকে বামে অথবা উপরে থেকে নীচে (ছোট মান) সরে যায়, তাহলে লক্ষ্য মানের চেয়ে অবস্থান বেশি হলে greater than অপারেটরটি ড্রাইভ করার জন্য ব্যবহৃত হয়।

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপর থেকে নীচের দুটি দৃশ্য। প্রথমটিতে, VR রোবটটি ৬০ নম্বরে দেখানো হয়েছে এবং একটি তীর চিহ্ন নির্দেশ করছে যে রোবটটি বাম দিকে ৫১ নম্বরে সরে যাচ্ছে। উপরের লেখাটিতে লেখা আছে 'drive while position is greater than'। দ্বিতীয়টিতে, VR রোবটটি 96 নম্বরে দেখানো হয়েছে এবং একটি তীর চিহ্ন নির্দেশ করছে যে রোবটটি 6 নম্বরে নীচের দিকে সরে যাচ্ছে। উপরের লেখাটিতে লেখা আছে 'drive while position is greater than'।

তুলনা অপারেটর ব্যবহার করে, VR রোবট ভ্রমণ করবে যখন অবস্থান সেন্সর দ্বারা রিপোর্ট করা মান (>) বা (<) থ্রেশহোল্ড মানের চেয়ে কম। এই উদাহরণে, VR রোবটটি X-অক্ষে ধনাত্মক 500 মিলিমিটার (মিমি) পর্যন্ত নেভিগেট করবে। X-অক্ষের অবস্থান 0 থেকে ধনাত্মক 499 এর মধ্যে থাকা অবস্থায় VR রোবটটি গাড়ি চালাবে। যখন লোকেশন সেন্সর রিপোর্ট করে যেপজিশন 501 বা তার বেশি, তখন VR রোবটটি গাড়ি চালানো বন্ধ করে দেবে। 

# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    monitor_sensor(location.position)
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

লক্ষ্য করুন যে লোকেশন সেন্সর দ্বারা রিপোর্ট করা মানটি ঠিকনয় মিলিমিটার (মিমি)। দূরত্ব সেন্সরের মতো, তুলনা অপারেটরগুলি ব্যবহার করা হয় কারণ VR রোবট প্রকল্পের মাধ্যমে পুনরাবৃত্তি করতে এবং মানগুলি রিপোর্ট করতে সময় নেয়।

  • while লুপের বাইরে stop কমান্ড টেনে আনুন অথবা টাইপ করুন। আপনার প্রকল্পটি দেখতে এরকম হওয়া উচিত:
# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
  • যদি খেলার মাঠের উইন্ডোইতিমধ্যে খোলা না থাকে তবে এটি খুলুন। নিশ্চিত করুন যেনম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ডখোলে, এবং প্রকল্পটি চালান।
  • নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড-এ '5' নম্বরে ভিআর রোবট ড্রাইভ দেখুন।

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপরের নিচের ছবি। ৫ নম্বরের নীচে ভিআর রোবটটি দেখা যাবে।

  • এই প্রজেক্টে, ভিআর রোবট নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ডএ '5' নম্বরে চলে। while লুপ ব্যবহার করা হয় যাতে VR রোবটটি এগিয়ে যেতে থাকে যখন X-মান নির্দেশিত সংখ্যাটি যে স্থানাঙ্কে রয়েছে তার X-মানের চেয়ে কম থাকে।
  • X-মান -100-এর বেশি হলে, প্রকল্পটি লুপের বাইরের পরবর্তী কমান্ডে চলে যায়, যা একটি stop কমান্ড। যেহেতু '5' নম্বরের X-মান -100, X-মান -100-এর বেশি হলে VR রোবট গাড়ি চালানো বন্ধ করে দেবে৷

সবেমাত্র চালানো পাইথন প্রকল্পের প্রবাহ। একটি তীর নির্দেশ করে যে 90 ডিগ্রি ডানদিকে মোড় নেওয়ার পরে রোবটটি while লুপে চলে যাবে। while লুপের পাশে একটি চক্রাকার তীর রয়েছে যার লেখা আছে 'x মান ঋণাত্মক ১০০ এর চেয়ে কম হলে সত্য, VR রোবট এগিয়ে যাবে।' এর নিচে একটি লাল তীরচিহ্ন রয়েছে যার লেখা আছে 'ঋণাত্মক ১০০ এর চেয়ে বড় x মান, False প্রদান করে।' ভিআর রোবট গাড়ি চালানো বন্ধ করে দেয়।

আপনার তথ্যের জন্য

লক্ষ্য করুন যে লোকেশন সেন্সর দ্বারা রিপোর্ট করা মানঠিক-100 মিলিমিটার (মিমি) নাও হতে পারে। দূরত্ব সেন্সরের মতো, তুলনা অপারেটরগুলি ব্যবহার করা হয় কারণ VR রোবট প্রকল্পের মাধ্যমে পুনরাবৃত্তি করতে এবং মানগুলি রিপোর্ট করতে সময় নেয়।

প্লেগ্রাউন্ড উইন্ডোর ড্যাশবোর্ড জুম করে দেখানো হয়েছে যে লোকেশন সেন্সরের রিপোর্ট করা x মান নেতিবাচক 90 মিলিমিটার।

VEXcode VR Python-এ, আপনার গতিবিধিতে অতিরিক্ত নির্ভুলতা অর্জনের জন্য আপনি আপনার প্রকল্পেএর বেশি বা(>=) বা এর কম বা(<=) তুলনামূলক অপারেটর ব্যবহার করতে পারেন।

# "main" তে প্রোজেক্ট কোড যোগ করুন
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) <= -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

VR রোবটের বেগের উপর নির্ভর করে এবং প্রকল্পটি লুপের মাধ্যমে কত দ্রুত পুনরাবৃত্তি করে, আপনি দেখতে পারেন যে VR রোবট থ্রেশহোল্ড মানের কাছাকাছি থামতে সক্ষম হয় যখন (<= বা >=এর সমান হয়) ) অপারেটরে যোগ করা হয়।

এই পাঠের বাকি অংশটি চালিয়ে যেতে পরবর্তী বোতামটি নির্বাচন করুন।