Архив рубрики «МОИ ПРОЕКТЫ»

STM32 Синтезатор речи “Элиза”. Продолжение

Проведя ряд испытаний понял, что 8-ми разрядный звук – это не самое лучшее решение. При маленькой громкости слышны искажения.

Экспериментально вычислил, что оптимальным будет использование файлов 16-разрядных с частотой дискретизации 22050 Гц. В итоге получится тот же поток данных, что и при 8-ми разрядах и частоте 44100.

Изменения в проигрыватель WAV файлов внёс. Вместо 16-ти разрядов он реально использует 12, но это значительно лучше, чем 8. С частотой 22050 Гц он достойно справляется, а вот 44100 уже не берет.

Если кого заинтересуют исходники, то приведу в порядок и выложу их.

Помимо изменений в программе сделал устройство в “железе”. До этого использовал отладочную плату.

Схема устройства следующая:

Прочитать остальную часть записи »

STM32 Синтезатор речи “Элиза”

Это не совсем синтезатор, т.к. он для воспроизведения речи использует библиотеку слов, которые записаны на карту памяти, но для удобства буду использовать именно это слово.

Почему “Элиза”? Во-первых, потому что произносит слова женским голосом. Во-вторых, Элиза – это первое, что пришло в голову.

Итак, что же умеет делать Элиза.

Её словарный запас определяется библиотекой, которая располагается на карте памяти. Чем больше библиотека, тем больше словарный запас. На данный момент библиотека содержит более четырехсот слов, что на порядок превышает словарный запас Эллочки-Людоедки из произведения Ильфа и Петрова.

Эти четыреста слов занимают примерно 10 мегабайт памяти. Я применил карту памяти на 2 гигабайта, поэтому словарь можно значительно расширить.

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Расширение возможностей программы

В предыдущей статье приводился пример того, как можно воспроизвести звук с помощью STM32. Пришло время расширить возможности этой программы, но прежде давайте определимся: для чего это нужно. Не проще ли купить недорогой китайский mp3-проигрыватель. Его возможности будут больше, да и цена…

Конечно, соревноваться китайпромом бесполезно. Если нужен проигрыватель, то лучше его купить. Но у нас задача другая. Во-первых, сможем ближе познакомиться с возможностями контроллера. Во-вторых, можно будет это устройство использовать там, где обычный проигрыватель сложно применить.

Например, недавно я сделал по заказу GSM-сигнализацию. Работает она исправно, но общается с пользователем через смс-ки, что не всегда удобно. Заказчик хочет, чтобы она могла “говорить”. Сработал датчик –> звонок пользователю –> голосовое сообщение “сработал такой-то датчик”.

Еще одно применение -  сделать небольшой модуль, состоящий из контроллера и карты памяти. Этот модуль можно подключать к устройству по USART, через который передавать команды для воспроизведения слов, фраз, предложений. Таким образом можно озвучить разные устройства.

Не будем забывать о проекте “Умный дом”. Для этого проекта воспроизведение звука желательно необходимо. Поэтому займемся усовершенствованием программы для ее дальнейшего практического применения. Назовем ее “Wave Player”, или сокращенно WP. Соответственно все функции, относящиеся к ней, будут иметь префикс wp.

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Настройка периферии + первый звук

Итак, наша задача  -  воспроизведение WAV-файлов с помощью микроконтроллера STM32. В предыдущих статьях разобрались со структурой  WAV-файлов, с библиотекой FatFs, которая позволяет работать с файловой системой, поигрались с ЦАПом. Приведу ссылки на эти статьи:

  1. Работа с Fat   статья1статья2 ;
  2. Структура WAV-файлов;
  3. Работа с ЦАПом.

Теперь необходимо объединить все это в одно целое, чтобы получить звук на выходе ЦАПа. В начале не будем ставить заоблачные цели, а ограничимся следующими возможностями:

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Структура WAV-файлов

Возникла потребность в воспроизведении с помощью микроконтроллера WAV-файлов, расположенных на карте памяти. Учитывая, что STM32 имеют “на борту” ЦАП и ДМА, эта задача вполне выполнима. Помимо практической стороны она также полезна в целях самообразования – изучим работу ЦАПа и некоторые другие возможности контроллера.

Для начала необходимо разобраться в том, что из себя представляет WAV-файл. Он содержит оцифрованный звук: с помощью АЦП через строго заданные интервалы времени производится измерение уровня сигнала, после чего результат измерения сохраняется. Затем с помощью ЦАПа оцифрованные данные можно превратить в звук.

Прежде чем записать оцифрованные данные в файл их необходимо “упаковать в обертку”, на которой указать некоторую информацию об этих данных: их размер, сколько каналов, частоту дискретизации. Структура этой обертки, т.е. формат WAV-файла, изображена ниже:

Прочитать остальную часть записи »

Система “Умный Дом”. Алгоритм работы системы

Прежде чем перейти к проектированию модулей и всего остального, необходимо иметь представление о том, что должна уметь делать система и по какому алгоритму. Приведу начальный перечень объектов, которые будут автоматизироваться:

Прочитать остальную часть записи »

Система “Умный Дом”. Протокол обмена по низкоскоростному каналу

Выбор протокола обмена – это весьма ответственная работа. Он будет определять “язык” общения ЦПУ с периферийными модулями. И если “железо” из которого сделаны модули могут со временем изменяться, модернизироваться (например, могут быть разные микроконтроллеры, алгоритм их работы), то протокол обмена должен быть стабильным и строго стандартизированным.  Именно под него будет организовываться работа модулей.

В принципе, для ЦПУ неважно на какой элементной базе выполнен периферийный модуль – хоть на лампах. Для него важен язык общения с ним. Поэтому описанию протокола нужно уделить серьезное внимание.

Прочитать остальную часть записи »