KURZ: Zvukový senzor

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 SoundSensorDraggedSound Sensor nalezneme v programovacím prostředí NXT-G v paletě icon completeCompleteSensorHilight Sensor.

NXTG SoundBlock rozbaleny

 

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 Port - vyjadřuje, ke kterému ze čtyř vstupních portů je senzor připojen (1-4).

TriggerPoint Trigger Point- značí nastavenou vstupní hodnotu hlasitosti zvuku, která je porovnávána s hodnotou snímanou senzorem.

GreaterLessGreater / Less - hodnota logického datového typu sloužící pro srovnání dvou hodnot (větší nebo menší).

DBA 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.

Boolean Yes / No - hodnota logického datového typu vyjadřující výsledek porovnání.

Volume075 Sound Level - vyjadřuje hodnotu získanou ze zvukového senzoru v rozpětí 0-100%. 

RawValue Raw Value - udává čistou hodnotu hlasitosti zvuku snímanou senzorem na stupnici 0-1024.

Aktuální nastavení programového bloku označuje ikona intensity075, 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

NXTG SoundSensor

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

 

 

SOUND UMISTENI

 

SOUND REZIMY

 

SOUND WIRED

 

SOUND MEASURE DB

 

SOUND MEASURE DBA

 

SOUND COMPARE DB

 

SOUND COMPARE DBA

 

SOUND CALIBRATE MIN

 

SOUND CALIBRATE MAX

 

 

SOUND CALIBRATE RESET

 

 

 

 

1 1 1 1 1 1 1 1 1 1 Hodnocení 1.00 (1 hodnocení)

Nemáte oprávnění přidat komentář.
Komentáře mohou přidávat pouze registrovaní uživatelé, kteří neporušují pravidla diskuze.