Медиа модуль: FM, интернет-радио и MP3

Как-то захотелось объединить ФМ приемник, интернет радио и MP3-плеер. В интернете нашел пару вариантов похожих систем, но все они не понравились и было принято решение попробовать самому собрать данный проект. Вот, что в результате получилось.

Первоначально нужно было подобрать микроконтроллер и дисплей. В качестве микроконтроллера был выбран PIC18F47Q84, достаточно новый МК, имеющий в своей оснастке 128 кб программной, 12.8 кб оперативной памяти, но самое главное имеется режим DMA. Дисплей выбрался быстро из лежавшей в шкафу коробки марки ILI9341 разрешением 320×240 пикселей и имеющий в своем составе тачскрин реализованный на XPT2046. Следующим нелегким делом был выбор аудиопроцессора. Перелистал много форумов и интернет ресурсов, где-то хвалили одно где-то другое, в каких-то вариантах было меньше входов, в каких-то излишне много, друг показал свой проект на основе TDA7439. Как оказалось данный аудиопроцессор идеально подходит в мой проект, на нем и остановился. Дабы сэкономить на ножках микроконтроллера, кнопочное управление решено было организовать на расширителе портов PCF8574AT. Систему решено было сделать так, чтобы во время работы одного из источников звука все остальные были отключены, роль выключателей питания  сыграли High-Side переключатели BD2226G. Помимо самой функции включения и отключения питания данные переключатели могут отслеживать превышение тока потребления нагрузкой и соответственно КЗ в ней.

В качестве источников звука были выбраны линейный вход, FM-радио тюнер RDA5807 (также планируется реализовать поддержку тюнера SI4703), Ка-радио и MP3 Bluetooth модуль BT201.

Данную систему по моим предположениям можно установить практически в любой усилитель или собрать на её основе портативную колонку, что в общем то и было реализована на основе корпуса от магнитофона PANASONIC RX-CT810

И так как все это работает.

После загрузки МК и показа приветственного сообщения, выводится картинка выбора источника звука.

Выбор производится нажатием на определенную иконку, либо нажатием на кнопки SB5 — SB2 ( где SB5 ФМ тюнеру, SB4 Ка-радио, SB3  Bluetooth и SB2 линейный вход), либо вращением энкодера (при этом выбранная иконка будет закрашена белым цветом, а все остальные серым) для подтверждения выбора нажимаем на кнопку энкодера. Если же в течении 30 секунд выбор не был произведен аудио модуль перейдет режим индикации времени.

Для выхода из данного режима, либо нажимаем на тачскрин либо вращаем ручку энкодера либо нажимаем одну из кнопок.

Рассмотрим все режимы поподробней.

Первый режим «ФМ Радио».

Все просто как в аптеке, иконки   или кнопки SB3 SB2 запускается автопоиск вверх по диапазону или вниз по диапазону. Иконки   или кнопки SB4 SB1 за ручную перестройку частоты. Также имеется возможность переключать сохраненные в памяти частоты, на данный момент можно сохранить четыре станции. Выбор сохраненной частоты осуществляется или нажатием на соответствующую иконку или удерживая кнопку SB0 и одновременным нажатием кнопок от SB5 до SB2. Для сохранения частоты в выбранный канал нажимаем кратко на индикацию текущей частоты  или также кратко на кнопку SB5. Для запоминания стартового канала длительно нажимаем на индикацию текущей частоты или также длительно жмем на кнопку SB5. Для выхода из режима «ФМ Радио» нажимаем на иконку  , или кнопку SB7. Также по картинке можно видеть что тюнер способен считывать RDS данные, показывать уровень принимаемого сигнала, также стерео он или моно. Несколько настроек скрыто в стартовом меню, но об этом чуть позже.

Следующий режим «КА-радио».

Итак, иконками  и или кнопки SB4 и SB1 либо запускаем текущую станцию на воспроизведение либо останавливаем её, иконками   или кнопками SB3 SB2 переключаем станции. Но так как просто переключать станции не видя их названия, да и список станций может быть достаточно большим, была добавлена иконка выбора станций по списку , она же кнопка SB5. При ее нажатии формируется список.

Перемещаемся по списку иконками   или кнопками SB3 SB2, для выбора станции нажимаем на название станции либо удерживая кнопку SB0 и одновременным нажатием кнопок от SB5 до SB1. Для выхода нажимаем на иконку  или же кнопку SB5.

Следующий режим это «Блютуз модуль»

И первым внем, в отсутствии флэшки или SD карты является Bluetooth приемник.

Иконки   или кнопки SB3 SB2 переключают треки, иконка  или кнопка SB4 запускает трек если он остановлен, если же трек воспроизводится, то останавливает его. Иконка  она же кнопка SB0 переключает Bluetooth модуль в режим воспроизведения файлов с флэшки или SD карты.

Обратите внимание, нельзя одновременно устанавливать SD карту и флэш карту. Для выхода из режима «MP3 плеера» нажимаем иконку , или кнопку SB7.

И последний режим это «Линейный вход».

Все просто, лаконично и никаких кнопок. Единственное это иконка , как и в остальных режимах данная иконка и кнопка SB7 предназначены для выхода из данного режима.

С режимами разобрались, но как же регулировать аудиопараметры.

На данный момент существуют два варианта.
Первый, это в любом из режимов вращаем ручку энкодер, при этом шкала VU метра заменяется на ползунок громкости.
Краткое нажатие на кнопку энкодера позволяет переключаться между аудио параметрами.

     

  

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

В любом из режимов нажав на кнопку SB6 запустится режим отображения часов в течение 40 секунд.

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

Перемещение по пунктам меню осуществляется вращением ручки энкодера, переход в пункт меню осуществляется нажатием на кнопку энкодера.

Итак, первый пункт меню калибровка тачскрина.

Следуя инструкциям на дисплее по очереди касаемся стикером на выделенные перекрестия. По завершению калибровки сохраняем новые калибровочные константы.

  

Следующим пунктом меню идет настройка часов.

Вращением ручки энкодера выбираем необходимый параметр,

 

нажатием на кнопку энкодера подтверждает выбор при этом данный параметр выделяется красным цвета.

Дальнейшим вращение ручки энкодера изменяет данный параметр. Нажатием на кнопку энкодера возвращаемся к выбору параметра для изменений или выходим.

И последний пункт, так как пока не придумал какие настройки можно внести сюда для КА-радио и блютуз модуля, является настройка фм тюнера.

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

Нажатием на кнопку энкодера возвращаемся к выбору параметра для изменений или выходим.

Систему питания, в данной статье рассматривать не стал, так как у каждого в своей реализации она будет своя, но питание данного модуля должно находится в диапазоне 10-12 вольт и током более 300 мА.

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

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

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

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Резисторы
R1, R3 Резистор 5.6 кОм 2 1206
R2, R4 Резистор 2.7 кОм 2 1206
R5, R6 Резистор 0 2 перемычка
R7, R8, R9, R13, R16 Резистор 10 кОм 5 1206
R10, R12, R15, R17 Резистор 22 кОм 4 1206
R11, R14 Резистор 50 кОм 2 3296W
Конденсаторы
C1, C2, C3, C7, C16, C18, C26, C27 Конденсатор 0.47 мкФ 50В 8 1206, GRM31MF51H474Z
C4, C6, C20, C22, Конденсатор 100нФ 50В 29 1206, GRM319R72A104KA01D
C5, C19 Конденсатор 5.6 нф 100В 2 1206, GRM3195C2A562JA01D
C8, C25 Конденсатор 18 нФ 50В 2 1206
C9, C17, C23 Конденсатор 10 мкФ 25В 3 SMD
C10, C24 Конденсатор 22 нФ 50В 2 1206, GRM319R71H223K
C11, C12 Конденсатор 100 мкФ 16В 2 ECAP (К50-35 мини)
C13, C14, C31 Конденсатор 100 нФ 50В 3
C15, C21 Конденсатор 2.2 мкФ 25В 2 SMD
C29 Конденсатор 100 мкФ 6,3В 1 SMD
C30, C40 Конденсатор 470 мкФ 25В 2 477AVG025MFBJ
C32 Конденсатор 100 мкФ 25В 1 SMD
C34 Конденсатор 47 мкФ 25В 1 SMD
C37 Конденсатор 47 мкФ 25В 1 ECAP (К50-35 мини)
C45 Конденсатор 470 мкФ 25В 1 SMD
C47, C52 Конденсатор 2.2 мкФ 25В 2 1206
Микросхемы
U1 Аудиопроцессор TDA7439 1 SDIP-30
U2 Стабилизатор напряжения MC7805ACD2T 1 TO-220
U3 Стабилизатор напряжения MC7809CD2T 1 TO-220
U12 Стабилизатор напряжения LT1117CST-3.3 1 SOT223
U4 Модуль ESP32 ESP32-WROOM-32U 1 https://lite.bz/EgE0FK
U5 Модуль VS1053B VS1053B 1 https://aliclick.shop/r/c/1ra5yfbko7emwo6s
U7 Фильтр GFWB3 76-108 Mh 1
U8 Модуль RDA5807 RDA5807 1 https://lite.al/LIGWf
U9, U11, U13 Ключ BD2226G 1 SOT23
U10 Микроконтроллер PIC18F47Q84 1 44-pin TQFP
U14 Операционный усилитель MCP602 1 SOIC-8
U15 Расширитель портов PCF8574AT 1 SO-16
Дисплей
LCD1 TFT-дисплей ILI9341 1 https://aliclick.shop/r/c/1ra5ydqe4i31w3sj
Разделительный трансформатор
T1, T2, T3, T4 Разделительный трансформатор 4 https://aliclick.shop/r/c/1ra5ychytd2im7t1