Optische sensor#
Invoering#
De optische klasse optical wordt gebruikt om toegang te krijgen tot gegevens van de EXP optische sensor. Deze sensor gebruikt gereflecteerd licht om objecten te detecteren, kleuren te identificeren en helderheid en tint te meten.
Klasseconstructors#
optical(
int32_t 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 instance
optical Optical1 = optical(
PORT1); // Smart Port 1
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 |
|---|---|---|
|
|
Hiermee wordt de LED aan- of uitgezet. |
Deze functie retourneert geen waarde.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Hiermee stel je de helderheid van de LED van de optische sensor in. Het extra licht helpt de optische sensor om objecten en kleuren beter te detecteren.
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.
Een hoger percentage maakt het licht feller. Een lager percentage maakt het licht minder fel.
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 in de buurt 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– De optische sensor detecteert een object.false– De optische sensor detecteert geen object.
// 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.
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:
blackwhitered- Een tintwaarde tussen 340° en 20°green- Een tintwaarde tussen 80° en 140°blue- Een tintwaarde tussen 200° en 240°yellow- Een tintwaarde tussen 40° en 60°orange- Een tintwaarde tussen 20° en 40°purple- Een tintwaarde tussen 240° en 280°cyan- Een tintwaarde tussen 140° en 200°
// 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 de hoeveelheid licht terug die door het object wordt weerkaatst.
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 weergeeft als een double in het bereik van 0 - 100%, of een double die de door de sensor gedetecteerde ruwe data weergeeft.
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 tintwaarde van de gedetecteerde kleur terug.
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 vertegenwoordigt van de tint die door de optische sensor is gedetecteerd in het bereik 0 — 359,99.
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); }