KURZ: Ultrazvukový senzor
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 07.09.2017
- Zobrazení: 16127
KAPITOLY
Ultrazvukový senzor umožňuje robotům orientovat se v prostoru. Senzor vysílá vysokofrekvenční akustickou vlnu, která se odrazí od předmětu umístěného před senzorem. Podle doby, za kterou se signál vrátí zpět do senzoru se vypočítá, v jaké vzdálenosti se předmět nachází. Díky tomuto zařízení je robot schopný detekovat překážky, měřit vzdálenosti k překážce či zaznamenávat pohyb. Rozsah ultrazvukového senzoru je od 0 do 255 centimetrů.
Použití v programovacích prostředích
NXT-G
Blok pro ovládání motoru
Rozcestník
Umístění bloku
Programový blok Ultrasonic Sensor je v programovacím prostředí NXT-G umístěn v paletě Complete > Sensor.
Popis bloku
Blok Ultrasonic Sensor umožňuje k propojení s dalšími programovými bloky využít pět konektorů:
Port - určuje, ke kterému ze čtyř vstupních portů je senzor připojen (1-4).
TriggerPoint - značí nastavenou vstupní vzdálenost, kterou lze porovnávat s hodnotou snímanou senzorem.
Greater / Less - hodnota logického datového typu sloužící pro srovnání dvou hodnot (větší nebo menší).
Yes / No - hodnota logického datového typu vyjadřující výsledek porovnání fixní zadané vzdálenosti a hodnoty naměřené senzorem.
Distance - číselná hodnota vyjadřující vzdálenost zaznamenaného předmětu od senzoru. Vzdálenost je vyjádřena buďto v centimetrech na stupnici od 0 do 255 cm nebo v palcích od 0 do 100 in.
Aktuální nastavení senzoru vyjadřuje pouze číslo v pravém horním rohu, které udává, ke kterému ze vstupních portů je senzor připojen a poté ikonka , která značí hodnotu fixně nastavené vzdálenosti.
Parametry bloku
Port: zvolením jedné ze čtyř možností udáváme, ke kterému vstupnímu portu je senzor připojen.
Compare: sekce sloužící k zadání fixní hodnoty určené pro porovnávání s hodnotou snímanou senzorem. Tažítkem nebo ručním zadáním je možné nastavit vzdálenost kratší či delší než je vzdálenost naměřená ultrazvukovým senzorem.
Show: umožňuje nastavit jednotky, ve kterých bude vzdálenost vyjádřena. Na výběr jsou buďto centimetry nebo palce.
RobotC
Příkazy pro ovládání ultrazvukového senzoru
Ultrazvukový senzor vyhodnocuje vzdálenost od překážky, a tak hlavní práce s ním se skládá ze zpracování těchto informací. Pro jeho bezproblémový chod je důležité správné nastavení.
Rozcestník
Nastavení senzoru
Ještě než začneme v programovacím prostředí RobotC pracovat s ultrazvukovým senzorem, je nutné ho nakonfigurovat. Zápis konfigurace je uveden na příkladu. Skládá se z klíčového slova #pragma a příkazu config(), který obsahuje čtyři parametry. První parametr značí, o jaký druh zařízení se jedná. V našem případě je to Sensor. Další parametr označuje, do jakého portu řídící jednotky je senzor připojen (S3 = port 3). Následuje volitelný název senzoru (ultrazvukovy). Posledním parametrem je druh senzoru (sensorSONAR = ultrazvukový senzor). Tato deklarace je v úvodu každého programu, kde budeme pracovat se senzory nezbytná.
#pragma config(Sensor, S3, ultrazvukovy, sensorSONAR) // Kod je automaticky generovan pruvodcem konfiguraci RobotC.
Poznámka: Konfiguraci lze provést ručním zapsáním deklarace v příkladu nebo v menu programovacího prostředí RobotC. Postup konfigurace je uveden v kapitole Konfigurace motorů a senzorů.
Nastavení vzdálenosti od senzoru
Ultrazvukový senzor dokáže vracet údaj o vzdálenosti k nejbližšímu předmětu, který se před ním nachází. Tyto údaje je poté možné programově porovnávat a ovlivňovat tak pohyb a chování robota. Příkaz, který pracuje s hodnotou vyjadřující vzdálenost překážky od ultrazvukového senzoru je SensorValue[]. V závorce udáváme zvolený název senzoru, který je zadán v úvodu programu. Rozsah hodnot je určen pomocí porovnávacích znamének. Ultrazvukový senzor dokáže určit vzdálenost v rozmezí 0-255 centimetrů. Narozdíl od programového prostředí NXT-G, se v RobotC využívá pouze vyjádření v centimetrech, nikoliv v palcích.
SensorValue[sensorSONAR] < 20; // Senzorem prectena vzdalenost je kratsi nez 20 cm. SensorValue[sensorSONAR] > 20; // Senzorem prectena vzdalenost je delsi nez 20 cm. SensorValue[sensorSONAR] = 20; // Senzorem prectena vzdalenost je 20 cm.
Pro doplnění přikládáme jednoduchý příklad nastavení vzdálenosti pomocí nadeklarované proměnné.
int vzdalenost_v_cm = 20; // Vytvori promennou "vzdalenost_v_cm" a nastavi jeji hodnotu na 20. SensorValue[sensorSONAR] > vzdalenost_v_cm; // Senzorem prectena vzdalenost je delsi nez 20 cm.
EV3
Blok pro práci s ultrazvukovým senzorem
Rozcestník
Umístění bloku pro práci s ultrazvukovým senzorem
Programový blok Ultrasonic Sensor je umístěn v paletě Sensor.
Změna režimu
Programový blok Ultrasonic Sensor můžeme využívat ve dvou základních režimech. Přepínání mezi nimi se provádí pomocí tlačítka v levé spodní části bloku (červeně zvýrazněno).
Přidání vstupního portu
Kliknutím do pole pro výběr vstupního portu v pravém horním rohu programového bloku a vybráním možnosti Wired přidáme do programového bloku nový vstupní port Port (červeně zvýrazněno).
Režimy programového bloku
Measure - Advanced - Centimetres
Režim, ve kterém senzor měří vzdálenost vyjádřenou v centimetrech. Snímání je možné realizovat ve dvou režimech. Programový blok obsahuje jeden vstupní a jeden výstupní port.
Measuring Mode (režim měření vzdálenosti):
Ping - režim, ve kterém jsou zasílány jednotlivé ultrazvukové signály.
Continuous - režim, ve kterém je zasílán konstantní, nepřerušovaný ultrazvukový signál.
Distance in Centimetres - výstupní port jehož návratovou hodnotou je naměřená vzdálenost v centimetrech.
Measure - Advanced - Inches
Režim, ve kterém senzor měří vzdálenost vyjádřenou v palcích. Snímání je možné realizovat ve dvou režimech. Programový blok obsahuje jeden vstupní a jeden výstupní port.
Measuring Mode (režim měření vzdálenosti):
Ping - režim, ve kterém jsou zasílány jednotlivé ultrazvukové signály.
Continuous - režim, ve kterém je zasílán konstantní, nepřerušovaný ultrazvukový signál.
Distance in Centimetres - výstupní port jehož návratovou hodnotou je naměřená vzdálenost v centimetrech.
Poznámka: Režimy Measure - Distance - Centimetres (měření vzdálenosti v centimetrech) a Measure - Distance - Inches (měření vzdálenosti v palcích) fungují naprosto stejným způsobem, jen neobsahují možnost změny režimu vysílání ultrazvukového signálu.
Measure - Presence
Režim, ve kterém ultrazvukový senzor pouze zjišťuje, zda detekoval ultrazvukový signál či nikoliv. V tomto režimu máme k dispozici jediný výstupní port.
Ultrasound Detected - výstupní port, jehož návratová hodnota je logického datového typu. Pokud je signál detekován, je výsledkem hodnota True (pravda) v opačném případě False (nepravda).
Compare - Distance Centimetres
Režim sloužící k porovnání naměřené hodnoty s prahovou hodnotou v centimetrech. Programový blok obsahuje dva vstupní a dva výstupní porty.
Compare Type - výběr způsobu porovnání zjištěné hodnoty s prahovou. Vybíráme, zda chceme zjistit, jestli je naměřená vzdálenost menší, větší nebo rovna prahové.
Threshold Value - prahová hodnota, s kterou porovnáváme naměřenou vzdálenost.
Compare Result - výstupní port vracející logickou návratovou hodnotu v závislosti na tom, zda zjištěná hodnota byla v námi ověřované vzdálenosti (True) či nikoliv (False).
Distance in Centimetres - návratovou hodnotou výstupního portu je naměřená vzdálenost v centimetrech.
Compare - Distance Inches
Režim sloužící k porovnání naměřené hodnoty s prahovou hodnotou v palcích. Programový blok obsahuje dva vstupní a dva výstupní porty.
Compare Type - výběr způsobu porovnání zjištěné hodnoty s prahovou. Vybíráme, zda chceme zjistit, jestli je naměřená vzdálenost menší, větší nebo rovna prahové.
Threshold Value - prahová hodnota, s kterou porovnáváme naměřenou vzdálenost.
Compare Result - výstupní port vracející logickou návratovou hodnotu v závislosti na tom, zda zjištěná hodnota byla v námi ověřované vzdálenosti (True) či nikoliv (False).
Distance in Inches- návratovou hodnotou výstupního portu je naměřená vzdálenost v palcích.
Compare - Presence/Listen
Funkce režimu je totožná s režimem Measure - Presence.