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

ডাউন আই সেন্সর যোগ করা হচ্ছে
VR রোবট খেলার মাঠের প্রান্তের কাছাকাছি কিনা তা নির্ধারণ করতে সক্ষম হওয়ার জন্য আরেকটি সেন্সর প্রয়োজন। খেলার মাঠের চারপাশে লাল সীমানা সনাক্ত করে ভিআর রোবটটি খেলার মাঠের প্রান্তের কাছাকাছি কিনা তা নির্ধারণ করতে ডাউন আই সেন্সর ব্যবহার করা যেতে পারে।
যতক্ষণ না ডাউন আই সেন্সর রিপোর্ট করে যে লাল সীমানা শনাক্ত করা হয় ততক্ষণ সামনের দিকে গাড়ি চালানো এবং বাঁক নেওয়ার আচরণগুলি পুনরাবৃত্তি করতে হবে। সুতরাং, লাল সীমানা সনাক্তকরণের শর্ত পূরণ না হওয়া পর্যন্ত এগিয়ে যাওয়ার এবং ঘুরার আচরণগুলি পুনরাবৃত্তি করার জন্য, অসীম while লুপটিকে whileলুপ দিয়ে নয় শর্ত দিয়ে প্রতিস্থাপন করা যেতে পারে।
-
পূর্ববর্তী পাঠ থেকে Unit9Lesson2 প্রকল্পটি লোড করুন।
def main(): while True: # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) অপেক্ষা করুন (5, MSEC) - প্রকল্পটির নাম পরিবর্তন করুন Unit9 Lesson3।

-
ডাউন আই সেন্সরের সাথে whileলুপ কীভাবে ব্যবহার করা হবে তা উল্লেখ করতে একটি মন্তব্য যোগ করুন। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): # লাল সীমানা সনাক্ত না হওয়া পর্যন্ত ভবনটি সন্ধান করুন যখন সত্য: # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) অপেক্ষা করুন (5, MSEC) -
ডাউন আই সেন্সর ক্রমাগত পরীক্ষা করার জন্য একটি কমান্ডের প্রয়োজন। ভিআর রোবটকে এই আচরণগুলি পুনরাবৃত্তি করতে হবে যখন ডাউন আই সেন্সর নয়লাল রঙ সনাক্ত করে। while লুপের অবস্থা পরিবর্তন করার জন্য notকীওয়ার্ডটি কন্ডিশনের সামনে বসাতে হবে। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): # লাল সীমানা সনাক্ত না হওয়া পর্যন্ত ভবনটি সন্ধান করুন যখন সত্য নয়: # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) অপেক্ষা করুন (5, MSEC) -
তারপর, শর্তটি True থেকে down_eye.detectকমান্ডে পরিবর্তন করুন। প্যারামিটারটি 'RED' এ সেট করুন। আপনার প্রকল্পটি এখন এইরকম দেখা উচিত:
def main(): # লাল সীমানা সনাক্ত না হওয়া পর্যন্ত ভবনটি সন্ধান করুন while not down_eye.detect(RED): # দূরত্ব সেন্সর কি দুর্গ সনাক্ত করে? যদি front_distance.found_object(): # দূরত্ব সেন্সর দ্বারা ক্র্যাশ দুর্গ সনাক্ত করা হয় drivetrain.drive(FORWARD) অন্যথায়: # দূরত্ব সেন্সর ব্যবহার করে একটি দুর্গ খুঁজে পেতে ঘুরুন drivetrain.turn(RIGHT) অপেক্ষা করুন (5, MSEC) - Dynamic Castle Crasher Playground যদি ইতিমধ্যে খোলা না থাকে, তাহলে সেটি খুলুন এবং প্রকল্পটি চালান। VR রোবট কি আপনার ইচ্ছা অনুযায়ী আচরণ করে?
-
এই প্রকল্পটি চালানো হলে, VR রোবট একটি শনাক্ত করা বস্তুর দিকে ড্রাইভ করবে এবং অন্যথায় ডানদিকে ঘুরবে। যাইহোক, যদিও ডাউন আই সেন্সর লাল সীমানা খুঁজছে, VR রোবটকে একবার লাল শনাক্ত করার পরে কী করতে হবে তা বলা হয়নি, তাই এটি চালিয়ে যেতে থাকে এবং অবশেষে খেলার মাঠ থেকে পড়ে যায়।

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