Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 5000 руб.
Академия Благородных Металлов
2. 1000 руб.
Radio-Sale
3. Регулируемый паяльник 60 Вт
Паяльник
4. 600 руб.
От пользователей
5. Тестер компонентов LCR-T4
Паяльник

Визуализация аудио на 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 Поиск в FivelВ блокнот
С1 Конденсатор10 мкФ1 Поиск в FivelВ блокнот
С2 Конденсатор1 мкФ1 Поиск в FivelВ блокнот
R1 Резистор
100 кОм
1 Поиск в FivelВ блокнот
LCD-дисплейNokia 33101 Поиск в FivelВ блокнот
MIC Микрофон1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (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-микроконтроллеров
UNI-T UT-61A Discovery V8
вверх