Color#
Introduction#
The Color Sensor provides methods to return data from different objects. This allows the Brain to detect colors as well as their hue and brightness.
For the examples below, the configured Color Sensor will be named Color1 and will be used in all subsequent examples throughout this API documentation when referring to colorsensor class methods.
Below is a list of all available methods:
Actions – Detect objects with the Color Sensor.
objectDetected– Calls a function when an object is detected.
Mutators – Modify the lights on the Color Sensor.
setLight– Turns the Color Sensor’s LED on, off, or to a set brightness level.
Getters – Return object data with the Color Sensor.
isNearObject– Returns whether or not an object is close to the Color Sensor.detects– Returns whether or not a specified color is detected by the Color Sensor.colorname– Returns the name of the color detected by the Color Sensor.brightness– Returns the detected brightness of an object.hue– Returns the detected hue value as a float from 0 to 359.99 degrees.colorname3– Returns the closest of red, blue or green to the detected color.color– Return the detected color as a predefined color object.installed– Returns whether the Color Sensor is connected to the Brain.
Constructors – Manually initialize the Color Sensor.
colorsensor– Create a Color Sensor.
Actions#
objectDetected#
objectDetected registers a function to be called when the Color Sensor detects an object.
Usage:
Color1.objectDetected(callback);
Parameters |
Description |
|---|---|
|
A function that is previously defined to execute when the Color Sensor detects an object. |
Mutators#
setLight#
setLight sets the state of the Color Sensor LED.
Default Usage:
Color1.setLight(value, units);
Overload Usages:
Color1.setLight(state);
Parameters |
Description |
|---|---|
|
The value for the intensity to set the light to as a percent from 0 - 100. |
|
The unit that represents the intensity:
|
|
A valid LED state:
|
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Blink the Color Sensor LED on and off
while (true) {
Color1.setLight(ledState::on);
wait(0.5, seconds);
Color1.setLight(ledState::off);
wait(0.5, seconds);
}
}
Getters#
isNearObject#
isNearObject returns a Boolean indicating whether or not the Color Sensor is close to an object.
1– The Color Sensor detects a close object.0– The Color Sensor does not detect a close object.
Usage:
Color1.isNearObject()
Parameters |
Description |
|---|---|
This method has no parameters. |
detects#
detects returns if the Color Sensor is detecting a specified color.
1– The Color Sensor detects the color.0– The Color Sensor does not detect the color.
Usage:
Color1.detects(color)
Parameters |
Description |
|---|---|
|
A valid color:
|
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Drive until a red object is seen
Drivetrain.drive(forward);
while (true) {
if (Color1.detects(red)) {
Drivetrain.stop();
break;
wait(0.5, seconds);
}
}
}
colorname#
colorname returns the closest matching color from a preset list shown below.
When printed directly, it shows the numeric value associated with that color:
Color |
Numeric Value |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
Usage:
Color1.colorname()
Parameters |
Description |
|---|---|
This method has no parameters. |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with "red"
if (convertColorToString(Color1.colorname()) == "red") {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
Note: The function
convertColorToStringis automatically created by VEXcode when a Color 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
colornameoutside 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 name with the colorType
if (Color1.colorname() == colorType::red) {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
brightness#
brightness returns the brightness value from the Color Sensor.
Usage:
Color1.brightness(bRaw)
Parameters |
Description |
|---|---|
|
Optional. A Boolean indicating whether to return the raw value detected by the Color Sensor:
|
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Slowly turn and show brightness values
Drivetrain.setTurnVelocity(20, percent);
Drivetrain.turn(right);
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Brightness: %d", Color1.brightness());
wait(0.25, seconds);
}
}
hue#
hue returns the hue value detected by the Color Sensor as an integer.
Usage:
Color1.hue()
Parameters |
Description |
|---|---|
This method has no parameters. |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Slowly turn and show hue values
Drivetrain.setTurnVelocity(20, percent);
Drivetrain.turn(right);
while (true) {
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Hue: %d", Color1.hue());
wait(0.25, seconds);
}
}
colorname3#
colorname3 returns the closest color detected to red, green, or blue as an enumerated value (enum).
Color |
Numeric Value |
|---|---|
|
1 |
|
2 |
|
3 |
Usage:
Color1.colorname3()
Parameters |
Description |
|---|---|
This method has no parameters. |
color#
color returns the closest predefined color object detected by the Color Sensor:
redgreenbluewhiteyelloworangepurplecyanred_violetvioletblue_violetblue_greenyellow_greenyellow_orangered_orangeblacktransparent
Usage:
Color1.color()
Parameters |
Description |
|---|---|
This method has no parameters. |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with "red"
if (convertColorToString(Color1.color()) == "red") {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
Note: The function
convertColorToStringis automatically created by VEXcode when a Color 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 name with the colorType
if (Color1.color() == colorType::red) {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
installed#
installed returns a Boolean indicating whether the Color Sensor is currently connected to the Brain.
1– The Color Sensor is connected to the Brain.0– The Color Sensor is not connected to the Brain.
Usage:
Color1.installed()
Parameters |
Description |
|---|---|
This method has no parameters. |
Constructors#
colorsensor#
colorsensor creates an object of the colorsensor Class in the specified port.
Usage:
colorsensor Color1 = colorsensor(port);
Parameter |
Description |
|---|---|
|
Which Smart Port that the Color Sensor is connected to as |
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Create a Color Sensor in Port 3
colorsensor myColorSensor = colorsensor(PORT3);
}