Optisk sensor#

Introduktion#

Den optiska klassen optical används för att komma åt data från den optiska sensorn. Den använder reflekterat ljus för att detektera objekt, identifiera färger och mäta ljusstyrka och nyans.

Klasskonstruktor#

optical Optical = optical(index);

Klassförstörare#

Förstör det optiska objektet optical och frigör tillhörande resurser.

virtual ~optical();

Parametrar#

Parameter

Typ

Beskrivning

index

int32_t

Den smarta porten som den optiska sensorn är ansluten till, skriven som PORTx, där x är portnumret (till exempel PORT1).

Exempel#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

Medlemsfunktioner#

Klassen optical inkluderar följande medlemsfunktioner:

  • setLight — Slår på eller av den optiska sensorns lysdiod.

  • setLightPower — Ställer in den optiska sensorns ljusstyrkenivå.

  • isNearObject — Returnerar om den optiska sensorn detekterar ett objekt inom räckhåll.

  • color — Returnerar färgen som detekterats av den optiska sensorn.

  • brightness — Returnerar mängden ljus som reflekteras från objektet.

  • hue — Returnerar nyansen som detekterats av den optiska sensorn.

  • objectDetected — Registrerar en funktion som ska anropas när den optiska sensorn detekterar ett objekt.

  • objectLost — Registrerar en funktion som ska anropas när den optiska sensorn förlorar ett objekt.

Innan några optical medlemsfunktioner anropas måste en optical instans skapas, som visas nedan:

/* This constructor is required when using VS Code.
Optical Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an optical object in Port 1
optical Optical1 = optical(PORT1);

setLight#

Ställer in den optiska sensorns LED-lampa på eller av. Ljuset kan hjälpa den optiska sensorn att upptäcka objekt och färger tydligare.

Available Functions
void  setLight(ledState state);

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.

Return Values

Den här funktionen returnerar inget värde.

Examples
// Turn on LED with previous intensity.
Optical.setLight(ledState::on);

setLightPower#

Ställer in hur starkt den optiska sensorns ljus är. Ljuset kan hjälpa den optiska sensorn att upptäcka objekt och färger tydligare.

En högre procentandel gör ljuset starkare. En lägre procentandel gör ljuset svagare.

Om den optiska sensorns lampa är släckt, tänds lampan om du ställer in ljusstyrkan över 0 %.

Om den optiska sensorns lampa lyser, släcks lampan om du ställer in ljusstyrkan på 0 %.

Available Functions
void setLightPower( 
      int32_t      intensity, 
      percentUnits units = percent );

Parameters

Parameter

Typ

Beskrivning

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.
Optical.setLightPower(50, percent);

isNearObject#

Returnerar huruvida den optiska sensorn detekterar ett objekt inom räckhåll.

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 — Ett objekt har upptäckts i närheten.

  • false — Ett objekt har inte upptäckts.

Examples
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
  Brain.Screen.print("near object");
}

color#

Returnerar färgen som detekterats av den optiska sensorn, baserat på det detekterade nyansvärdet.

Available Functions
vex::color  color();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Färgen som detekteras av den optiska sensorn som en instans av färgklassen.

Möjliga färger är:

  • 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°

  • 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°

  • yellow – Nyansvärde mellan 54° och 74°

  • yellow_green – Nyansvärde mellan 75° och 83°

  • yellow_orange – Nyansvärde mellan 31° och 53°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
color detectColor = Optical.color();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

Returnerar hur mycket ljus som reflekteras tillbaka till den optiska sensorn.

En högre procentandel innebär att mer ljus reflekteras tillbaka till den optiska sensorn. 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 den optiska sensorn 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 Optical Sensor
double brightness = Optical.brightness();

// Print the brightness detected by the Optical Sensor to the
// Brain's screen
Brain.Screen.print(brightness);

hue#

Returnerar den nyans som detekterats av den optiska sensorn.

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 den optiska sensorn i intervallet 0 — 359,00.

Examples
// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();

objectDetected#

Registrerar en återuppringningsfunktion för när ett objekt detekteras.

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Parameter

Typ

Beskrivning

callback

void (*)(void)

En tidigare definierad funktion som körs när den optiska sensorn detekterar ett nytt objekt.

Return Values

Den här funktionen returnerar inget värde.

Examples

Definiera callback-funktionen (utanför int main())

// Called when the Optical Sensor detects an object
void detected() {
  // The Brain will print that the Optical Sensor detected an
  // object to the Brain's screen.
  Brain.Screen.print("object detected");
}

Registrera återuppringningen inuti int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run when the Optical Sensor detects an object.
  Optical.objectDetected(detected);
}

objectLost#

Registrerar en återuppringningsfunktion för när ett objekt går förlorat.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Parameter

Typ

Beskrivning

callback

void (*)(void)

En tidigare definierad funktion som körs när den optiska sensorn förlorar ett detekterat objekt.

Return Values

Den här funktionen returnerar inget värde.

Examples

Definiera callback-funktionen (utanför int main())

// Called when the Optical Sensor loses an object
void lost() {
  // The Brain will print that the Optical Sensor lost an
  // object to the Brain's screen.
  Brain.Screen.print("object lost");
}

Registrera återuppringningen inuti int main()

/* vexcodeInit() is only required when using VEXcode.
Remove vexcodeInit() if compiling in VS Code. */
int main() {

  // Run lost when the Optical Sensor loses an object.
  Optical.objectLost(lost);
}