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 |
|---|---|---|
|
|
De slimme poort waarop de optische sensor is aangesloten, wordt weergegeven als |
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.color— Geeft de kleur terug die door de optische sensor is gedetecteerd.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 Functionsvoid setLight(ledState state);
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Schakelt de LED in of uit. |
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 Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
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.
Optical.setLightPower(50, percent);
isNearObject#
Geeft aan of de optische sensor een object binnen bereik 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— Er is een object in de buurt gedetecteerd.false— Er is geen object gedetecteerd.
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
color#
Geeft de kleur terug die door de optische sensor is gedetecteerd, op basis van de gedetecteerde tintwaarde.
Available Functionsvex::color color();
Deze functie accepteert geen parameters.
Return ValuesDe 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°
// 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#
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 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 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.

double hue();
Deze functie accepteert geen parameters.
Return ValuesEen 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 Functionsvoid objectDetected(void (* callback)(void));
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een eerder gedefinieerde functie die wordt uitgevoerd wanneer de optische sensor een nieuw object detecteert. |
Deze functie retourneert geen waarde.
ExamplesDefinieer 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 Functionsvoid objectLost(void (* callback)(void));
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een eerder gedefinieerde functie die wordt uitgevoerd wanneer de optische sensor een gedetecteerd object verliest. |
Deze functie retourneert geen waarde.
ExamplesDefinieer 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); }