Optinen anturi#
Johdanto#
Optinen optical -luokka mahdollistaa EXP-optisen anturin datan käyttämisen. Se käyttää heijastunutta valoa esineiden havaitsemiseen, värien tunnistamiseen sekä kirkkauden ja sävyn mittaamiseen.
Luokanrakentajat#
optical(
int32_t index );
Luokan tuhoaja#
Tuhoaa optisen optical objektin ja vapauttaa siihen liittyvät resurssit.
virtual ~optical();
Parametrit#
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Älyportti, johon optinen anturi on kytketty, kirjoitetaan muodossa |
Esimerkkejä#
// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);
Jäsenten toiminnot#
The optical class includes the following member functions:
setLight— Sytyttää tai sammuttaa optisen anturin LED-valon.setLightPower— Asettaa optisen anturin valotehotason.isNearObject— Palauttaa, havaitseeko optinen anturi kohteen kantaman sisällä.color— Palauttaa optisen anturin havaitseman värin.brightness— Palauttaa kohteesta heijastuneen valon määrän.hue— Palauttaa optisen anturin havaitseman sävyn.objectDetected— Rekisteröi funktion, jota kutsutaan, kun optinen anturi havaitsee kohteen.objectLost— Rekisteröi funktion, jota kutsutaan, kun optinen anturi kadottaa objektin.
Ennen minkään optical jäsenfunktion kutsumista on luotava optical instanssi alla olevan mukaisesti:
/* 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#
Asettaa optisen anturin LED-valon päälle tai pois päältä. Valo voi auttaa optista anturia havaitsemaan esineitä ja värejä selkeämmin.
Available Functionsvoid setLight(ledState state);
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Sets the LED on or off. |
Tämä funktio ei palauta arvoa.
Examples// Turn on LED with previous intensity.
Optical.setLight(ledState::on);
setLightPower#
Asettaa optisen anturin LED-valon kirkkauden. Valo voi auttaa optista anturia havaitsemaan esineitä ja värejä selkeämmin.
Jos optisen anturin valo on pois päältä, valotehon asettaminen yli 0 %:n arvoon sytyttää valon.
Jos optisen anturin valo palaa, valotehon asettaminen arvoon 0 % sammuttaa valon.
Suurempi prosenttiosuus tekee valosta kirkkaampaa. Pienempi prosenttiosuus tekee valosta himmeämpää.
Available Functionsvoid setLightPower(
int32_t intensity,
percentUnits units = percent );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Valon tehotaso asetetaan välille 0–100. |
|
|
Valon voimakkuutta kuvaava yksikkö: |
Tämä funktio ei palauta arvoa.
Examples// Set the light power to 50 percent.
Optical.setLightPower(50, percent);
isNearObject#
Palauttaa, jos optinen anturi havaitsee lähellä olevan kohteen.
Available Functionsbool isNearObject();
Tämä funktio ei hyväksy parametreja.
Return ValuesTämä funktio palauttaa totuusarvon, joka ilmaisee, onko lähellä oleva kohde havaittu:
true– Optinen anturi havaitsee kohteen.false– Optinen anturi ei havaitse kohdetta.
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
Brain.Screen.print("near object");
}
color#
Palauttaa optisen anturin havaitseman värin.
Available Functionsvex::color color();
Tämä funktio ei hyväksy parametreja.
Return ValuesOptisen anturin havaitsema väri color class -luokan instanssina.
Mahdollisia värejä ovat:
blackwhitered- Sävyarvo välillä 340° - 20°green- Sävyarvo välillä 80° - 140°blue- Sävyarvo välillä 200° - 240°yellow- Sävyarvo välillä 40° - 60°orange- Sävyarvo välillä 20° - 40°purple- Sävyarvo välillä 240° - 280°cyan- Sävyarvo välillä 140° - 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#
Palauttaa objektista heijastuneen valon määrän.
Korkeampi prosenttiosuus tarkoittaa, että enemmän valoa heijastuu takaisin optiseen anturiin. Matalampi prosenttiosuus tarkoittaa, että vähemmän valoa heijastuu takaisin.
Available Functionsdouble brightness(bool bRaw = false);
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Totuusarvo, jolla luetaan raaka kirkkausdata prosenttiarvon sijaan. Oletusarvo on |
Kaksinkertainen arvo, joka edustaa optisen anturin havaitsemaa kirkkautta kaksoisarvona välillä 0–100 %, tai kaksoisarvo, joka edustaa anturin havaitsemaa raakadataa.
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#
Palauttaa havaitun värin sävyarvon.
Sävy on tapa kuvata väriä käyttämällä numeroita väriympyrän ympärillä.

double hue();
Tämä funktio ei hyväksy parametreja.
Return ValuesKaksinkertainen arvo, joka edustaa optisen anturin havaitsemaa sävyn arvoa välillä 0–359,99.
Examples// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();
objectDetected#
Rekisteröi takaisinkutsufunktion, kun objekti havaitaan.
Available Functionsvoid objectDetected(void (* callback)(void));
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Aiemmin määritelty funktio, joka suoritetaan, kun optinen anturi havaitsee uuden kohteen. |
Tämä funktio ei palauta arvoa.
ExamplesMäärittele takaisinkutsufunktio (
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"); }Rekisteröi takaisinkutsu
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#
Rekisteröi takaisinkutsufunktion, kun objekti katoaa.
Available Functionsvoid objectLost(void (* callback)(void));
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Aiemmin määritelty funktio, joka suoritetaan, kun optinen anturi kadottaa havaitun kohteen. |
Tämä funktio ei palauta arvoa.
ExamplesMäärittele takaisinkutsufunktio (
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"); }Rekisteröi takaisinkutsu
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); }