Skip to main content

পাঠ ৩: '৩১' নম্বরে গাড়ি চালাও

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

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপর থেকে নীচের দৃশ্য, যেখানে ৩১ নম্বরটি একটি লাল বাক্স দ্বারা হাইলাইট করা হয়েছে। ভিআর রোবটটি ১ নম্বর থেকে শুরু হয় এবং ৩১ নম্বর বর্গক্ষেত্রটি এর উপরে তিনটি স্থান।

লক্ষ্য করুন যে VR রোবটটি Y অক্ষ বরাবর ভ্রমণ করবে নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড-এ '31' নম্বরে যেতে।

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপর থেকে নীচের দৃশ্য, যেখানে ৩১ নম্বর স্থানটি একটি কালো বাক্স দ্বারা হাইলাইট করা হয়েছে। একটি রেখা Y অক্ষ জুড়ে পরিমাপ নির্দেশ করে, যার প্রথম স্থানটি Y অক্ষের উপর -900 মিলিমিটার এবং পরবর্তী স্থানটি -700 প্রতিবার 200 দ্বারা গণনা করা অব্যাহত রাখে। ৩১ নম্বর স্থানটি -৩০০ মিলিমিটারের Y অবস্থানে অবস্থিত।

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

নম্বর গ্রিড ম্যাপ খেলার মাঠের উপর থেকে নীচের দৃশ্য, দুটি অক্ষ নির্দেশক সহ 31 নম্বর স্থানের অবস্থান চিহ্নিত করছে। ভিআর রোবটটি -৯০০ X এবং -৯০০ Y থেকে শুরু হয়, যেখানে ৩১ নম্বর স্থানটি -৯০০ X এবং -৩০০ Y থেকে শুরু হয়।
  • [ড্রাইভ] নন-ওয়েটিং ব্লকটিকে কর্মক্ষেত্রে টেনে আনুন।

    একটি নতুন VEXcode VR ব্লক প্রজেক্ট যা "When Started" ব্লক দিয়ে শুরু হয় এবং তারপরে "Drive Forward" ব্লক দিয়ে শুরু হয়।
  • [ড্রাইভ] ব্লকের নিচে একটি [অপেক্ষা করুন] ব্লক সংযুক্ত করুন।

    VEXcode VR ব্লক প্রকল্পের ধারাবাহিকতা, এখন ড্রাইভ ফরোয়ার্ড ব্লকের পরে একটি Wait Until ব্লক যুক্ত করা হয়েছে। পুরো প্রকল্পটি এখন "When Started, Drive Forward" এবং "Wait Until" পড়ে আছে। ওয়াট আনটিল ব্লকে একটি খালি বুলিয়ান প্যারামিটার আছে।
  • <Greater than> বুলিয়ান রিপোর্টার ব্লকটি [অপেক্ষা করুন] ব্লকে টেনে আনুন।

    VEXcode VR ব্লক প্রকল্পের ধারাবাহিকতা, এখন Wait Until ব্লকের মধ্যে একটি Greater Than ব্লক ঢোকানো হয়েছে। পুরো প্রকল্পটি এখন "When Started, Drive Forward" লেখা আছে, এরপর "Wait Until" ব্লক আছে, যেখানে "Greater Than" ব্লকটি লেখা আছে, যেখানে "blank is Greater Than 50" লেখা আছে।
  • মনে রাখবেন যে <Less than> ব্লকের পরিবর্তে <Greater than> ব্লক ব্যবহার করা হয়েছে কারণ VR রোবট খেলার মাঠের নিচ থেকে ড্রাইভ করছে। VR রোবট -900 মিলিমিটার (মিমি) এর Y-মানে শুরু হচ্ছে। VR রোবট এগিয়ে যাওয়ার সাথে সাথে Y-মান বৃদ্ধি পায়।

    নম্বর গ্রিড ম্যাপ খেলার মাঠের একই উপর থেকে নীচের দৃশ্য, দুটি অক্ষ নির্দেশক সহ, আগের ৩১ নম্বর স্থানের অবস্থান চিহ্নিত করছে। ভিআর রোবটটি -৯০০ X এবং -৯০০ Y থেকে শুরু হয়, যেখানে ৩১ নম্বর স্থানটি -৯০০ X এবং -৩০০ Y থেকে শুরু হয়।
  • (রোবটের অবস্থান) ব্লকটি <Greater than> ব্লকে টেনে আনুন।

    VEXcode VR ব্লক প্রকল্পের ধারাবাহিকতা, এখন গ্রেটার থান ব্লকে একটি পজিশন অফ রোবট ব্লক সন্নিবেশ করা হয়েছে। পুরো প্রকল্পটি এখন "শুরু হলে, এগিয়ে যান এবং অপেক্ষা করুন যতক্ষণ না X মিলিমিটারে রোবটের অবস্থান ৫০ এর চেয়ে বেশি হয়।"
  • (রোবটের অবস্থান) ব্লকের প্যারামিটারটি "Y" এবং <Greater than> ব্লকের পরামিতি -300 এ সেট করুন।

    VEXcode VR ব্লক প্রকল্পের ধারাবাহিকতা, এখন রোবট ব্লকের অক্ষের অবস্থান X থেকে Y তে পরিবর্তিত হয়েছে এবং গ্রেটার থান ব্লকের দ্বিতীয় প্যারামিটার 50 থেকে -300 তে পরিবর্তিত হয়েছে। পুরো প্রকল্পটি এখন "শুরু হলে, এগিয়ে যান এবং অপেক্ষা করুন Y পর্যন্ত" লেখা আছে। মিলিমিটারে রোবটের অবস্থান -৩০০ এর চেয়ে বেশি।
  • একটি [ড্রাইভিং বন্ধ করুন] ব্লকে টেনে আনুন এবং এটিকে প্রকল্পে যোগ করুন।

    VEXcode VR ব্লক প্রকল্পের ধারাবাহিকতা, এখন Wait Until ব্লকের নিচে একটি Stop Driving ব্লক যোগ করা হয়েছে। পুরো প্রকল্পটি এখন "শুরু হলে, এগিয়ে যান এবং অপেক্ষা করুন Y পর্যন্ত" লেখা আছে। মিলিমিটারে রোবটের অবস্থান -৩০০ এর চেয়ে বেশি। অবশেষে, গাড়ি চালানো বন্ধ করুন।
  • নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড চালু করুন যদি এটি ইতিমধ্যে খোলা না থাকে এবং প্রকল্পটি চালান।
  • নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ড'31' নম্বরে ভিআর রোবট ড্রাইভ দেখুন।

    ৩১ নম্বর জায়গায় ভিআর রোবটটি রেখে নম্বর গ্রিড ম্যাপ খেলার মাঠের উপর থেকে নীচের দৃশ্য।
  • এই প্রকল্পে, ভিআর রোবট নম্বর গ্রিড ম্যাপ প্লেগ্রাউন্ডএ '31' নম্বরে ড্রাইভ করে। যেহেতু VR রোবট '31' নম্বরে ড্রাইভ করার সাথে সাথে Y-মান বৃদ্ধি পাচ্ছে, প্রকল্পটি একটি <Greater than> ব্লক ব্যবহার করে।
  • VR রোবটটি যখন নির্দেশিত সংখ্যাটি চালু আছে তার Y-মান স্থানাঙ্কের Y-মানের থেকে বেশি হয়ে গেলে থামবে৷ যেহেতু '31' নম্বরের Y-মান -300, তাই Y-মান -300-এর বেশি হলে VR রোবট গাড়ি চালানো বন্ধ করে দেবে।
VEXcode VR ব্লক প্রকল্পে যুক্তির প্রবাহকে কল্পনা করে একটি চিত্র। প্রকল্পটি "When Started" ব্লক দিয়ে শুরু হয় এবং তারপর সামনের দিকে ড্রাইভিং শুরু করে, এবং সেই কমান্ডটি ধরে রাখে যতক্ষণ না মিলিমিটারে রোবট সেন্সরের Y অবস্থানের অবস্থান -300 এর বেশি হয়, যার পরে একটি "Stop Driving" ব্লক ড্রাইভ ফরোয়ার্ড কমান্ডটি শেষ করে।

সুইচ ব্লক ব্যবহার করা 

এই পাঠে, আপনি শিখেছেন কিভাবে VEXcode [Wait until] ব্লকটি বুলিয়ান কন্ডিশন সহ ব্যবহার করতে হয় যাতে রোবটটি পরবর্তী আচরণে যাওয়ার আগে Y-অক্ষে -300 এর বেশি অবস্থানে পৌঁছানো পর্যন্ত অপেক্ষা করতে পারে।

নিচের ছবিতে একই আচরণের জন্য Python কমান্ড সম্বলিত Switch ব্লকের পাশে VEXcode ব্লকটি দেখানো হয়েছে। 

একটি VEXcode VR Wait Until ব্লক এবং এর সংশ্লিষ্ট সুইচ ব্লকের তুলনা। VR ব্লকে লেখা আছে 'Wait Until Y রোবটের অবস্থান মিলিমিটারে -৩০০ এর চেয়ে বেশি'। সুইচ ব্লকের পাইথন কোডে লেখা আছে 'while not location.position(Y, MM) > -300: wait(5, MSEC)'। অপেক্ষা কমান্ডটি while not এর নিচে ইন্ডেন্ট করা আছে।সুইচ ব্লকের মধ্যে,while not location.position(Y, MM) > -300:হল প্রথম পাইথন কমান্ড যা পরীক্ষা করে যে X-অক্ষ বরাবর রোবটের অবস্থান -300 এর বেশি কিনা।

দ্বিতীয় ইন্ডেন্টেড কমান্ড,wait (5, MSEC),5 মিলিসেকেন্ডের জন্য কন্ডিশনাল লুপের এক্সিকিউশন থামায়।

VEXcode VR-তে, শর্তসাপেক্ষ লুপের সাথে সর্বদা একটি wait কমান্ড যোগ করা হয়। wait কমান্ডের উদ্দেশ্য হল VEXcode VR যাতে প্রকল্পটি যথাযথভাবে পরিচালনা করতে পারে তা নিশ্চিত করা, কারণ VEXcode VR প্ল্যাটফর্মটি ওয়েব-ভিত্তিক। কন্ডিশনাল লুপ ব্যবহার করার সময় wait কমান্ডটি কখনই মুছে ফেলা উচিত নয়, অন্যথায় আপনার প্রকল্পটি ইচ্ছাকৃতভাবে নাও চলতে পারে। 

এই উদাহরণে, প্রকল্পটি পরীক্ষা করে যে রোবটের অবস্থান প্রতি ৫ MSEC-তে -৩০০ এর Y মানের চেয়ে বেশি কিনা। এই কোডের লাইনটি কোডের প্রথম লাইনের নীচে ইন্ডেন্ট করা হয়েছে কারণ এই কমান্ডটি এমন আচরণ যা শর্ত (-300 এর বেশি Y স্থানাঙ্ক মান) পূরণ না হওয়া পর্যন্ত পুনরাবৃত্তি হবে। 

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