Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Визуализация аудио на LCD

Целью данного проекта является создание аудио визуализации на LCD-дисплее от Nokia 3310. В проекте используется алгоритм быстрого преобразования Фурье с фиксированной точкой. Это позволяет отображать бары (столбики) на дисплее для каждой частоты при воспроизведении музыки. Другими словами, каждый бар будет отвечать за свою частоту: низкие, средние, высокие частоты и т.д.

В качестве микрофона мы использовали электретный микрофон: BOB-09964 от sparkfun. Данные с микрофона поступают на ножку аналогово-цифрового преобразователя микроконтроллера Atmel AVR atmega8 работающего на частоте 8 МГц (для этого не забудьте выставить соответствующий фьюз). Связь с LCD Nokia 3310 осуществляется через SPI-интерфейс. Наш контроллер atmega не имеет блока вычислений для работы с плавающей точкой. Для получения хорошего быстродействия и без нагромождения кода, мы будем использовать алгоритм быстрого преобразования Фурье (БПФ) с фиксированной точкой. Конечно, алгоритм БПФ с плавающей точкой более точный, но в нашем случае это не столь принципиально.

Принципиальная схема визуализатора аудио

Популярный алгоритм БПФ (FFT) с фиксированной точкой был написан Тим Робертом в 1989 году (http://www.jjj.de/fft/fix_fft.tar.gz) Вначале, я портировал данный код для avr и avr libc для использования в данном проекте. Код работал, но быстродействие было не очень высоким. Затем, я наткнулся на оптимизированную под AVR библиотеку FFT: http://elm-chan.org/works/akilcd/report_e.html который работал в 4 раза быстрее моего!

Весь процесс представлен на диаграмме ниже. Сначала происходит захват сэмплов (выборок) с частотой дискретизации 16 кГц. Берется 64 сэмпла. С БПФ чем больше сэмплов, тем больше будет детализация. Для нашего проекта можно было бы использовать и меньшее число сэмплов, однако библиотека поддерживает минимум 64. Следующим шагом необходимо преобразовать сэмплы в частоту, и в конечном итоге вывести отображение на дисплей. Здесь небольшое примечание - т.к. LCD-дисплей подключен через SPI, то полное обновление дисплея происходит менее, чем за 4 мс, что дает нам возможность очень частого обновления дисплея.

Диаграмма работы

Т.е. чем большее будет число выборок и быстрее обработка за определенный промежуток времени, тем более точным будет преобразование. Частота дискретизации будет зависеть от нужного нам диапазона частот, для нашего случая 16 кГц более, чем достаточно. Тем более, что в качестве источника аудио сигнала у нас используется электретный микрофон с ограниченным диапазоном частот. В заключении, хотелось бы отметить, что на низких частотах мы немного расширили столбики (бары), чтобы визуально лучше смотрелось.

Распиновка LCD Nokia 3310:

Диаграмма работы

Для работы AVR на 8 МГц при прошивке через uisp, я использовал команду: uisp -dprog=stk200 –wr_fuse_l=0xe4

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
МК AVR 8-бит
ATmega8A-PU
1 Поиск в магазине ОтронВ блокнот
С1 Конденсатор10 мкФ1 Поиск в магазине ОтронВ блокнот
С2 Конденсатор1 мкФ1 Поиск в магазине ОтронВ блокнот
R1 Резистор
100 кОм
1 Поиск в магазине ОтронВ блокнот
LCD-дисплейNokia 33101 Поиск в магазине ОтронВ блокнот
MIC Микрофон1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Колтыков А.В. Опубликована: 2011 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (6) | Я собрал (0) | Подписаться

0
nikakoy #
Сверхинтересная тема, т.к. недавно заинтересовало подобное, только с выводом сигнала в composite PAL, для просмотра на обычном мониторе. Гугл не помог, в иходнике пока сильно не разобрался.
Ответить
0
Медведыч #
А если взять другой дисплей, будет работать?
Ответить
0
getshket #
Кто повторял? С микрофона как я понял не аналоговый сигнал идет?
Ответить
0
tolik777 #
Описание внимательно читали? Там все написано и даже ссылка дана на микрофон
Ответить
0
Александр #
При попытке прошить Code Vision AVR сообщает, что в файле ошибка, с AVR Prog такая же ситуация...
Ответить
0
кт3 #
Кто-нибудь собирал?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
DC-DC регулируемый преобразователь 1.5-37В 2А с индикатором Металлоискатель MD3010II
вверх