Cover Image

Музыкальный центр на основе MPD - Moode Audio Player

Февраль 24, 2021 - Время чтения: 11 минуты

Продолжение... Музыкальный центр своими руками на основе STM32F103

Решил переделать свой музыкальный центр - остановился на использовании только одного устройства - проигрывателя в виде RPI. В малине уже присутствует WiFi, блютуз и дополнительно добавил usb сетевую карту.

Блютуз можно использовать только если RPI подключен к сети через usb сетевую карту. Зато сопряжение к телефону и переключение обратно проходит очень быстро.

Комплектующие:

Питание AMPcontrol

Питание и отключение RPI

- реализовал через microusb разъём, 5 вольт беру с дежурного блока питания.

Вот как это работает: оригинал

- У RPi в /boot/config.txt включен оверлей "dtoverlay=gpio-poweroff". Он обеспечивает на GPIO26 низкий логический уровень с момента запуска ядра.

- При выходе из ждущего режима сигнал STBY=1 от ampcontrol открывает транзистор Q1, который открывает Q2 и через STEP-DOWN U1 на Raspberry Pi подаётся 5В - она включается. Если в это время работает программный таймер на выключение RPi, он останавливается.

- Где-то через пару секунд ядро загружается и выставляет активный лог. 0 на GPIO26. Через разъём J2 (RPI_OFF) этот уровень закрывает транзистор Q4 и открывает транзистор Q3, "защёлкивающий" питание RPi.

- При входе в ждущий режим сигнал STBY пропадает (STBY=0), но Raspberry держит сама своё питание посредством цепочки Q4-Q3-Q2. В это же время запускается программный таймер на выключение RPi через 1 минуту. По истечении этого времени по UART в mpd-uart.py посылается команда на отключение ("poweroff"). Эта команда запускает скрипт "/home/pi/poweroff.sh", который запускает правильное отключение RPi.

- Когда RPi полностью завершит работу, ядро снимает активнй лог. 0 на GPIO26 - соответственно, транзистор Q4 открывается, транзистор Q3 закрывается, питание Raspberry пропадает.

60-секундная задержка введена для того, чтобы при кратковременных выключениях ampcontrol лишний раз не дёргать RPi зря, так как на RPi3B+ у меня включение RPi до момента, когда начинает играть музыка занимает целых 18 секунд. Не хочется ждать загрузки ещё раз после очередной прошивки или других кратковременных выходов в ждущий режим.

Крепление Raspberry Pi Zero W

Спаял шилд для вертикального крепления RPI и сделал разводку для подключения цапа PCM5102, а также вывел разъём для подключения UART к AMPcontrol и кнопки - завершения работы.

Raspberry Pi Zero W

  • Размеры: 65mm x 30mm
  • Процессор: BCM2835 with VC4
  • Частота процессора по умолчанию: 1GHz
  • Память: 512MB RAM
  • Энергопотребление в сравнении с другими RPI: при 5.09V - взято с ресурса

Сетевая карта

Так как у меня далеко расположен роутер решил отказаться от WiFi и перейти на LAN. Купил самый дешевую usb-сетевую карту. Брал с microusb - пришлось перепаять под usb. Через OTG переходник вывел usb разъём на заднюю панель для подключения сетевой карты.

Чип: CoreChips SR9700 - скорость USB 1.x, не впаян изолирующий трансформатор TS6121A - В общем так себе оказалась сетевая карта но рабочая.

обратная сторона

Сетевая карта 100Мб + 3usb порта 2.0 - RTL8152B

Схема подключения microusb на usb - OTG переходник.

Задняя панель

  • два линейных входа
  • кнопка завершение работы RPI
  • стерео выход
  • выход на саб
  • OTG usb порт
  • usb порт для подключения 60 led
  • WiFi / блютуз антенна
  • кнопка включения музыкального центра
  • две кнопки управления цветомузыкой
  • кнопка включения цветомузыки
  • разъем питания 220В

Работа MPD на сборке Moode Audio Player

Для управления и обмена данными был установлен скрипт на moode audio player.

Управление MPD реализовано так:

  • кнопка Next
  • кнопка Prev
  • кнопка Play
  • на задней панели - есть кнопка "Завершение работы"

IP адрес можно увидеть после нажатия кнопки стоп которая реализована на IR пульте.

С помощью пульта есть возможность переключать до 1000 плей листов, т.е. если мы используем радио станции то каждую радио станцию прописываем в отдельный плейлист. Тогда под конкретной цифрой будет нужная радиостанция. Также можно использовать обычные плейлисты с музыкой.

Названия плейлистов в MPD должны быть - "Playlist_NNN", тогда нужный номер можно "набрать" на клавиатуре пульта.

Пример:

Playlist_001.m3u

Playlist_010.m3u

Сделал себе пульт на смарфоне с помощью бесплатной программы для андройд телефонов irplus. Скачать мой конфиг пульта можно на странице: ИК пульт из android мобильника для AMPcontrol

Если нет звукового сигнала более 20 секунд - включается заставка, независимо от таймера тишины.

Ссылки по теме:

LINKS from Nadim

Static Pages