光センサー#
導入#
optical クラスは、EXP光学センサーからのデータにアクセスするために使用されます。反射光を利用して物体を検出し、色を識別し、明るさと色相を測定します。
クラスコンストラクタ#
optical(
int32_t index );
クラスデストラクタ#
optical オブジェクトを破壊し、関連するリソースを解放します。
virtual ~optical();
パラメータ#
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
光センサーが接続されているスマートポートは、 |
例#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
メンバーの機能#
optical クラスには、以下のメンバ関数が含まれます。
setLight— 光学センサーの LED をオンまたはオフにします。setLightPower— 光学センサーの光パワーレベルを設定します。isNearObject— 光学センサーが範囲内の物体を検出したかどうかを返します。color— 光学センサーによって検出された色を返します。brightness— オブジェクトから反射された光の量を返します。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#
光学センサーのLEDをオンまたはオフに設定します。このライトは、光学センサーが物体や色をより鮮明に検出するのに役立ちます。
Available Functionsvoid setLight(ledState state);
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
LED のオン/オフを設定します。0 ledState |
この関数は値を返しません。
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
光学センサーのLEDの明るさを設定します。この明るさによって、光学センサーは物体や色をより鮮明に検出できるようになります。
光学センサーのライトが消灯している場合、ライトの出力を0%以上に設定するとライトが点灯します。
光学センサーのライトが点灯している場合、ライトの出力を0%に設定するとライトが消灯します。
パーセンテージが高いほど光は明るくなり、パーセンテージが低いほど光は暗くなります。
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
ライトの明るさを0~100の範囲で設定します。 |
|
|
光の強度を表す単位: |
この関数は値を返しません。
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
光学センサーが近くの物体を検出した場合に返します。
Available Functionsbool isNearObject();
この関数は引数を受け付けません。
Return Valuesこの関数は、近くの物体が検出されたかどうかを示すブール値を返します。
true– 光学センサーが物体を検出します。false– 光学センサーが物体を検出しません。
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
color#
光学センサーによって検出された色を返します。
Available Functionsvex::color color();
この関数は引数を受け付けません。
Return Values光学センサーによって検出された色は、color class のインスタンスです。
選択可能な色は以下のとおりです。
blackwhitered- 340°~20°の間の色相値green- 80°~140°の色相値blue- 200°~240°の色合いyellow- 色相値が 40°~60°orange- 20°~40°の色相値purple- 240°~280°の色相値cyan- 140°~200°の色相値
// 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 Functionsdouble brightness(bool bRaw = false);
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
輝度データをパーセンテージではなく生データとして読み込むためのブール値。デフォルト値は |
光学センサーによって検出された明るさを表すdouble型(0~100%の範囲)、またはセンサーによって検出された生データを表すdouble型。
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#
検出された色の色相値を返します。
色相とは、色相環上の数字を用いて色を表現する方法のことです。

double hue();
この関数は引数を受け付けません。
Return Values光学センサーによって検出された色相の値を表すdouble型の値(範囲は0~359.99)。
Examples// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();
objectDetected#
オブジェクトが検出されたときに呼び出されるコールバック関数を登録します。
Available Functionsvoid objectDetected(void (* callback)(void));
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
光学センサーが新しい物体を検出したときに実行される、事前に定義された関数。 |
この関数は値を返しません。
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 Functionsvoid objectLost(void (* callback)(void));
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
光学センサーが検出対象物を失ったときに実行される、事前に定義された関数。 |
この関数は値を返しません。
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); }