Optinis jutiklis#

Įvadas#

optical klasė naudojama duomenims iš optinio jutiklio pasiekti. Ji naudoja atspindėtą šviesą objektams aptikti, spalvoms identifikuoti ir ryškumui bei atspalviui matuoti.

Klasės konstruktorius#

optical Optical = optical(index);

Klasės destruktorius#

Sunaikina optical objektą ir išlaisvina susijusius išteklius.

virtual ~optical();

Parametrai#

Parametras

Tipas

Aprašymas

index

int32_t

Išmanusis prievadas, prie kurio prijungtas optinis jutiklis, užrašomas kaip PORTx, kur x yra prievado numeris (pavyzdžiui, PORT1).

Pavyzdžiai#

// Create an optical instance in Port 1
optical Optical1 = optical(PORT1);

Narių funkcijos#

optical klasė apima šias narines funkcijas:

  • setLight — Įjungia arba išjungia optinio jutiklio šviesos diodą.

  • setLightPower — Nustato optinio jutiklio šviesos galios lygį.

  • isNearObject — Grąžina, ar optinis jutiklis aptinka objektą diapazone.

  • color — Grąžina optinio jutiklio aptiktą spalvą.

  • brightness — Grąžina nuo objekto atsispindinčios šviesos kiekį.

  • hue – Grąžina optinio jutiklio aptiktą atspalvį.

  • objectDetected — Registruoja funkciją, kuri bus iškviesta, kai optinis jutiklis aptiks objektą.

  • objectLost — Registruoja funkciją, kuri bus iškviesta, kai optinis jutiklis pames objektą.

Prieš iškviečiant bet kokias optical narių funkcijas, reikia sukurti optical egzempliorių, kaip parodyta žemiau:

/* 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#

Įjungia arba išjungia optinio jutiklio šviesos diodą. Šviesa gali padėti optiniam jutikliui aiškiau aptikti objektus ir spalvas.

Available Functions
void  setLight(ledState state);

Parameters

Parametras

Tipas

Aprašymas

state

ledState

Įjungia arba išjungia šviesos diodą. ledState::on įjungia šviesos diodą 100 % ryškumu. ledState::off išjungia.

Return Values

Ši funkcija negrąžina reikšmės.

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

setLightPower#

Nustato optinio jutiklio šviesos ryškumą. Šviesa gali padėti optiniam jutikliui aiškiau aptikti objektus ir spalvas.

Didesnis procentas šviesą daro ryškesnę, o mažesnis procentas – pritemdytą.

Jei optinio jutiklio lemputė išjungta, nustatant šviesos galią virš 0 %, lemputė įsijungs.

Jei optinio jutiklio lemputė įjungta, nustačius šviesos galią į 0 %, lemputė išsijungs.

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

Parameters

Parametras

Tipas

Aprašymas

intensity

int32_t

Šviesos galios lygis nustatomas nuo 0 iki 100.

units

percentUnits

The unit that represents the light intensity: percent / pct — percent

Return Values

Ši funkcija negrąžina reikšmės.

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

isNearObject#

Grąžina, ar optinis jutiklis aptinka objektą diapazone.

Available Functions
bool  isNearObject();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Ši funkcija grąžina loginę reikšmę, nurodančią, ar aptiktas netoliese esantis objektas:

  • true — Netoliese aptiktas objektas.

  • false — Objektas neaptiktas.

Examples
// If an object is detected by the Optical Sensor, print
// "near object".
if (Optical.isNearObject()){
  Brain.Screen.print("near object");
}

color#

Grąžina optinio jutiklio aptiktą spalvą, remiantis aptikta atspalvio reikšme.

Available Functions
vex::color  color();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Optinio jutiklio aptikta spalva kaip spalvų klasės egzempliorius.

Galimos spalvos yra:

  • blue – atspalvio reikšmė nuo 196° iki 229°

  • blue_green – atspalvio reikšmė nuo 140° iki 195°

  • blue_violet – atspalvio reikšmė nuo 230° iki 239°

  • green – atspalvio reikšmė nuo 84° iki 139°

  • orange – atspalvio reikšmė nuo 21° iki 30°

  • red – atspalvio vertė nuo 350° iki 14°

  • red_orange – atspalvio reikšmė nuo 15° iki 20°

  • red_violet – atspalvio reikšmė nuo 281° iki 350°

  • violet – atspalvio vertė nuo 240° iki 280°

  • yellow – atspalvio reikšmė nuo 54° iki 74°

  • yellow_green – atspalvio reikšmė nuo 75° iki 83°

  • yellow_orange – atspalvio reikšmė nuo 31° iki 53°

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#

Grąžina, kiek šviesos atsispindi atgal į optinį jutiklį.

Didesnis procentas reiškia, kad daugiau šviesos atsispindi atgal į optinį jutiklį. Mažesnis procentas reiškia, kad atsispindi mažiau šviesos.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametras

Tipas

Aprašymas

bRaw

bool

Loginė reikšmė, skirta nuskaityti neapdorotus ryškumo duomenis, o ne procentinę reikšmę. Numatytoji reikšmė yra false.

Return Values

Dvigubas skaičius, žymintis optinio jutiklio aptiktą ryškumą 0–100 % diapazone, arba dvigubas skaičius, žymintis jutiklio aptiktus neapdorotus duomenis.

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#

Grąžina optinio jutiklio aptiktą atspalvį.

Atspalvis yra būdas apibūdinti spalvą skaičiais aplink spalvų ratą.

VEX spalvų ratas rodo spalvų laipsnius aplink apskritimą, kur raudona yra 0 laipsnių ir pereina per vaivorykštę, reikšmei didėjant.

Available Functions
double hue();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Dvigubas skaičius, vaizduojantis optinio jutiklio aptiktą atspalvio reikšmę diapazone nuo 0 iki 359,00.

Examples
// Set a variable, hue, to the value of the hue detected
// by the Optical Sensor.
double hue = Optical.hue();

objectDetected#

Registruoja atgalinio iškvietimo funkciją, kai aptinkamas objektas.

Available Functions
void objectDetected(void (* callback)(void));

Parameters

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Anksčiau apibrėžta function, kuri vykdoma, kai optinis jutiklis aptinka naują objektą.

Return Values

Ši funkcija negrąžina reikšmės.

Examples

Apibrėžkite grįžtamojo ryšio funkciją (už 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");
}

Registruokite atgalinį iškvietimą int main() viduje

/* 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#

Registruoja atgalinio iškvietimo funkciją, kai objektas prarandamas.

Available Functions
void objectLost(void (* callback)(void));

Parameters

Parametras

Tipas

Aprašymas

callback

void (*)(void)

Anksčiau apibrėžta function, kuri vykdoma, kai optinis jutiklis praranda aptiktą objektą.

Return Values

Ši funkcija negrąžina reikšmės.

Examples

Apibrėžkite grįžtamojo ryšio funkciją (už 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");
}

Registruokite atgalinį iškvietimą int main() viduje

/* 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);
}