Kleursensor#
Invoering#
De klasse colorsensor wordt gebruikt om toegang te krijgen tot gegevens van de Kleursensor. Deze gebruikt gereflecteerd licht om objecten te detecteren, kleuren te identificeren en helderheid en tint te meten.
Klasseconstructor#
colorsensor Color1 = colorsensor(index);
Klasse-destructor#
Vernietigt het colorsensor object en geeft de bijbehorende resources vrij.
virtual ~colorsensor();
Parameters#
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De slimme poort waarop de kleursensor is aangesloten, wordt weergegeven als |
Voorbeelden#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Lidfuncties#
De klasse colorsensor bevat de volgende lidfuncties:
setLight– Schakelt de LED van de kleursensor in, uit of naar een ingesteld helderheidsniveau.isNearObject– Geeft aan of een object zich al dan niet dicht bij de kleursensor bevindt.detects– Geeft aan of een bepaalde kleur al dan niet door de kleursensor is gedetecteerd.colorname– Geeft de naam terug van de kleur die door de kleursensor is gedetecteerd.brightness– Geeft de gedetecteerde helderheid van een object terug.hue– Geeft de gedetecteerde tintwaarde terug.
Voordat er lidfuncties van colorsensor kunnen worden aangeroepen, moet er een instantie van colorsensor worden gemaakt, zoals hieronder weergegeven:
/* This constructor is required when using VS Code.
Color Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
setLight#
Hiermee wordt de lichtsterkte van de LED van de kleursensor ingesteld. Het extra licht helpt de kleursensor om objecten en kleuren beter te detecteren.
Als het lampje van de kleursensor uit is, zal het inschakelen wanneer het lichtvermogen boven 0% wordt ingesteld.
Als het lampje van de kleursensor brandt, zal het instellen van het lichtvermogen op 0% het lampje uitschakelen.
Een hoger percentage maakt het licht feller. Een lager percentage maakt het licht minder fel.
Available Functions1 — Schakelt de led aan of uit met behulp van
ledState.void setLight( ledState state );
Parameters2 — Schakelt de led in met een specifieke intensiteit.
void setLight( int32_t intensity, percentUnits units = percent );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Schakelt de LED in of uit. |
|
|
Het vermogensniveau om de verlichting in te stellen, van 0 tot 100. |
|
|
De eenheid die de lichtintensiteit weergeeft: |
Deze functie retourneert geen waarde.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Geeft aan of de kleursensor een object in de buurt detecteert.
Available Functionsbool isNearObject();
Deze functie accepteert geen parameters.
Return ValuesDeze functie retourneert een Booleaanse waarde die aangeeft of er een object in de buurt is gedetecteerd:
true– De kleursensor detecteert een object.false– De kleursensor detecteert geen object.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Geeft aan of de kleursensor een bepaalde kleur detecteert.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parameters |
Type |
Beschrijving |
|---|---|---|
|
|
Een geldige kleur:
purple |
|
|
Een geldige aangepaste kleur, of een van de hierboven vermelde vooraf gedefinieerde kleuren. |
true– De kleursensor detecteert de kleur.false– De kleursensor detecteert de kleur niet.
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#
Geeft de dichtstbijzijnde overeenkomende kleur terug.
Available FunctionscolorType colorname();
Deze functie accepteert geen parameters.
Return ValuesBij directe afdruk wordt de numerieke waarde weergegeven die aan die kleur is gekoppeld:
Kleur |
Numerieke waarde |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
De functie
convertColorToStringwordt automatisch door VEXcode aangemaakt wanneer een kleursensor wordt geconfigureerd in het venster Apparaten. Deze functie is alleen beschikbaar binnen VEXcode IQ-projecten en werkt niet in andere omgevingen.Bij gebruik van
colornamebuiten VEXcode moeten vergelijkingen direct worden gemaakt met eencolorTypewaarde — elke kleur die begint metcolorType::(bijvoorbeeldcolorType::greenofcolorType::red).
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);
}
}
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#
Geeft de hoeveelheid licht terug die door het object wordt weerkaatst.
Een hoger percentage betekent dat er meer licht teruggekaatst wordt naar de kleursensor. Een lager percentage betekent dat er minder licht teruggekaatst wordt.
Available Functionsdouble brightness(bool bRaw = false);
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een Booleaanse waarde om de ruwe helderheidsgegevens in plaats van het percentage te lezen. De standaardwaarde is |
Een double die de door de kleursensor gedetecteerde helderheid in het bereik van 0 - 100% vertegenwoordigt, of een double die de door de sensor gedetecteerde ruwe data vertegenwoordigt.
Examples// Set a variable, brightness, to the value of the brightness
// detected by the Color Sensor
double brightness = Color1.brightness();
// Print the brightness detected by the Color Sensor to the
// Brain's screen
Brain.Screen.print(brightness);
hue#
Geeft de door de kleursensor gedetecteerde tint terug.
Tint is een manier om kleur te beschrijven met behulp van getallen op een kleurencirkel.

double hue();
Deze functie accepteert geen parameters.
Return ValuesEen double die de waarde vertegenwoordigt van de tint die door de kleursensor is gedetecteerd in het bereik 0 — 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();