Optiskais sensors#

Ievads#

optical klase tiek izmantota, lai piekļūtu datiem no optiskā sensora. Tā izmanto atstaroto gaismu, lai noteiktu objektus, identificētu krāsas un mērītu spilgtumu un nokrāsu.

Klases konstruktors#

optical Optical = optical(index);

Klases iznīcinātājs#

Iznīcina optical objektu un atbrīvo saistītos resursus.

virtual ~optical();

Parametri#

Parametrs

Tips

Apraksts

index

int32_t

Viedports, kuram ir pievienots optiskais sensors, kas pierakstīts kā PORTx, kur x ir porta numurs (piemēram, PORT1).

Piemēri#

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

Dalībnieku funkcijas#

optical klase ietver šādas dalībfunkcijas:

  • setLight — Ieslēdz vai izslēdz optiskā sensora LED indikatoru.

  • setLightPower — Iestata optiskā sensora gaismas jaudas līmeni.

  • isNearObject — Atgriež, vai optiskais sensors uztver objektu diapazonā.

  • colorname — Returns the color detected by the Optical Sensor.

  • brightness — Atgriež no objekta atstarotās gaismas daudzumu.

  • hue — Atgriež optiskā sensora noteikto nokrāsu.

  • objectDetected — Reģistrē funkciju, kas jāizsauc, kad optiskais sensors nosaka objektu.

  • objectLost — Reģistrē funkciju, kas jāizsauc, kad optiskais sensors pazaudē objektu.

Pirms jebkuru optical dalībnieku funkciju izsaukšanas ir jāizveido optical instance, kā parādīts zemāk:

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

Ieslēdz vai izslēdz optiskā sensora LED indikatoru. Gaisma var palīdzēt optiskajam sensoram skaidrāk noteikt objektus un krāsas.

Available Functions
void  setLight(ledState state);

Parameters

Parametrs

Tips

Apraksts

state

ledState

Ieslēdz vai izslēdz LED gaismu. ledState::on ieslēdz LED gaismu ar 100% spilgtumu. ledState::off izslēdz to.

Return Values

Šī funkcija neatgriež vērtību.

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

setLightPower#

Iestata optiskā sensora gaismas spilgtumu. Gaisma var palīdzēt optiskajam sensoram skaidrāk noteikt objektus un krāsas.

Augstāks procentuālais daudzums padara gaismu spilgtāku. Zemāks procentuālais daudzums padara gaismu blāvāku.

Ja optiskā sensora gaisma ir izslēgta, gaismas jaudas iestatīšana virs 0% ieslēgs gaismu.

Ja optiskā sensora gaisma ir ieslēgta, gaismas jaudas iestatīšana uz 0% izslēgs gaismu.

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

Parameters

Parametrs

Tips

Apraksts

intensity

int32_t

Gaismas jaudas līmenis ir no 0 līdz 100.

units

percentUnits

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

Return Values

Šī funkcija neatgriež vērtību.

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

isNearObject#

Atgriež, vai optiskais sensors uztver objektu diapazonā.

Available Functions
bool  isNearObject();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Šī funkcija atgriež Būla vērtību, kas norāda, vai ir atklāts tuvumā esošs objekts:

  • true — Tuvumā ir atklāts objekts.

  • false — Objekts nav atrasts.

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

colorname#

Atgriež optiskā sensora noteikto krāsu, pamatojoties uz noteikto nokrāsas vērtību.

Available Functions
vex::colorType  colorname();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Optiskā sensora noteiktā krāsa kā color class eksemplārs.

Iespējamās krāsas ir:

  • blue – nokrāsas vērtība no 196° līdz 229°

  • blue_green – nokrāsas vērtība no 140° līdz 195°

  • blue_violet – Nokrāsas vērtība no 230° līdz 239°

  • green – nokrāsas vērtība no 84° līdz 139°

  • orange – nokrāsas vērtība no 21° līdz 30°

  • red – nokrāsas vērtība no 350° līdz 14°

  • red_orange – Nokrāsas vērtība no 15° līdz 20°

  • red_violet – nokrāsas vērtība no 281° līdz 350°

  • violet – nokrāsas vērtība no 240° līdz 280°

  • yellow – nokrāsas vērtība no 54° līdz 74°

  • yellow_green – Nokrāsas vērtība no 75° līdz 83°

  • yellow_orange – Nokrāsas vērtība no 31° līdz 53°

Examples
// Set a variable, detectColor, to the color detected by the
// Optical Sensor
colorType detectColor = Optical.colorname();

// Print the color detected by the Optical Sensor
// to the Brain's screen
Brain.Screen.print(detectColor);

brightness#

Atgriež, cik daudz gaismas tiek atstarots atpakaļ uz optisko sensoru.

Augstāks procentuālais daudzums nozīmē, ka uz optisko sensoru tiek atstarots vairāk gaismas. Zemāks procentuālais daudzums nozīmē, ka uz optisko sensoru tiek atstarots mazāk gaismas.

Available Functions
double  brightness(bool bRaw = false);

Parameters

Parametrs

Tips

Apraksts

bRaw

bool

Būla vērtība neapstrādātu spilgtuma datu, nevis procentuālās vērtības nolasīšanai. Noklusējuma vērtība ir false.

Return Values

Divkāršs skaitlis, kas apzīmē optiskā sensora noteikto spilgtumu diapazonā no 0 līdz 100 %, vai divkāršs skaitlis, kas apzīmē sensora noteiktos neapstrādātos datus.

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#

Atgriež optiskā sensora noteikto nokrāsu.

Nokrāsa ir veids, kā aprakstīt krāsu, izmantojot skaitļus ap krāsu apli.

VEX krāsu aplis attēlo krāsu pakāpes aplī, kur sarkanā krāsa ir 0 grādi un pāriet varavīksnes krāsā, vērtībai palielinoties.

Available Functions
double hue();

Parameters

Šī funkcija nepieņem nekādus parametrus.

Return Values

Dubultskaitlis, kas apzīmē optiskā sensora noteikto nokrāsas vērtību diapazonā no 0 līdz 359,00.

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

objectDetected#

Reģistrē atzvanīšanas funkciju, kad tiek atklāts objekts.

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

Parameters

Parametrs

Tips

Apraksts

callback

void (*)(void)

Iepriekš definēta funkcija, kas tiek izpildīta, kad optiskais sensors nosaka jaunu objektu.

Return Values

Šī funkcija neatgriež vērtību.

Examples

Definējiet atzvanīšanas funkciju (ārpus 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");
}

Reģistrējiet atzvanīšanas funkciju int main() iekšpusē

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

Reģistrē atzvanīšanas funkciju objekta pazaudēšanas gadījumā.

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

Parameters

Parametrs

Tips

Apraksts

callback

void (*)(void)

Iepriekš definēta funkcija, kas tiek izpildīta, kad optiskais sensors pazaudē noteiktu objektu.

Return Values

Šī funkcija neatgriež vērtību.

Examples

Definējiet atzvanīšanas funkciju (ārpus 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");
}

Reģistrējiet atzvanīšanas funkciju int main() iekšpusē

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