光学的#
介绍#
光学传感器提供了从不同物体返回数据的方法。这使得大脑能够检测颜色及其色调和亮度。
For the examples below, the configured Optical Sensor will be named Optical1 and will be used in all subsequent examples throughout this API documentation when referring to optical class methods.
以下是所有可用方法的列表:
动作——使用光学传感器检测物体。
objectDetected– Registers a function to call when the Optical Sensor detects an object.objectLost– Registers a function to call when the Optical Sensor loses an object.
变异器——修改光学传感器灯和检测范围。
setLight– Turns the Optical Sensor’s LED on or off.setLightPower– Sets the Optical Sensor’s LED to a specific brightness.objectDetectThreshold– Sets the distance an object has to be from the Optical Sensor for it to be detected.
Getters – 使用光学传感器返回对象数据。
isNearObject– Returns whether or not an object is close to the sensor.color– Return the detected color as a predefined color object.brightness– Returns the detected brightness of an object.hue– Returns the detected hue value as a float from 0 to 359.99 degrees.installed– Returns whether or not the Optical Sensor is connected to the Brain.
构造函数——手动初始化光学传感器。
optical– Create an Optical Sensor.
行动#
objectDetected#
objectDetected registers a function to be called when the Optical Sensor detects an object.
Usage:
Optical1.objectDetected(callback);
参数 |
描述 |
|---|---|
|
当光学传感器检测到物体时执行的先前定义的功能。 |
// Display a message when an object is detected
void onObjectDetected() {
Brain.Screen.print("Object detected!");
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Call onObjectDetected when an object is detected
Optical1.objectDetected(onObjectDetected);
}
objectLost#
objectLost registers a function to be called when the Optical Sensor loses a detected object.
Usage:
Optical1.objectLost(callback);
参数 |
描述 |
|---|---|
|
先前定义的当光学传感器丢失物体时执行的功能。 |
// Display a message when an object is lost
void onObjectLost() {
Brain.Screen.print("Object lost!");
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Call onObjectLost when an object is lost
Optical1.objectLost(onObjectLost);
// Keep the program running
while (true) {
wait(20, msec);
}
}
修改器#
setLight#
setLight turns the Optical Sensor’s LED lights on or off.
Usage:
Optical1.setLight(state);
参数 |
描述 |
|---|---|
|
The state to set the LED lights to:
|
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Blink the Optical Sensor LED on and off
while (true) {
Optical1.setLight(ledState::on);
wait(0.5, seconds);
Optical1.setLight(ledState::off);
wait(0.5, seconds);
}
}
setLightPower#
setLightPower sets the specific brightness of the Optical Sensor’s LED lights.
Usage:
Optical1.setLightPower(power, units);
参数 |
描述 |
|---|---|
|
LED 灯的亮度将设置为 0 至 100。 |
|
The units that represent the LED brightness:
|
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Set the Optical Sensor LED to 25% power
Optical1.setLightPower(25, percent);
wait(1, seconds);
// Set the LED to 75% power
Optical1.setLightPower(75, percent);
wait(1, seconds);
// Turn the LED off
Optical1.setLightPower(0, percent);
}
objectDetectThreshold#
objectDetectThreshold sets the distance away an object must be before the Optical Sensor will detect it.
Usage:
Optical1.objectDetectThreshold(value);
参数 |
描述 |
|---|---|
|
新的检测阈值为 0 到 255 之间的整数。值为 0 表示阈值没有变化。 |
吸气剂#
isNearObject#
isNearObject returns a Boolean indicating whether or not the Optical Sensor detects a close object.
1– The Optical Sensor detects a close object.0– The Optical Sensor does not detect a close object.
Usage:
Optical1.isNearObject()
参数 |
描述 |
|---|---|
该方法没有参数。 |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check for nearby objects
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
if (Optical1.isNearObject()) {
Brain.Screen.print("Object close!");
} else {
Brain.Screen.print("No object");
}
wait(0.25, seconds);
}
}
color#
color returns the detected color from the Optical Sensor as an instance of a predefined color object, as shown below:
redgreenbluewhiteyelloworangepurplecyanred_violetvioletblue_violetblue_greenyellow_greenyellow_orangered_orangeblacktransparent
Usage:
Optical1.color()
参数 |
描述 |
|---|---|
该方法没有参数。 |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color with "green"
if (convertColorToString(Optical1.color()) == "green") {
Brain.Screen.print("Green object!");
} else {
Brain.Screen.print("Not green");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
Note: The function
convertColorToStringis automatically created by VEXcode when an Optical Sensor is configured in the Devices window. It is only available inside VEXcode IQ (2nd gen) projects and will not work in other environments.When using
coloroutside of VEXcode, comparisons should be made directly with acolorTypevalue — any color that begins withcolorType::(for example,colorType::greenorcolorType::red).
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color with the colorType
if (Optical1.color() == colorType::green) {
Brain.Screen.print("Green object!");
} else {
Brain.Screen.print("Not green");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
brightness#
brightness returns the brightness value from the Optical Sensor as a double from 0 to 100.
Usage:
Optical1.brightness()
参数 |
描述 |
|---|---|
该方法没有参数。 |
hue#
hue returns the hue value detected by the Optical Sensor as a double from 0 to 359.99.
Usage:
Optical1.hue()
参数 |
描述 |
|---|---|
该方法没有参数。 |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously show hue readings
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Hue: %f", Optical1.hue());
wait(0.25, seconds);
}
}
installed#
installed returns a Boolean indicating whether the Optical Sensor is currently connected to the Brain.
1– The Optical Sensor is connected to the Brain.0– The Optical Sensor is not connected to the Brain.
Usage:
Optical1.installed()
参数 |
描述 |
|---|---|
该方法没有参数。 |
构造函数#
optical#
optical creates an object of the optical Class in the specified port.
Usage:
optical Optical1 = optical(port);
范围 |
描述 |
|---|---|
|
Which Smart Port that the Optical Sensor is connected to as |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Create an Optical Sensor in Port 1
optical CustomOptical = optical(PORT1);
}