KURZ: Zvukový výstup
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 06.09.2017
- Zobrazení: 10802
KAPITOLY
Řídící jednotka stavebnice Lego Mindstorm NXT obsahuje 8bitový zvukový výstup s reproduktorem. Díky tomu umožňuje využívat v programu zvukové výstrahy a signály. Zvukové tóny jsou obsaženy ve standardním firmware. Základní sadu zvuků lze ale rozšířit a naimportovat si vlastní.
V obou prostředích je možné využívat v programech zvukový doprovod. Signalizace se využívá například pro kontrolu jednotlivých průchodů programem, jako varovný signál pro změnu směru pohybu robota a v dalších vhodných situacích.
Práce se zvukem v programovacích prostředích
NXT-G
Blok pro práci se zvukem
Rozcestník
Umístění bloku
Zvukový výstup řídící jednotky je v programovém kódu řízen blokem Sound, který se nachází v paletě Complete > Common (na obrázku s rozbaleným Data Hub pro připojení dalších modulů).
Popis bloku
Programový blok Sound obsahuje šest konektorů pro připojení dalších bloků:
Action - označuje typ zvukové signalizace (zvukový soubor nebo tón).
Filename - název přehrávaného zvukového souboru.
Tone Frequency - frekvence přehrávaného zvuku v hertzích.
Control - vyjadřuje aktuální stav (play nebo stop).
Volume - úroveň hlasitosti přehrávaného zvuku.
Duration - doba trvání přehrávání zvuku.
Samotný modul Sound zobrazuje aktuální nastavení pomocí tří ikonek umístěných pod vyobrazením reproduktoru (popisovány zleva doprava):
- typ zvuku (zvukový soubor nebo tón),
- nebo vyjádření, zda modul v dané situaci reprezentuje zapnutí nebo vypnutí zvukové signalizace,
- úroveň hlasitosti zvuku.
Parametry bloku
Action: vyjadřuje, zda bude pro zvukovou signalizaci použit zvukový soubor nebo tón. Na prvním obrázku je zvolena možnost Sound File (zvukový soubor), proto se v pravé části bloku zobrazuje výběrové okno se seznamem dostupných zvuků. Na druhém obrázku je vybrána možnost Tone (tón). V tomto případě se v pravé části bloku nastavuje označení tónu a délka jeho trvání ve vteřinách.
Control: udává, zda má blok funkci spustit nebo zastavit daný zvukový soubor nebo tón.
Volume: vyjadřuje nastavenou úroveň hlasitosti zvuku (maximum je 100%).
Function: zaškrnutím volby Repeat (opakování) nastavíme opakování zvuku po celou dobu dané části nebo celého programu (pokud je vybrána tato možnost, není možné nastavit funkci Wait).
Wait: zaškrtnutím volby Wait for Completion (počkat na dokončení) docílíme toho, že zvukový soubor bude celý přehrán a až poté bude program pokračovat dále. V opačném případě se pokračuje ve vykonávání programu. Pokud jako další následuje opět blok Sound, je přehrávání zvuku prvního bloku ukončeno a započne přehrávání zvuku bloku druhého.
RobotC
Příkazy pro práci se zvukem
Při používání zvukových signálů potřebujeme využívat několik příkazů. Je potřeba definovat používaný zvuk nebo zvukový soubor, ovládat hlasitost zvuku a dobu trvání přehrávání.
Rozcestník
Ztlumení a zapnutí zvuku
Příkaz MuteSound() ztlumí všechny zvuky v dalších příkazech. UnmuteSound() má opačnout funkci, tudíž umožní od dalšího příkazu přehrávání audio souborů.
MuteSound(); // Vypne vsechny nasledujici zvuky. UnmuteSound(); // Znovu umozni prehravani nasledujicich zvuku.
Volba audio souboru
Při přehrávání zvuků je možné volit mezi zvukovými soubory a tóny. Pro každou z těchto kategorií se v jazyce RobotC používá zvláštní příkaz. Pro tóny je to příkaz PlaySound() a pro zvukové soubory PlaySoundFile().
PlaySound(soundBeepBeep); // Prehraje ton s nazvem soundBeepBeep. PlaySoundFile("Woops.rso"); // Prehraje audio soubor s nazvem Woops.rso.
Nastavení úrovně hlasitosti
Udává se v rozsahu 0-4 pomocí příkazu nVolume[]. Pro použití při programování se doporučuje využívat hodnotu 1, protože vyšší mohou být poměrně hlasité a působit nepříjemně.
nVolume = 1; // Nastavi uroven hlasitosti na 1 (pro cloveka prijatelna uroven).
Délka trvání tónu
Ovlivnění doby trvání tónu je možné pomocí dvou příkazů. Příkaz PlayTone(frequency, durationIn10MsecTicks) se využívá při práci s konstatními tóny. Oproti tomu PlayImmediateTone(frequency, durationIn10MsecTicks) se využívá při přehrání tónů upozorňujících na okamžitou změnu v programu nebo probíhající proces. Oba příkazy mají dva parametry. První je frekvence přehrávaného tónu v hertzích a druhý doba trvání udávaná v desítkách milisekund.
PlayTone(784, 15); // Prehrava ton frekvenci 784 Hz po dobu 150 milisekund. PlayImmediateTone(80, 50); // Prehrava ton frekvenci 80 Hz po dobu 500 milisekund.
EV3
Blok pro práci se zvukovým výstupem
Rozcestník
Umístění bloku pro práci se zvukovým výstupem
Programový blok Sound je umístěn v paletě Action.
Změna režimu
Programový blok Sound můžeme využívat ve čtyřech 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 bílého pole 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.
Tento port s názvem File Name slouží k odeslání zvukového souboru k přehrání.
Režimy programového bloku
Stop (zastavení)
Režim programového bloku sloužící k zastavení aktuálně přehrávaného zvuku.
Play File (přehrání souboru)
Režim sloužící k přehrání zvoleného zvukového souboru z paměti řídící jednotky. V tomto režimu máme k dispozici dva vstupní porty programového bloku.
Volume Control - hlasitost přehrávaného zvuku udávaná na stupnici od 0 do 100.
Play Type - způsob přehrání zvoleného zvukového souboru.
Přehrání je možné realizovat třemi způsoby:
- Wait for Completion - zvuk je jedenkrát přehrán a program pokračuje až po dokončení přehrávání.
- Play Once - zvuk je jedenkrát přehrán a program okamžitě pokračuje dále.
- Repeat - zvuk je přehráván stále dokola, dokud není přerušen jiným blokem Sound a program okamžitě pokračuje dále.
Výběr zvukového souboru z paměti řídící jednotky
Výběr zvukového souboru z paměti v paměti řídící jednotky se provádí pomocí bílého pole v pravém horním rohu programovacího bloku (červeně zvýrazněno).
Na výběr máme předpřipravené zvuky LEGO Sound Files nebo vlastní zvuky importované do projektu a umístěné ve složce Project Sounds.
Play zvuku (přehrání zvuku)
Režim sloužící k přehrání zvukového tónu libovolné frekvence, hlasitosti a délky. Programový blok obsahuje v tomto režimu čtyři vstupní porty.
Frequency - frekvence zvoleného zvuku v herzích (možné rozpětí hodnot je od 300 do 10 000).
Duration - délka přehrávaného zvuku ve vteřinách.
Volume Control - hlasitost přehrávaného zvuku udávaná na stupnici od 0 do 100.
Play Type - způsob přehrání zvoleného zvuku.
Přehrání je možné realizovat třemi způsoby:
- Wait for Completion - zvuk je jedenkrát přehrán a program pokračuje až po dokončení přehrávání.
- Play Once - zvuk je jedenkrát přehrán a program okamžitě pokračuje dále.
- Repeat - zvuk je přehráván stále dokola, dokud není přerušen jiným blokem Sound a program okamžitě pokračuje dále.
Play Note (přehrání tónu)
Režim umožňující přehrání tónu určité délky a hlasitosti. Programový blok obsahuje v tomto režimu čtyři vstupní porty.
Note - výběr zvukového tónu.
Duration - délka přehrávaného tónu ve vteřinách.
Volume Control - hlasitost přehrávaného tónu udávaná na stupnici od 0 do 100.
Play Type - způsob přehrání zvoleného tónu.
Přehrání je možné realizovat třemi způsoby:
- Wait for Completion - tón je jedenkrát přehrán a program pokračuje až po dokončení přehrávání.
- Play Once - tón je jedenkrát přehrán a program okamžitě pokračuje dále.
- Repeat - tón je přehráván stále dokola, dokud není přerušen jiným blokem Sound a program okamžitě pokračuje dále.