Snímač vzdálenosti#
Zavedení#
Třída sonaru sonar se používá se senzorem vzdálenosti VEX IQ (1. generace). Třída vzdálenosti distance se používá se senzorem vzdálenosti VEX IQ (2. generace).
Oba senzory vzdálenosti dokáží detekovat, zda se objekt nachází před senzorem, a vrátit hodnotu vzdálenosti od něj. Senzor vzdálenosti VEX IQ (2. generace) dokáže také vypočítat relativní rychlost detekovaného objektu a odhadnout, zda je objekt malý, střední nebo velký.
Konstruktory tříd#
1 — Tento konstruktor vytváří senzor vzdálenosti VEX IQ (1. generace).
sonar( int32_t index);
2 — Tento konstruktor vytváří senzor vzdálenosti VEX IQ (2. generace).
distance( int32_t index);
Destruktor tříd#
Zničí objekt o vzdálenosti distance a uvolní související zdroje.
1 — Zničí senzor vzdálenosti VEX IQ (1. generace).
~sonar();
2 — Zničí senzor vzdálenosti VEX IQ (2. generace).
~distance();
Parametry#
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Inteligentní port, ke kterému je připojen senzor vzdálenosti, zapsaný jako |
Příklady#
1 — Vytvořte instanci senzoru vzdálenosti VEX IQ (1. generace) na portu 1.
sonar Distance1 = sonar(PORT1);
2 — Vytvořte instanci senzoru VEX IQ Distance Sensor (2. generace) na portu 1.
distance Distance1 = distance(PORT1);
Členské funkce#
Třída sonar obsahuje následující členské funkce:
foundObject— Vrátí, zda senzor vzdálenosti aktuálně detekuje objekt.distance— Vrátí vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.
Třída distance obsahuje následující členské funkce:
objectDistance— Vrátí vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.objectVelocity— Vrátí, jak rychle se detekovaný objekt pohybuje směrem k senzoru vzdálenosti nebo od něj.objectSize— Vrátí odhadovanou velikost detekovaného objektu.isObjectDetected— Vrátí, zda senzor vzdálenosti aktuálně detekuje objekt.changed— Zaregistruje funkci zpětného volání, která se spustí při změně detekované hodnoty vzdálenosti.installed— Vrátí, zda je senzor vzdálenosti nainstalován a připojen.
Before calling any distance or sonar member functions, a distance or sonar instance must be created, as shown below:
/* This constructor is required when using VS Code.
Distance Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create a VEX IQ Distance Sensor (2nd gen) instance in Port 1
distance Distance1 = distance(PORT1);
foundObject#
Vrací, zda senzor vzdálenosti aktuálně detekuje objekt.
Available Functionsbool foundObject();
Tato funkce nepřijímá žádné parametry.
Return ValuesVrací booleovskou hodnotu označující, zda senzor vzdálenosti detekuje objekt:
-
true— The Distance Sensor detects an object. -
false— The Distance Sensor does not detect an object.
distance#
Vrátí vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.
Available Functionsdouble distance( distanceUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka vzdálenosti:
|
Vrací hodnotu double představující vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem v zadaných jednotkách.
objectDistance#
Vrátí vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.
Available Functionsdouble objectDistance( distanceUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka vzdálenosti:
|
Vrací hodnotu double představující vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem v zadaných jednotkách.
objectVelocity#
Vrátí relativní rychlost detekovaného objektu.
Rychlost ukazuje, jak rychle se objekt pohybuje směrem k senzoru vzdálenosti nebo od něj. Hodnota blízká 0 znamená, že se objekt vzhledem k senzoru příliš nepohybuje.
Available Functionsdouble objectVelocity();
Tato funkce nepřijímá žádné parametry.
Return ValuesVrací hodnotu double která představuje relativní rychlost detekovaného objektu v m/s (metrech za sekundu).
objectSize#
Vrátí odhadovanou velikost objektu detekovaného senzorem vzdálenosti.
Senzor vzdálenosti odhaduje velikost objektu na základě toho, jakou část zorného pole senzoru zabírá detekovaný objekt.
Available FunctionssizeType objectSize();
Tato funkce nepřijímá žádné parametry.
Return ValuesVrací hodnotu sizeType , která označuje odhadovanou velikost detekovaného objektu:
-
none— No object is detected. -
small— A small object is detected. -
medium— A medium object is detected. -
large— A large object is detected.
isObjectDetected#
Vrací, zda senzor vzdálenosti aktuálně detekuje objekt.
Available Functionsbool isObjectDetected();
Tato funkce nepřijímá žádné parametry.
Return ValuesVrací booleovskou hodnotu označující, zda senzor vzdálenosti detekuje objekt:
-
true— The Distance Sensor detects an object. -
false— The Distance Sensor does not detect an object.
changed#
Zaregistruje funkci zpětného volání, která se spustí při změně detekované hodnoty vzdálenosti.
Available Functionsvoid changed( void (* callback)(void) );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Ukazatel na funkci, která bude volána při změně detekované hodnoty vzdálenosti. Funkce nesmí přijímat žádné parametry a vracet |
Tato funkce nevrací hodnotu.
Notes - This is a VEX IQ Distance Sensor (1st gen) or (2nd gen) function.installed#
Vrací, zda je senzor vzdálenosti nainstalován a připojen.
Available Functionsbool installed();
Tato funkce nepřijímá žádné parametry.
Return ValuesVrací booleovskou hodnotu označující, zda je senzor vzdálenosti nainstalován a připojen:
-
true— The Distance Sensor is installed and connected. -
false— The Distance Sensor is not installed or not connected.