Зачастую функция озвучки критически ограничивает доступный объем памяти для основной программы, снижает быстродействие или конфликтует по прерываниям.
Поэтому было решено сделать базовый блок озвучки, чтобы его можно было просто подключить к различным девайсам. Ниже привожу небольшой обзор того, что получилось.
Необходимые данные от блока управления к блоку озвучки передается по UART порту. Формат данных выглядит так :
sNN.NN.NN (s file name. number of repetition. pause time)
s – признак начала строки данных
1.NN – имя файла для воспроизведения (имя задается цифрами)
2.NN – количество повторов
3.NN – пауза в секундах между повторами
Формат звуковых файлов WAV 8-bit_22khz
В устройстве предусмотрено четыре (при желании можно увеличить) банка памяти для одновременного озвучивания четырех событий.
Ниже видео, в котором я постарался показать, как это все работает, вначале немного теории, потом два примера подключения базового блока к девайсам.
phpBB [media]
Теперь можно без особых проблем делать и говорящие сигнализации и информаторы в салон и прочие девайсы со звуковыми оповещениями.
Для экспериментов, ниже ссылка на тестовую прошивку (максимальная строка s09.03.30 и два банка)
https://drive.google.com/file/d/0B8Mrxc ... sp=sharing
Arduino 09 – ATmega pin 15/1 – **** аудио выход WAV PCM Mono 22050Hz 8bit
Arduino 05 – ATmega pin 11/5 – bank_1 СД
Arduino 06 – ATmega pin 12/6 – bank_2 СД
Serial.begin(57600)