Skip to main content

পাঠ ৩: একাধিক সেন্সর ইনপুট

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

পূর্ববর্তী পাঠের VEXcode VR প্রকল্পটি বাম দিকে দেখানো হয়েছে যেখানে রোবটে দূরত্ব সেন্সর ব্যবহার করে দুর্গ সনাক্ত করা হয়, তারপর সেগুলিকে ভেঙে ফেলার জন্য গাড়ি চালানো হয়। ডানদিকে খেলার মাঠের জানালাটি একটি চলমান প্রকল্পের চিত্র তুলে ধরেছে, যেখানে বেশ কয়েকটি দুর্গ ভেঙে পড়েছে, কিন্তু ভিআর রোবটটি খেলার মাঠের প্রান্ত থেকে চলে যেতে চলেছে।

যেমন আছে, প্রকল্পটি চিরতরে এগিয়ে চলা এবং বাঁক নেওয়ার আচরণের পুনরাবৃত্তি করে। তবে খেলার মাঠের চারপাশে লাল বর্ডার চেক করার কোনো শর্ত নেই। সুতরাং, ভিআর রোবটটি সামনের দিকে ড্রাইভ করার সময় খেলার মাঠ থেকে পড়ে যেতে পারে।

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

VR রোবট খেলার মাঠের প্রান্তের কাছাকাছি কিনা তা নির্ধারণ করতে সক্ষম হওয়ার জন্য আরেকটি সেন্সর প্রয়োজন। লাল সীমানা শনাক্ত না হওয়া পর্যন্ত এগিয়ে চলা এবং বাঁক নেওয়ার আচরণগুলি পুনরাবৃত্তি করতে হবে। সুতরাং, লাল সীমানা শনাক্ত করার শর্ত পূরণ না হওয়া পর্যন্ত এগিয়ে চলা এবং বাঁক নেওয়ার আচরণের পুনরাবৃত্তি করার জন্য [চিরকাল] ব্লকটিকে [রিপিট এ পর্যন্ত] ব্লক দিয়ে প্রতিস্থাপিত করা যেতে পারে। খেলার মাঠের চারপাশে লাল সীমানা সনাক্ত করে ভিআর রোবটটি খেলার মাঠের প্রান্তের কাছাকাছি কিনা তা নির্ধারণ করতে ডাউন আই সেন্সর ব্যবহার করা যেতে পারে।

একটি VEXcode VR কালার সেন্সিং ব্লক "ডাউন আই লাল সনাক্ত করে?" রিড করে।
  • পূর্ববর্তী পাঠ থেকে Unit9Lesson2 প্রকল্পটি লোড করুন।
ইউনিট ৯ পাঠ ২ প্রকল্প। প্রকল্পটি একটি "When started" ব্লক দিয়ে শুরু হয় যার সাথে একটি চিরস্থায়ী ব্লক সংযুক্ত থাকে। ফরএভার ব্লকের মধ্যে একটি "If then" ব্লক রয়েছে যেখানে ফ্রন্ট ডিসটেন্স প্যারামিটার হিসেবে একটি বস্তু খুঁজে পেয়েছে। "If then" শাখার একটি মন্তব্য আছে যেখানে লেখা আছে "দূরত্ব সেন্সর এবং একটি ড্রাইভ ফরোয়ার্ড ব্লক ব্যবহার করে পাওয়া ভবনের উপর নক করুন।" "অন্য শাখায়" একটি মন্তব্য আছে যেখানে লেখা আছে "দূরত্ব সেন্সর এবং ডানদিকে ঘুরুন ব্লক ব্যবহার করে একটি ভবন খুঁজে বের করতে ঘুরুন"।
  • প্রকল্পটির নাম পরিবর্তন করুন Unit9 Lesson3
VEXcode VR টুলবারের মাঝখানে প্রকল্পের নামের বাক্সটি, "প্লেগ্রাউন্ড নির্বাচন করুন" বোতামের বাম দিকে একটি লাল বাক্স দিয়ে হাইলাইট করা হয়েছে। প্রকল্পের নাম ইউনিট ৯ পাঠ ৩।
  • ক্রমাগত ডাউন আই সেন্সর চেক করার জন্য একটি ব্লক প্রয়োজন। ডাউন আই সেন্সর লাল রঙ সনাক্ত না করা পর্যন্ত ভিআর রোবটকে এই আচরণগুলি পুনরাবৃত্তি করতে হবে। প্রথমে, [চিরদিনের] ব্লকটি সরান।
প্রকল্প থেকে ফরএভার ব্লক অপসারণের একটি সারসংক্ষেপ। নতুন প্রকল্পটি When started ব্লক থেকে If then else ব্লকে স্থানান্তরিত হবে, Forever লুপ উপস্থিত থাকবে না।
  • একটি [পর্যন্ত পুনরাবৃত্তি] ব্লক যোগ করুন।
If then else ব্লকের সম্পূর্ণ অংশ জুড়ে Repeat until ব্লক যোগ করার একটি সারসংক্ষেপ। নতুন প্রকল্পটি একটি When Started ব্লক দিয়ে শুরু হয়, তারপর প্যারামিটার খোলা রেখে একটি Repeat until ব্লক থাকে। পুনরাবৃত্তির C এর মধ্যে ব্লক পর্যন্ত If then else ব্লক।
  • [পর্যন্ত পুনরাবৃত্তি না হওয়া পর্যন্ত] ব্লকের ভিতরে একটি <Color sensing> ব্লক যোগ করুন এবং প্যারামিটারগুলি সেট করুন 'DownEye' সনাক্ত করে 'লাল'।
ডাউন আই ডিটেক্টস রেডের সাথে একই প্রকল্পটি রিপিট অবধি ব্লকের প্যারামিটার হিসাবে সেট করা হয়েছে।

এই প্রজেক্টে একটি [অপেক্ষা করুন] ব্লকের পরিবর্তে একটি [রিপিট না পর্যন্ত] ব্লক ব্যবহার করা হয়। কারণ একটি [অপেক্ষা করুন পর্যন্ত] ব্লক হল একটি অপেক্ষমাণ ব্লক যা শর্ত পূরণ না হওয়া পর্যন্ত প্রকল্পের প্রবাহকে থামিয়ে দেবে। যদি একটি [অপেক্ষা করুন না হওয়া পর্যন্ত] ব্লক ব্যবহার করা হয়, [যদি তারপর অন্য] ব্লকটি কার্যকর করা হবে না যতক্ষণ না [অপেক্ষা করুন] শর্ত পূরণ না হয় এবং [যদি তারপর অন্য] ব্লকটি শুধুমাত্র একবার কার্যকর করা হবে।

যদি Repeat until লুপের পরিবর্তে Wait until ব্লক ব্যবহার করা হয়, তাহলে প্রকল্প প্রবাহের একটি চিত্র। প্রজেক্টটি "wait until block" এ থাকবে, যতক্ষণ না শর্তটি সত্য হিসাবে রিপোর্ট করা হয়, এবং শুধুমাত্র তারপর "If then else" ব্লকে চলে যাবে।

একটি [পুনরাবৃত্ত না হওয়া পর্যন্ত] ব্লক ব্যবহার করে, [যদি তারপর অন্য] শর্তটি ক্রমাগত পরীক্ষা করা হচ্ছে এবং কার্যকর করা হচ্ছে।

রিপিট আনটিল ব্লক সহ প্রকল্প প্রবাহের একটি চিত্র, যা দেখায় যে If then else ব্লকের অবস্থা ক্রমাগত পরীক্ষা করা হয় এবং বস্তুটি পাওয়া গেছে (সত্য) নাকি পাওয়া যায়নি (মিথ্যা) তার উপর ভিত্তি করে কার্যকর করা হয়।
  • [পুনরাবৃত্তি পর্যন্ত] ব্লক ব্যবহার করার উদ্দেশ্য নোট করার জন্য একটি মন্তব্য যোগ করুন।
আগের মতোই তৈরি করা প্রকল্প, যেখানে When started ব্লক এবং Repeat until ব্লকের মধ্যে একটি Comment ব্লক যোগ করা হয়েছে। মন্তব্যটিতে লেখা আছে 'লাল সীমানা সনাক্ত না হওয়া পর্যন্ত ভবনগুলি সন্ধান করুন।'
  • ডায়নামিক ক্যাসেল ক্র্যাশার প্লেগ্রাউন্ড খুলুন এবং প্রকল্পটি চালান।
  • এই প্রকল্পটি চালানো হলে, VR রোবট একটি শনাক্ত বস্তুর দিকে ড্রাইভ করবে এবং অন্যথায় ডানদিকে ঘুরবে। যাইহোক, যদিও ডাউন আই সেন্সর লাল সীমানা খুঁজছে, VR রোবটকে একবার লাল শনাক্ত করার পরে কী করতে হবে তা বলা হয়নি, তাই এটি চালিয়ে যেতে থাকে এবং অবশেষে খেলার মাঠ থেকে পড়ে যায়।

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

একবার [পুনরাবৃত্ত না হওয়া পর্যন্ত] ব্লকের শর্ত পূরণ হলে, প্রকল্প প্রবাহটি [পুনরাবৃত্ত না হওয়া পর্যন্ত] ব্লকের বাইরে চলে যাবে।

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