পাঠ ১: দূরত্ব সেন্সর কী?
এই পাঠে, আপনি শিখবেন দূরত্ব সেন্সর কী এবং কেন আপনি একটি VR রোবটের সাথে দূরত্ব সেন্সর ব্যবহার করবেন। আপনি দূরত্ব সেন্সর কীভাবে কাজ করে এবং VEXcode VR পাইথন প্রকল্পে দূরত্ব সেন্সর কীভাবে ব্যবহার করবেন তাও শিখবেন।
শেখার ফলাফল
- দূরত্ব সেন্সর সেন্সর এবং নিকটতম বস্তুর মধ্যে দূরত্ব রিপোর্ট করে কিনা তা চিহ্নিত করুন।
- লেজার আলোর স্পন্দন কোনও বস্তু থেকে প্রতিফলিত হয়ে সেন্সরে ফিরে আসতে যে সময় লাগে তা ব্যবহার করে দূরত্ব সেন্সর দূরত্ব নির্ধারণ করে তা সনাক্ত করুন।
- দূরত্ব সেন্সর যদি কোনও বস্তু খুঁজে পায় বা না পায়, তাহলে found_objectকমান্ডটি একটি বুলিয়ান মান রিপোর্ট করে কিনা তা সনাক্ত করুন।
- get_distanceকমান্ডটি সেন্সর থেকে নিকটতম বস্তুর দূরত্ব মিলিমিটার (মিমি) বা ইঞ্চিতে রিপোর্ট করে কিনা তা সনাক্ত করুন।
- একটি প্রকল্পে দূরত্ব সেন্সর কেন ব্যবহার করা হবে তা বর্ণনা করুন।
দূরত্ব সেন্সর
দূরত্ব সেন্সরটি সনাক্ত করতে পারে যে কোনও ভিআর রোবটের সামনে কোনও বস্তু আছে কিনা এবং যদি থাকে তবে সেই বস্তুটি দূরত্ব সেন্সর থেকে কত দূরে। এটি দেয়ালে ক্রমাগত ধাক্কা না খেয়ে গোলকধাঁধায় নেভিগেট করতে, কোনও বস্তু এড়াতে, অথবা খেলার মাঠে কোনও বস্তু বা দেয়ালে গাড়ি চালিয়ে যেতে সহায়ক হতে পারে।
এই ইউনিটে, আপনি দূরত্ব সেন্সর ব্যবহার করবেন, একটি সেন্সর যা বস্তু সনাক্ত করতে লেজারের আলোর স্পন্দন ব্যবহার করে। দূরত্ব সেন্সর VR রোবটের দূরত্ব সেন্সরের সামনের অংশ এবং নিকটতম বস্তুর মধ্যে দূরত্ব রিপোর্ট করে। দূরত্ব সেন্সরটি ভিআর রোবটের সামনের চোখে অবস্থিত। বাম্পার সেন্সরের মতোই, ভিআর রোবটও সিদ্ধান্ত নেওয়ার জন্য দূরত্ব সেন্সর থেকে তথ্য ব্যবহার করতে পারে।

দূরত্ব সেন্সর একটি বস্তু থেকে প্রতিফলিত হতে এবং সেন্সরে ফিরে আসতে লেজারের আলোর স্পন্দনের জন্য যে সময় লাগে তা ব্যবহার করে দূরত্ব গণনা করে। ওয়াল মেজ প্লেগ্রাউন্ডে ভিআর রোবট দেয়াল থেকে কত দূরে তা সনাক্ত করতে দূরত্ব সেন্সর ব্যবহার করা যেতে পারে।

দূরত্ব পাওয়া বস্তু কমান্ড
ডিসট্যান্স সেন্সর এর সামনে কোন বস্তু (দেয়ালের মত) আছে কিনা তা সনাক্ত করতে ব্যবহার করা যেতে পারে। এই ডেটা তারপরে একটি প্রকল্পে ব্যবহার করা যেতে পারে যাতে দূরত্ব সেন্সর কোনও বস্তু সনাক্ত করলে VR রোবট সিদ্ধান্ত নিতে পারে।
দূরত্ব সেন্সরের অবস্থা পরীক্ষা করতে পাইথন প্রকল্পে found_object কমান্ড ব্যবহার করুন। found_object কমান্ডটি সত্য বা মিথ্যার বুলিয়ান মান প্রদান করে, সেন্সর দ্বারা একটি বস্তু সনাক্ত করা হয়েছে কিনা তার উপর নির্ভর করে।
- found_objectযখন দূরত্ব সেন্সর তার দৃশ্যক্ষেত্রের মধ্যে এবং সেন্সরের 3000 মিমি এর মধ্যে কোনও বস্তু বা পৃষ্ঠ সনাক্ত করে তখন Trueপ্রদান করে।
- found_objectযখন দূরত্ব সেন্সর 3000 মিমি এর মধ্যে কোন বস্তু বা পৃষ্ঠ সনাক্ত করে না তখন Falseপ্রদান করে।
found_objectকমান্ডটি সাধারণত একটি নিয়ন্ত্রণ কাঠামোর সাথে ব্যবহৃত হয়, যেমন while লুপ, যাতে VR রোবট দূরত্ব সেন্সর থেকে ডেটা ব্যবহার করে সিদ্ধান্ত নিতে পারে।
যখন found_object কমান্ডটি একটি প্রকল্পে ব্যবহার করা হয়, তখন ব্যবহৃত দূরত্ব সেন্সরটি নির্দিষ্ট করা উচিত। Wall Maze Playgroundএ, VR রোবটে শুধুমাত্র ফ্রন্ট ডিসটেন্স সেন্সর পাওয়া যায়। যখন found_objectকমান্ডটি টুলবক্স থেকে একটি প্রকল্পে টেনে আনা হয়, তখনfound_objectকমান্ডটি স্বয়ংক্রিয়ভাবে ব্যবহৃত দূরত্ব সেন্সরটি নির্দিষ্ট করবে, যেমনটি এখানে দেখানো হয়েছে। নিচের ভিডিও ক্লিপে, found_object কমান্ডটি টুলবক্সে নির্বাচন করা হয়েছে এবং ওয়ার্কস্পেসে টেনে আনা হয়েছে। যখন এটি প্রজেক্টে প্রদর্শিত হবে, তখন কমান্ডটি স্বয়ংক্রিয়ভাবে ডিভাইসটিতে "front_distance" লেখা থাকবে।
দূরত্ব কমান্ড পান
দূরত্ব সেন্সর একটি বস্তুর দূরত্ব রিপোর্ট করতে পারে এবং সিদ্ধান্ত নিতে সেই মানটি ব্যবহার করতে পারে। get_distanceকমান্ডটি একটি VR রোবটের সামনের দিক থেকে নিকটতম বস্তুর সাংখ্যিক দূরত্ব প্রদান করে।
"MM" অথবা "INCHES" প্যারামিটার সেট করে দূরত্ব মিলিমিটার (মিমি) অথবা ইঞ্চিতে রিপোর্ট করা হবে কিনা তা বেছে নিন।
get_distance কমান্ডটি অন্যান্য কমান্ডের সাথে ব্যবহার করা যেতে পারে, যেমনwhileলুপ, একটি প্রকল্পে যা একটি VR রোবটকে একটি বস্তু থেকে (অথবা দিকে) একটি নির্দিষ্ট দূরত্ব দূরে চালানোর নির্দেশ দেয়, অথবা একটি নির্দিষ্ট দূরত্ব রিপোর্ট করা হলে একটি ক্রিয়া সম্পন্ন করে।
যখন get_distanceকমান্ডটি একটি প্রকল্পে ব্যবহার করা হয়, তখন ব্যবহৃত দূরত্ব সেন্সরটি নির্দিষ্ট করা উচিত। Wall Maze Playgroundএ, VR রোবটে শুধুমাত্র ফ্রন্ট ডিসটেন্স সেন্সর পাওয়া যায়। যখন get_distanceকমান্ডটি টুলবক্স থেকে একটি প্রকল্পে টেনে আনা হয়, তখনget_distanceকমান্ডটি স্বয়ংক্রিয়ভাবে ব্যবহৃত দূরত্ব সেন্সরটি নির্দিষ্ট করবে, যেমনটি এখানে দেখানো হয়েছে। নিচের ভিডিও ক্লিপে, get_distance কমান্ডটি টুলবক্সে নির্বাচন করা হয়েছে এবং ওয়ার্কস্পেসে টেনে আনা হয়েছে। যখন এটি প্রজেক্টে প্রদর্শিত হবে, তখন কমান্ডটি স্বয়ংক্রিয়ভাবে ডিভাইসটিতে "front_distance" লেখা থাকবে।
দূরত্ব সেন্সর এবং ওয়াল মেজ সমস্যা
ওয়াল মেজ সমস্যা সম্পর্কে চিন্তা করে, লক্ষ্য হল একটি প্রাচীর থেকে দূরে থাকাকালীন ভিআর রোবট ড্রাইভ করা। যখন ভিআর রোবটটি কোনও দেয়ালের কাছে চলে যায়, তখন গোলকধাঁধায় এগিয়ে যাওয়ার জন্য দেয়াল স্পর্শ না করেই থামতে হয় অথবা ঘুরতে হয়। দূরত্ব সেন্সর ব্যবহারের ফলে একটি ভিআর রোবট কোনও বস্তু স্পর্শ না করেই তার কাছে গাড়ি চালাতে পারবে।
নিচের ভিডিও ক্লিপের উদাহরণে, VR রোবটটি সামনের দিকে এগিয়ে যাবে যখন দূরত্ব সেন্সর রিপোর্ট করবে যে এটি একটি বস্তু থেকে ৫০ মিলিমিটারের বেশি দূরে রয়েছে। ৫০ মিলিমিটারের কম দূরে গেলে, ভিআর রোবটটি গাড়ি চালানো বন্ধ করে দেবে। লক্ষ্য করুন VR রোবট দেয়ালে স্পর্শ করে না।
আপনি লক্ষ্য করবেন যে প্রকল্পটি চালানোর সাথে সাথে দূরত্ব সেন্সর রিয়েল টাইমে রিপোর্ট করছে ড্যাশবোর্ডটি প্রদর্শন করে। যখন মান 50 মিলিমিটারের বেশি হয়, তখন VR রোবটটি এগিয়ে যেতে থাকবে।
যখন দূরত্ব সেন্সরমিলিমিটারের কম মান রিপোর্ট করে, তখন VR রোবটটি দেয়ালের কাছে থাকে এবং এটি স্পর্শ না করেই গাড়ি চালানো বন্ধ করে দেয়। 
এই উদাহরণে, get_distanceকমান্ডটি একটি তুলনামূলক অপারেটরের সাথে একটি লুপে একটি বুলিয়ান মান ফেরত দেওয়ার জন্য ব্যবহার করা হয়েছে। এই ইউনিটে আপনি (>) এর চেয়ে বড় এবং (>) এর চেয়ে ছোট অপারেটর সম্পর্কে আরও শিখবেন।