অপটিক্যাল সেন্সর#

ভূমিকা#

অপটিক্যাল সেন্সর থেকে ডেটা অ্যাক্সেস করার জন্য optical ক্লাসটি ব্যবহৃত হয়। এটি বস্তু শনাক্ত করতে, রং চিহ্নিত করতে এবং উজ্জ্বলতা ও বর্ণচ্ছটা পরিমাপ করতে প্রতিফলিত আলো ব্যবহার করে।

ক্লাস কনস্ট্রাক্টর#

optical Optical = optical(index);

ক্লাস ডেস্ট্রাক্টর#

optical অবজেক্টটি ধ্বংস করে এবং সংশ্লিষ্ট রিসোর্সসমূহ মুক্ত করে।

virtual ~optical();

প্যারামিটার#

প্যারামিটার

প্রকার

বর্ণনা

index

int32_t

যে স্মার্ট পোর্টের সাথে অপটিক্যাল সেন্সরটি সংযুক্ত থাকে, তা PORTxহিসেবে লেখা হয়, যেখানে x হলো পোর্ট নম্বর (উদাহরণস্বরূপ, PORT1)।

উদাহরণ#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

সদস্যদের কার্যাবলী#

optical ক্লাসে নিম্নলিখিত সদস্য ফাংশনগুলো অন্তর্ভুক্ত রয়েছে:

  • setLight — অপটিক্যাল সেন্সরের LED চালু বা বন্ধ করে।

  • setLightPower — অপটিক্যাল সেন্সরের আলোর শক্তির মাত্রা নির্ধারণ করে।

  • isNearObject — অপটিক্যাল সেন্সর সীমার মধ্যে কোনো বস্তু সনাক্ত করতে পারে কিনা তা ফেরত দেয়।

  • color — অপটিক্যাল সেন্সর দ্বারা শনাক্ত করা রঙটি ফেরত দেয়।

  • brightness — বস্তু থেকে প্রতিফলিত আলোর পরিমাণ ফেরত দেয়।

  • hue — অপটিক্যাল সেন্সর দ্বারা শনাক্ত করা রঙ (hue) ফেরত দেয়।

  • objectDetected — অপটিক্যাল সেন্সর কোনো বস্তু সনাক্ত করলে যে ফাংশনটি কল করা হবে তা নিবন্ধন করে।

  • objectLost — অপটিক্যাল সেন্সর কোনো বস্তু হারিয়ে ফেললে যে ফাংশনটি কল করা হবে তা রেজিস্টার করে।

যেকোনো optical মেম্বার ফাংশন কল করার আগে, একটি optical ইনস্ট্যান্স তৈরি করতে হবে, যেমনটি নিচে দেখানো হয়েছে:

/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an optical object in Port 1
optical Optical1 = optical(PORT1);

setLight#

অপটিক্যাল সেন্সরের এলইডি চালু বা বন্ধ করে। এই আলো অপটিক্যাল সেন্সরকে বস্তু এবং রং আরও স্পষ্টভাবে শনাক্ত করতে সাহায্য করে।

Available Functions
void  setLight(ledState state);

Parameters

প্যারামিটার

প্রকার

বর্ণনা

state

ledState

এলইডি চালু বা বন্ধ করে। ledState::on এলইডি-কে ১০০% উজ্জ্বলতায় চালু করে। ledState::off এটিকে বন্ধ করে।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

অপটিক্যাল সেন্সরের আলোর উজ্জ্বলতা নির্ধারণ করে। এই আলো অপটিক্যাল সেন্সরকে বস্তু এবং রং আরও স্পষ্টভাবে শনাক্ত করতে সাহায্য করে।

বেশি শতাংশ আলোকে আরও উজ্জ্বল করে। কম শতাংশ আলোকে আরও অনুজ্জ্বল করে।

যদি অপটিক্যাল সেন্সরের আলো বন্ধ থাকে, তাহলে আলোর শক্তি ০% এর উপরে সেট করলে আলোটি জ্বলে উঠবে।

যদি অপটিক্যাল সেন্সরের আলোটি চালু থাকে, তাহলে আলোর শক্তি ০%-এ সেট করলে আলোটি বন্ধ হয়ে যাবে।

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

প্যারামিটার

প্রকার

বর্ণনা

intensity

int32_t

আলোর পাওয়ার লেভেল ০ থেকে ১০০ পর্যন্ত সেট করা যায়।

units

percentUnits

আলোর তীব্রতা বোঝানোর একক: percent pct — শতাংশ

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Examples
// Set the light power to 50 percent.
Optical.setLightPower(50, percent);

isNearObject#

অপটিক্যাল সেন্সরটি সীমার মধ্যে কোনো বস্তু শনাক্ত করতে পেরেছে কি না, তা ফেরত দেয়।

Available Functions
bool  isNearObject();

Parameters

এই ফাংশনটি কোনো প্যারামিটার গ্রহণ করে না।

Return Values

এই ফাংশনটি কাছাকাছি কোনো বস্তু শনাক্ত হয়েছে কিনা তা নির্দেশ করে একটি বুলিয়ান মান রিটার্ন করে:

  • true — কাছাকাছি একটি বস্তু শনাক্ত করা হয়েছে।

  • false — কোনো বস্তু শনাক্ত করা যায়নি।

Examples
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
  Brain.Screen.print("near object");
}

color#

শনাক্তকৃত হিউ মানের উপর ভিত্তি করে অপটিক্যাল সেন্সর দ্বারা শনাক্তকৃত রঙটি ফেরত দেয়।

Available Functions
vex::color  color();

Parameters

এই ফাংশনটি কোনো প্যারামিটার গ্রহণ করে না।

Return Values

অপটিক্যাল সেন্সর দ্বারা রঙের শ্রেণী এর একটি উদাহরণ হিসাবে সনাক্ত করা রঙ।

সম্ভাব্য রংগুলো হলো:

  • blue – বর্ণচ্ছটার মান ১৯৬° থেকে ২২৯° এর মধ্যে

  • blue_green – ১৪০° এবং ১৯৫° এর মধ্যে বর্ণচ্ছটার মান

  • blue_violet – ২৩০° এবং ২৩৯° এর মধ্যে বর্ণচ্ছটার মান

  • green – বর্ণচ্ছটার মান ৮৪° থেকে ১৩৯° এর মধ্যে

  • orange – বর্ণচ্ছটার মান ২১° থেকে ৩০° এর মধ্যে

  • red – ৩৫০° এবং ১৪° এর মধ্যে বর্ণচ্ছটার মান

  • red_orange – ১৫° এবং ২০° এর মধ্যে বর্ণচ্ছটার মান

  • red_violet – ২৮১° এবং ৩৫০° এর মধ্যে বর্ণচ্ছটার মান

  • violet – ২৪০° থেকে ২৮০° এর মধ্যে বর্ণচ্ছটার মান

  • yellow – বর্ণচ্ছটার মান ৫৪° থেকে ৭৪° এর মধ্যে

  • yellow_green – ৭৫° থেকে ৮৩° এর মধ্যে বর্ণচ্ছটার মান

  • yellow_orange – ৩১° এবং ৫৩° এর মধ্যে বর্ণচ্ছটার মান

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

অপটিক্যাল সেন্সরে কী পরিমাণ আলো প্রতিফলিত হয়ে ফিরে আসে তা জানায়।

উচ্চ শতাংশের অর্থ হলো অপটিক্যাল সেন্সরে বেশি আলো প্রতিফলিত হয়। নিম্ন শতাংশের অর্থ হলো কম আলো প্রতিফলিত হয়।

Available Functions
double  brightness(bool bRaw = false);

Parameters

প্যারামিটার

প্রকার

বর্ণনা

bRaw

bool

শতাংশের পরিবর্তে প্রকৃত উজ্জ্বলতার ডেটা পড়ার জন্য একটি বুলিয়ান মান। ডিফল্ট হলো false।

Return Values

একটি ডাবল যা অপটিক্যাল সেন্সর দ্বারা ০ - ১০০% পরিসরে শনাক্তকৃত উজ্জ্বলতাকে বোঝায়, অথবা একটি ডাবল যা সেন্সর দ্বারা শনাক্তকৃত কাঁচা ডেটাকে বোঝায়।

Examples
// Set a variable, brightness, to the value of the brightness
// detected by the Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

অপটিক্যাল সেন্সর দ্বারা শনাক্তকৃত বর্ণচ্ছটা ফেরত দেয়।

হিউ হলো কালার হুইলের সংখ্যা ব্যবহার করে রঙ বর্ণনা করার একটি পদ্ধতি।

VEX কালার হুইলটি একটি বৃত্তের চারপাশে রঙের মাত্রা দেখাচ্ছে, যেখানে লাল রঙ ০ মাত্রায় রয়েছে এবং মান বাড়ার সাথে সাথে রংধনুর বিভিন্ন রঙের মধ্য দিয়ে পরিবর্তিত হচ্ছে।

Available Functions
double hue();

Parameters

এই ফাংশনটি কোনো প্যারামিটার গ্রহণ করে না।

Return Values

একটি ডাবল যা অপটিক্যাল সেন্সর দ্বারা শনাক্তকৃত হিউ-এর মানকে ০ — ৩৫৯.০০ পরিসরের মধ্যে উপস্থাপন করে।

Examples
// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();

objectDetected#

কোনো অবজেক্ট শনাক্ত হলে ব্যবহারের জন্য একটি কলব্যাক ফাংশন নিবন্ধন করে।

Available Functions
void objectDetected(void (* callback)(void));

Parameters

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

পূর্বে সংজ্ঞায়িত একটি ফাংশন যা অপটিক্যাল সেন্সর একটি নতুন বস্তু সনাক্ত করলে কার্যকর হয়।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Examples

কলব্যাক ফাংশনটি সংজ্ঞায়িত করুন ( int main() এর বাইরে)

// Called when the Optical Sensor detects an object
void detected() {
  // The Brain will print that the Optical Sensor detected an
  // object to the Brain's screen.
  Brain.Screen.print("object detected");
}

int main() এর ভিতরে কলব্যাকটি নিবন্ধন করুন

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run when the Optical Sensor detects an object.
  Optical.objectDetected(detected);
}

objectLost#

কোনো অবজেক্ট হারিয়ে গেলে ব্যবহারের জন্য একটি কলব্যাক ফাংশন নিবন্ধন করে।

Available Functions
void objectLost(void (* callback)(void));

Parameters

প্যারামিটার

প্রকার

বর্ণনা

callback

void (*)(void)

পূর্বে সংজ্ঞায়িত একটি ফাংশন যা অপটিক্যাল সেন্সর সনাক্ত করা বস্তু হারিয়ে ফেললে কার্যকর হয়।

Return Values

এই ফাংশনটি কোনো মান ফেরত দেয় না।

Examples

কলব্যাক ফাংশনটি সংজ্ঞায়িত করুন ( int main() এর বাইরে)

// Called when the Optical Sensor loses an object
void lost() {
  // The Brain will print that the Optical Sensor lost an
  // object to the Brain's screen.
  Brain.Screen.print("object lost");
}

int main() এর ভিতরে কলব্যাকটি নিবন্ধন করুন

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}