Skip to main content

ভিশন সেন্সর কী? - সি++

শিক্ষক টুলবক্স আইকন শিক্ষক টুলবক্স - এই পৃষ্ঠার উদ্দেশ্য

এই পৃষ্ঠাটি শিক্ষার্থীদের ভিশন সেন্সর কী এবং এর কিছু ক্ষমতা সম্পর্কে পরিচয় করিয়ে দেবে। এরপর শিক্ষার্থীরা একটি উদাহরণ প্রকল্পের আংশিক চিত্র বিশ্লেষণ করবে যাতে তারা দেখতে পারে কিভাবে ভিশন সেন্সর VEXcode V5 এর সাথে ব্যবহার করা যেতে পারে।
পৃষ্ঠার নীচে মোটিভেট আলোচনার প্রশ্নগুলি ক্লাস আলোচনা হিসাবে অথবা শিক্ষার্থীদের ইঞ্জিনিয়ারিং নোটবুকে পৃথকভাবে সম্পন্ন করা যেতে পারে।

আলোচনার জন্য উৎসাহিত করার আইকন আলোচনা প্রেরণা দিন

প্রশ্ন:দৃষ্টি সেন্সর সহ রোবটের সাহায্যে কোন ধরণের মানুষের কাজ উপকৃত হবে?
উত্তর:এমন মানুষের কাজের কথা শুনুন যেগুলি দূরবর্তী দূরত্ব থেকে পরিবেশে দেখার এবং/অথবা আশেপাশের পরিবেশ নিয়ন্ত্রণ করার ক্ষমতা থেকে উপকৃত হবে (যেমন, বন্য প্রাণী পর্যবেক্ষণ করা, বিস্ফোরক নিরস্ত্রীকরণ করা, অথবা রোবট-সহায়তায় অস্ত্রোপচার করা)।

প্রশ্ন:একটি ডিভাইসের নাম বলুন এবং বর্ণনা করুন যে এটি কীভাবে ইনপুট, আউটপুট এবং প্রক্রিয়া ব্যবহার করে।
উত্তর:একটি সম্ভাব্য উত্তর হতে পারে একটি ক্যালকুলেটর যা একজন ব্যক্তির ইনপুট করা সংখ্যা এবং গাণিতিক অপারেটরগুলির ক্রম গ্রহণ করে, ফলাফল গণনা করার জন্য সেই সংখ্যা এবং ক্রিয়াকলাপগুলি প্রক্রিয়া করে এবং তারপর সেই ফলাফলটি ব্যক্তির জন্য একটি স্ক্রিনে আউটপুট করে।

প্রশ্ন:উপরে দেখানো প্রকল্পে কেন একটি ফরএভার লুপ ব্যবহার করা হয়েছিল বলে আপনার মনে হয়?
উত্তর:একটি ফরএভার লুপ ব্যবহার করা হয়েছিল যাতে ভিশন সেন্সর ক্রমাগত একাধিক স্ন্যাপশট পরীক্ষা করে দেখে যে কোনও লাল বস্তু সেন্সরের দৃষ্টিতে আসে কিনা।

বিবরণ

ভিশন সেন্সর আপনার রোবটকে একটি লাইভ ফিড থেকে ভিজ্যুয়াল ডেটা সংগ্রহ করতে দেয় । একটি লাইভ ফিড হল একটি ভিডিও ক্যামেরা কী ক্যাপচার করছে তার একটি স্ট্রিমিং ট্রান্সমিশন । ভিশন সেন্সরটি একটি স্মার্ট ক্যামেরার মতো যা তার ভিজ্যুয়াল ফিল্ডে প্রদর্শিত রঙ এবং বস্তুগুলি পর্যবেক্ষণ, নির্বাচন, সমন্বয় এবং সঞ্চয় করতে পারে ।

ডানদিকে দেখানো সংযোগের জন্য পোর্ট সহ সেন্সরের উপরে বাম এবং সেন্সরের নীচে দেখানো ভেক্স ভিশন সেন্সর ।
ভিশন সেন্সর 276-4850

সামর্থ্য:

  • এই সেন্সরটি রঙ এবং রঙের নিদর্শনগুলি সনাক্ত করার জন্য ব্যবহার করা যেতে পারে ।
  • এই সেন্সরটি কোনও বস্তু অনুসরণ করতে ব্যবহার করা যেতে পারে ।
  • এই সেন্সরটি পরিবেশ সম্পর্কে তথ্য সংগ্রহ করতে ব্যবহার করা যেতে পারে ।

ভিশন সেন্সর রোবটকে তার পরিবেশ থেকে ভিজ্যুয়াল ইনপুট ডেটা ব্যবহার করতে দেয় । প্রজেক্টটি তখন নির্ধারণ করতে পারে যে ভিজ্যুয়াল ইনপুট ডেটা কীভাবে রোবটের আচরণকে প্রভাবিত করবে । উদাহরণস্বরূপ, রোবটটি মোটর ঘোরানো বা LCD স্ক্রিনে ফলাফল প্রদর্শনের মতো ক্রিয়া (আউটপুট) সম্পাদন করতে পারে।

ভিশন সেন্সরটি এর সামনে যা আছে তার একটি স্ন্যাপশটও ধারণ করতে পারে এবং ব্যবহারকারী যা জিজ্ঞাসা করছে সে অনুসারে এটি বিশ্লেষণ করতে পারে। উদাহরণস্বরূপ, একজন ব্যবহারকারী স্ন্যাপশট থেকে ডেটা সংগ্রহ করতে পারেন যেমন, বস্তুটির রঙ কী? আদৌ কি কোনও বস্তু শনাক্ত হয়েছে? বস্তুটি কত বড় (প্রস্থ এবং উচ্চতা)?

এরপর রোবট এই তথ্যের উপর ভিত্তি করে সিদ্ধান্ত নিতে পারে। নীচের আংশিক উদাহরণ প্রকল্পটি কীভাবে এটি করা হয় তা দেখায় । প্রকল্পটি শুরু হওয়ার পরে তিনটি রঙ বারবার পরীক্ষা করা হচ্ছে এবং প্রতিটি রঙের চেক একটি ভিন্ন ইভেন্ট । শুধুমাত্র ব্লু-এর জন্য চেক করা ইভেন্টটি নীচে দেখানো হয়েছে । এই স্ট্যাকটিতে রোবট প্রিন্ট "ব্লু অবজেক্ট পাওয়া গেছে" যদি কোনও নীল অবজেক্ট সনাক্ত করা হয় বা অন্যথায় "কোনও নীল অবজেক্ট নেই" থাকে । নীচে দেখানো হয়নি এমন চেকরেড এবং চেকগ্রীন ইভেন্টগুলিতে স্ক্রিনে কী প্রিন্ট করতে হবে তা নির্ধারণের জন্য একই স্ট্যাক রয়েছে ।

#include "vex.h" namespace vex; event checkBlue =

event (); event checkRed = event();
event checkGreen = event();

void
has BlueCallback () {Brain.Screen.setFont (mono20); Brain.Screen.clearLine (1, black)

  ; Brain.Screen.setCursor (1); Brain.Screen.setCursor
  (1, 1); Vision5.take.Snapsnhot (

Vision
  __ BUEBOX);

  if (Vision5.object.obount.creen.print = event ()
  = event (); event ();
  event (); event checkGreen > = event (); vrain.Screen.setFont (mono20); Brain.Screen.setFont
    (mono20); Brain.Screen.cursor (1); Brain.Screen.cursor (

  Brain.Screen.creen.cursor (1)
    , 1); Brain.Screen.creen.setCrreen.cursor (1); Brain.setCrreen.cursor (1
  )
;

Brain.Scursor (1); Brain.Screen.setCrreen.cursor (
1); Brain.Scursor (1
  ); Brain.Scursor (1); Brain.Screen.setCursor মুছে ফেলবেন না!
  vexcodeInit();

  checkBlue (hasBlueCallback);

  while (true) {
    checkBlue.broadcast ();
    checkRed.broadcast ();
    checkGreen.broadcast ();
    wait(1, সেকেন্ড);
  }
}