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

index

int32_t

Den smarta porten som färgsensorn är ansluten till, skriven som PORTx, där x är portnumret (till exempel PORT1).

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 Functions

1 — Slår på eller av lysdioden med hjälp av ledState.

void setLight( 
  ledState  state );

2 — Tänder lysdioden till en specifik intensitet.

void setLight( 
  int32_t      intensity, 
  percentUnits units = percent );

Parameters

Parameter

Typ

Beskrivning

state

ledState

Ställer in lysdioden på eller av. ledState::on tänder lysdioden med 100 % ljusstyrka. ledState::off stänger av den.

intensity

int32_t

Effektnivån för att ställa in ljuset från 0–100.

units

percentUnits

Enheten som representerar ljusintensiteten: percent / pct procent

Return Values

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 Functions
bool  isNearObject();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Denna 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.

Examples
// 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 Functions

1 — Detects a colorType.

bool detects( 
  colorType  color );

2 — Detects a vex::color.

bool detects( 
  vex::color  color );

Parameters

Parametrar

Typ

Beskrivning

color

colorType

En giltig färg:

  • blue – Nyansvärde mellan 196° och 229°
  • blue_green – Nyansvärde mellan 140° och 195°
  • blue_violet – Nyansvärde mellan 230° och 239°
  • green – Nyansvärde mellan 84° och 139°
  • orange – Nyansvärde mellan 21° och 30°
  • purple
  • red – Nyansvärde mellan 350° och 14°
  • red_orange – Nyansvärde mellan 15° och 20°
  • red_violet – Nyansvärde mellan 281° och 350°
  • violet – Nyansvärde mellan 240° och 280°
  • white
  • yellow – Nyansvärde mellan 54° och 74°
  • yellow_green – Nyansvärde mellan 75° och 83°
  • yellow_orange – Nyansvärde mellan 31° och 53°

color

vex::color

En giltig anpassad färg, eller en av de fördefinierade färgerna som anges ovan.

Return Values
  • true – Färgsensorn detekterar färgen.

  • false – Färgsensorn detekterar inte färgen.

Examples
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 Functions
colorType colorname();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

När den skrivs ut direkt visas det numeriska värdet som är associerat med den färgen:

Färg

Numeriskt värde

none

0

red

1

green

2

blue

3

white

4

yellow

5

orange

6

purple

7

cyan

8

red_violet

9

violet

10

blue_violet

11

blue_green

12

yellow_green

13

yellow_orange

14

red_orange

15

black

16

transparent

17

Notes
  • Funktionen convertColorToString skapas 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 colorname utanför VEXcode bör jämförelser göras direkt med ett colorType värde — vilken färg som helst som börjar med colorType:: (till exempel colorType::green eller colorType::red).

Examples
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 Functions
double  brightness(bool bRaw = false);

Parameters

Parameter

Typ

Beskrivning

bRaw

bool

Ett booleskt värde för att läsa rå ljusstyrkedata istället för procent. Standardvärdet är false.

Return Values

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.

VEX-färghjulet visar färgernas grader runt en cirkel, med rött vid 0 grader och övergår i regnbågen allt eftersom värdet ökar.

Available Functions
double hue();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

En 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();