Например TDA7294

Добавить ссылку на форум

РадиоКот >Схемы >Цифровые устройства >Игрушки >

Бюджетный Hi-End плеер ES9023 + Raspberry Pi 3

Внимание! Порядок добавления тегов имеет значение! Начинайте добавлять с наиболее важного. По возможности пользуйтесь уже существующими тегами


Опубликовано 26.12.2017.
Создано при помощи КотоРед.

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

Возможно, многие уже знакомы с микрокомпьютерами типа «Raspberry» («Малинка»), и имели возможность попробовать их в деле. Рассматриваемое устройство собрано на основе Raspberry Pi3 Model B (https://www.raspberrypi.org/products/raspberry-pi-3-model-b/), к которому подключён по шине I2S доработанный китайский ЦАП ES9023 (https://www.ebay.com/i/322364288730?rt=nc) с отображением информации на ЖКИ и управлением с помощью кнопок на передней панели и с ИК пульта.

В качестве операционной системы (ОС) для «Малинки» было выбрано программное обеспечение RuneAudio (http://www.runeaudio.com/certified-devices/#Raspberry-Pi-3), но можно использовать и другие аналогичные ОС, например, Volumio или Moode, правда в этом случае вопросы подключения ЖКИ, кнопок и ИК управления придётся решать самостоятельно.

Здесь предлагается решение «из коробки»: на SD-карту заливается готовый (модифицированный) образ RuneAudio, в котором уже реализовано подключение ЖКИ, обработка нажатия кнопок и приём команд с ИК пульта типа FZ0721, и после включения всё сразу должно заработать :). В случае необходимости какой-либо перенастройки необходимо изменить соответствующие файлы конфигурации.

При желании, пользуясь приведёнными далее по тексту ссылками, можно также самостоятельно выполнить модернизацию исходного образа Runeaudio, долгими зимними вечерами получая удовольствие от изучения системы Arch Linux, языка Python3 и библиотек сторонних разработчиков. Даже если вы не собираетесь подключать ЖКИ, кнопки и ИК управление, исходный образ придётся доработать для устранения эффекта произвольной смены каналов (http://www.runeaudio.com/forum/digi-rune-and-usb-drive-channel-swapping-t3570.html, http://www.runeaudio.com/forum/sudden-shifts-in-imaging-phase-shifts-solved-t4238.html), а также включить опции для работы с ЦАП по шине I2S (http://www.runeaudio.com/forum/audiophonics-dac-sabre-es9023-i2s-24bit-192-raspberry-pi-t1155.html).

Без изменения настроек предлагаемого готового образа к устройству можно подключить практически любой ЖКИ типа 1602 (16 символов 2 строки), при этом вывод названия композиции и исполнителя для русских символов осуществляется транслитом. Если индикатор имеет русскую кодовую таблицу (например, производства МЭЛТ), корректное отображение русских букв можно обеспечить путём замены (корректировки) всего одного файла конфигурации (прилагается в прикреплённом архиве). Можно также изменить соответствующие параметры для использования индикатора типа 2004 (20 символов 4 строки).

Использованный ИК пульт FZ0721 (https://www.ebay.com/itm/38K-20-Keys-Mini-IR-Infrared-Remote-Control-NEC-UPD6122-Emission-8m-/172437991402) работает по протоколу NEC на частоте 38 кГц. Имеется готовый файл с кодами кнопок для похожего пульта из набора MasterKit MP1236 (уже снятого с производства). Можно использовать в принципе любой подходящий пульт, выполнив самостоятельно генерацию файла его конфигурации с помощью встроенной команды irrecord (об этом чуть подробнее – в самом конце).

Управление плеером осуществляется по локальной сети через веб-интерфейс (для этих целей можно использовать смартфон или компьютер). Если плеер управляется с помощью смартфона, необходимо подключение последнего к локальной сети по Wi-Fi. Плеер должен быть подключён к локальной сети либо по беспроводному каналу, либо через проводное соединение.

Стоимость всех комплектующих для сборки устройства варьируется в пределах $100.

Желающие могут ознакомиться с этим полезным описанием: http://cxem.net/arduino/arduino114.php. Если вам не требуется подключение ЖКИ, кнопок и ИК пульта, то полученной информации может оказаться вполне достаточно, и дальше можно просто не читать. А мы рассмотрим особенности блока питания плеера.

Для микрокомпьютера рекомендуется использовать источник постоянного напряжения 5В, рассчитанный на ток не менее 2,5..3А. В качестве пробного варианта сгодится подходящий импульсный блок питания, но для применения в составе аудио плеера настоятельно рекомендуется использовать линейный (аналоговый) стабилизатор, иначе качество звука пострадает. При этом для подключения к микрокомпьютеру нужно не забыть приобрести разъём «папа» Micro USB и не перепутать провода питания при его монтаже.

Схема блока питания, обеспечивающего заданные параметры, приведена ниже (тороидальные трансформаторы и конденсаторы для выпрямителей покупались в Чип и Дипе, конденсаторы Nichicon – в Отроне и Аудиомании, остальное – на Алиэкспресс). Кроме питания микрокомпьютера Raspberry он может обеспечить запитку одного внешнего жёсткого диска USB (порты микрокомпьютера на такой ток не рассчитаны) и формирует отдельные выходные напряжения для питания ЦАП (+5В) и выходного фильтра (+3,3В, -3,3В).

Во всех выпрямителях применены диоды Шоттки. Во-первых, они обладают сравнительно малым падением напряжения, что важно при небольших напряжениях на вторичных обмотках силовых трансформаторов. Во-вторых, за счёт высокой скорости переключения диодов снижается уровень помех в цепях питания, негативно влияющих на звук. Микросхемы стабилизаторов напряжения – тоже с низким падением напряжения (Low Drop). Микросхема LT1083CP установлена на ребристом радиаторе, но она греется не сильно, поэтому для отвода от неё тепла подойдёт алюминиевая пластина.

Можно, конечно, отказаться от отдельного стабилизатора напряжения +5В для ЦАП, запитав его от того же источника, что и микрокомпьютер. Можно оставить штатный выходной фильтр ЦАП в виде двух конденсаторов 4700 пФ, а при использовании дополнительной платы внешнего фильтра – не делать отдельные стабилизаторы (+3,3В, -3,3В), подав эти напряжения с выводов 5 и 11 микросхемы ES9023 (при этом увеличив ёмкость между её выводами 9 и 10 до 10 мкФ). Но всё это отрицательно скажется на качестве звучания.

Вообще при повторении описываемой конструкции можно идти по пути минимализма, отказавшись от доработок ЦАП, а также от применения ЖКИ, кнопок и ИК управления, собрав всю конструкцию на макетной плате без корпуса и запитав её от импульсного блока питания, что позволит нетерпеливым сразу протестировать систему, а потом наращивать её при необходимости, или вообще разобрать, если не понравится.

Теперь самое время перейти к рассмотрению схемы подключения компонентов устройства. Связь устройств с микрокомпьютером осуществляется через 40-контактный порт GPIO (интерактивно ознакомиться с контактами разъёма можно здесь: https://pinout.xyz/pinout/pin3_gpio2#). На приведённой ниже схеме контакты этого порта обозначены по системе нумерации BCM (а не по физической):

Из схемы видно, что можно подключать ЖКИ с напряжением питания как 3,3В, так и 5В (для этого на печатной плате запаивается соответствующая перемычка), но, думается, что лучше использовать индикатор с питанием 5В, так как он меньше подвержен влиянию помех. Для снижения помех неиспользуемые 4 входа данных ЖКИ заземлены (без применения этой меры иногда наблюдались сбои в отображении символов на индикаторе при касании земляного провода каким-либо металлическим предметом, например, пинцетом). При монтаже индикатора следует учитывать, что у некоторых моделей выводы питания 1 и 2 могут быть поменяны местами.

ИК-приёмник – типа TSOP 34838, который устойчиво работает при напряжении питания 3,3В (альтернативы в выборе напряжения его питания нет). При использовании пульта, работающего на частоте 36 кГц, лучше использовать ИК приёмник типа TSOP 34836.

При нажатии кнопки «Mode» на ЖКИ последовательно отображается следующая информация:

  • название исполнителя и текущей композиции;
  • битрейт, продолжительность и текущая длительность воспроизведения файла, состояние его воспроизведения / пауза / стоп;
  • IP-адреса устройства в проводной и беспроводной локальной сети;
  • общее время воспроизведения и продолжительность включённого состояния устройства;
  • текущее время и дата;
  • температура процессора, объём занятой памяти.

В случае питания ЦАП от того же источника, что и микрокомпьютер, земляные провода ЦАП от его обоих разъёмов нужно соединить с любыми двумя контактами Gnd разъёма GPIO. Здесь нужно обратить внимание, что провода на разъёмах ЦАП, идущих в комплекте, могут не совпадать по цвету, и их желательно переставить (например, могут быть перепутаны красный и чёрный провода на разъёме питания, а также земляной провод разъёма управления будет не чёрного цвета). Неиспользуемый провод MCLK (крайний правый на разъёме управления) лучше обрезать, оставив на всякий случай кусок длиной в пару сантиметров.

При сборке этой схемы на печатной плате (рисунок которой прикреплён во вложении) для подключения к микрокомпьютеру удобно использовать стандартный 40-проводный кабельный шлейф IDE (старого образца - не 80-проводный). Часть соединений на печатной плате, относящаяся к кнопкам и ИК управлению, выполняется проводами в соответствии с вышеприведённой схемой. Можно приспособить макетную плату и провода от набора Ардуино, подпаяв к проводам, идущим от платы ЦАП одиночные разъёмы BLS-1 (их нужно 6 штук), отказавшись от печатной платы.

Теперь приведём состав минимального набора для тестового запуска плеера:

  • Микрокомпьютер Raspberry Pi 3 Model B (лучше покупать произведённый в Великобритании – по цене он примерно такой же, как и китайский; Pi 2 - тоже работает);
  • Micro SD-карта класса 10 объёмом 8 Гб (рекомендуется SanDisk) в качестве носителя операционной системы (можно купить в салоне связи или на Алиэкспресс);
  • Китайский ЦАП ES9023 (продаётся на eBay или Алиэкспресс);
  • Разъёмы для подключения проводов к порту GPIO;
  • Отдельный компьютер с ОС Windows и устройством для записи данных на Micro SD-карту, а также с программами SDFormatter, Win32DiskImager (для форматирования и записи на SD-карту образа системы), Putty, WinSCP (для корректировки и переноса файлов конфигурации), программой-архиватором;
  • Локальная сеть с роутером и Wi-Fi;
  • Провод LAN для подключения микрокомпьютера к локальной сети с целью первоначальной настройки Wi-Fi;
  • Компьютер (а лучше смартфон) для управления плеером в процессе воспроизведения, имеющий доступ к локальной сети;
  • Необязательно: кабель HDMI и телевизор или монитор с входом HDMI для контроля при первом включении микрокомпьютера.

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

Приведём схемы исходного и доработанного ЦАП:

Схема выходного фильтра заимствована из ЦАП Lynx D68 (https://www.lynxaudio.net/app/download/8529200093/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C+%D0%A6%D0%90%D0%9F+Lynx+D68_1.pdf?t=1466619603). Фильтр монтируется на отдельной печатной плате из двухстороннего фольгированного стеклотекстолита толщиной 1 мм (верхний слой меди используется в качестве экрана) на изолирующих (нейлоновых) стойках высотой 20 мм. Соединение платы фильтра с выходными разъёмами и с основной платой ЦАП производится отрезками экранированного провода ШГЭС-2. Выходные разъёмы на плате самого ЦАП не используются. Наличие резистора номиналом 10 Ом в земляной шине питания платы выходного фильтра предотвращает возникновение земляной петли, но в то же время позволяет провести тестирование выходного фильтра без подключения к плате ЦАП.

Микросхема ES9023 имеет собственный источник отрицательного напряжения, построенный на основе импульсного преобразователя – узла «Charge Pump», который негативно влияет на звук. Экспериментально установлено, что качество звучания улучшается при исключении конденсатора, установленного между выводами 9 и 10 (правда, при этом генератор встроенного преобразователя всё равно работает, но от этого никуда не денешься), с одновременной подачей напряжения -3,3В, поступающего от линейного стабилизатора, на вывод 11 (NEG) отдельным проводом с платы выходного фильтра.

Подробное обсуждение вопросов, связанных с ЦАП ES9023, можно найти на форуме: http://forum.vegalab.ru/showthread.php?t=60487. Там же есть альтернативная схема выходного фильтра (http://forum.vegalab.ru/showthread.php?t=60487&page=8&p=1902666&viewfull=1#post1902666), но для её питания требуется напряжение +15В, -15В.

Вид доработанной платы ЦАП сверху:

  и снизу:

Лично убедившись в том, что использование в фильтрах питания аудио конденсаторов Nichicon типов FW, KZ, KA (или других аналогичных) улучшает звучание, могу смело рекомендовать это и другим.

Общий вид на монтаж:

Для плеера использован готовый пластиковый (неэкранирующий) корпус с вентиляционными отверстиями типа G758V размерами 260 x 180 x 65 мм (продаётся в Чип и Дип). С одной стороны, это позволяет без проблем подключаться к сети по Wi-Fi (для металлического корпуса потребуется подключение выносной антенны и соответствующая доработка микрокомпьютера Raspberry), с другой – упрощает выполнение отверстий в пластмассовых панелях.

Окошко для индикатора изготовлено по размеру его металлической рамки из оргстекла толщиной 2 мм, обклеенного автомобильной солнцезащитной (тонировочной) плёнкой с пропускной способностью света 35%, с захлёстом на край с обратной стороны на 2-3 мм. В передней панели вытачивается прямоугольное отверстие такого размера, чтобы готовое «стекло» вставлялось в него с небольшим трением. После вставки «стекла» оно аккуратно фиксируется с обратной стороны по периметру небольшим количеством «суперклея» (цианокрилата) так, чтобы клей случайно не протёк на лицевую сторону через щели (для дозированного или точечного нанесения клея можно использовать деревянную зубочистку).

Аналогично закрепляется круглое окошко диаметром примерно 10 мм для ИК приёмника, вырезанное из куска красного оргстекла (можно использовать и бесцветное огрстекло).

Основанием для монтажа всех плат внутри корпуса служит кусок оргстекла толщиной 6 мм (использована подложка экрана от неисправного ЖК-монитора). Плата микрокомпьютера прикручивается к основанию через 4 латунные стойки M2 высотой 15 мм, плата дополнительных USB разъёмов питания – через 2 латунные стойки M3 с такой же высотой, остальные платы – через стойки M3 высотой 6мм (все стойки покупались на Алиэкспресс). ЖКИ крепится к основанию на двух скобах их жёсткой медной проволоки диаметром примерно 1,2 мм, при этом за счёт упругости проволоки он не болтается, и его положение достаточно легко может быть отрегулировано.

Для снижения уровня помех провода, идущие к ЦАП, пропущены одним витком через ферритовое кольцо типоразмера 14x10x8 типа 74270117 (нашлось подходящее, которое лежало без дела). Оба чёрных земляных провода, идущие от разъёмов ЦАП, подключаются в одной точке к плате блока питания.

Рядом с разъёмом LAN микрокомпьютера располагается двойной разъём USB для питания внешнего жёсткого диска, для чего в комплекте с дисками обычно идёт специальный кабель с дополнительным разъёмом USB: основной разъём этого кабеля вставляется в порт данных микрокомпьютера, а дополнительный – в один из двух портов питания (два внешних диска блок питания вряд ли потянет, и поэтому второй разъём поставлен просто в качестве резерва и для красоты).

Задняя панель устройства выглядит следующим образом:

Один из вариантов оформления передней панели с цветными кнопками и синим индикатором приведён на самой первой фотографии, другой – более строгий, с чёрными кнопками и чёрно-белым индикатором, может выглядеть как на следующей картинке (правда, на фото индикатор получился какого-то другого цвета):

Теперь перейдём к самому интересному – обсуждению программного образа для прошивки системы на SD-карту. Сразу нужно оговориться, что полностью готового рабочего образа со всеми описанными функциями в сети найти не удалось, особенно в части обработки всех кнопок и реализации ИК управления, и многое пришлось додумывать самому. Но есть пища для размышления на англоязычных форумах в сети Интернет:

Материалы последней из приведённых ссылок были взяты за основу (там реализовано действие двух кнопок: Mode и BL; остальные не действуют; также не реализовано ИК управление). Для желающих повторить – ориентировочный перечень необходимых изменений в исходном образе RuneAudio для получения готового, работающего с ЖКИ, кнопками и ИК управлением:

  • расширение размера скрытого раздела на SD-карте до 2,5 Гб;
  • установка пакета Python3;
  • установка библиотеки GPIO для Python;
  • установка библиотеки Adafruit Python GPIO;
  • установка библиотеки Adafruit Python char LCD;
  • установка пакетов для ИК-управления lirc и lirc-utils;
  • создание скрипта автозапуска системы обслуживания ЖКИ, кнопок и модуля ИК управления (сразу заметим, что основные исполняемые файлы и файлы конфигурации этой системы находятся в папке /root/controls);
  • настройка службы ИК управления lircd и её автозапуска;
  • формирование файла конфигурации для ИК пульта с помощью программы irrecord (готовый файл должен быть помещён в папку /etc/lirc/lircd.conf.d) – об этом чуть ниже;
  • настройка файла конфигурации службы irexec для обработки всех кнопок управления и её автозапуск;
  • устранение ошибки (зависания) при попытке регулировки громкости кнопками или с пульта при отключённой программной возможности регулировки громкости.

Теперь - кратко о том, что нужно сделать, чтобы записать на SD-карту готовый образ системы:

  1. Скачать архив с файлом образа (https://cloud.mail.ru/public/9wFL/PACT4tTjU) на отдельном компьютере и распаковать его в любую папку с помощью программы-архиватора – должен появиться файл с расширением .img.
  2. Если SD-карта не отформатирована, отформатировать её с помощью программы SDFormatter (https://www.sdcard.org/downloads/formatter_4). В последней версии программы параметры форматирования изменять не надо, а в предыдущей версии нужно при необходимости задать параметр (Option) для восстановления размера карты FORMAT SIZE AJUSTMENT = ON.
  3. Запустить программу записи образа на карту Win32DiskImager (https://sourceforge.net/projects/win32diskimager), выбрав диск, соответствующий карте, и месторасположение распакованного ранее файла образа, после чего нажать кнопку Write. Здесь нужно быть внимательным, чтобы не повторить чужой горький опыт ошибочной распаковки файла образа на подключённый внешний жёсткий диск с потерей всех данных на нём :), поэтому все лишние накопители на этом этапе от компьютера лучше отключить.
  4. Дождавшись завершения операции (а она может длиться достаточно долго), SD-карту нужно безопасно извлечь из компьютера и вставить в соответствующий разъём микрокомпьютера Raspberry, а также подключить микрокомпьютер кабелем LAN к роутеру. Также можно подсоединить микрокомпьютер по интерфейсу HDMI к телевизору или монитору, если таковые имеются.
  5. После проверки всех соединений с микрокомпьютером на отсутствие замыканий можно подать на него питание и проконтролировать загрузку системы (занимает не более минуты).
  6. В адресной строке браузера компьютера, находящегося в локальной сети, набрать runeaudio.local (на смартфоне с системой Андроид это почему-то не работает – только по IP-адресу) или ввести IP-адрес микрокомпьютера. Узнать IP-адрес, назначенный микрокомпьютеру, можно через настройки своего роутера, а также посмотреть на экране ЖКИ, нажав кнопку Mode (хотя при первом тестовом включении без ЖКИ и кнопок этого не сделать никак). Альтернативный вариант – установить на смартфоне приложение RuneAudio – оно само найдёт плеер. Если всё сделано правильно, отобразится веб-интерфейс управления плеером.
  7. В настройках плеера в первую очередь нужно подключиться к беспроводной сети, после чего кабель LAN можно отключить, при этом нужно учитывать, что IP-адрес микрокомпьютера, подключённого по Wi-Fi, изменится, и его снова нужно будет узнать.

Подробное описание RuneAudio на английском языке можно найти на официальном сайте: http://www.runeaudio.com/documentation/.

Особенностью предлагаемого образа RuneAudio при работе с ЖКИ является необходимость перезагрузки системы через меню после изменения любых настроек службы плеера MPD, иначе отображение информации на индикаторе может быть некорректным. Можно считать это недостатком, а можно рассматривать как простое правило. Изменение настроек MPD требуется довольно редко, например, при разрешении или запрещении программной регулировки громкости. При разрешённой программной регулировке незначительно снижается качество звучания, поэтому в своём плеере программную регулировку громкости я запретил, и громкость регулирую с помощью того же ИК-пульта, но через другое устройство – блок регулировки громкости и дистанционного включения усилителя (и любых других устройств, включая пылесос) на основе моторизованного переменного резистора ALPS RK16812MG (для желающих - имеется схема и прошивка под микроконтроллер ATtiny2313).

Теперь – о самом сложном: как настроить систему под имеющийся ИК пульт. Здесь понадобятся начальные навыки по вводу команд в системе Linux и немного сноровки.

Для доступа к управлению системой используется программа Putty (http://www.putty.org/). После её запуска в категории настроек Session, в поле Host Name (or IP address) нужно ввести IP-адрес микрокомпьютера, в категории настроек Window | Translation выбрать параметр Character Set: UTF-8, в категории настроек Connection | Data в поле Auto-login username ввести имя root, после чего вернуться в раздел Session, ввести в поле Saved Sessions название сессии, например, runeaudio, и нажать на кнопку Save для сохранения. В дальнейшем для быстрого входа в систему нужно будет выбрать эту сессию и нажать Open. Далее потребуется ввести пароль, который запросит программа при входе в систему: rune.

Очень полезная утилита, которую можно запустить после входа в систему – файловый менеджер mc – он установлен в системе. Для скрытия окон mc без его выгрузки можно использовать комбинацию Ctrl+O. С помощью этой программы можно копировать и редактировать файлы, а также выполнять ещё массу полезных операций.

Далее приводится краткая инструкция по настройке ИК пульта, восстановленная по черновым записям, поэтому некоторые моменты могут быть затронуты вскользь, но в целом картина, надеюсь, будет понятна.

Проверить функционирование службы ИК управления, для чего последовательно ввести команды:

systemctl stop lircd
dmesg | grep lirc

На экране появится примерно следующее:

lirc_dev: IR Remote Control driver registered, major 244
lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
lirc_rpi: auto-detected active low receiver on GPIO pin 4
lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
lirc_rpi: driver registered!

Ввести команды:

systemctl start lircd.service
systemctl status lircd.service

На экране должно появиться сообщение, аналогичное следующему:

- lircd.service - Flexible IR remote input/output application support
Loaded: loaded (/usr/lib/systemd/system/lircd.service; disabled; vendor preset: disabled)
Active: active (running) since …
Docs: man:lircd(8)
http://lirc.org/html/configure.html
Main PID: 1205 (lircd)
Tasks: 1 (limit: 512)
CGroup: /system.slice/lircd.service
└─1205 /usr/sbin/lircd --nodaemon

Ввести команду:

mode2 -d /dev/lirc0

На экране отобразится:

Using driver devinput on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
Warning: Running as root

После нажатия на любые кнопки появятся сообщения, похожие на приведённые ниже:

space 7889309
pulse 9067
space 4456
pulse 630
.....

(Ctrl+C - выход)

Это значит, что приём импульсов с пульта ведётся успешно.

На ИК пульте заранее выбрать восемь клавиш в соответствии с таблицей:

Названия клавиш предопределены программно, и их лучше не менять (полный перечень возможных названий можно посмотреть в файле /etc/lirc/lircd.conf.d/devinput.lircd.conf). К названиям кнопок привязано также содержимое файла /etc/lirc/irexec.lircrc.

Для запуска процедуры регистрации кодов кнопок пульта и сохранения их в файле конфигурации нужно ввести команды:

systemctl stop lircd.service
irrecord -d /dev/lirc0

Далее появится запрос на ввод имени пульта:

Enter name of remote (only ascii, no spaces) :

Можно ввести просто: pult (название пульта в файле конфигурации можно потом изменить, а сам полученный файл - соответственно переименовать).

После того, как в ответ на приглашение Hold down an arbitrary key на клавиатуре компьютера будет нажата клавиша Enter, запустится процесс определения интервалов между посылками от кнопок пульта (gap), при этом нужно нажимать любые кнопки. При нажатии кнопок будут выводиться точки. Продолжительность нажатия кнопок должна быть порядка 1 сек, так, чтобы получать не более 10 точек от каждой кнопки. На втором этапе нужно делать то же самое (относительно длительный процесс). Главное, что пока идёт процесс приёма кодов с пульта, нельзя прекращать нажатия на кнопки более, чем на 10 секунд, иначе процесс будет прерван, и всё придётся начинать сначала (хотя и в таких случаях удавалось найти в системе временный файл с частично сохранёнными параметрами, чтобы хоть как-то сократить шаги на повторных попытках). Дальше должно появиться приглашение ввода названия очередной клавиши пульта:

Please enter the name for the next button

Нужно ввести:

KEY_PLAY

После появления сообщения:

Now hold down button "KEY_PLAY"

нужно нажать на выбранную кнопку (в данном случае - для функции воспроизведения / паузы),
и произойдёт переход к регистрации очередной кнопки:

Please enter the name for the next button

Нужно ввести:

KEY_STOP

После появления сообщения:

Now hold down button "KEY_STOP"

Нужно нажать на соответствующую кнопку (теперь - для функции остановки воспроизведения),
и произойдёт переход к регистрации очередной кнопки:

.....

И так - до тех пор, пока не будет обработана последняя кнопка KEY_MUTE.

Далее на очередное приглашение ввода названия кнопки просто нажать на клавиатуре Enter.

На заключительном этапе программа попросит быстро понажимать любую кнопку, не зажимая её постоянно.

Сохранённый файл конфигурации пульта pult.lircd.conf нужно переместить из текущего каталога в /etc/lirc/lircd.conf.d с помощью программы mc.

Нужно убедиться, чтобы в файле конфигурации /etc/lirc/lircd.conf.d/pult.lircd.conf в строках для каждой из настроенных кнопок пульта было только по одному шестнадцатеричному коду (программа irrecord по какой-то причине может добавить следом ещё и второй – «левый» код, и это будет блокировать работу пульта). Готовый файл конфигурации для пульта можно посмотреть в прикреплённом архиве.

Теперь наконец-то можно перезапустить службу lirc и убедиться в работе кнопок пульта:

systemctl restart lircd
irw

При нажатии на пульте FZ0721 всех зарегистрированных кнопок на экране отображалось следующее (числа 00,01,02,… обозначают счётчики длительности нажатия кнопки):

0000000000ffa857 00 KEY_PLAY FZ0721
0000000000ffa857 01 KEY_PLAY FZ0721
0000000000ffb04f 00 KEY_STOP FZ0721
0000000000ffb04f 01 KEY_STOP FZ0721
0000000000ffb04f 02 KEY_STOP FZ0721
0000000000ffe01f 00 KEY_PREVIOUS FZ0721
0000000000ffe01f 01 KEY_PREVIOUS FZ0721
0000000000ffe01f 02 KEY_PREVIOUS FZ0721
0000000000ff906f 00 KEY_NEXT FZ0721
0000000000ff906f 01 KEY_NEXT FZ0721
0000000000ff9867 00 KEY_VOLUMEDOWN FZ0721
0000000000ff9867 01 KEY_VOLUMEDOWN FZ0721
0000000000ff02fd 00 KEY_VOLUMEUP FZ0721
0000000000ff02fd 01 KEY_VOLUMEUP FZ0721
0000000000ff02fd 02 KEY_VOLUMEUP FZ0721
0000000000ffc23d 00 KEY_ENTER FZ0721
0000000000ffc23d 01 KEY_ENTER FZ0721
0000000000ffc23d 02 KEY_ENTER FZ0721
0000000000ff22dd 00 KEY_MUTE FZ0721
0000000000ff22dd 01 KEY_MUTE FZ0721
0000000000ff22dd 02 KEY_MUTE FZ0721

Можно считать, что ИК пульт настроен. Теперь нужно сохранить полученный файл конфигурации пульта в надёжном месте. Для этого пригодится ещё одна очень полезная программа (подробно её здесь рассматривать не будем): WinSCP (https://winscp.net/eng/docs/lang:ru) – она позволяет обмениваться файлами между компьютером с системой Windows и микрокомпьютером с системой Linux, а также быстро корректировать текстовые файлы. Было бы интересно собрать базу файлов конфигурации различных пультов для этого плеера.

В основном файле конфигурации /root/controls/start.py задаются номера контактов разъёма GPIO для подключения ЖКИ и кнопок, а также флаги разрешения использования ЖКИ (LCD_ENABLE), кнопок (BUTTONS_ENABLE) и ИК управления (REMOTE_ENABLE) – если соответствующие возможности не используются, то их лучше отключить. В этом же файле находятся другие полезные настройки, в частности, LCD_COLUMNS – число столбцов индикатора, LCD_ROWS – число строк индикатора. Также некоторые глобальные настройки расположены в файле /boot/config.txt. Следует помнить, что после изменения файлов конфигурации требуется перезагрузка системы.

Прилагаемый файл образа с системой RuneAudio, настроенной для работы с ЖКИ, кнопками и ИК управлением, можно использовать совместно с другими ЦАП, подключёнными, например, через порт USB. Для этого необходимо закомментировать в файле /boot/config.txt следующие строки:

dtparam=i2s=on
dtparam=audio=on
dtoverlay=hifiberry-dac

а после загрузки системы выбрать в настройках MPD в качестве устройства вывода требуемый ЦАП. При этом можно заметить, что качество звучания будет выше, чем при работе с обычным компьютером, особенно, если «Малинка» запитана от линейного стабилизатора.

Впечатления от прослушивания описанного плеера можно было бы выразить так: он обеспечивает достаточно хорошую детальность звука, и, вместе с тем, придаёт звучанию лёгкий виниловый оттенок. Оцифрованные грампластинки (и не только!) слушать на нём - одно удовольствие.

Если у вас не окажется под рукой флэшки с файлами FLAC, работу плеера можно проверить через веб-радио, добавив в список, например, какие-нибудь из следующих радиостанций (на самом деле их огромное количество можно найти через раздел Dirble в меню Library плеера):

Chroma Classic Jazz
http://chromaradio.com:8028
Chroma Ballads
http://chromaradio.com:8006
Chroma Smooth Jazz
http://chromaradio.com:8036
Smooth Jazz Oasis
http://uk4.internet-radio.com:8047
Audiophile Jazz
http://8.38.78.173:8210

Памятка при работе с плеером

  • рекомендуется использовать формат музыкальных файлов FLAC (их можно получить с помощью программы Easy CD-DA Extractor, а теги в музыкальных файлах при необходимости легко корректируются в плеере foobar2000);
  • после включения плеера экран ЖКИ подсвечивается примерно через минуту (до этого желательно не пытаться управлять плеером с помощью кнопок или от ИК-пульта);
  • перед отключением плеера от сети выключателем рекомендуется сначала выключить его программно через меню (Power Off);
  • перед отсоединением USB-накопителей их сначала необходимо безопасно «размонтировать» программно, выбрав соответствующий накопитель в меню Sources, и назначив ему режим Unmount;
  • в случае нарушения при отображении содержимого очереди воспроизведения (например, когда названия композиций продолжают отображаться после попытки их удаления) может оказаться полезным пункт переинициализации базы воспроизведения: Rebuild MPD Library в разделе Local Sources меню Sources;
  • для программной регулировки громкости через Web-интерфейс, кнопками на передней панели или с помощью ИК пульта эта возможность должна быть разрешена в меню настроек MPD (Volume control – enabled), при этом качество звучания может незначительно снизиться;
  • в случае изменения любых настроек MPD рекомендуется сделать перезапуск проигрывателя через меню (Restart) для корректного отображения информации на ЖКИ;
  • в Google Play Market для «Андроид» имеется специальное приложение RuneAudio.

Продублирую ссылку на скачивание файла образа: https://cloud.mail.ru/public/9wFL/PACT4tTjU.

В заключение хотелось бы выразить благодарность Евгению Рыжакову за ценные советы – без них эта конструкция, скорее всего, не была бы создана.

 


 

 

 

 

 

 

 

 

 

 

 

 


Файлы:
Готовые файлы конфигурации
Рисунки печатных плат


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

30 1 5
0 0 1