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

ভূমিকা#

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

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

optical(
    int32_t 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 instance
optical Optical1 = optical(
    PORT1);   // Smart Port 1

setLight#

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

Available Functions
void  setLight(ledState state);

Parameters

প্যারামিটার

প্রকার

বর্ণনা

state

ledState

এলইডি চালু বা বন্ধ করে। ledState::on এলইডি 100% উজ্জ্বলতায় চালু করে। 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

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

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

  • black

  • white

  • red - ৩৪০° থেকে ২০° এর মধ্যে একটি বর্ণচ্ছটার মান

  • green - ৮০° - ১৪০° এর মধ্যে একটি বর্ণচ্ছটার মান

  • blue - ২০০° - ২৪০° এর মধ্যে একটি বর্ণচ্ছটার মান

  • yellow - ৪০° - ৬০° এর মধ্যে একটি বর্ণচ্ছটার মান

  • orange - ২০° - ৪০° এর মধ্যে একটি বর্ণচ্ছটার মান

  • purple - ২৪০° - ২৮০° এর মধ্যে একটি বর্ণচ্ছটার মান

  • cyan - ১৪০° - ২০০° এর মধ্যে একটি বর্ণচ্ছটার মান

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);
}