Optinen anturi#

Johdanto#

Optinen optical -luokkaa käytetään optisen anturin datan käyttämiseen. Se käyttää heijastunutta valoa esineiden havaitsemiseen, värien tunnistamiseen sekä kirkkauden ja sävyn mittaamiseen.

Luokan rakentaja#

optical Optical = optical(index);

Luokan tuhoaja#

Tuhoaa optisen optical objektin ja vapauttaa siihen liittyvät resurssit.

virtual ~optical();

Parametrit#

Parametri

Tyyppi

Kuvaus

index

int32_t

Älyportti, johon optinen anturi on kytketty, kirjoitetaan muodossa PORTx, jossa x on portin numero (esimerkiksi PORT1).

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 object in Port 1
optical Optical1 = optical(PORT1);

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 Functions
void  setLight(ledState state);

Parameters

Parametri

Tyyppi

Kuvaus

state

ledState

Asettaa LEDin päälle tai pois päältä. ledState::on sytyttää LEDin 100 %:n kirkkuudella. ledState::off sammuttaa sen.

Return Values

Tämä funktio ei palauta arvoa.

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

setLightPower#

Määrittää optisen anturin valon kirkkauden. Valo voi auttaa optista anturia havaitsemaan esineitä ja värejä selkeämmin.

Suurempi prosenttiosuus tekee valosta kirkkaampaa. Pienempi prosenttiosuus tekee valosta himmeämpää.

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.

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

Parameters

Parametri

Tyyppi

Kuvaus

intensity

int32_t

Valon tehotaso asetetaan välille 0–100.

units

percentUnits

Valon voimakkuutta kuvaava yksikkö: percent prosenttia pct

Return Values

Tämä funktio ei palauta arvoa.

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

isNearObject#

Palauttaa, havaitseeko optinen anturi kohteen kantaman sisällä.

Available Functions
bool  isNearObject();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Tämä funktio palauttaa totuusarvon, joka ilmaisee, onko lähellä oleva kohde havaittu:

  • true — Lähistöllä on havaittu kohde.

  • false — Kohdetta ei havaittu.

Examples
// 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 havaitun sävyarvon perusteella.

Available Functions
vex::color  color();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Optisen anturin havaitsema väri color class -luokan instanssina.

Mahdollisia värejä ovat:

  • blue – Sävyarvo välillä 196° ja 229°

  • blue_green – Sävyarvo välillä 140° ja 195°

  • blue_violet – Sävyarvo välillä 230° ja 239°

  • green – Sävyarvo 84° ja 139° välillä

  • orange – Sävyarvo 21° ja 30° välillä

  • red – Sävyarvo 350° ja 14° välillä

  • red_orange – Sävyarvo 15° ja 20° välillä

  • red_violet – Sävyarvo 281° ja 350° välillä

  • violet – Sävyarvo 240° ja 280° välillä

  • yellow – Sävyarvo 54° ja 74° välillä

  • yellow_green – Sävyarvo 75° ja 83° välillä

  • yellow_orange – Sävyarvo 31° ja 53° välillä

Examples
// 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, kuinka paljon valoa heijastuu takaisin optiseen anturiin.

Korkeampi prosenttiosuus tarkoittaa, että enemmän valoa heijastuu takaisin optiseen anturiin. Matalampi prosenttiosuus tarkoittaa, että vähemmän valoa heijastuu takaisin.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametri

Tyyppi

Kuvaus

bRaw

bool

Totuusarvo, jolla luetaan raaka kirkkausdata prosenttiarvon sijaan. Oletusarvo on false.

Return Values

Kaksinkertainen arvo, joka edustaa optisen anturin havaitsemaa kirkkautta alueella 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 optisen anturin havaitseman sävyn.

Sävy on tapa kuvata väriä käyttämällä numeroita väriympyrän ympärillä.

VEX-väriympyrä, joka näyttää värien asteet ympyrän ympärillä, punaisen ollessa 0 asteessa ja siirtyen sateenkaaren läpi arvon kasvaessa.

Available Functions
double hue();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Kaksinkertainen arvo, joka edustaa optisen anturin havaitsemaa sävyn arvoa välillä 0–359,00.

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 Functions
void objectDetected(void (* callback)(void));

Parameters

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Aiemmin määritelty funktio, joka suoritetaan, kun optinen anturi havaitsee uuden kohteen.

Return Values

Tämä funktio ei palauta arvoa.

Examples

Mää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 Functions
void objectLost(void (* callback)(void));

Parameters

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Aiemmin määritelty funktio, joka suoritetaan, kun optinen anturi kadottaa havaitun kohteen.

Return Values

Tämä funktio ei palauta arvoa.

Examples

Mää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);
}