Přehrávač wav souborů

Toto je starší projekt, který vznikl v době, kdy jsem neznal arduino a DF player. V dnešní době je už tento přehrávač překonán, ale některými uživateli může být použit pro svou jednoduchost. Tento přehrávač vychází ze zapojení 255-Voice PCM sound generator. Já jsem se rozhodl pro verzi mono ve vysokém rozlišení a následný popis bude pouze pro tuto verzi. Zapojení bylo doplněno o pasivní filtr výstupního signálu a NF zesilovač s regulací hlasitosti.

Z překladu stránek původního projektu 255-Voice PCM sound generator zde napíšu to důležité a přidám poznámky k realizované verzi.

Jedná se o jednoduchý zvukový generátor. Je postaven na mikrokontroléru Atmel ATtiny861 s paměťovou SD kartou. Tiny861 má rychlý PWM výstup, proto je ve srovnání s jinými AVR čipy, možné vytvořit čistý zvuk. Na obvodu je k dispozici mnoho vstupně výstupních pinů, což umožňuje ovládat zvukový generátor vnějšími signály.

Hardware

Jako paměťové médium je použita micro SD karta. Karta musí být naformátována na souborový systém FAT. Většina použitých součástek byla zvolena v THT pouzdru. Slot pro SD kartu, procesor a napěťový stabilizátor AMS1117-3.3 jsou v SMD pouzdru a jsou proto osazeny ze strany spojů. Pájecí plošky LSP1 a LSP2, které jsou z pinů procesoru vyvedeny, slouží pro naprogramování již zaletovaného procesoru. Zapojení bylo doplněno o napájecí část, obsahující usměrňovací můstek a stabilizátor napětí. Přehrávač tak lze napájet napětím v rozsahu od 8V do 20VDC, nebo od 7V do 16VAC. Jako NF zesilovač je použit obvod LM386 v zapojení s minimem součástek. Podle verze obvodu LM386 může být napájecí napětí až 12V (resp.18V), proto je možno napěťový stabilizátor 7805 zaměnit za stabilizátor s vyšším napětím, např. 7808.

Firmware nahraný do AVR musí být shodný s konfigurací výstupního obvodu. Nastavení pojistek je low 0xC1, high 0xDD a extended 0xFF.

Software

Podporované zvukové soubory jsou RIFF/WAVE v LPCM formátu, 8/16bit, mono/stereo a 8kHz-48kHz. Ostatní zvukové soubory, jako například ADPCM, MP3 a AAC, musí být převedeny do formátu PCM. Tyto zvukové soubory musí být pojmenovány NNN.wav, kde NNN je trojciferné číslo v rozsahu od 001 do 255. Tyto zvukové soubory musí být vloženy do kořenového adresáře SD karty.

Ovládání provádíme uzemňováním vstupů 1-8 konektoru SELECT v binárním kódu, který odpovídá zvukovým souborům, které mají být přehrávány. Vstup 1 odpovídá souboru 001.wav, vstup 4 odpovídá souboru 008.wav a vstupy 1+5 odpovídají souboru 017.wav. Zvukový generátor podporuje čtyři režimy spouštění řídícími příkazy. Režim je konfigurován souborem 000.txt umístěném v kořenovém adresáři karty. Režimy pracují následovně.

Režim 0 : Spouštění úrovní (možná změna kódu)

Přehrává zvukový soubor odpovídající vstupnímu kódu a automaticky jej opakuje. Pokud je vstupní kód změněn, je zvuk také změněn. Pokud je vstup vypnut, přehrávání je zastaveno.

Režim 1 : Spouštění úrovní (přehrávání celého souboru)

Stejný jako režim 0, ale soubor je přehráván vždy celý a pokud bude vstup vypnut, bude opakované přehrávání zastaveno.

Režim 2 : Spouštění hranou

Zvukový soubor odpovídající vstupnímu kódu se přehraje pouze jednou. Pokud během přehrávání dojde ke změně kódu, bude tato změna zvuku ignorována.

Režim 3 : Spouštění hranou (možná změna kódu)

Stejný jako režim 2, ale změna kódu je při přehrávání přijata. Pro opětovné spuštění stejného kódu vypněte (0) a kód opět přiveďte na vstup.

Režim 4 : Spouštění hranou (zastavení)

Stejný jako režim2, ale přehrávání zvuku je zastaveno, pokud je vstup vypnut

Led indikace

LED indikuje, že je zvukový soubor přehráván. Při chybě vždy bliká. Počet bliknutí + následné zhasnutí odpovídá typu chyby následovně:

2 bliknutí - I/O chyba (chyba hardware - vstup/výstup, souborový systém)

3 bliknutí - zvukový soubor nebyl nalezen

4 bliknutí - zvukový soubor je neplatný

Přehrávač Wav souborů s obvodem ATTINY85

Tento přehrávač je předchůdcem předchozího přehrávače. Protože je k nahrávání programu zapotřebí použít vysokonapěťový programátor je tento přehrávač uveden až jako druhý. Lze použít i běžný programátor, pojistky však musí být zapsány jako poslední (poté již nebude možné obvod programovat). Formát souborů je stejný jako u předchozího. Protože je počet pinů tohoto procesoru omezen, je způsob přehrávání jiný. Přehrávač začne přehrávat po zapnutí nebo vložení karty. Pokud v kořenovém adresáři existuje adresář zvukových souborů „wav“, budou se zvukové soubory v tomto adresáři přehrávat v pořadí podle umístění v tabulce FAT. Pokud adresář „wav“ neexistuje, budou se místo toho přehrávat soubory wav v kořenovém adresáři. Stisknutím tlačítka přejdete na další soubor. To předurčuje použití tohoto přehrávače pro jednoúčelové zvuky, jako je např. přejezdové zařízení. Použití je však všestrannější. Pro náhodně opakující se zvuky jsem na kartě vytvořil soubory ve kterých je v podstatě nahráno ticho. Tyto soubory jsou vloženy mezi ty hlasitě přehrávané. Lze tak navodit pocit náhodně přehrávaných souborů, zvlášť pokud jsou přehrávány po delších pauzách. Pro některé uživatele je problém tyto soubory vytvořit, proto jsem je přidal do sekce ke stažení.

Některé programátory neakceptují hex soubory uvedené na stránkách tvůrce. Tyto soubory obsahují nastavení pojistek, tak jak je to obvyklé u obvodů PIC. Níže jsou ke stažení soubory již opravené. Pojistky je však nutno nastavit manuálně. Hodnoty nastavení pojistek lze najít v souboru main.c.