Optisk sensor#
Introduktion#
Den optiska klassen optical används för att komma åt data från EXP optiska sensorn. Den använder reflekterat ljus för att detektera objekt, identifiera färger och mäta ljusstyrka och nyans.
Klasskonstruktörer#
optical(
int32_t index );
Klassförstörare#
Förstör det optiska objektet optical och frigör tillhörande resurser.
virtual ~optical();
Parametrar#
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Den smarta porten som den optiska sensorn är ansluten till, skriven som |
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 instance
optical Optical1 = optical(
PORT1); // Smart Port 1
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 Functionsvoid setLight(ledState state);
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Slår på eller av lysdioden. |
Den här funktionen returnerar inget värde.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Ställer in ljusstyrkan på den optiska sensorns LED-lampa. Ljuset kan hjälpa den optiska sensorn att upptäcka objekt och färger tydligare.
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 %.
En högre procentandel gör ljuset starkare. En lägre procentandel gör ljuset svagare.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Effektnivån för att ställa in ljuset från 0–100. |
|
|
Enheten som representerar ljusintensiteten: |
Den här funktionen returnerar inget värde.
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
Returnerar om den optiska sensorn detekterar ett objekt i närheten.
Available Functionsbool isNearObject();
Den här funktionen accepterar inga parametrar.
Return ValuesDenna funktion returnerar ett booleskt värde som indikerar om ett närliggande objekt har upptäckts:
true– Den optiska sensorn detekterar ett objekt.false– Den optiska sensorn detekterar inte ett objekt.
// 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.
Available Functionsvex::color color();
Den här funktionen accepterar inga parametrar.
Return ValuesFärgen som detekteras av den optiska sensorn som en instans av färgklassen.
Möjliga färger är:
blackwhitered- Ett nyansvärde mellan 340° - 20°green- Ett nyansvärde mellan 80° - 140°blue- Ett nyansvärde mellan 200° - 240°yellow- Ett nyansvärde mellan 40° - 60°orange- Ett nyansvärde mellan 20° - 40°purple- Ett nyansvärde mellan 240° - 280°cyan- Ett nyansvärde mellan 140° och 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#
Returnerar mängden ljus som reflekteras från objektet.
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 Functionsdouble brightness(bool bRaw = false);
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Ett booleskt värde för att läsa rå ljusstyrkedata istället för procent. Standardvärdet är |
En dubbel som representerar ljusstyrkan som detekterats av den optiska sensorn som en dubbel 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 nyansvärdet för den detekterade färgen.
Nyans är ett sätt att beskriva färg med hjälp av siffror runt en färgcirkel.

double hue();
Den här funktionen accepterar inga parametrar.
Return ValuesEn dubbel som representerar värdet på den nyans som detekterats av den optiska sensorn i intervallet 0–359,99.
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 Functionsvoid objectDetected(void (* callback)(void));
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
En tidigare definierad funktion som körs när den optiska sensorn detekterar ett nytt objekt. |
Den här funktionen returnerar inget värde.
ExamplesDefiniera 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 Functionsvoid objectLost(void (* callback)(void));
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
En tidigare definierad funktion som körs när den optiska sensorn förlorar ett detekterat objekt. |
Den här funktionen returnerar inget värde.
ExamplesDefiniera 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); }