KURZ: Zvukový senzor
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 08.09.2017
- Zobrazení: 14570
KAPITOLY
Hlavní funkcí zvukového senzoru je detekovat úroveň hluku svého okolí. Tuto hodnotu dokáže změřit a vyjádřit buďto v jednotkách dB nebo dBA. Jednotky dB vyjadřují všechny zvuky vysokých i nízkých frekvencí. Oproti tomu dBA je vyjádření zvuků slyšitelných člověkem, jejichž úroveň hlasitosti je vyjádřena v procentech (maximum 100% = přibližně 90 dB). Hodnoty, které senzor naměří, je možné programově porovnávat s fixně nastavenými hodnotami v programu. Zvukový senzor je k řídící jednotce připojen pomocí kabelu do jednoho ze zvolených vstupních portů (1-4).
Použití v programovacích prostředích
NXT-G
BLOK PRO OVLÁDÁNÍ MOTORU
Rozcestník
Umístění bloku
Programový blok Sound Sensor nalezneme v programovacím prostředí NXT-G v paletě Complete > Sensor.
Popis bloku
Pro využití bloku zvukového senzoru v programu je k dispozici sedm konektorů pro propojení s dalšími programovými bloky:
Port - vyjadřuje, ke kterému ze čtyř vstupních portů je senzor připojen (1-4).
Trigger Point- značí nastavenou vstupní hodnotu hlasitosti zvuku, která je porovnávána s hodnotou snímanou senzorem.
Greater / Less - hodnota logického datového typu sloužící pro srovnání dvou hodnot (větší nebo menší).
dBA - konektor určující, v jakých jednotkách je vyjádřena naměřená hlasitost zvuku. Je logického datového typu. Pro hodnotu True (Pravda) nabývá hodnoty dBA, pro False (Nepravda) dB.
Yes / No - hodnota logického datového typu vyjadřující výsledek porovnání.
Sound Level - vyjadřuje hodnotu získanou ze zvukového senzoru v rozpětí 0-100%.
Raw Value - udává čistou hodnotu hlasitosti zvuku snímanou senzorem na stupnici 0-1024.
Aktuální nastavení programového bloku označuje ikona , která vyjadřuje, na jak vysokou úroveň hlasitosti zvuku je nastaven Triger Point. V pravém horním rohu bloku se nachází číslo označující port, ke kterému je senzor připojen.
Parametry bloku
Port: vybráním jedné ze čtyř možností označujeme, ke kterému vstupnímu portu řídící jednotky je zvukový senzor připojen.
Compare: část programového bloku sloužící k nastavení fixní úrovně hlasitosti zvuku, která bude porovnávána s hodnotou snímanou senzorem. Hodnotu je možné nastavit pomocí tažítka či ručně zadáním hodnoty. Volby po stranách slouží k určení, zda chceme porovnávat zvuky o hlasitosti nižší, či vyšší než je zadaná hodnota. Stejnou funkci má i volba znamének větší a menší.
Během chodu programu se v levé části programového bloku dynamicky mění hodnota úrovně hlasitosti zvuku snímaná senzorem (na obrázku vyjádřena číslem 29) na stupnici od 0 do 100%.
RobotC
Příkazy pro ovládání zvukového senzoru
Správné použití zvukového senzoru spočívá nejprve v nastavení. Jeho další využití spočívá hlavně ve zpracování snímané hodnoty z okolí a její vyhodnocování.
Rozcestník
Nastavení senzoru
Ještě než začneme v programovacím prostředí RobotC pracovat se zvukovým senzorem, je nutné ho nakonfigurovat. U zvukového senzoru je možné volit mezi dvěma možnostmi na základě toho, s kterým druhem zvukového senzoru chceme pracovat (sensor pracující s jednotkami dB nebo dBA). Zápis konfigurace je uveden na obrázku. 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 (S1 = port 1 a S2 = port 2 atd.). Následuje volitelný název senzoru (zvukovy). Posledním parametrem je druh senzoru (sensorSoundDB nebo sensorSoundDBA). Tato deklarace je v úvodu každého programu, kde budeme pracovat se senzory nezbytná.
#pragma config(Sensor, S1, zvukovy, sensorSoundDB) // Kod je automaticky generovan pruvodcem konfiguraci RobotC. #pragma config(Sensor, S2, zvukovy2, sensorSoundDBA) // 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í úrovně hlasitosti zvuku
Během vytváření programu, ve kterém se bude vyskytovat zvukový senzor může nastat situace, kdy budeme potřebovat porovnat snímané hodnoty s hodnotami pevně zadanými. Příkazem SensorValue[] je možné vyjádřit rozsah úrovně hlasitosti zvuku, která by se poté dala porovnávat se skutečně naměřenou hodnotou senzorem. Rozsah číselné hodnoty je zadáván pomocí porovnávacích znamének, která značí hodnotu větší, menší nebo rovnu zadané hodnotě (>, < nebo =). Hodnota je vyjadřována na stupnici 0 - 100.
SensorValue[Zvukovy] < 60; // Uroven hlasitosti zvuku je nizsi nez 60. SensorValue[Zvukovy] > 60; // Uroven hlasitosti zvuku je vyssi nez 60. SensorValue[Zvukovy] = 60; // Uroven hlasitosti zvuku je rovna 60.
Využití hodnoty úrovně hlasitosti v RAW
Při práci s naměřenými hodnotami lze využít jejich klasické vyjádření hodnoty na stupnici od 0 do 100 nebo vyjádření v raw neboli čisté, neškálované podobě. Pro práci s touto hodnotou je určen příkaz SensorRaw[], který vyjadřuje, že hodnota přečtená ze senzoru, jehož název je uveden v závorce, bude používána jako raw a tedy v rozsahu od 0 do 1023. Rozsah číselné hodnoty je zadáván pomocí porovnávacích znamének, která značí rozsah hodnot větší, menší nebo roven zadané hodnotě (>, < nebo =).
SensorRaw[Zvukovy] < 512; // Uroven hlasitosti zvuku v RAW je nizsi nez 512. SensorRaw[Zvukovy] > 512; // Uroven hlasitosti zvuku v RAW je vyssi nez 512. SensorRaw[Zvukovy] = 512; // Uroven hlasitosti zvuku v RAW je rovna 512.
EV3
Blok pro práci se zvukovým senzorem
Rozcestník
- Umístění bloku
- Změna režimu
- Přidání vstupního portu
- Režimy programového bloku