Optische sensor#

Invoering#

De optische klasse optical wordt gebruikt om toegang te krijgen tot gegevens van de optische sensor. Deze gebruikt gereflecteerd licht om objecten te detecteren, kleuren te identificeren en helderheid en tint te meten.

Klasseconstructor#

optical Optical = optical(index);

Klasse-destructor#

Vernietigt het optische object optical en maakt de bijbehorende grondstoffen vrij.

virtual ~optical();

Parameters#

Parameter

Type

Beschrijving

index

int32_t

De slimme poort waarop de optische sensor is aangesloten, wordt weergegeven als PORTx, waarbij x het poortnummer is (bijvoorbeeld PORT1).

Voorbeelden#

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

Lidfuncties#

De optische klasse optical omvat de volgende lidfuncties:

  • setLight — Schakelt de LED van de optische sensor aan of uit.

  • setLightPower — Stelt het lichtvermogen van de optische sensor in.

  • isNearObject — Geeft aan of de optische sensor een object binnen bereik detecteert.

  • colorname — Returns the color detected by the Optical Sensor.

  • brightness — Geeft de hoeveelheid licht terug die door het object wordt weerkaatst.

  • hue — Geeft de tint terug die door de optische sensor is gedetecteerd.

  • objectDetected — Registreert een functie die moet worden aangeroepen wanneer de optische sensor een object detecteert.

  • objectLost — Registreert een functie die moet worden aangeroepen wanneer de optische sensor een object verliest.

Voordat er lidfuncties van optical kunnen worden aangeroepen, moet er een instantie van optical worden aangemaakt, zoals hieronder weergegeven:

/* 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#

Hiermee wordt de LED van de optische sensor in- of uitgeschakeld. Het licht kan de optische sensor helpen objecten en kleuren beter te detecteren.

Available Functions
void  setLight(ledState state);

Parameters

Parameter

Type

Beschrijving

state

ledState

Schakelt de LED in of uit. ledState::on schakelt de LED in op 100% helderheid. ledState::off schakelt hem uit.

Return Values

Deze functie retourneert geen waarde.

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

setLightPower#

Hiermee stelt u de helderheid van het licht van de optische sensor in. Het licht kan de optische sensor helpen objecten en kleuren duidelijker te detecteren.

Een hoger percentage maakt het licht feller. Een lager percentage maakt het licht minder fel.

Als het lampje van de optische sensor uit is, zal het inschakelen wanneer het lampje hoger dan 0% wordt ingesteld.

Als het lampje van de optische sensor brandt, zal het instellen van het lichtvermogen op 0% het lampje uitschakelen.

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

Parameters

Parameter

Type

Beschrijving

intensity

int32_t

Het vermogensniveau om de verlichting in te stellen, van 0 tot 100.

units

percentUnits

De eenheid die de lichtintensiteit weergeeft: percent procent pct

Return Values

Deze functie retourneert geen waarde.

Examples
// Set the light power to 50 percent.
Optical.setLightPower(50, percent);

isNearObject#

Geeft aan of de optische sensor een object binnen bereik detecteert.

Available Functions
bool  isNearObject();

Parameters

Deze functie accepteert geen parameters.

Return Values

Deze functie retourneert een Booleaanse waarde die aangeeft of er een object in de buurt is gedetecteerd:

  • true — Er is een object in de buurt gedetecteerd.

  • false — Er is geen object gedetecteerd.

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

colorname#

Geeft de kleur terug die door de optische sensor is gedetecteerd, op basis van de gedetecteerde tintwaarde.

Available Functions
vex::colorType  colorname();

Parameters

Deze functie accepteert geen parameters.

Return Values

De kleur die door de optische sensor wordt gedetecteerd als een instantie van de kleurklasse.

Mogelijke kleuren zijn:

  • blue – Kleurwaarde tussen 196° en 229°

  • blue_green – Kleurtoonwaarde tussen 140° en 195°

  • blue_violet – Kleurtoonwaarde tussen 230° en 239°

  • green – Kleurtoonwaarde tussen 84° en 139°

  • orange – Kleurtoon tussen 21° en 30°

  • red – Kleurtoonwaarde tussen 350° en 14°

  • red_orange – Tintwaarde tussen 15° en 20°

  • red_violet – Kleurtoonwaarde tussen 281° en 350°

  • violet – Kleurwaarde tussen 240° en 280°

  • yellow – Kleurtoon tussen 54° en 74°

  • yellow_green – Kleurtoonwaarde tussen 75° en 83°

  • yellow_orange – Tintwaarde tussen 31° en 53°

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

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

brightness#

Geeft aan hoeveel licht er teruggekaatst wordt naar de optische sensor.

Een hoger percentage betekent dat er meer licht teruggekaatst wordt naar de optische sensor. Een lager percentage betekent dat er minder licht teruggekaatst wordt.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parameter

Type

Beschrijving

bRaw

bool

Een Booleaanse waarde om de ruwe helderheidsgegevens in plaats van het percentage te lezen. De standaardwaarde is false false).

Return Values

Een double die de door de optische sensor 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 Optical Sensor
double brightness = Optical.brightness();

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

hue#

Geeft de kleurwaarde terug die door de optische sensor is gedetecteerd.

Tint is een manier om kleur te beschrijven met behulp van getallen op een kleurencirkel.

Het VEX-kleurenwiel toont de gradaties van kleuren rond een cirkel, met rood op 0 graden en overgaand door de regenboog naarmate de waarde toeneemt.

Available Functions
double hue();

Parameters

Deze functie accepteert geen parameters.

Return Values

Een double die de waarde van de tint vertegenwoordigt die door de optische sensor is gedetecteerd in het bereik 0 — 359,00.

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

objectDetected#

Registreert een callbackfunctie die wordt aangeroepen wanneer een object wordt gedetecteerd.

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

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een eerder gedefinieerde functie die wordt uitgevoerd wanneer de optische sensor een nieuw object detecteert.

Return Values

Deze functie retourneert geen waarde.

Examples

Definieer de callbackfunctie (buiten 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");
}

Registreer de callback binnen 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#

Registreert een callbackfunctie voor het geval een object verloren gaat.

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

Parameters

Parameter

Type

Beschrijving

callback

void (*)(void)

Een eerder gedefinieerde functie die wordt uitgevoerd wanneer de optische sensor een gedetecteerd object verliest.

Return Values

Deze functie retourneert geen waarde.

Examples

Definieer de callbackfunctie (buiten 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");
}

Registreer de callback binnen 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);
}