পাঠ ২: তুলনামূলক অপারেটর ব্যবহার করা
এই পাঠে, আপনি তুলনামূলক অপারেটর এবং দূরত্ব সেন্সর থেকে ডেটা সহ একটি প্রকল্পে তাদের ব্যবহার সম্পর্কে আরও জানবেন। তারপর আপনি একটি প্রকল্প তৈরি করবেন যা VR রোবটকে 'A' অক্ষরে নেভিগেট করবে দূরত্ব সেন্সর ব্যবহার করে while loops এবং (>) এর চেয়ে বড় অপারেটর ব্যবহার করে। মিনি-চ্যালেঞ্জে, আপনি ওয়াল মেজের শুরু থেকে '১' নম্বরে নেভিগেট করার জন্য এই দক্ষতাগুলি প্রয়োগ করবেন।

শেখার ফলাফল
- চিহ্নিত করুন যে (>), (<) এর চেয়ে কম , এবং (==) এর সমান তুলনামূলক অপারেটর যা দুটি মান তুলনা করে, যা অপারেন্ড নামে পরিচিত।
- শনাক্ত করুন যে (>) এর চেয়ে বড় অপারেটর দুটি মানের তুলনা করে এবং যদি বাম মানটি ডান মানের চেয়ে বড় হয় তবে True রিপোর্ট করে।
- (<) এর চেয়ে কম অপারেটর দুটি মানের তুলনা করে এবং বাম মানটি ডান মানের চেয়ে কম হলে True রিপোর্ট করে তা চিহ্নিত করুন।
- whileলুপে শর্ত হিসেবে ব্যবহার করলে (>) এর চেয়ে বড় বা (<) এর চেয়ে কম অপারেটরগুলি সত্য বা মিথ্যা মান রিপোর্ট করে কিনা তা চিহ্নিত করুন।
- দূরত্ব সেন্সরের মান একটি নির্দিষ্ট পরিমাণের চেয়ে কম না হওয়া পর্যন্ত একটি VR রোবট ড্রাইভ ফরওয়ার্ড করে এমন একটি প্রকল্প কীভাবে তৈরি করবেন তা বর্ণনা করুন।
তুলনা অপারেটর
(<) এর চেয়ে কম, (>) এর চেয়ে বড় এবং (==) এর সমান অপারেটর দুটি মানের তুলনা করে, যা অপারেন্ড নামেও পরিচিত। অপারেটরের বাম দিকের মানটি প্রথম অপারেন্ড এবং ডানদিকের মানটি দ্বিতীয় অপারেন্ড। অপারেটররা বুলিয়ান মান রিপোর্ট করে এবং তুলনা সঠিক হলে True মান রিটার্ন করে, এবং তুলনা নাসঠিক হলে False মান রিটার্ন করে।
- এই উদাহরণগুলিতে (<) এর চেয়ে কম অপারেটর ব্যবহার করে, যখন বিবৃতিটি সংখ্যাগতভাবে সঠিক হয়, তখন এটি True রিপোর্ট করবে।

- একইভাবে, (>) এর চেয়ে বড় অপারেটর ব্যবহার করে এই উদাহরণগুলিতে, সংখ্যাগতভাবে সঠিক বিবৃতিটি সত্য বলে রিপোর্ট করবে।

- (==) এর সমান অপারেটর দুটি মান হুবহু একই হলে True এবং না হলে False বলে।
- মনে রাখবেন যে দ্বিগুণ সমান চিহ্নের অর্থ "সমান" এবং দুটি মান তুলনা করে। একটি একক সমান চিহ্ন হল একটি অ্যাসাইনমেন্ট অপারেটর যা একটি ভেরিয়েবলকে একটি মান নির্ধারণ করে।
তুলনা অপারেটররা দশমিক, পূর্ণসংখ্যা বা সংখ্যাসূচক রিপোর্টিং কমান্ডের তুলনা করতে পারে।
দূরত্ব সেন্সর ডেটা সহ তুলনা অপারেটর ব্যবহার করা
তুলনা অপারেটরগুলি বিশেষভাবে উপযোগী যখন আপনি একটি সেন্সর থেকে সংখ্যাসূচক ডেটা ব্যবহার করছেন, যেমন দূরত্ব সেন্সর, VR রোবটকে সিদ্ধান্ত নেওয়ার জন্য। পূর্ববর্তী ইউনিটে, বাম্পার সেন্সর টিপলে VR রোবট ঘুরতে বাম্পার সেন্সর থেকে ডেটা ব্যবহার করা হয়েছিল। যাইহোক, একটি তুলনা অপারেটরের সাথে, আমরা দূরত্ব সেন্সর থেকে ডেটা ব্যবহার করতে পারি ভিআর রোবটটিকে আরও সুনির্দিষ্ট অবস্থানে ঘুরিয়ে দিতে। দেয়ালে গাড়ি চালানো এড়াতে, অথবা VR রোবটকে খেলার মাঠের একটি নির্দিষ্ট স্থানে নেভিগেট করতে সাহায্য করার জন্য এটি কার্যকর।
দূরত্ব সেন্সর থেকে ডেটা তুলনা অপারেটরের মানগুলির মধ্যে একটি হিসাবে ব্যবহার করা যেতে পারে।
সামনের_দূরত্ব.দূরত্ব_পান(এমএম) > ৫০উদাহরণস্বরূপ, যদি আমরা চাই যে VR রোবটটি কোনও বস্তুর দিকে, যেমন একটি প্রাচীরের দিকে, এবং যখন এটি বস্তুর কাছাকাছি থাকে তখন থামবে, তাহলে আমরা একটি তুলনা অপারেটর এবং get _distance ফাংশন ব্যবহার করে এটি করতে পারি। মূলত, আমরা VR রোবটকে ড্রাইভ করতে বলছি যখন রোবট এবং বস্তুর মধ্যে দূরত্ব একটি প্রান্তিক মানের চেয়ে বেশি, যেমন 50 মিলিমিটার (মিমি)৷
যদিও দূরত্ব সেন্সর রিপোর্ট করে যে এটি ৫০ মিলিমিটার (মিমি) এর চেয়েআরও, অথবা মান(>) ৫০ এর চেয়েবেশি, VR রোবটটি অবাধে গাড়ি চালাতে পারে। যখন দূরত্ব সেন্সর রিপোর্ট করে যে এটি ৫০ মিলিমিটার (মিমি) এর চেয়েকাছাকাছি, অথবা মান (>) ৫০ এর চেয়েনয়বেশি, তখন ভিআর রোবটটিকে দেয়ালের সাথে সংঘর্ষের আগে থামতে হবে বা ঘুরতে হবে।
আপনার তথ্যের জন্য
কোন তুলনা অপারেটর ব্যবহার করতে হবে তা বেছে নেওয়া একটি শৈলীগত পছন্দ হতে পারে। প্রকল্পটিকে যতটা সম্ভব পরিষ্কার এবং পঠনযোগ্য করতে উপরের উদাহরণে (>) এর চেয়ে বড় অপারেটর ব্যবহার করা হয়েছে। VR রোবটটি 50 মিলিমিটারের বেশি দূরত্বে থাকা অবস্থায়, এগিয়ে যান। অপারেটরের মানগুলির ক্রম উল্টে দিয়ে এবং (<) এর চেয়ে কম অপারেটর ব্যবহার করে আপনি একই লক্ষ্য অর্জন করতে পারেন।
যখন ৫০ > front_distance.get_distance(MM):এখানে, VR রোবটটি ড্রাইভ করবে যখন দূরত্ব সেন্সর দ্বারা রিপোর্ট করা মানের চেয়ে 50 মিলিমিটার বেশি ছিল। ভিআর রোবটও একই আচরণ করবে, তবে প্রকল্পটি কিছুটা কম স্পষ্ট এবং পাঠযোগ্য।
আপনার ব্যবহৃত সেন্সর ডেটার উপর নির্ভর করে, (==) অপারেটরটি VR রোবটকে আপনার ইচ্ছামত কাজ করতে নাও দিতে পারে। উদাহরণস্বরূপ, যদি লক্ষ্য হয় VR রোবটকে কোনো বস্তু থেকে 50 মিলিমিটার দূরে রাখা, তাহলে আপনি ভাবতে পারেন যে এটি (==) অপারেটরের সমান।
যখন front_distance.get_distance(MM) == ৫০:যাইহোক, উদাহরণস্বরূপ, ওয়াল মেজে, দূরত্ব সেন্সর সহ (==) অপারেটর ব্যবহার করার জন্য সেন্সর থেকে এত সুনির্দিষ্ট রিডিং প্রয়োজন হবে, যাঠিক50 মিলিমিটার হবে, যে VR রোবটের গতি বাস্তব সময়ে সেই স্তরের নির্ভুলতা অর্জন করা প্রায় অসম্ভব করে তুলবে। সুতরাং, VR রোবট সম্ভবত থ্রেশহোল্ড অতিক্রম করে চলতে থাকবে কারণ এটি 100 মিলিমিটার বা 25 মিলিমিটারের মান রিপোর্ট করছে কিনা, এর কোনটিই এর সমান নয়50 মিমি, তাই অপারেটর কখনই সত্য হিসাবে রিপোর্ট করে না।
তুলনা অপারেটর এবং ওয়াল গোলকধাঁধা সমস্যা
তুলনা অপারেটর এবং দূরত্ব সেন্সরের সাথে একটি যখন লুপ ব্যবহার করা যেতে পারে, যাতে ভিআর রোবট ক্রমাগত সেন্সর ডেটা পরীক্ষা করে এবং তুলনাটি মূল্যায়ন করে। এটি VR রোবটকে একটি আচরণ করতে সক্ষম করতে পারে যখন একটি মান একটি নির্দিষ্ট থ্রেশহোল্ডের উপরে বা নীচে থাকে৷ ওয়াল মেজে, কাঙ্ক্ষিত ফলাফল হল ভিআর রোবটকেএগিয়ে নিয়ে যাওয়াদূরত্ব সেন্সরটি দেয়াল থেকে ৫০ মিলিমিটার (মিমি) এর চেয়ে বেশি। তারপরে, গোলকধাঁধা দিয়ে চালিয়ে যেতে এটি থামানো বা ঘুরিয়ে দেওয়া উচিত।
def main():
while front_distance.get_distance(MM) > 50:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()এই ভিডিও ক্লিপের উদাহরণে, বাম দিকে দেখানো প্রকল্পের whileলুপটি VR রোবটকে শুরুর স্থান থেকে এগিয়ে নিয়ে যাবে, যতক্ষণ না শর্তটি পূরণ হয়, এবং VR রোবট এবং নিকটতম বস্তুর (প্রথম বিপরীত প্রাচীর) মধ্যে দূরত্ব 50 মিলিমিটার (মিমি) এর বেশি হিসাবে রিপোর্ট করা হয়। রোবটটি তখন থেমে যায় যখন এটি প্রথম দেয়ালের কাছে যায় এবং জানা যায় যে দূরত্ব ৫০ মিলিমিটারের কম।
এই চিত্রটি উপরের প্রকল্পের প্রবাহ ব্যাখ্যা করে:
- দূরত্ব সেন্সর প্রাচীর থেকে 50 মিলিমিটার (মিমি) এর বেশি হলেও, অপারেটর সত্য রিপোর্ট করে এবং এ থাকে এবং লুপে থাকে
- যখন এটি প্রাচীর থেকে ৫০ মিলিমিটার (মিমি) এর কম দূরে থাকে, তখন অপারেটর False রিপোর্ট করে এবংwhileলুপ থেকে বেরিয়ে আসে।

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