Färgsensor#
Introduktion#
Färgsensorklassen colorsensor används för att komma åt data från färgsensorn. Den använder reflekterat ljus för att detektera objekt, identifiera färger och mäta ljusstyrka och nyans.
Klasskonstruktor#
colorsensor Color1 = colorsensor(index);
Klassförstörare#
Förstör colorsensor objektet och frigör tillhörande resurser.
virtual ~colorsensor();
Parametrar#
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Den smarta porten som färgsensorn är ansluten till, skriven som |
Exempel#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Medlemsfunktioner#
Klassen colorsensor inkluderar följande medlemsfunktioner:
setLight– Slår på, av eller sätter på färgsensorns lysdiod till en inställd ljusstyrka.isNearObject– Returnerar huruvida ett objekt är nära färgsensorn eller inte.detects– Returnerar huruvida en specifik färg detekteras av färgsensorn eller inte.colorname– Returnerar namnet på den färg som detekterats av färgsensorn.brightness– Returnerar den detekterade ljusstyrkan för ett objekt.hue– Returnerar det detekterade nyansvärdet.
Innan några colorsensor medlemsfunktioner anropas måste en colorsensor instans skapas, som visas nedan:
/* 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#
Ställer in ljusstyrkan för färgsensorns LED. Ljuset kan hjälpa färgsensorn att upptäcka objekt och färger tydligare.
Om färgsensorns lampa är släckt, tänds lampan om du ställer in ljusstyrkan över 0 %.
Om färgsensorns lampa lyser, släcks lampan om du ställer in ljusstyrkan på 0 %.
En högre procentandel gör ljuset starkare. En lägre procentandel gör ljuset svagare.
Available Functions1 — Slår på eller av lysdioden med hjälp av
ledState.void setLight( ledState state );
Parameters2 — Tänder lysdioden till en specifik intensitet.
void setLight( int32_t intensity, percentUnits units = percent );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ställer in lysdioden på eller av. |
|
|
Effektnivån för att ställa in ljuset från 0–100. |
|
|
Enheten som representerar ljusintensiteten: |
Den här funktionen returnerar inget värde.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Returnerar om färgsensorn detekterar ett objekt i närheten.
Available Functionsbool isNearObject();
Den här funktionen accepterar inga parametrar.
Return ValuesDenna funktion returnerar ett booleskt värde som indikerar om ett närliggande objekt har upptäckts:
true– Färgsensorn detekterar ett objekt.false– Färgsensorn detekterar inget objekt.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Returnerar om färgsensorn detekterar en specifik färg.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parametrar |
Typ |
Beskrivning |
|---|---|---|
|
|
En giltig färg:
|
|
|
En giltig anpassad färg, eller en av de fördefinierade färgerna som anges ovan. |
true– Färgsensorn detekterar färgen.false– Färgsensorn detekterar inte färgen.
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#
Returnerar den närmaste matchande färgen som upptäckts.
Available FunctionscolorType colorname();
Den här funktionen accepterar inga parametrar.
Return ValuesNär den skrivs ut direkt visas det numeriska värdet som är associerat med den färgen:
Färg |
Numeriskt värde |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
Funktionen
convertColorToStringskapas automatiskt av VEXcode när en färgsensor konfigureras i fönstret Enheter. Den är endast tillgänglig i VEXcode IQ-projekt och fungerar inte i andra miljöer.När man använder
colornameutanför VEXcode bör jämförelser göras direkt med ettcolorTypevärde — vilken färg som helst som börjar medcolorType::(till exempelcolorType::greenellercolorType::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#
Returnerar mängden ljus som reflekteras från objektet.
En högre procentandel innebär att mer ljus reflekteras tillbaka till färgsensorn. En lägre procentandel innebär att mindre ljus reflekteras tillbaka.
Available Functionsdouble brightness(bool bRaw = false);
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ett booleskt värde för att läsa rå ljusstyrkedata istället för procent. Standardvärdet är |
En dubbel som representerar ljusstyrkan som detekterats av färgsensorn i intervallet 0–100 %, eller en dubbel som representerar rådata som detekterats av sensorn.
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#
Returnerar den nyans som detekterats av färgsensorn.
Nyans är ett sätt att beskriva färg med hjälp av siffror runt en färgcirkel.

double hue();
Den här funktionen accepterar inga parametrar.
Return ValuesEn dubbel som representerar värdet på den nyans som detekterats av färgsensorn i intervallet 0 — 359,00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();