Сетевой плеер своими руками: Сетевой плеер на базе Raspberry Pi3 B+

Содержание

Сетевой плеер на базе Raspberry Pi3 B+

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

Зачем я все это сделал:
Началось все с того, что захотелось какой-то проигрыватель сетевого контента, без носителя. Покупать бренд дорого, и почти всегда это DLNA, и прочие ограничения, а хочется SMB и без мозготни. В итоге, купил компик с оптическим выходом, на котором стояла Винда 10-ка, драйвер прямого вывода звука, минуя микшер, и Foobar. К Фубару прикручен был софт управления с телефона. Проработало все это вполне приемлемо для меня 1-2 мес. до того как стало подбешивать.

Когда мне хотелось слушать музыку, Винде хотелось чтобы я включил телевизор, нашел мышь, и нажал «ОК», или подождал пока она затянет обновления и перегрузится пару раз. Или напомнил ей пароль от шары, или что-то еще…

Когда это все совсем осточертело, начал искать новое решение и нашел форум Dastereo, где и прочел про одноплатники Raspberry и Volumio.

Далее были муки выбора ЦАПа, которые закончились вместе с окончанием производства Pi2 Design 502DAC, и я взял малопонятную DACBerry ONE+. Расчет был такой: на борту какой-то DAC, не самый свежий и крутой, но уши у меня уже древние, и все остальное врядли лучше, но на всякий случай есть Toslink, и в хозяйстве есть внешний ЦАП, вобщем, попробуем 🙂

Собирать решил все в один слой, и в большом корпусе, т.к. хотелось засунуть источник и малину в один корпус, и не выбиваться из концепции стойки. Донором корпуса стал какой-то свич Huawei. Мне показалось что это удобно, когда задняя стенка принадлежит верхней крышке, и не будет мешать работе. Оказалось наоборот, делать в крышке отверстия и после собирать все в кучу оказалось труднее, чем если бы было как обычно- П образная крышка.

Компоновку выбрал такую потому что не хотелось делать промежуточные коннекторы для межблочников и оптики, а ставить Малину в угол, это сразу Ethernet и USB в бок, что тоже не хотелось. Решил что развинтить корпус чтобы вынуть кабели- не проблема, это не флешка USB- туда сюда тыкать.

Плату переходник приобрел у старожила форума Dastereo — BVLabs.

После чтения историй про линейный источник питания взгрустнул, решил от него отказаться и собрать все на аккумуляторах. Тем более, что они у меня были, разжился по случаю. Собрал 2S12P из хороших, качественных брендовых ячеек. Которые, я уверен, прослужат не один год в таком режиме.

Емкость аккумуляторов получилась 16.4Ач, что позволяет играть без индикатора примерно 30ч.
Далее, с 8.4В на 5В пришлось делать стаб. Взял линейный стаб который был под рукой, AME1084 и по схеме из даташита собрал с помощью ЛУТа стаб. Снизу у него через отверстие в плате, толстый слой припоя, алюмишку гнутую и два слоя силиконового герметика сделано отведение тепла на корпус. У микросхемы стабилизатора +Out на корпусе, поэтому пришлось делать прослойку из герметика. Как показала практика, это все было излишним, т.к. суммарное потребление малина+DAC+красивый показометр составляет около 1А, и можно было обойтись воздушным радиатором.

Без индикатора потребление около 550мА, вместе с тем что идет в тепло на стабе.

Далее встал вопрос зарядки аккумов. Имелся некий специфичный зарядник для 2S аккумов, сделанный качественно, надежно, и который может работать круглые сутки. Выходной ток маловат, всего 1.5А, но главное чтоб он был больше потребляемого 🙂

Зарядник был извлечен из корпуса и установлен на стойки. Долго не мог запустить его, но помог уважаемый kirich, он подсказал что на контакт thermo надо повесить 10K термистор, и вуаля, зарядка стартовала. Кроме того, на ней есть еще выводы SDA, SCL, и подмывало их использовать, но ни банки которую заряжает этот зарядник, ни контроллера который стоит на банке у меня нет. Без телеметрии и общения с банкой зарядка выдает 1.5А 8.4В, и после стадии CV отключается. При этом, она очень кстати моргает двумя диодами, один из которых горит когда есть 220V, а второй загорается когда подключают аккум, и идет заряд, и тухнет когда заряд завершился. Диоды были отпаяны, к контактам припаяны провода- до светодиода нижней кнопки, и до оптопары на входном реле.

В итоге, работает так: Кнопкой замыкаем контакты реле, при этом стартует БП зарядника и маленький БП, стоящий с краю. Он 5V, и подтягивает двойное реле, которое подключает аккум к заряднику, и входное реле. Двойное реле работает просто от того-же питания, а на оптопару входного идет как раз сигнал от зарядника- зарядник увидел банки, начал заряжать, включил оптопару, подтянул катушку реле.
Как только аккумы заряжены, гаснет оптопара входного реле, и вырубается вся 220В на входе. Больше она не нужна. И отключаются банки от зарядника.

Малина стартует так же с кнопки, которая замыкает контакты реле. После того как малина немного загрузится и подаст питание на USB, подтягивается обмотка реле и кнопку можно отпускать. Секунд 7-8 примерно. Выключение малины только софтверно пока. Как сделать с кнопки культурно, пока не изучал. Если только просто оборвать сигнал на реле. Но так не хочется.

Плата BMS защиты аккумов немного доработана, сняты резисторы балансира, т.к. тока там было кот наплакал, а ключи на 3А. Вынес проводами на свободное место, вон МЛТ-шки в углу лежат, суммарно там что-то около 2А на банку. Врядли вообще до них дело дойдет, т.к. банки очень хорошие, и дисбаланс на 2S был 0.1В после сборки.

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

Есть еще индикатор, конечно для красоты. Детям очень нравится. Красивый, режимов море, программируется в китайском стиле как угодно, фактически светомузыка. Нашел более менее приемлемый вариант, когда все зеленое, а справа немного краснО.

.
Классическое отображение- когда красное- перегрузка настроить невозможно, не предусмотрено :))
Индикатор такой выбрал потому что длинный и узкий. помещается в корпус. Если бы был шире, были бы стрелки, конечно…
Кроме того, есть минус. Индикатору сигнал хотелось бы подавать с малины, а не с ЦАПа, но Volumio не может разделить вывод. Либо в I2S, либо в наушники, либо в USB. Пришлось сигнал для индикатора брать с джека ЦАПа. Не знаю, пострадал ли от этого звук, я не слышу 🙂
Снизу приклеил ножки, очень стало хорошо, не скользит.

Кроме того, есть индикатор заряда аккумов с кнопкой.

Он просто показывает и все, никаких больше действий не предпринимает.
Заменил на нем кривые наглухо круглые диоды на первые попавшиеся SMD диоды. Дети любят «включать лампочки» 🙂

Межблочники спаял из кабеля Canare и разъемов Neutric, это народный рабочий вариант межблока. Купил на AllCables

Вот примерно все. Если есть вопросы, прошу задавать.

Далее, хочу все разобрать, и корпус отнести в покраску дисков авто. Чтоб его отпесочили, и в черный цвет порошком покрасили.
И надо сделать фасад. Пока планирую алюмишку или железку почернить.
Может может кто-нибудь фрезернуть/шлифануть за приемлемые деньги?.. Я бы чертежик нарисовал в Кореле.
Или прошу посоветовать как сделать красивый фасад с окном под индикатор.

Провода там лишние мотаются- они связаны с фасадом. Как будет фасад, они лягут на опоры и не будет лишних петель мотаться.

Сетевой медиаплеер — своими руками

Сетевой медиаплеер — своими руками
В статье приводится опыт самостоятельной сборки только железной составляющей устройства на основе корпуса от уже не используемой бытовой аудио техники. Позднее, медиаплеер был модернизирован для возможности воспроизведения HD — видео высокого разрешения.

Содержание:
1. Введение
2. Постановка задачи
3. Выбор комплектующих
4. Модификация корпуса
5. Сборка медиаплеера
6. Модернизация блока питания
7. Доводка до ума
Итог

1. Введение
За последние годы, весьма активно стали развиваться домовые локальные сети.
В подобных сетях все чаще и больше рождаются постоянные узлы, на которых копятся различного рода медиа данные. Если ваш домашний компьютер подключен к какой-либо подобной сети, то вы наверняка заметили, что вполне возможно проигрывать видео или музыку прямо из сети. Также, если у вас существует канал во всемирную сеть (лучше безлимитный), то смотреть видео можно сразу и из Интернета.

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

Производители электроники не так давно осознали желание пользователей приблизить компьютер к бытовой технике, и в последнее время стали выпускать такие устройства, как сетевые медиаплееры, имеющие в основном только коммуникационные интерфейсы, и при этом значительно облегченные (без дисководов, CD приводов, тюнеров, и пр.).
Но, к сожалению, большинство из существующих таких устройств не лишено некоторых недостатков. Например, проигрывать на них возможно далеко не все форматы файлов, а также часто им нужен еще и «свой» софт, для установки на другом компьютере в сети. Некоторые из них еще и конструктивом далеко не всегда вписываются в существующие форматы (размеры) бытовой A/V техники.

Например, можно встретить вот такие устройства: SnaZio* HD SZ1310 KiSS DP-1000 D-Link DSM-320 и др.

К сожалению, цена таких устройств пока еще достаточно велика (свыше 200 у.е.).
Напротив же, самостоятельная сборка, или даже покупка компьютера в desktop или slim корпусе, как правило, решает основные проблемы. Установка такого компьютера вполне возможна в стойку с аппаратурой, и размеры подобных корпусов можно самому выбирать. Но, увы… и здесь тоже не все гладко. К сожалению, стоимость только самих подобных корпусов, зачатую зашкаливает за сотню у.е., и даже если вы согласны мириться со значительной стоимостью такого корпуса, то зачастую корпуса очень тяжелы, что не всегда позволяет поставить их в существующие стойки.
О проблемах, которые существуют при самостоятельной сборке можно узнать почитав форумы о создании HTPC и подобных им.

2. Постановка задачи

Так вот, уже имея доступ к домовой локальной сети, мне порядком надоело бегать от дивана к компьютеру (еще и в другую комнату) и обратно, что бы переключиться на другой фрагмент при просмотре файлов из сети. Разумеется, хотелось бы просматривать фильмы, не вставая с места. Поэтому в зале было решено установить дополнительный проигрыватель, который бы обеспечил воспроизведение файлов из сети.
Покупка готового медиаплеера отпадала сама собой по указанным выше причинам, поэтому выбор был сделан в пользу самостоятельной сборки, однако покупать дорогой slim корпус тоже особого желания не было. И тут, я обратил внимание на то, что некоторые энтузиасты создают себе самодельные, и при желании достаточно легкие, корпуса. Есть еще и такие, кто использует в качестве корпуса старую, отслужившую свой срок, аппаратуру. А так как делать корпус «с нуля» мне совсем не хотелось, то решено было остановиться на втором варианте.

Наверняка, на некоторых сайтах в сети вы встречали самодельные сборки компьютеров на основе старых корпусов от A/V техники, например как здесь.
Однако обычно в них, все старые потроха выбрасывались, и бытовой аппарат уже не выполнял свои прямые функции.
Тупо повторять то же самое мне не хотелось, и вот я подумал, а почему бы не сохранить (по возможности) функционал модернизируемого старого аппарата, но при этом создав из него уже новое устройство.
Для эксперимента был выбран практически не используемый мной в настоящее время старый (но выглядит как новый ) кассетный аудио магнитофон вот такой, как на фото ниже.


(кликните по картинке для увеличения)
Sony TC-FX220
Конечно, при массовом переходе на цифру, актуальность такого аппарата сейчас — никакая, однако в свое время для записи и воспроизведения звука подобными устройствами в основном все только и пользовались. Впрочем, и сейчас иногда возникает необходимость в пользовании магнитофоном, например, лингафонные курсы иностранного языка для детей выдают в школах пока только на компакт-кассетах.
Здесь хочу обратить внимание, что именно аудио магнитофон наиболее подходил(ит) для модификации, так как внутри него достаточно свободного места для установки дополнительных комплектующих. Например, в старом видеомагнитофоне или усилителе, свободного места почти не существует.
Итак, было решено использовать этот аппарат в качестве корпуса для будущего медиаплеера, и при этом по возможности сохранить его полный функционал.

Как понятно из предназначения, «сетевой медиаплеер» – это фактически облегченная версия персонального компьютера, где отсутствуют (за ненадобностью) «лишние» комплектующие. Перечислим, каким минимальным набором характеристик он должен обладать:
•Поддержка сети Ethernet (RJ45),
•Вывод видео на TV (не хуже S-Video),
•Вывод аудио,
•Минимальный объем жесткого диска (для работы ОС),
•Управление по IR (возможно внешним блоком),
•Достаточно легкий вес,
•Минимальный шум

Учитывая вышеназванные требования, при сборке медиаплеера было поставлено три основные задачи:
•Облегчить вес будущего аппарата, желательно не более 5 кг.;
•Сделать его по возможности бесшумным;
•Вписаться в цену 200 у.е. (в сравнении с покупкой готового устройства).

Чтобы вписаться в заявленную цену, конечно следовало выбирать комплектующие не только из доступных в продаже, но и по максимально низким ценам.
Для начала, необходимо было прикинуть размеры и посмотреть, а влезут ли будущие потроха (комплектующие) во внутрь выбранного мной корпуса.
Магнитофон имеет размеры 430х230х90 (ШхГхВ) и весит 3,2 кг.

3. Выбор комплектующих
Судя по размерам корпуса очевидно, что материнская плата должна быть microATX формата, или же еще меньше. В мои размеры вписалась плата AsRock на i865G чипсете. Так как ширина корпуса 430мм, следовательно внутри вполне хватает места и для microATX блока питания (вначале планировался к установке именно такой). Высота корпуса 90мм, и поэтому платы расширения могли быть использованы только низкопрофильные.
На выбранной материнской плате имелся выход видео только на монитор D-Sub, однако для подключения к бытовой A/V технике он конечно же не подходил, поэтому было решено установить дополнительную видеокарту с S-Video выходом. К сожалению, это означало и дополнительные затраты, но увы… материнские платы, на которых уже присутствует Video-TV выход, крайне редки и найти их практически не реально.

Так как для работы в качестве медиаплеера большого объема оперативной памяти не требуется, то было выбрано минимально возможное (разумное) для нормальной работы операционной системы – 256МБт. Центральный процессор был выбран не самый медленный, но и не самый дорогой Intel Celeron 2,0 GHz. Для охлаждения процессора был взят дешевый алюминиевый кулер модели Igloo 4311 весом около 300 гр.
Для доступа к сети, на материнской плате уже имелся сетевой интерфейс с разъемом типа RJ45, поэтому дополнительную сетевую карту устанавливать не было никакой необходимости. Звуковой кодек также присутствовал.
Жесткий диск был выбран объемом в 30 гигабайт, ноутбучного формата 2,5″, весом не более 95 гр., что существенно облегчило вес аппарата. К сожалению, меньшего объема и не б/у мною найдено не было. Вес блока питания вначале в расчет не брался, так как впоследствии он был существенно модифицирован.
Итак, получившаяся конфигурация:


PC Components
На рисунке, слева вверху блок питания, справа жесткий диск, и ниже видеокарта. Процессор с кулером и модуль памяти, здесь уже установлены на материнской плате.
В таблице справа, указана цена комплектующих (в у.е.), на момент их приобретения.

Блок Наименование Цена
MB: ASRock P4i65G Socket478, i865G, SATA, AGP, Video, LAN 45
CPU: Intel Celeron 2000 MHz, 128Kb, 400MHz fsb 34
RAM: 256Mb, DDR PC2700, Hynix 21
Video: 128Mb, AGP ATi9250, TV DVI [MSI 8999 RX9250-TD128] 36
HDD: 30Gb, 4200rpm, Hitachi 47
Power: ATX, 300W, Gembird [CCC-PSU1] 13
Cooler CPU: Igloo 4311, S-478, GlacialTech 7

Все комплектующие выбирались по минимально возможной цене, все новое (не б/у).
По указанной цене в суме комплектующих, уже вполне можно вписаться в поставленную задачу. Общий, приблизительный вес (только комплектующих включая шлейфы и разъемы) составил около 2 кг.
Так как при работе (да еще и в стойке с аппаратурой), внутренности наверняка будут хотя бы немного нагреваться, то для их охлаждения решено было предусмотреть установку пары дополнительных вентиляторов размерами 60х60мм.

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

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


(кликните по картинке для увеличения)
inside-back-all
Обратите внимание, на картинке в правом углу уже стоит вентилятор, а на задней панели уже прорезаны отверстия, и стоит еще один вентилятор.
Собственно, задняя панель представляет собой полный набор выходных разъемов. Разумеется, до того как они были установлены, на задней панели ничего кроме сетевого шнура, и разъема LINE IN/OUT не было.

(кликните по картинке для увеличения)
Sony-tc-fx220-back
Дело в том, что модификация этого аппарата была произведена мной более полу года тому назад, и в то время я еще не был до конца уверен, что вообще произведу нечто подобное на свет. Поэтому, тогда фотографий и не делал. И только сейчас, когда мне потребовалось поставить дополнительный разъем на заднюю панель (об этом чуть ниже), решено было поделиться опытом и написать данную статью, попутно фотографируя полученные результаты.
Так как вся конструкция собрана была мной с обязательным использованием разъемов, то проблем с разборкой, и последующей сборкой, не возникало. Далее будет показана последовательная сборка, уже рабочего аппарата.

При перемещении аудио платы пришлось немного поработать напильником. Некоторую часть проводов пришлось удлинить и кое-где поставить дополнительные разъемы. Для поддержания этой платы на высоте (практически под верхней крышкой), потребовалась установка дополнительных стоек (взяты от заглушек слотов) и не большая модификация пружинного механизма для переключателя режима REC (запись) магнитофона. Как видно на картинке, плата была установлена в перевернутом виде, что однако никак не повлияло на ее фактическую работоспособность.


(кликните по картинке для увеличения)
Sony-tc-fx220-mod1
Линейный трансформатор для питания магнитофона переместился ближе к краю (справа на картинке), освободив место для ATX блока питания компьютера и вентилятора в нижней стенке корпуса.
Источники питания для магнитофона, и питания для компьютера решено было оставить раздельными и не зависящими друг от друга. Это сделано было для того, что бы не привязываться к одному источнику питания.
Возможно, что соседство импульсного блока питания с аудио платой могло бы создавать некоторые помехи для аудио. Поэтому, при желании получения «чистейшего» звука, возможно и раздельное использования устройствами, фактически получая «два в одном».
На заднюю панель (над шнуром), дополнительно была установлена кнопка полного отключения питания. Она включает и отключает питание только для блока питания компьютера, т.е. только для цифровой части устройства. Кнопка Power на передней панели магнитофона, как и ранее, имеет отношение только к самому магнитофону.

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

5. Сборка медиаплеера
Вначале необходимо было установить материнскую плату, и подогнать ее под разъемы на задней стенке корпуса магнитофона. На нижней поверхности корпуса, с помощью дрели были высверлены отверстия под шестигранные стойки, такие стойки применяются при монтаже материнских плат в стандартных компьютерных корпусах.
Особенность конструкции данного корпуса – это то, что задняя панель могла быть отдельно демонтирована, и других сложных работ с корпусом можно было избежать.
Отсоединив заднюю панель, можно было заниматься распилом отверстий на ней.


(кликните по картинке для увеличения)
Sony-tc-fx220-mod2
Для вывода выходных разъемов материнской платы, можно было бы воспользоваться заглушкой идущей в комплект к этой плате, и пропилить один большой прямоугольник, но тогда не поместился бы вентилятор, и поэтому решено было поставить плату в притык, и отверстия выпилить по месту.
Выпил отверстий на задней панели корпуса производился с помощью дрели с тонким сверлом по контуру разъемов, а затем обработан напильником (надфилем).
Дополнительно было выпилено отверстие для вытяжного вентилятора 60×60мм, как раз напротив самого «горячего» прибора – процессора.

case-fan
Процесс выпила больших отверстий с помощью тонкого сверла и надфиля, проиллюстрирован на рисунке ниже. Именно ради этого, дополнительного разъема, мне и необходимо было осуществить разборку корпуса.

(кликните по картинке для увеличения)
side-back-mod
1 – Высверливаем тонким сверлом, по контуру будущего разъема,
2 – Выламываем излишек металла,
3 – Обрабатываем края напильником и сверлим доп.отверстия,
4 – Вставляем разъем и прижимаем его шестигранными винтами.
Установка жесткого диска была произведена на пустую плату с разъемом PCI (с перерезанными контактами) от старого неисправного оборудования.

hdd-on-pci
Плата вставлена в крайний слот на материнской плате, и сверху прижата винтом. Для подключения диска к материнской плате был использован переходник с 2,5″ на 3,5″ в IDE шлейф.

(кликните по картинке для увеличения)
Sony-tc-fx220-inside-all
Так как материнская плата была поставлена практически впритык к задней стенке корпуса, то для плат расширения (и для видеокарты) было решено отказаться от прижимных планок, а для крепления выходного разъема использовать штатные винты.

Sony-tc-fx220-ins-right
На материнской плате осталось еще два не задействованных PCI слота, так что в будущем, если появится желание апгрейда, вполне возможно установить в эти слоты еще что ни будь, например плату TV тюнера и пр.

6. Модернизация блока питания
Данный вариант медиаплеера у меня не первый, и конечно были и ранние (вполне успешные) попытки собрать компьютер в миниатюрном, как правило стандартном slim корпусе. Однако, «опыт – сын ошибок трудных» (с) показывает и подсказывает, что необходимо выбирать источник питания уже заведомо обеспечивающий значительный запас по мощности, чтобы потом не было мучительно больно за бесцельно потраченные средства. В данном случае, блок питания был выбран с мощностью в 300W.
Спрашивается, зачем так много для такой «слабой» конфигурации? Наверняка хватило бы блока и на 150W. Согласен, конечно хватит и меньшей мощности.
Но, по моему личному опыту и конечно imho, встречавшиеся мне маломощные блоки питания сильно грелись, даже при не полной загрузке, и в добавок заметно шумели. Учитывая плотность размещения, которая получилась в этом корпусе, перегрев или даже не значительный нагрев, мог бы вполне создать проблему в будущем.
Конечно, в данном «дешевом» блоке питания эти ваты не совсем честные, но нужно было учесть, что получившейся аппарат должен был работать в стойке, где уже и так полно греющейся аппаратуры (и при этом не сильно шуметь). Поэтому следовало создать некий избыток в мощности блока питания, тем самым существенно снизив требования к его охлаждению.
По размерам, плата от стандартного ATX блока питания, вполне вписывалась, однако металлический корпус блока не влезал. Решено было слегка модернизировать металлическую оболочку корпуса блока питания, удалив лишний металл.


Sony-tc-fx220-ins-left
Одна из металлических крышек блока была удалена, а у радиаторов загнуты лепестки, что бы уменьшить общие размеры по высоте. Конечно, в данном случае мне повезло с радиаторами, в этом блоке они оказались такими «гнущимися». Возможно, в других случаях так может и не получится.

PS-mod
Также, штатный вентилятор от блока был убран, а вместо него в нижней стенке корпуса установлен малых размеров вентилятор 60х60мм работающий на пониженных оборотах и нагнетающий воздух внутрь, прямо на пластины радиаторов блока питания.

Sony-tc-fx220-back-fan
Как было сказано выше, для вытяжки теплого воздуха из корпуса был еще установлен вентилятор на задней стенке корпуса, в другом углу аппарата. Тем самым, именно этими двумя вентиляторами создавался необходимый «сквозняк» который бы не позволял перегреваться внутренностям даже при максимальной нагрузке на процессор и другие элементы.

7. Доводка до ума
Учитывая то, что дизайн лицевой панели корпуса магнитофона мне переделывать совсем не хотелось, то кнопки Power (зеленая) и кнопка Reset (красная), были вынесены на заднюю панель. Там же, они крепились с маленькой плате, которую было решено дополнительно поставить для того, что бы обеспечить индикацию работы компьютера. Системный разъем на материнской плате был соединен шлейфом с этой платой.


Sony-tc-fx220-back-plate
К сожалению, единственное «свободное» место для индикатора на лицевой панели магнитофона оказалось только на месте индикатора записи REC INDICATOR. Он загорался только тогда, когда нажималась кнопка REC. Но так как запись на ленту уже вероятно никогда (или очень редко) не будет производиться, решено было в этом месте поставить двухцветный светодиод, обеспечивающий индикацию работы медиаплеера.

Логика работы нового индикатора была выбрана такая:
В режиме работы медиаплеера (когда питание подано на материнскую плату), светодиод светится зеленым цветом. В моменты, когда производится обращение к жесткому диску, светодиод переключается на красное свечение. Если же нажимается кнопка REC на магнитофоне, то светодиод также будет светиться красным цветом.
Разумеется, что бы обеспечить такую логику работы, необходимо было собрать небольшую схему на паре ключевых транзисторов. Именно на этой маленькой плате, к которой крепятся кнопки, и была собрана миниатюрная схема.


hdd-power-led
Принцип действия этой схемы очень прост.
Когда, на минусовом выводе контакта материнской платы HDD LED присутствует высокий потенциал (около 5 вольт), транзистор Q1 открыт, а Q2 закрыт и ток протекает через светодиод D1.1 который светится зеленым цветом.
Как только возникает обращение к жесткому диску, и на минусовом выводе HDD LED появляется низкий потенциал, транзистор Q2 открывается (при этом Q1 закрывается, диод D1.1 гаснет) и ток протекает уже через диод D1.2 который светится красным цветом. В данном случае был использован трехвыводной светодиод, с общим катодом.
На схеме еще существует контакт REC LED, который подключается к внутренней схеме магнитофона, что бы обеспечить индикацию режима записи в случае, если кнопка записи все же будет нажата.

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

Дополнительно также, была произведена еще одна модификация с микрофонным входом. Особенность конструкция данной модели магнитофона позволяет подключать к нему сразу пару микрофонов (LEFT и RIGHT).


mic-out
Однако в реалии, для него вполне достаточно было бы и одного разъема. Поэтому, решено было один разъем оставить для магнитофона (LEFT), а другой подключить к материнской плате (RIGHT). Но, при подключении выяснилось, что на материнской плате микрофонный вход рассчитан только на подключение электретных (с доп.питанием) микрофонов. Для этих целей контакты на маме имеют дополнительную линию питания на 5 вольт, т.е. на микрофон подается сразу три контакта.
Для подключения динамических микрофонов, которые в основном и применяются в бытовых устройствах, такое включение не подходит, так как имеет слишком слабое усиление, и им необходимо иметь небольшой предварительный усилитель. Такой микро усилитель был собран по стандартной схеме, и установлен на той же маленькой плате.

mic-amp
Тем самым, собранный медиаплеер стал не только просто плеером, но дополнительно получил и еще одну функцию — Караоке.

(кликните по картинке для увеличения)
Karaoke
Естественно, при сборке было учтено, что можно подключить линейный выход магнитофона сразу к входу AUX на материнской плате внутренним аудио кабелем, что бы сразу дало возможность без лишних коммутаций оцифровывать аудио кассеты.
Все другие аудио разъемы материнской платы были выведены на заднюю панель в виде стандартных для бытовой аппаратуры разъемах типа «тюльпан» (см.фото в начале статьи).

После окончательной сборки аппарата, была произведена его полная проверка.
Так как программное обеспечение на жесткий диск уже было установлено ранее, поэтому все успешно запустилось и заработало без дополнительных настроек. Для дистанционного управления медиаплеером мною был использован внешний IR приемник и пульт от старого TV тюнера, который к этому времени уже давно не использовался.
Осталось только настроить программное обеспечение для работы с сетью и с медиа файлами… Впрочем, это уже другая история.

Итог:
Результирующий вес собранного аппарата составил чуть более 5 кг., что конечно совсем не много, если сравнивать с большинством других «железных» slim корпусов, предназначенных для подобных целей.
Шум был минимизирован за счет слабого вращения вентиляторов при не значительном нагреве внутренних деталей. Шум от процессорного вентилятора был также снижен путем подключения его на пониженное питание.
Общая стоимость потраченных средств на комплектующие, для создания этого аппарата, составила чуть более 200 у.е.

Подведя итог, можно сказать, что в основном поставленные задачи были выполнены.
И если у вас возникло желание собрать сетевой медиаплеер самостоятельно, а в наличии есть старая, не используемая A/V аппаратура, которую не жалко модернизировать, то вполне возможен предложенный выше подход.

Задать вопросы и высказать критику можно здесь.

Сетевой аудио-плеер: HiFi недорого / Хабр

Меня уже давно мучила идея использовать что-то из продукции

Hardkernel

для создания сетевого аудио-плеера. Типа

такого

, только подешевле. Останавливало отсутствие вменяемого аудио-интерфейса, а связываться с USB-DAC не хотелось. И вот на Geektimes появилась

новость

выпуске нового одноплатного компьютера с интерфейсом I2S и платы с аудиофильским DAC для него. Мечта начала сбываться!


Про отличия Odroid C1+ от «малинки» распространяться не буду, все уже было

написано

. Остановлюсь подробнее на самом DAC.

Вот что заявлено производителем:

  • High-end PCM5102 Burr-Brown DAC с подключением по интерфейсу I2S
  • Поддержка 16/24 форматов с минимальным искажениями (-93dB) и идеальной динамикой (100dB+). Частота дискретизации до 192kHz.
  • Использование регулятор питания с ультра-низким уровнем шума в сочетании с двумя твердотельными конденсаторами, что значительно увеличивает отношение сигнал-шум
  • Специальный дизайн PCB и позолоченные разъемы RCA.

В блоге Hardkernel приведены результаты испытаний, проведенных с помощью анализатора Audio Precision, подтверждающие заявленные характеристики.

Результаты испытаний

Общее гармоническое искажение + шум (THD + N):

Сигнал/Шум:

Уровень шума:



Было решено, что штука крутая и нужно брать. В принципе, сборка устройства сводится к вкручиванию ножек, и подключению разъемов. Заливаем образ на SD-карту, и все. Но в таком виде оно во-первых не выглядит как HiFi, во-вторых, привлекает ненужное внимание кота мигающими светодиодами и торчащими во все стороны проводами. Поэтому следующим этапом было изготовление корпуса и упаковка всего во внутрь. Был сделан умопомрачительный дизайн, который однако пришлось скорректировать с учетом местных реалий. В итоге, был выбран стандартный алюминиевый корпус, модификация которого свелась к фрезерованию отверстий. Размеры корпуса 190х170х70мм. Толщина стенок 2мм. Сама сборка особых проблем почти не доставила по причине простоты устройства:

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

  • На плате есть IR порт.Штука полезная в целом, но бесполезная внутри корпуса. Был выпаян, пересажен на шлейф и вынесен на переднюю панель.
  • RCA смотрит в бок. Проблема решилась с помощью самопального переходника.
  • Максимальная мощность C1+ — 2 ампера (при подключении внешних устройств по USB), так что блок питания был выбран с некоторым запасом, тем более что блоков меньше 5V/3A все равно нет.
  • 3 голубых светодиода подключены к GPIO.

Дабы хоть как-то облагородить внешний вид, передняя панель была закрыта накладкой из черного акрила толщиной 5 мм. На тыльной стороне были профрезерованы углубления напротив светодиодов и IR приемника:

На этом железячная часть закончилась.

Софт

Анонсируя новый комплект у себя в блоге, разработчики написали, что все замечательно работает с

Volumio

. Volimio представляет собой обрезанную сборку Debian. За функции медиаплеера отвечает

mpd

, управление осуществляется через web-интерфейс или любой клиент для mpd, будь то MPDroid или любой другой клиент.

Однако, как оказалось, ребята из Hardkernel несколько поспешили. В тот момент, когда я уже получил комплект на руки, публичной работающей сборки Volumio с поддержкой I2S не было! Пришлось еще 4 дня доставать разработчиков. Через несколько дней после Volumio подтянулись и Rune Audio. Поскольку Volimio усиленно продвигался разработчиками у себя в форуме, я начал с него. В принципе, все работало, но периодически всплывали косяки типа отваливающегося Spotify. К тому же, поддержки IR Remotr control не было, а установка Lirc требовала длительных танцев с бубном ввиду сильной урезанности дистрибутива. Разочарование.

Но вот спустя три дня вышел новый релиз Rune Audio и мечта наконец-то сбылась в полном объеме! Пульт работает, Spotify работает, все на месте! В отличие от Volimio, Rune Audio собран на базе ArchLinux, и все нужные функции там присутствуют изначально.

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

На смартфоне


Для того, чтобы окончательно подружить Rune Audio и Odroid C1+ нужно произвести некоторую предварительную настройку.

1) Активируем поддержку DAC

nano /boot/boot.ini

Раскоментируем строку:

# PCM5102 audio DAC Enable/Disable
# Uncomment the line below to __ENABLE__ Audio-DAC(PCM5102)
setenv enabledac "enabledac"

Там же можно отключить поддержку HDMI и GPU для экономии ресурсов.

2) Активируем пульт ДУ:

systemctl enable lircd
systemctl start lircd
systemctl enable irexec
systemctl start irexec

В принципе, можно использовать маленький пульт Hardkernel, я предпочел подключить пульт от Xtreamer, скачав конфиг

отсюда

и поместив его в

/etc/lirc/lircd.conf.d/lircd.conf

.

У меня сложилось впечатление, что Volimio это сильно обрезанный в угоду меньшему потреблению ресурсов вариант Rune Audio. Возможно, что для «малинки» это и актуально, но с учетом мощности Odroid C1+ это явно ни к чему.

Конкурирующие решения

Разумеется, связка Odroid C1 + Hardkernel HiFi shield это далеко не единственный вариант сборки сетевого плеера. И не самый дешевый. Вполне можно обойтись Raspberry P+ b и одним из многочисленных китайских HiFi DAC. Более того, к Odroid C1+ можно подключить любой DAC c интерфейсом I2S, спаяв небольшой переходник. Вот пример с форума Hardkernel — подключение Teradak ES9023:

В общем, возможности выбора разнообразны.

Erratum

Некоторые моменты, которые в следующей итерации я бы сделал по другому:

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

Разъем для SD расположен на нижней стороне платы. Т.е. для обновления прошивки, нужно разбирать корпус и снимать весь «бутерброд». Сейчас я бы использовал шлейф-удлинитель и вывел бы разъем micro-sd на заднюю панель.

Полезные ссылки

Раздел Odroid C1 на форуме

Rune Audio

Раздел Odroid C1 на форуме

Hardkernel

Сетевой проигрыватель на Raspberry Pi. Часть 1.: raykulibin — LiveJournal

Некоторое время назад мне пришла в голову мысль: почему современные производители аудиотехники почти не производят что-нибудь подобное магнитофонам, но на современных технологиях? Вместо этого нам предлагают bluetooth-колонки с ущербным функционалом.
Результатом моих размышлений стало это изделие.

Оговорюсь сразу: специалистом в использованных при производстве этого плеера областях я не просто не являюсь, а вообще всё делал впервые. Денег в проект ввалено много, но большинство из них потрачено на инструменты, которые, я надеюсь, хотя бы лет через пять окупятся.

Прикидка дизайна. Всё получилось, конечно же, не так.

Использовано:

1. Raspberry Pi 3B — куплен в NIXе за 3500. Мало ест, много может, универсален, большое сообщество, которое может помочь с чем угодно.

2. Suptronics X400 — куплен на Али за 1700. Этот DAC имеет на борту усилитель 2х30 Вт, что снижает необходимость пайки, с которой у меня не очень. От оригинала отличается отсутствием дублирующей гребенки GPIO, что ограничило мой проект по функционалу. На фото выше видны энкодеры, которые в итоге не используются.

3. Экран Waveshare 7 дюймов 1024х600 — куплен на Али за 2800. Без правки config.txt не заводится, но это мелочи. Работает хорошо.

4. Колонки Microlab Solo 1 mk3 — куплены в pleer.ru за 5600. Использованы как донор динамиков. Выбор обусловлен исключительно хорошими отзывами.

5. Фанера 10 мм — куплена на ближайшем строительном рынке за … А вот не помню за сколько, но, по-моему, в пределах 3000 тысяч. Купил три листа 1.5х1.5 метра, но очень сильно промахнулся: использовал на проигрыватель всего 3/4 одного листа. И еще осталась кучка обрезков, которые можно использовать ещё где-нибудь.

Выпиливаем круги фрезером. Без респиратора и очков лучше не этого не делать.

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

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

Неровности склейки обусловлены исключительно кривизной рук. Плюс ко времени шлифовки.

Фрезеровка по ровному краю фанеры

Далее на грубо отшлифованных боковинах фрезером сделаны пазы под верхнюю и нижнюю стенки.

Примерка для понимания, что всё получается как задумано. Струбцин много не бывает. Я купил всего три, это ОЧЕНЬ мало.

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

Немного перезажал.

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

Приклеиваем верхнюю стенку.

На этом фото видны неизрасходованные листы фанеры распиленные пополам (не входили в машину). Вигвам на фоне — просто детская игрушка =)

На этой стадии я ещё расчитывал на шпатлевку, но потом сборки от неё отказался в угоду древесной фактуре.

Почему итоговый цвет получился именно таким: я покрыл корпус морилкой насыщенного вишневого цвета, но при этом в доме воняло так, что… Ну что тут говорить — морилка есть морилка. Было решено нанести второй слой уже на улице, но так как было -9 градусов, морилка свернулась комками, заодно изрядно подпортив первый слой. Не дожидаясь полного высыхания, корпус был подвергнут непродолжительной шлифовке нождачной бумагой — сначала 180, потом 240. Получилось так как получилось. Ровная темная полоса над левой колонкой — фабричный дефект фанеры, который вот так впитал морилку.

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

Внутренности

Внутри всё закреплено на термоклей, блок питания от ноутбука на 19 вольт выступает из корпуса ровно на толщину задней стенки, которая прикручивается обычными саморезами. Raspberry+Suptronics пока не закреплены никак, потому что в процессе отладки microSD раз по десять в день нужно было доставать.
Динамики подключены к частотным фильтрам (или как их там, я не в курсе), фильтры к выходу усилителя Suptronics. Экран подключен по HDMI + usb для тачскрина. Также добавлены usb-wifi и usb-bt, потому что встроенные годятся только для тестирования.

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

Следующая часть будет про софт, бонусом сделаю видео работы.

Часть 2.

Обзор аудиофильского сетевого аудиоплеера Aurender A100 с ЦАП и USB-выходом

Компания Aurender специализируется на создании музыкальных серверов-стримеров для аудиофилов. Зачем это нужно? Как мы знаем, ни один компьютер не создан специальным образом для музыки. Это всегда материнская плата общего назначения, всегда видеокарта, всегда импульсный блок питания и множество ШИМ-преобразователей тут и там. Операционные системы также не созданы специально для музыки. Конечно, можно попытаться подстроить и улучшить ПК для воспроизведения звука, но это всегда будут полумеры. А что если подойти к вопросу кардинально: оставить от персонального компьютера только процессор, жесткий диск и память, но убрать видеокарту? Что если убрать активное охлаждение, оставить только пассивные радиаторы и подключить все это к линейному блоку питания, а управлять всем удаленно, из приложения для iPad? Именно такой подход выбрали инженеры Aurender. Они создали собственную платформу, свою собственную компактную материнскую плату, где нет ничего лишнего, только один экономичный CPU без видеокарты, чтобы хватало пассивного охлаждения. В итоге ничего не шумит при работе, не накапливает пыль, не греется. Но при этом позволяет хранить всю коллекцию на жестком диске и воспроизводить ее. А чтобы и шпиндельный диск HDD не вращался и была абсолютная тишина, данные кэшируются на SSD.

Фактически, получается большой красивый Hi-End-медиаплеер, с удобным удаленным управлением коллекцией записей с экрана iPad или Android-планшета. Причем коллекция может располагаться не только на установленном внутрь жестком диске, но и на серверах в локальной сети, а также есть поддержка современных онлайновых потоковых сервисов Hi-Res-контента.

Технические характеристики и цены

Габариты и вес 330×55×353 мм, 7,8 кг
Цвет корпуса 2 варианта: серебристый и черный
SSD для ОС и кэша 120 ГБ
Музыкальный HDD 2 ТБ
Питание полностью линейное
Экран 3,0″ AMOLED
ОС Linux
Цифровой выход USB Audio Class 2.0
Цифровой вход оптический S/PDIF 24 бит 192 кГц
Прочие разъемы Gigabit Ethernet, 2×USB
Аналоговый выход RCA, 2 ВRMS
Громкость от −90 до 0 дБ, шаг 0,5 дБ
USB-выход PCM: 32 бит 384 кГц
DSD: 64/128 DoP
ЦАП AKM AK4490
КГ+шум −111 дБ
КГ 0,00015%
Динамический диапазон 128 дБ
Проникновение каналов менее −132 дБ

Официальная страничка на русском языке: aurender.su

Помимо ПК на Linux, в модели A100 под корпусом находится качественный встроенный USB ЦАП на преобразователе AKM AK4490 с линейными выходами RCA. У Aurender есть модели без аналоговых выходов, только с USB-выходом на совместимый с UAC 2.0 ЦАП. А вот у Aurender А100 имеется и своя звуковая карта, и качественный USB-выход. В более дорогой модели Aurender А10 емкость накопителя вдвое больше, а также имеется более навороченный dual-mono ЦАП на тех же преобразователях AKM AK4490, с выходами RCA и XLR — для тех, кому это нужно. Есть и флагманская модель A30 с безумным ценником, с CD-приводом, HDD на 10 ТБ, SSD на 480 ГБ и dual-mono ЦАП AK4497. На их фоне A100 выступает как довольно сбалансированное решение среднего уровня с HDD 2 ТБ и SSD 120 ГБ, с реализацией всех тех же технологий, что и в старших моделях.

Дизайн и возможности подключения

На передней панели мы видим большой 3″ AMOLED-экранчик, куда можно вывести информацию о текущем треке или стрелочный индикатор, показывающий уровень громкости в децибелах. Кнопки управления: Play/Stop, следующий, предыдущий, смена режима экрана. Такие же кнопки имеются инфракрасном пульте ДУ. Датчик приема ИК-сигналов расположен рядом с ручкой громкости — на фото он выглядит как черный кружочек. Ручка регулировки громкости — цифровая; выполнена она из алюминия, как и весь остальной корпус.

Сзади имеется проводной порт Gigabit Ethernet. Он необходим, если пользователь планирует подключать онлайновые стриминговые сервисы Tidal, Qobuz, Spotify. Также в локальной сети можно использовать NAS-сервер и Aurender Content Server. Производитель подчеркивает, что для стриминга и работы в локальной сети необходимо именно проводное соединение.

Среди USB-портов два служат для общих задач. К одному из них можно подключить флэшку или внешний HDD с музыкой. К другому — Wi-Fi-адаптер, чтобы использовать локальную беспроводную сеть для управления с экрана iPad. Скопировать файлы на жесткий диск Aurender A100 можно через сеть, зайдя в папку \\A100\Music по паролю. Второй вариант — переписать файлы на диск с подключенного USB-накопителя, выбрав команду Copy.

Программная часть

Приложение Aurender Conductor поддерживает русский язык и позволяет настраивать все параметры работы A100. Также это основной способ навигации по содержимому жесткого диска с коллекцией музыки.

Что интересно, все приложения iPad также видят Aurender A100 как внешний ЦАП и могут выводить звук именно на него, а не на встроенные динамики. Таким образом, любые приложения на iPad также можно успешно использовать для воспроизведения музыки на A100. Это существенно расширяет выбор музыкальных сервисов.

Мы протестировали работоспособность Tidal и послушали MQA-записи высокого разрешения. Все без проблем работает. На экранчике загорается надпись «MQA» и повышенная частота дискретизации данных.

Формат MQA создан специально для потоковых сервисов. Если не вдаваться в технические дебри, он передает Hi-Res внутри файла FLAC стандартного разрешения, сохраняя побитно полосу слышимых частот до 20 кГц, а данные выше сжимает с потерями, чем вдвое экономит битрейт. Существенный плюс в том, что MQA-файл воспроизводится и на обычной аппаратуре, так так для нее это стандартный FLAC формата 44 кГц, дополнительные данные там кодируются в шумовом сигнале незаметно для слушателя.

Управление плеером довольно простое, никаких нестандартных функций нет. Эквалайзера и прочих обработок звука тоже нет. Зато есть управление апсемплингом и аппаратными фильтрами ЦАП.

Мы попробовали воспроизводить Hi-Res-записи популярных форматов. Aurender A100 без проблем видит и читает любые файлы до 384 кГц. Файлы DSD поддерживаются до 5,6 МГц (DSD128).

Пользователь может выбрать режим Direct, чтобы ЦАП переключался на частоту текущего файла, либо автоматический апсемплинг до 352/384 кГц. Для MQA-файлов будет автоматически выбираться ампсемплинг, так как это упрощает работу декодера формата.

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

Схемотехника

Под крышкой корпуса мы видим отсутствие каких-либо вентиляторов. Охлаждение полностью пассивное. Мы не заметили нагрева корпуса при ежедневной работе Aurender A100. Создается ощущение, что воспроизведение звуковых файлов не вызывает никакой нагрузки на систему, а в простое процессор переходит в режим минимального потребления. Возможно, мощные радиаторы будут востребованы при каких-то длительных интенсивных операциях с файлами, например при копировании нескольких терабайт записей по сети.

Приблизительно треть начинки составляет система питания. Здесь мы видим мощные тороидальные трансформаторы, созданные специально по заказу Aurender. Питание только линейное, что сразу выгодно отличает этот продукт от любых миниатюрных ПК с платами Mini-ITX.

Под мощным радиатором можно увидеть процессор и чипсет AMD. Материнская плата спроектирована именно для Aurender. Это кастомное решение, без нагромождения ненужных в данном случае узлов и разъемов, без высокочастотных цепей и линий передачи видеосигнала, которые есть в ПК общего назначения.

Очень интересно реализована цифровая секция встроенного USB ЦАП. После того, как сигнал прошел от USB на цифровой микроконтроллер XMOS XU216, далее он поступает на гальванические изоляторы и на FPGA Xilinx Spartan 6, где сигнал переформатируется и тактуется от генератора тактового сигнала с очень низким джиттером 100 фс. Кстати, предусмотрена возможность получать и внешний цифровой S/PDIF-сигнал по оптическому входу Toslink. Приемом занимается трансивер PCM9211.

Преобразователь AKM AK4490 соседствует с огромным количеством конденсаторов Nichicon Fine Gold. Далее видны ОУ TI OPA827 и AD825. Все узлы схемы питаются от линейного источника питания. То есть это не какая-то интегрированная звуковая карта из нескольких деталек «на сдачу». Это полноценный качественный USB ЦАП со множеством фирменных инновационных решений. По объему звуковая карта занимает где-то треть места в корпусе.

Еще одна интересная возможность — выделенный аудиоразъем USB для подключения внешних ЦАП. Этот разъем отличается от прочих портов USB для внешних накопителей, он имеет повышенное экранирование от внешних помех и отдельное сверхмалошумящее питание в разъеме.

Звучание и тестирование в RightMark Audio Analyzer

Тестируемое устройство Aurender A100
Режим работы 24 бит, 44 кГц
Звуковой интерфейс ASIO
Маршрут сигнала RCA
Версия RMAA 6.4.5
Фильтр 20 Гц — 20 кГц да
Нормализация сигнала да
Изменение уровня −1,0 дБ / −1,0 дБ
Неравномерность АЧХ (в диапазоне 40 Гц — 15 кГц), дБ −0,00, −0,11 Отлично
Уровень шума, дБ (А) −117,4 Отлично
Динамический диапазон, дБ (А) 118,0 Отлично
Гармонические искажения, % 0,00016 Отлично
Гармонические искажения + шум, дБ (A) −108,7 Отлично
Интермодуляционные искажения + шум, % 0,00053 Отлично
Взаимопроникновение каналов, дБ −98,1 Отлично
Интермодуляции на 10 кГц, % 0,00051 Отлично
Общая оценка Отлично

Тестирование линейного выхода продемонстрировало высокое качество начинки и соответствие заявленным паспортным параметрам по сверхнизким искажениям. Еще раз напомним читателям, что измерения дают только справочную информацию. По цифрам невозможно определить качество звучания. Как же его тогда определить? Только подключив высококачественную аппаратуру и поставив хорошо знакомую вам музыку на воспроизведение.

Звучание Aurender A100 с линейных выходов высококачественное. Звук имеет аудиофильский характер. Можно назвать его хорошо сбалансированным. Никакой диапазон частот не выделяется. Стереопанорама широкая, но не чересчур. Чистый, приятный звук, который хорошо подходит для долговременного прослушивания.

К выделенному аудиофильскому USB-выходу можно подключать внешние USB ЦАП, совместимые с USB Class Audio 2.0. Среди современных ЦАП таких примерно 90%, их можно опознать по возможности работы без установки драйвера под macOS X, Linux, iOS, Android. Выделенный USB-порт со сверхнизкими шумами питания в первую очередь поможет тем ЦАП, которые питаются напрямую от шины. Причем выдаваемый через разъем ток повышен до 1 А, тогда как у разъемов USB 2.0 в ПК, ноутбуках и мобильных устройствах ток в разы меньше. Мы подключили к этому выходу высококачественный внешний ЦАП и можем подтвердить отличную беспроблемную работу. Побитно выводятся любые форматы, включая DSD через DoP. Что касается влияния выделенного порта на звук, оно сильно зависит от подключенного устройства. Не исключено, что для многих USB ЦАП такой порт будет предпочтительнее, чем подключение к обычному компьютеру, и поможет раскрыть потенциал устройства.

Выводы

Aurender A100 представляет собой интереснейшее устройство собственной разработки компании. Оно полностью заменяет шумный персональный компьютер и способно предложить пользователю тишину и комфорт при прослушивании любимых записей. Можно воспользоваться весьма интересным встроенным ЦАП или подключить свой любимый внешний USB ЦАП. Но A100 — это не только музыкальный плеер для собственной коллекции записей. Это еще и современный стример потоковых сервисов, включая Hi-Res-записи. В этом случае пользователь получает MQA-декодер, который наиболее полно раскрывает потенциал качества потоковых записей высокого разрешения. Для тех, кто не очень хочет таскать по комнате iPad, в комплекте есть и традиционный компактный и легкий ИК-пульт ДУ со всеми часто используемыми функциями управления. А ориентироваться по списку воспроизведения позволит 3″ AMOLED-экран, куда можно вывести название композиций либо красивый стрелочный индикатор уровня.

Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 5, заключительная


Всем привет. Эта не последняя статья о моем аудиоплеере. Время разработки составило четыре года, и мне кажется, что это не конец, я его не закончу никогда. Все равно будут модернизации, обновления ПО и прочее. Кто знает, может, и вторая версия.

Плеер одномодульный, с пассивным, естественным охлаждением. На борту мини-компьютер, жесткий диск, дисплей, цап, регулятор громкости, встроенный усилитель мощности 2×45 Вт. Доступ к аудио-данным на жестком диске организован по сети с помощью Samba-сервера, никаких USB для флешек. Для настройки машины — SSH сервер, собственный клиент под Android для удаленного управления со смартфона.

Содержание / Contents


flac (Free Lossless Audio Codec)
wav (PCM)
m4a (Apple Lossless Audio Codec)
ape (Monkey’s Audio) (44K/16b)
ogg (vorbis)
mp3 (mpeg layer-3)
aac (Advanced Audio Coding)
ac3 (Audio Codec 3)
wv (WavPack)
wma (Windows Media Audio)
mpc (MusePack SV8)
cue (Плейлисты типа Cue Sheet) Рис. 2. Структурная схема аудиоплеера.
Зеленым цветом на структурной схеме я отметил части которые были рассмотрены ранее. Из нерассмотренных — видеоадаптер с дисплеями и подключение Raspberry Pi к устройствам. К сожалению, у малинки нет SATA портов, поэтому жесткий диск подключен через переходник USB ->SATA.

Скорость загрузки файлов в аудиоплеер по сети при этом составила в среднем 8 МБайт/c. Это, как запись на флешку. Чтобы иногда закинуть новый альбом — вполне хватает, а само наличие переходника — конечно, не красит устройство.

Клавиатура плеера — обычные кнопки, подключенные к GPIO малинки. SPI интерфейс регулятора громкости — программный, видеоадаптера — аппаратный.

Сейчас для миникомпьютеров полно полноценных HDMI дисплеев, маленьких, компактных. Но, когда я начинал этот проект, в Китае были только SPI дисплеи, на которых можно было получить максимум 3 кадра в секунду. Для отображения статической информации, как у меня, пожалуй сойдет, но для этого надо было бы устанавливать одну из графических надстроек Линукса, а это лишняя нагрузка на Raspbyrry Pi, который и без нее не шустрый.

И я подумал, что нужно сделать отдельное устройство, которое будет заниматься графикой. Да какой там графикой, напечатать десяток строк текста и пару иконок. А что, в этом случае можно и два дисплея прикрутить, что я и сделал. Корпус — широкий, надо было чем-то занять пространство, чтоб и красиво было и ничего лишнего. Под руку попался китайский дисплей 400×240 точек на контроллере ILI9327 и еще маленький 320 на 240 точек (ILI9328).

Вообще, потом, когда я написал клиент под Андроид, я понял, что дисплеи в принципе необязательны и смотреть я на них практически перестал. Падаешь на диван — запускаешь клиент на телефоне и все, слушаешь музыку.


Рис. 3. Снимок экрана аудиоплеера.
Малинка отсылает по SPI таблицу данных, фиксированного размера, с текстом (cp1251), который надо отобразить на дисплеях. А задача видеоадаптера — все напечатать на дисплее, вот и весь принцип. Шрифт и иконки находятся в памяти микроконтроллера, в таблице — только номера иконок. Шрифт консольный 10×18 из Windows, немножко скорректированный к 8×16 пикселей.

Список с курсором прорисовывается за 55. 5 ms, вся информация — за 65,4 ms. Что касается списка, 50 ms — на мой взгляд, это минимум, при котором процесс смены текста еле заметен. Кадры меняются не постоянно, а по требованию, например, сместил курсор вниз или начал воспроизводиться другой файл. Но и не реже одного раза в секунду, так как надо отсылать время воспроизведения.

При передаче никакого протокола нет, таблицы просто идут одна за другой. По сигналу CS chip select интерфейса SPI, после завершения передачи таблицы данных, происходит дополнительная синхронизация кадра, то есть, если даже произойдет какой-то сбой при передаче данных, то на следующем кадре таблица будет принята корректно.


Рис. 4. Схема видеоадаптера.
Рис. 5. Платы видеоадаптера.

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


Рис. 6. Видеоадаптер в корпусе.
Рис. 7. Электрическая схема плеера.
Все платы установлены на алюминиевом основании 3 мм (см. рис. 8). Корпус пластмассового плеера видеомагнитофона был неровный, со всякими выступами и арматурами, алюминиевый фундамент позволил устанавливать платы любым образом, обеспечить удобное заземление некоторых узлов. По поводу заземления: платы аналогового тракта соединены с землей только в регуляторе громкости и ЦАП-е, фактически через цифровую землю i2s шины и SPI шины у регулятора громкости, которые далее на разъем малинки и соединяются с землей через крепежные отверстия Raspbery PI.

Железо силового трансформатора для усилителя мощности также заземлено. В усилителе мощности конструктивно заземлены только радиаторы (прикручены к фундаменту), которые за счет диэлектрика не контактируют с микросхемами усилителя. Общий провод акустических систем подключается непосредственно к блоку питания, а не к плате усилителя мощности.

Пятивольтовый блок питания заземлен с обеих сторон через крепежные отверстия, важно подключение Y- конденсаторов импульсного блока питания к земле. Жесткий диск запитан не по шнурку USB, а отдельными проводами.

У Raspbery очень нежные GPIO поэтому резисторы R1-R6 у клавиатуры исключают вариант замыкания на землю пина, при теоретически возможной, неправильной его конфигурации, вместо входа на выход. Я старался на каждый GPIO повесить по резистору, на всякий случай. Почти все провода идут под фундаментом — красота правда?


Рис. 8. Под капотом. Писать свой плеер полностью смысла не вижу, врят ли он получится лучше чем существующие. Поэтому, в качестве инструмента воспроизведения выступает mplayer — не путать с Mplayer2. Если у вас установлен mplayer, то скорее всего это mplayer2.

На мой взгляд, этот плеер лучшее что есть под Линукс. Он консольный, существуют даже версии для Windows. Собственно ОС Линукс — это консольная операционная система по своей природе. Графических оболочек — надстроек над mplayer очень много, но видео мы смотреть не будем. Нас интересует аудио.

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

Признаться, все же руку я к нему тоже приложил. Когда пришло время сделать поддержку CUE-файлов в своем ПО, я заметил, что позиционирование именно в flac файлах работает некорректно. Плеер писал ошибку и немного мазал мимо, от 5 до 10 секунд. Это была катастрофа.

Начал разбираться, нашел версию под windows, которая работала исправно. Затем нашел исходный код именно этой версии. Сравнив исходные коды библиотеки ffmpeg (часть которая отвечает за flac), понял, что придется пересобрать плеер с последней версией ffmpeg. С последней — не получилось, но получилось — с не самой последней. И то, не на ARM, а на обычном ПК. Но все равно, радовался я как ребенок. Запустил сборку на raspberry.

Собирал я день, ночь, просыпаюсь — ошибка сегментации в компиляторе. Компилятор лег. Что делать? Думаю, может, проблема в малинке? Запускаю сборку на Allwinner A20, на нем у меня торрент качалка и DLNA. Собирает быстрее, но та же проблема, компилятор падает и пишет, что в какой-то там функции произошел сбой при компиляции.

Исходный код исправный, так как успешно компилится под x86. Смотрю код и понимаю, что это зловещая функция отвечает за какой-то видеокодек. Долго не думая, вытираю в ней все и return 0. Видео мы им смотреть точно не будем. Еще таких пару функций и полдня компиляции и вот он, заветный бинарник, который корректно позиционирует в формате flac. Запускаем . . . ммм! Звучать стало лучше, точно лучше. А может, самовнушение. Переутомился я.

Мое основное ПО — это тоже надстройка над mplayer. Только не совсем графическая. Я назвал его Audio Commander, имя, как потом оказалось, уже занято — ну да и фиг с ним.

Мой Audio Commander управляет всем плеером: клавиатура, регулятор громкости, и обработка команд от клиента реализована в основном потоке (функция main). Основной функционал- это открывать папки и запускать mplayer для воспроизведения. При запуске mplayer в нашем распоряжении его стандартные потоки ввода-вывода.

В stdout mplayer любезно предоставляет всю необходимую информацию: частота дискретизации файла, разрядность, битрейт, также выходной формат, который идет в ALSA. Он естественно сответствует формату на шине i2S и является входным для нашего ЦАП.

В stdin отправляются команды управления для mplayer-а, например, pause, seek. Данные из stdout попадают в текстовый парсер, результат которого далее идет на дисплей и по сети клиенту (время воспроизведения напимер). Парсер stdout мплеера, парсер CUE-файлов, парсер файла настроек, парсер команд от клиента, все они сгенерированы замечательной связкой — flex и bison, что сэкономила кучу времени при написании кода.

Audio Commander у меня находится в папке /programs/ac там же, файл настроек ac_settings. conf и папка logs. Папка logs по факту в RAMFS в ней файл stderr. log в него пишется всякая информация в процессе работы программы.

Исходный код Audio Commander — это проект в netbeans IDE. Для компиляции надо подключится к удаленному узлу 192. 168. 0. 83, то есть, к аудиоплееру, пользователь root, пароль pi (SSH). Адрес аудиоплеера в сети я задал статически. После компиляции результат можно найти в /root/.nebeans, эта папка тоже в RAMFS. Поэтому, до перезагрузки свежескомпилированный бинарник надо скопировать в /programs/ac.

ОС raspbian (debian) с ядром реального времени. Есть от него прок или нет, не знаю, но говорят, что круто, для всяких серьезных систем. Для более быстрой загрузки ОС лучше применить хорошую SD карту, объемом не менее 1 Gb.
Жесткий диск плеера должен быть отформатирован в EXT4, монтируется в /mnt/sound. Но это не обязательно, в файле настроек плеера ac_settings. conf, можно поменять путь к музыкальному каталогу. Плеер представляет собой плеер по папкам. Слушаю музыку обычно я в режиме альбома, или подборки лучших композиций какой-то конкретной группы. Следовательно, вся музыка у меня структурирована по папкам: буква алфавита/группа/альбом.
Например Eng/P/Papa Roach/02. Time for Annihilation/ Следовательно, список воспроизведения строится из открытой папки. Также существует возможность открывать папку с вложенными подпапками, из всех каталогов формируется один единственный список воспроизведения. CUE-файлы представляются также в виде папок. А одноименные файлы-образы в списке не отображаются, чтобы не смущать обычного пользователя.
Рис. 9. Отображение CUE-файлов (Клиент C83).
а) Папка, содержащая CUE-файлы. б) Папка в файловом менеджере. в) Открытый CUE-файл, файл образа к которому не был найден. г) Открытый CUE-файл.

Пока поддерживаются только классические простые CUE-файлы. При открытии папок с подпапками, CUE-файлы которые попадутся на пути, также будут открыты.
Клиент написал для Android, для Windows хотел, но потом передумал.
Это мое первое приложение для ОС Android, но не первое в среде Embarcadero RAD Studio (С++ Builder). Почему? Потому что я пишу на Си, с Java я не знаком, только поэтому.


Рис. 10. Снимки экрана клиента С83.

Итак, основной экран разделен на две вкладки: плеер и опции. На вкладке Плеер снизу кнопки управления, громкость и время воспроизведения. Здесь всё как обычно: список можно прокрутить вверх и вниз, двойной клик — «дабл тап» открывает папки, запускает воспроизведение, «лонг тап» — контекстное меню для элементов списка. Можно прокрутить время воспроизведения. Существует возможность запланировать выключение плеера.

В регуляторе громкости сделал защиту от резкого увеличения громкости при случайном прикосновении. После 40% громкость добавляется по 10% при прикосновении. Или можно выбрать любую при перетаскивании ползунка, что не может произойти случайно, почти.
Плеер помнит воспроизведенные файлы, в клиенте они меняют цвет, немножко темнеют.

Не трудно заметить, что функция случайный порядок у меня организована перемешиванием самого списка. Сразу видно, что за чем будет играть. Алгоритм воспроизведения прост — по порядку, сверху вниз, но слушатель может вмешиваться в этот алгоритм, например, начать воспроизведение списка с середины. Или например, если во время воспроизведения переставить курсор на трек 15. Stars (см. рис 10, левый снимок экрана), то после воспроизведения 02. Chances запоет 15. Stars.

После воспроизведения остатка списка плеер доиграет все пропущенные, непрослушанные треки сверху вниз по списку. Пользователь также может установить курсор на уже прослушанный трек, с желанием прослушать его еще раз, после его прослушивания, воспроизведение вернется к не прослушанным композициям. Смена директории во время прослушивания — это создание нового списка. После завершения композиции из старого списка воспроизведение начнется с композиции, отмеченной курсором. Если курсор не на аудиофайле, то воспроизведение начнется с первого в списке файла.


Рис. 11. Вкладка «Опции»
В опциях свалено все в кучу, потому что их пока еще немного (все что есть видны на скриншоте), еще буду добавлять, потом может быть посортирую — это первое, а второе — я ими практически не пользуюсь. Вверху «случайный порядок» и «повтор списка», а кнопка «Завершение работы» внизу и всегда видна. Все остальные опции, также как и список, прокручиваются вверх и вниз, если развернуть все.
Общается клиент и плеер с помощью текстовых сообщений, похожих на XML синтаксис. Надо было делать не так. К фигам эти GPIO, надо было делать все на USB. Клавиши, регулятор громкости — это USB клавиатура — самодельная разумеется. USB ЦАП — не проблема, USB дисплей, а почему бы и нет! Это позволило бы взять мини-ПК без HDMI, они дешевле. И вообще, все это можно было бы провернуть на любой материнской плате, и только потом подобрать современный мини-ПК. Надо осваивать USB!

Блок питания ЦАПа надо было разместить на одной плате с ЦАПом. Для лучшего охлаждения днище корпуса надо делать перфорированным, а платы размещать вертикально. Жаркое лето плеер успешно пережил. Измерял, трансформатор был нагрет до температуры 50 градусов. Нормально, но все же надо делать как-то так:


Рис. 12. Пример хорошего охлаждения
Рис. 13. В интерьере Напоследок посмотрите видео. Ну что за статья без видоса на десерт. Сразу предупрежу, режиссер с меня не важный, я не красноречив и не многословен.
1. Мой образ SD карты с ОС Raspbian
2. 🎁Исходный код AC  362.23 Kb ⇣ 62
3. 🎁Исходный код С83  15.84 Mb ⇣ 326
4. 🎁Исходный код для видеоадаптера  288.86 Kb ⇣ 62
5. 🎁Плата и схема видеоадаптера  100.68 Kb ⇣ 83
6. 🎁Схемы  31.64 Kb ⇣ 86

Спасибо за внимание!

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.

 

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


Как подключить I2S DAC к Raspberry Pi

Первый вариант ЦАП:

DACPi A/BPi A+/B+, Pi2, Pi3, PiZPCM5102
Vcc (+5v)P5-1J8-2
+3.3v (not used, just to check youself)P5-2J8-1
BCKP5-3J8-12Audio data bit clock input
LRCK(LCK)P5-4J8-35Audio data word clock input
DATA(DIN)P5-6J8-40Audio data input
GndP5-7J8-39

В описании ЦАП китаец пишет, что неверно обозначены BCK и DATA, но, наверно, это относится к ранним модификациям платы — на моей крайний разъем обозначен BCK, и так его и надо подключать.

Второй вариант ЦАП:

К первому варианту добавляются контакты:

DACPi A/BPi A+/B+, Pi2, Pi3, PiZPCM5102
GNDP1-6J8-6
FLT (gnd)P1-14J8-14Filter select : Normal latency (Low) / Low latency (High)
DMP (gnd)P5-8J8-20?De-emphasis control for 44.1kHz sampling rate(1): Off (Low) / On (High)
SCLP1-5J8-5?System clock input
FMT (gnd)P1-18J8-18Audio format selection : I2S (Low) / Left justified (High)
XMT (3.3v)P1-1J8-1

Подробно разъемы для интересующихся расписаны на вики: RPi Low-level peripherals.

PCM5102 datasheet

↑ Полезности по теме

• [1] «77 синтезированных и натуральных сигналов для объективной экспертизы и субъективной оценки разнообразной аудиотехники», Приложение к журналу «Аудиохобби», 2004, H.Сухов, В.Широков. • Даташит на чип CS4350.pdf • Заказать готовый I2S DAC для «Raspberry» из Китая! • Заказать одноплатный миникомпьютер Raspberry Pi оттуда же. • Заказать чип CS4350 на Ебее, оказалась редкая вещь, нашёл только здесь.

↑ Схема плеера


Рис. 7.

Электрическая схема плеера.
Все платы установлены на алюминиевом основании 3 мм (см. рис. 8). Корпус пластмассового плеера видеомагнитофона был неровный, со всякими выступами и арматурами, алюминиевый фундамент позволил устанавливать платы любым образом, обеспечить удобное заземление некоторых узлов. По поводу заземления: платы аналогового тракта соединены с землей только в регуляторе громкости и ЦАП-е, фактически через цифровую землю i2s шины и SPI шины у регулятора громкости, которые далее на разъем малинки и соединяются с землей через крепежные отверстия Raspbery PI.
Железо силового трансформатора для усилителя мощности также заземлено. В усилителе мощности конструктивно заземлены только радиаторы (прикручены к фундаменту), которые за счет диэлектрика не контактируют с микросхемами усилителя. Общий провод акустических систем подключается непосредственно к блоку питания, а не к плате усилителя мощности.

Пятивольтовый блок питания заземлен с обеих сторон через крепежные отверстия, важно подключение Y- конденсаторов импульсного блока питания к земле. Жесткий диск запитан не по шнурку USB, а отдельными проводами.

У Raspbery очень нежные GPIO поэтому резисторы R1-R6 у клавиатуры исключают вариант замыкания на землю пина, при теоретически возможной, неправильной его конфигурации, вместо входа на выход. Я старался на каждый GPIO повесить по резистору, на всякий случай. Почти все провода идут под фундаментом — красота правда?


Рис. 8.

Под капотом.

Тренды

Я вам легко назову четыре основных тренда в компьютерном аудио прошлого и этого года:

  • использование ARM-плат для создания сетевых источников и сетевых плееров
  • запуск большого количества вспомогательных плат для высококачественного вывода цифры или аналогового сигнала с ARM-платы
  • появления и развитие специальных дистрибутивов ОС Linux (+плееров), заточенных под «аудиофильское» проигрывание файлов
  • Интеграция этих специальных дистрибутивов и сервисов потокового аудио (Spotify, Tidal, Deezer, Qobuz)

Если вы не чувствуете в себе сил, то можно приобрести уже готовое изделие на ARM-платах — Auralic Aries, Audio 359 Player, Sonore μRendu, Bluesound Node 2i.

Приступим!

↑ Видеоадаптер

Сейчас для миникомпьютеров полно полноценных HDMI дисплеев, маленьких, компактных. Но, когда я начинал этот проект, в Китае были только SPI дисплеи, на которых можно было получить максимум 3 кадра в секунду. Для отображения статической информации, как у меня, пожалуй сойдет, но для этого надо было бы устанавливать одну из графических надстроек Линукса, а это лишняя нагрузка на Raspbyrry Pi, который и без нее не шустрый.
И я подумал, что нужно сделать отдельное устройство, которое будет заниматься графикой. Да какой там графикой, напечатать десяток строк текста и пару иконок. А что, в этом случае можно и два дисплея прикрутить, что я и сделал. Корпус — широкий, надо было чем-то занять пространство, чтоб и красиво было и ничего лишнего. Под руку попался китайский дисплей 400×240 точек на контроллере ILI9327 и еще маленький 320 на 240 точек (ILI9328).

Вообще, потом, когда я написал клиент под Андроид, я понял, что дисплеи в принципе необязательны и смотреть я на них практически перестал. Падаешь на диван — запускаешь клиент на телефоне и все, слушаешь музыку.


Рис. 3.

Снимок экрана аудиоплеера.
Малинка отсылает по SPI таблицу данных, фиксированного размера, с текстом (cp1251), который надо отобразить на дисплеях. А задача видеоадаптера — все напечатать на дисплее, вот и весь принцип. Шрифт и иконки находятся в памяти микроконтроллера, в таблице — только номера иконок. Шрифт консольный 10×18 из Windows, немножко скорректированный к 8×16 пикселей.
Список с курсором прорисовывается за 55. 5 ms, вся информация — за 65,4 ms. Что касается списка, 50 ms — на мой взгляд, это минимум, при котором процесс смены текста еле заметен. Кадры меняются не постоянно, а по требованию, например, сместил курсор вниз или начал воспроизводиться другой файл. Но и не реже одного раза в секунду, так как надо отсылать время воспроизведения.

При передаче никакого протокола нет, таблицы просто идут одна за другой. По сигналу CS chip select интерфейса SPI, после завершения передачи таблицы данных, происходит дополнительная синхронизация кадра, то есть, если даже произойдет какой-то сбой при передаче данных, то на следующем кадре таблица будет принята корректно.


Рис. 4.

Схема видеоадаптера.


Рис. 5.

Платы видеоадаптера.

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


Рис. 6.

Видеоадаптер в корпусе.

↑ Настройка ОС Raspbian

Для того, чтобы включить i2S-выход на «Малинке», в операционной системе должны присутствовать и быть загружены специальные модули ядра. В официальном дистрибутиве Raspbian (Debian для «Малинки») путь к модулям следующий: /lib/modules/3.12.26-rt40+/kernel/sound
Версия ядра может отличаться. Подключаются модули с помощью фала /etc/modules

. В моем случае файл modules имеет следующее содержимое:
# /etc/modules: kernel modules to load at boot time. # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with «#» are ignored. # Parameters can be specified after the module name. snd_soc_bcm2708_i2s bcm2708_dmaengine snd_soc_pcm5102a snd_soc_hifiberry_dac
Я использую програмный модуль для pcm5102 , так как он не проверяет наличие чипа по SPI или I2C, как например другой модуль snd_soc_pcm1794a.

Далее проверяем командой aplay –l

наличие звуковых устройств.
[email protected]:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
Скачал последнюю версию Raspbian — посмотреть, что появилось нового. Список поддерживаемых микросхем увеличился, это радует.


Рис. 10

Список модулей в текущей версии Raspbian

Класс MCP4725GpioProvider

Этот GPIO провайдер расширяет абстрактный класс DacGpioProviderBase и реализует интерфейс DacGpioProvider, для работы с пином MCP4725, как с родным пином Pi4J.

MCP4725GpioProvider(int, int)

Это конструктор по умолчанию.

1 public MCP4725GpioProvider(int busNumber, int address) throws UnsupportedBusNumberException, IOException

Параметры busNumber — номер шины. address — I2C адрес устройства. Возвращает новый экземпляр MCP4725GpioProvider Бросает UnsupportedBusNumberException — если данный номер шины не поддерживается базовой системой. IOException — если сообщение с шиной I2C не работает.

MCP4725GpioProvider(I2CBus, int)

Это альтернативный конструктор, который можно использовать для создания экземпляра MCP4725.

1 public MCP4725GpioProvider(I2CBus bus, int address) throws IOException

Параметры busNumber — I2C шина. address — I2C адрес устройства. Возвращает новый экземпляр MCP4725GpioProvider Бросает IOException — если сообщение с шиной I2C не работает.

setValue(Pin, double)

Устанавливает аналоговое выходное значение на выходной контакт на ЦАП.

1 public void setValue(Pin pin, double value)

Параметры pin — номер пина ЦАП. value — необработанное значение для отправки на ЦАП. (Между: 0..4095).

getName()

Получает имя экземпляра поставщика ЦАП.

1 public String getName()

Возвращает имя экземпляра поставщика ЦАП.

shutdown()

Этот метод используется платформой для отключения экземпляра ЦАП MCP4725. Этот метод также закроет шину I2C для подключенного MCP4725.

getMinSupportedValue()

Возвращает минимальное поддерживаемое аналоговое значение ЦАП.

1 public double getMinSupportedValue()

Возвращает минимальное поддерживаемое аналоговое значение.

getMaxSupportedValue()

Возвращает максимальное поддерживаемое аналоговое значение для реализации ЦАП. (Например, максимальное значение 10-разрядного АЦП составляет 1023, а максимальное значение 12-разрядного АЦП — 4095.

1 public double getMaxSupportedValue()

Возвращает максимальное поддерживаемое аналоговое значение.

Наверняка им неудобно пользоваться? Я всю жизнь выводил звук с компа по USB и мне норм.

Предполагается, что такой ARM-компьютер будет работать без монитора и клавиатуры, подключенным к локальной сети по Wi-Fi или сетевым кабелем, а для удобного управление проигрыванием обязательно нужен iPhone/iPad или телефон/планшет с Android или Windows Phone. Это действительно удобнее, чем тулить у компьютера.

Посмотрите, как это можно быть красиво и удобно:

Класс DacGpioProviderBase

Этот базовый поставщик GPIO определяет требуемые интерфейсы и реализует базовую функциональность для микросхем расширения ЦАП (цифро-аналоговых) как родные выводы Pi4J GPIO.

DacGpioProviderBase(Pin[])

Конструктор по умолчанию.

1 public DacGpioProviderBase(Pin[] pins)

Параметры pins — совокупность всех выводов GPIO, используемых с реализацией этого поставщика ЦАП. Возвращает новый экземпляр DacGpioProviderBase

setPercentValue(Pin, Number)

Устанавливает текущее значение в процентах от доступного диапазона вместо необработанного значения.

1 public void setPercentValue(Pin pin, Number percent)

Параметры pin — вывод GPIO. percent — процентное значение от 0 до 100.

setPercentValue(GpioPinAnalogOutput, Number)

Устанавливает текущее аналоговое значение в процентах от доступного диапазона вместо необработанного значения (масштабированное число в диапазоне значений АЦП).

1 public void setPercentValue(GpioPinAnalogOutput pin, Number percent)

Параметры pin — вывод GPIO. percent — процентное значение от 0 до 100.

setValue(Pin, Number)

Устанавливает аналоговое выходное значение (необработанное значение) на выходной контакт ЦАП.

1 public void setValue(Pin pin, Number value)

Параметры pin — номер пина ЦАП. value — необработанное значение для отправки на ЦАП.

shutdown()

Этот метод используется платформой для отключения экземпляра ЦАП. Этот метод также закроет шину I2C для подключенного ЦАП.

setShutdownValue(Number, Pin … )

Устанавливает значение отключения, которое ЦАП должен применять к данному выводу GPIO, когда экземпляр класса уничтожается.

1 public void setShutdownValue(Number value, Pin … pin)

Параметры value — значение отключения, применяемое к данному выводу (-ам). pin — вывод аналогового выхода (один или несколько выводов).

getShutdownValue(Pin)

Возвращает значение отключения, которое ЦАП должен применять к указанному выводу GPIO при уничтожении класса.

1 public Number getShutdownValue(Pin pin)

Параметры pin — аналоговый выход. Возвращает значение отключения, применяемое к данному выводу.

setShutdownValue(Number, GpioPinAnalogOutput …)

Устанавливает значение отключения, которое ЦАП должен применять к данному выводу GPIO, когда экземпляр класса уничтожается.

1 public void setShutdownValue(Number value, GpioPinAnalogOutput … pin)

Параметры value — значение отключения, применяемое к данному выводу (-ам). pin — вывод аналогового выхода (один или несколько выводов).

getShutdownValue(GpioPinAnalogOutput)

Возвращает значение отключения, которое ЦАП должен применять к указанному выводу GPIO при уничтожении класса.

1 public Number getShutdownValue(GpioPinAnalogOutput pin)

Параметры pin — аналоговый выход. Возвращает значение отключения, применяемое к данному выводу.

↑ Файлы

1. Мой образ SD карты с ОС Raspbian 2. ▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.
3. ▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

4. ▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

5. ▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

6. ▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

Спасибо за внимание!

Платы для вывода цифры/аналога (Шляпы 2018)

Качество результат очень сильно зависит от используемой платы вывода. На рынке есть десятки производителей, но уже сформировались лидеры

  1. Pi2Design 502DAC 100$ — обсуждаем тут
  2. Allo Digione — обсуждаем тут
  3. HiFiBerry Pro Digi Пробуем и другие!

↑ Эксплуатация. Клиент С83

Плеер представляет собой плеер по папкам. Слушаю музыку обычно я в режиме альбома, или подборки лучших композиций какой-то конкретной группы. Следовательно, вся музыка у меня структурирована по папкам: буква алфавита/группа/альбом. Например Eng/P/Papa Roach/02. Time for Annihilation/
Следовательно, список воспроизведения строится из открытой папки. Также существует возможность открывать папку с вложенными подпапками, из всех каталогов формируется один единственный список воспроизведения. CUE-файлы представляются также в виде папок. А одноименные файлы-образы в списке не отображаются, чтобы не смущать обычного пользователя.


Рис. 9

. Отображение CUE-файлов (Клиент C83).
а)
Папка, содержащая CUE-файлы.
б)
Папка в файловом менеджере.
в)
Открытый CUE-файл, файл образа к которому не был найден.
г)
Открытый CUE-файл.

Пока поддерживаются только классические простые CUE-файлы. При открытии папок с подпапками, CUE-файлы которые попадутся на пути, также будут открыты. Клиент написал для Android, для Windows хотел, но потом передумал. Это мое первое приложение для ОС Android, но не первое в среде Embarcadero RAD Studio (С++ Builder). Почему? Потому что я пишу на Си, с Java я не знаком, только поэтому.


Рис. 10.

Снимки экрана клиента С83.

Итак, основной экран разделен на две вкладки: плеер и опции. На вкладке Плеер снизу кнопки управления, громкость и время воспроизведения. Здесь всё как обычно: список можно прокрутить вверх и вниз, двойной клик — «дабл тап» открывает папки, запускает воспроизведение, «лонг тап» — контекстное меню для элементов списка. Можно прокрутить время воспроизведения. Существует возможность запланировать выключение плеера.

В регуляторе громкости сделал защиту от резкого увеличения громкости при случайном прикосновении. После 40% громкость добавляется по 10% при прикосновении. Или можно выбрать любую при перетаскивании ползунка, что не может произойти случайно, почти. Плеер помнит воспроизведенные файлы, в клиенте они меняют цвет, немножко темнеют.

Не трудно заметить, что функция случайный порядок у меня организована перемешиванием самого списка. Сразу видно, что за чем будет играть. Алгоритм воспроизведения прост — по порядку, сверху вниз, но слушатель может вмешиваться в этот алгоритм, например, начать воспроизведение списка с середины. Или например, если во время воспроизведения переставить курсор на трек 15. Stars

(см.
рис 10
, левый снимок экрана), то после воспроизведения
02. Chances
запоет
15. Stars.
После воспроизведения остатка списка плеер доиграет все пропущенные, непрослушанные треки сверху вниз по списку. Пользователь также может установить курсор на уже прослушанный трек, с желанием прослушать его еще раз, после его прослушивания, воспроизведение вернется к не прослушанным композициям. Смена директории во время прослушивания — это создание нового списка. После завершения композиции из старого списка воспроизведение начнется с композиции, отмеченной курсором. Если курсор не на аудиофайле, то воспроизведение начнется с первого в списке файла.


Рис. 11.

Вкладка «Опции»
В опциях свалено все в кучу, потому что их пока еще немного (все что есть видны на скриншоте), еще буду добавлять, потом может быть посортирую — это первое, а второе — я ими практически не пользуюсь. Вверху «случайный порядок» и «повтор списка», а кнопка «Завершение работы» внизу и всегда видна. Все остальные опции, также как и список, прокручиваются вверх и вниз, если развернуть все. Общается клиент и плеер с помощью текстовых сообщений, похожих на XML синтаксис.

Наверное собрать все вместе и запустить это очень сложно? Linux учить надо, да?

Во-первых, когда из разных комплектующих своими руками собирается что-то работающее — это невероятно увлекательно. Во-вторых, это экономично, да, уже сейчас за 399$, 999$ или 9000$ можно купить неплохие стримеры, но это неспортивно.

В третьих, вы создаете гибкий конструктор, в нем можно улучшить тактовый генератор, или поставить другой плеер, или по-другому организовать хранение файлов или подключить новый стимминговый сервис (например, Spotify) — в фирменных источниках все зависит от производителя, со своими источником можно делать всё что угодно. Ну и наконец, это несложно — сложность варьируется от простого прищелкивания платы расширения до небольшой пайки. Ну и сам Linux не так страшен. Установить на него специальную аудифильскую ОС Linux тоже просто. Дальнейшая настройки и использование не потребуют от вас знания секретных команд. Потребуется время, чуть внимания, но вы это сможете!

Зачем это все?

Это попытка собрать за небольшие деньги (70-400$) собрать готовый сетевой источник или сетевой плеер (сразу аналоговый сигнал на усилитель). Такой сетевой источник поддерживает игру файлов с сетевых папок, NAS, поддерживает Airplay и играет музыку из стриминговых сервисов Tidal, Qobuz, Spotify. Очень попытка удачная!
Для ясности, ARM — это тип процессора, вот у вас в ноутбуке стоит процессор Intel, а на мини-платах стоит ARM-процессор. Такой процессор потребляет очень мало энергии, выделяет мало тепла, ему не нужен вентилятор. Вся мини-плата обычно размером с кредитную карту. Мощности такой мини-платы хватает на воспроизведение аудио высокого разрешения, в том числе формата DSD.

Когда подобный ARM-компьютер за 50$ играет сравнимо или даже лучше чем сетевой стример за условных 2000$ от условной компании Nail или Limm, то у людей случается настоящий когнитивный диссонанс («So, is it bye-bye Naim NDX»; «couldn’t tel a difference between Pi and my Naim NDX», «My ND5 in to Naim DAC/XPS vs Raspberry Pi with HiFiBerry Digi+ in to the same». ).

[DIY Guide] Raspberry Pi Network Music Streamer с сенсорным экраном

Открытый исходный код и доступный, но полнофункциональный и настраиваемый!

Мой готовый музыкальный стример!

Я купил все компоненты, используемые в этом руководстве.

Недавно я ознакомился с Orchard Audio PecanPi Streamer Ultra, сетевым музыкальным стримером на базе Raspberry Pi со встроенным сенсорным экраном. Хотя я ценил идею устройства и качество звука, я изо всех сил пытался оправдать цену и компромиссы, сделанные в отношении удобства и функций.

Моим самым большим выводом из использования коммерческого сетевого музыкального стримера на основе Pi было то, что я мог создать его сам!

Многие важные аспекты стримера на основе Pi стали очевидны при использовании Streamer Ultra. Вместо того, чтобы использовать многоцелевой, сложный и изначально шумный компьютер для обслуживания цифровых музыкальных файлов, стример Pi может предложить оптимизированное и простое решение. Это идеальное устройство для дома, позволяющее рядовому мастеру выбирать компоненты и легко комбинировать их в индивидуальный продукт.И цена МОЖЕТ быть намного меньше, чем у готового коммерческого продукта с аналогичными характеристиками и качеством звука.

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

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

Самое замечательное в устройстве на основе Pi состоит в том, что у вас есть ТАКОЕ МНОГИЕ опций и вариантов выбора, которые можно сделать на каждом этапе пути, и конечный продукт может значительно отличаться для каждого сборщика.

Рекомендуемые сборки + детали

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

Build 1 (слева) и Build 2 (справа) с ЦАП Topping D10s и ЦАП / усилителем xDuoo XD05 Plus.

Build 1 содержит внутреннюю плату ЦАП, но более медленную Pi 3B +, а Build 2 не включает ЦАП в цену (для этого требуется внешний USB-ЦАП) и основан на более быстром Pi 4B.

Build 1 (слева) содержит внутренний ЦАП, поэтому выходные аналоговые разъемы RCA были добавлены на заднюю крышку. Сборка 2 не включает внутренний ЦАП.

Основные аппаратные компоненты

В сетевом стримере на основе Pi четыре основных аппаратных компонента:

  1. Raspberry Pi
  2. Экран (необязательно)
  3. Корпус
  4. DAC

Raspberry Pi

Было несколько Raspberry Pi доработки за последние несколько лет.Каждая ревизия мощнее предыдущей, но имеет ту же базовую форму и размер. Претензия Pi, конечно же, связана с недорогой и гибкой вычислительной мощностью с открытым кодом. Ради этого обсуждения нам нужно только заняться самыми последними моделями Pi.

Pi Версия Год выпуска Процессор WIFI Bluetooth Ethernet USB
3B 2016 1.64-разрядный четырехъядерный процессор ARM Cortex-A53 с частотой 2 ГГц 802.11n — 2,4 ГГц 4,1 100 Мбит / с 2,0
3B + 2018 1,4 ГГц 802.11n — двойной- диапазон 2,4 и 5 ГГц 4,2 300 Мбит / с ограничено общим подключением USB 2.0 2,0
4B 2019 1,5 ГГц 802.11ac 5 Full Gigabit 3,0

До версии 4B использование Pi в качестве сетевого стримера в основном ограничивалось общим контроллером Ethernet и USB.Этот комбинированный контроллер ограничивает полосу пропускания для подключений ЦАП на базе USB (к внешним ЦАП) и пропускную способность Ethernet. Умные люди обошли это ограничение, разработав отдельные платы ЦАП (HAT), которые обходят USB-соединение и подключаются через 40-контактный разъем GPIO на плате Pi. Подробнее об этом позже.

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

Модель 4B примерно в два раза дороже, чем версии Pi 3B и 3B + стоимостью менее 50 долларов, но улучшенная скорость и неограниченная полоса пропускания делают 4B этой моделью выбора. Если вы не собираетесь использовать корпус с очень ограниченным потоком воздуха, перегрев не должен быть проблемой, и можно добавить вентилятор с питанием (хотя это также добавляет шума).

4B означает, что ваш выбор ЦАП практически неограничен, а также быстрее в использовании и более надежен в будущем.

4B доступен в 3 вариантах с разным объемом оперативной памяти (2, 4 или 8 ГБ) и ценой. Любой вариант подойдет как сетевой музыкальный стример. Для сравнения, версия 3B + имеет только 1 ГБ встроенной оперативной памяти.

My Pi 3B + установлен в корпусе экрана.

Хотя 4B — лучший общий вариант, для моей первой сборки я выбрал 3B +. Почему? Во-первых, я не знал об ограничении пропускной способности USB / сети и потенциальном влиянии внешних USB-ЦАП. Я действительно мог бы использовать подобное руководство!

Во-вторых (а может и в основном) он был дешевле (включая ЦАП), а значит, более привлекательным для моего бюджета.Если честно, он отлично справился с моими потребностями, но для своей второй сборки я купил 4B.

Дополнительная вычислительная мощность 4B должна сделать соединения WIFI и Bluetooth более стабильными и меньше влиять на качество звука. При этом, как правило, используйте проводное соединение, когда это возможно. Чистая сборка Pi не должна выглядеть сделанной своими руками и может быть привлекательной и доступной в различных условиях.

Аксессуары для Pi

Вы можете упростить себе жизнь (как я изначально это сделал) и приобрести Pi, который поставляется в стартовом комплекте с необходимыми аксессуарами, а именно блоком питания, картой microSD и футляром.Или вы можете купить их отдельно (что может иметь больший финансовый смысл, если вы все равно собираетесь покупать другой чехол).

Блок питания

Для каждой модели доступны официальные блоки питания, которые отличаются надежностью, используют провода большого сечения и имеют разумную цену. Создатели Pi рекомендуют источник питания micro USB 2,5 А для 3, а для 4 — источник питания USB-C 3 А.

«Требования к питанию Raspberry Pi возрастают по мере того, как вы используете различные интерфейсы Raspberry Pi.Контакты GPIO могут безопасно потреблять 50 мА, распределенные по всем контактам; отдельный вывод GPIO может безопасно потреблять только 16 мА … Проверьте номинальную мощность устройств, которые вы планируете подключать к Pi, и соответственно приобретите источник питания.

Если вам необходимо подключить USB-устройство, потребляемая мощность которого превышает значения, указанные в таблице выше, вы должны подключить его к USB-концентратору с внешним питанием ». — The Raspberry Pi Foundation

Требования к источнику питания

Pi Version Рекомендуемый ток блока питания (А) Максимальный общий ток, потребляемый периферийным USB-устройством (А) Типичная голая плата потребление активного тока (мА)
3B или 3B + 2.5A 1.2A 500mA
4B 3.0A 1.2A 600mA

Предположим, блока питания недостаточно для питания Pi. В этом случае Pi включает в себя схему обнаружения низкого напряжения и отображает значок предупреждения о низком энергопотреблении (желтый значок молнии) на всех подключенных дисплеях. Недостаточная мощность может вызвать неустойчивое поведение, включая необъяснимые сбои и повреждение SD-карты.

Как и в случае с электроникой, рекомендуемая сила тока устройства является минимальным требованием для источника питания.Использование блока питания с более высоким номинальным током (например, 5 А) будет отлично работать и просто будет служить запасом для потребностей в питании. Просто это может стоить дороже.

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

Стандартный импульсный блок питания Pi.

Импульсные и линейные источники питания

Подавляющее большинство источников питания являются импульсными (или импульсными).Однако есть и более качественные и, соответственно, более дорогие варианты. Линейный источник питания отличается от импульсного варианта тем, как первичное (входное) переменное напряжение преобразуется в выходное постоянное напряжение.

Импульсный источник питания обычно создает высокочастотное напряжение с помощью силового транзистора и использует изменение ширины импульса (ШИМ) для регулирования выходного напряжения. Затем это напряжение фильтруется для удаления нежелательного шума и становится постоянным. Линейные источники питания пропускают переменный ток через трансформатор, чтобы преобразовать его в постоянный ток, а затем фильтровать после этого.

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

Для тех, кто хочет выжать лучшую (но, возможно, незаметную) производительность из своей сборки Pi, возможен высококачественный линейный источник питания. Имейте в виду, что добавление линейного источника питания может многократно увеличить общую стоимость проекта.

Карта MicroSD

Pi не имеет внутренней памяти для операционной системы (ОС), поэтому все, что он делает, зависит от установленной карты MicroSD. Фактически, Pi может мгновенно переключаться между полноценным настольным компьютером, ретро-игровой станцией или сетевым музыкальным плеером, просто отключив его и заменив карту MicroSD. Купите несколько и попробуйте множество доступных программ!

Моя коллекция ПО Pi на картах MicroSD.

Pi имеет только один слот для карты памяти.

Память в наши дни дешевая, поэтому нет оправдания тому, чтобы просто не купить лучшую доступную карту MicroSD, такую ​​как Sandisk Ultra класса 10. Емкости 16 ГБ обычно более чем достаточно для работы большинства доступного программного обеспечения, если вы не ожидаете, что на карте будут храниться мультимедийные данные. Доступ к медиафайлам необходимо будет получить через сеть или подключенный USB-накопитель.

Класс SD-карты — это показатель скорости доступа к памяти. Класс 4: 4 Мб / сек. Class 10: 10 Мб / сек. В зависимости от используемого программного обеспечения и версии Pi, между классами может не быть заметных реальных различий.

Экран

Для моей собственной сборки я хотел максимизировать совместимость и функции, включая интегрированный сенсорный интерфейс и постоянно включенный дисплей «сейчас играет». Мне нужен был тачскрин!

Большинство программ для воспроизведения музыки включает в себя приложение для телефона и / или веб-интерфейс для управления, поэтому нет необходимости включать экран в вашу сборку. Это значительно уменьшает размер корпуса и общую стоимость проекта. Pi без прикрепленного экрана называется « без головы ».

Есть два основных способа подключить экран к Raspberry Pi.Первый — через соединение HDMI на Pi. К сожалению, хотя HDMI является отраслевым стандартом и обеспечивает совместимость со значительным количеством экранов, многие опции программного обеспечения для потоковой передачи по сети не поддерживают этот интерфейс.

Другой метод подключения использует разъем Pi S2. Порт S2 представляет собой последовательный интерфейс дисплея (DSI) для подключения панели жидкокристаллического дисплея (LCD) с помощью 15-контактного ленточного кабеля. Официальный 7-дюймовый сенсорный дисплей Raspberry Pi использует порт DSI.

Raspberry Pi 3B + (слева) и официальный сенсорный экран Pi (справа). Существуют менее дорогие варианты экрана, чем официальный дисплей, доступные в различных размерах, которые имитируют его и подключаются к порту DSI. «Последовательный интерфейс дисплея (DSI) — это спецификация Альянса по интерфейсам процессоров мобильной индустрии (MIPI), направленная на сокращение стоимость контроллеров дисплея в мобильном устройстве. Обычно он нацелен на ЖК-дисплеи и аналогичные технологии отображения ». — ЖК-дисплеи Wikipedia

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

В зависимости от положения аудиоразъемов на ЦАП вам может потребоваться проявить творческий подход при наклоне экрана.

Официальные характеристики дисплея Raspberry Pi

  • Разрешение: 800 × 480 ЖК-дисплей RGB
  • Глубина цвета: 24-битный цвет
  • Угол обзора: Угол обзора 140 градусов по горизонтали, угол обзора 130 градусов по вертикали
  • Сенсорный экран: 10-точечный мультисенсорный экран
  • Срок службы подсветки: 20000 часов
  • Коэффициент контрастности: 500
  • Средняя яркость: 250 кд / м2
  • Требования к питанию: 200 мА при Обычно 5 В при максимальной яркости

Корпус

Выбор корпуса ограничен решением включить экран в сетевой стример.Хотя экран удобен для настройки, и мне нравится возможность управления на сенсорном экране и уведомление «сейчас играет», многие люди предпочитают создавать небольшие и менее дорогие стримеры без экрана. Базовые и недорогие чехлы, входящие во многие пакеты аксессуаров Pi, работают нормально.

Поскольку я решил интегрировать 7-дюймовый официальный экран Pi (для максимальной совместимости программных пакетов), было доступно на удивление мало вариантов корпуса. К счастью, SmartiPi SmartiCase удовлетворил мои потребности и оказался неожиданно доступным.Они делают (по их словам) «супер крутые корпуса Raspberry Pi».

Ассортимент футляров SmartiPi. (Источник: smarticase.com)

SmartiCase доступен в нескольких вариантах. В своей первой сборке я выбрал черный SmartiPi Touch 2, потому что он был легко доступен на Amazon, хотя для него требуется отдельная покупка задней крышки при использовании дополнительной платы DAC. Новый корпус SmartiPi Touch Pro с центральным расположением экрана и просторной задней крышкой подойдет практически к любому выбору оборудования.

Характеристики корпуса SmartiPi Touch 2

  • Регулируемый угол обзора
  • 3 сменные передние панели: совместимые с Lego, гладкие с отверстием для камеры, гладкие плоские
  • 2 задние двери: дверь с вентилятором, дверь с доступом к контакту GPIO — ни одна из дверей не работает с Платы HAT
  • USB-C, Y-образный адаптер питания (для использования с Pi 4) + Y-образный адаптер питания Micro USB (для использования с Pi 2 и 3)
  • 2 ленточных кабеля: короткий для официальной камеры Pi v1 или v2, длинный для платы управления дисплеем
  • 75 мм m4 Крепление VESA
  • 2 небольших крепления можно использовать для крепления корпуса к различным поверхностям вместо подставки
  • Совместим с официальным дисплеем Raspberry Pi

Сборка Кейсы SmartiPi — относительно простое дело, с хорошими инструкциями и изображениями, доступными на официальной веб-странице.Экран крепится к передней части корпуса, а Raspberry Pi собирается сзади и подключается через прилагаемый ленточный кабель.

Входящий в комплект вентилятор 30×30 мм (опционально установлен на задней двери) может питаться от вывода GPIO 5 В (7500 об / мин) или вывода GPIO 3,3 В (4800 об / мин) для изменения скорости и уровня шума. В корпусе Touch 2 необходимо снять заднюю дверцу, чтобы можно было использовать дополнительные платы HAT. Дополнительный аксессуар для задней крышки можно приобрести отдельно, чтобы закрыть доску HAT.

Основным ограничением корпусов SmartiPi является невозможность доступа к установленной карте microSD без снятия задней крышки и Raspberry Pi. После того, как вы остановились на программном обеспечении, это не имеет большого значения, но оно делает быстрые изменения несколько более обременительными. Кроме того, из-за расположения Pi у крайнего левого края (если смотреть спереди) любые кабели USB или Ethernet торчат сбоку.

Прямоугольные адаптеры (верхний USB, нижний Ethernet) убирают кабели, выступающие со стороны корпуса.

Я купил несколько недорогих прямоугольных USB-адаптеров и удлинитель сетевого кабеля, чтобы минимизировать визуальное воздействие порта и размещения кабеля.

Внешний USB-ЦАП против HAT DAC

Если вы основываете свою сборку на Raspberry Pi 4B, вы можете использовать любой ЦАП, какой захотите. У вас уже есть отличный внешний USB-ЦАП? Без проблем! Просто подключите его через порт USB и приступайте к делу!

Перед тем, как совершать какие-либо покупки или принимать окончательные решения, рекомендуется посетить форумы по музыкальному программному обеспечению Pi и соответствующие справочные документы, чтобы убедиться, что ваш ЦАП совместим с определенным программным пакетом.Большинство DACS должны поддерживаться; однако недавно у меня возникли проблемы с нераспознаваемым ключом Helm Bolt DAC. DAC HAT (черный) установлен поверх Pi (зеленый).

Для моего собственного проекта, основанного на Pi 3B +, я смог использовать USB-ЦАП без каких-либо серьезных проблем, но ограничения полосы пропускания модели убедительно свидетельствуют о том, что лучший способ добиться максимальной стабильности — это ЦАП HAT.

Raspberry Pi подключается к дополнительным платам расширения через 40-контактный интерфейс заголовка GPIO. Эти дополнительные платы называются HAT (оборудование, прикрепленное сверху).Я предполагаю, что его название также происходит от того факта, что Pi носит доску как шляпу. Как упоминалось ранее, использование интерфейса GPIO позволяет обойти любые ограничения пропускной способности USB и может обеспечить максимальное качество звука.

К счастью, есть множество вариантов, с разными ценами, наборами микросхем и поддерживаемыми форматами.

HAT DAC options

Я решил использовать HiFiBerry DAC2 PRO HAT для своей сборки.

Я выбрал популярный и хорошо зарекомендовавший себя HiFiBerry DAC2 Pro для своей сборки 3B +.Несмотря на то, что эта бюджетная DAC HAT находится в пределах самой низкой ценовой категории, я считаю качество звука превосходным.

Основное применение этого сетевого стримера — питание лампового приемника Fisher 400 середины 60-х годов, питающего динамики JBL L96 конца 70-х годов. Удовольствие, но не самое лучшее слово для определения высокого качества воспроизведения, поэтому ЦАП среднего уровня более чем способен воспроизводить великолепный звук в этой системе.

Подходит Беку к старинной стереосистеме.

Пусть ваш бюджет и уши аудиофила сделают за вас окончательное решение.

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

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

Пожалуйста, не позволяйте количеству вариантов ниже ошеломить вас. Если вы не знаете, с чего начать, просто выберите Volumio для сетевого музыкального стримера. Он красивый, полнофункциональный, легко настраиваемый и содержит отличную документацию.

Интерфейс Volumio красивый и полнофункциональный.(Источник: volumio.org)

Все варианты достаточно развиты, а это означает, что они стабильны, имеют обширную документацию и активное сообщество пользователей, к которым можно обратиться за помощью. Серьезно, из приведенного ниже списка следует сделать неплохое решение, и вам решать, чего вы хотите от своего нового устройства. Многие из программных пакетов содержат надстройки для увеличения функциональности, и большинство из них поддерживают дополнительные потоковые сервисы, такие как Spotify, SoundCloud и т. Д.

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

Опции программного обеспечения музыкального стримера Pi

  • JustBoom Player — музыкальный проигрыватель, предназначенный для работы с собственными платами DAC HAT. Если вы не покупаете ЦАП JustBoom, есть варианты получше.
  • Moode Audio Player — Музыкальный проигрыватель с гибким адаптивным пользовательским интерфейсом и поддержкой широкого спектра аудиоустройств. Включает 12-полосный параметрический и 10-полосный графический эквалайзер, кроссфид для прослушивания через наушники и поддержку Airplay, Spotify, Squeezelite и RoonBridge.
  • Mopidy — простой в использовании музыкальный сервер, ориентированный на аудиофилов, разработанный на Python. Расширения позволяют поддерживать локальное воспроизведение, Spotify, SoundCloud и Google Music. Управление через веб-интерфейс в той же сети.
  • PiCorePlayer — (pCP) — Очень маленький, но высококачественный аудиоплеер через Squeezelite и Logitech Media Server (LMS), построенный на piCore Linux. Он загружается очень быстро и полностью работает в оперативной памяти.
  • PiMusicBox — медиаплеер «Швейцарский армейский нож» (на основе Mopidy), поддерживающий воспроизведение музыки по локальной сети, потоковую передачу AirPlay и DLNA, а также поддержку онлайн-сервисов, таких как Spotify, Google Music, SoundCloud, Webradio , и подкасты.
  • RoPieee — мост Roon Bridge, который позволяет воспроизводить звук через USB-ЦАП и поддерживает большинство известных аудио HAT. Он может использовать оригинальный 7-дюймовый сенсорный экран Raspberry Pi для отображения и управления. RoPieee также поддерживает дистанционное управление на основе RF и имеет продуманный механизм обновления (избавляя вас от необходимости вручную загружать и перепрошивать карту для обновления программы).
  • RuneAudio — Бесплатная ОС Linux с открытым исходным кодом, в которой сохранены только функции и функции, необходимые для высококачественного воспроизведения музыки.Rune может управляться любым устройством в той же локальной сети, что и Raspberry Pi, через веб-интерфейс пользователя.
  • Volumio — Музыкальный сервер для Raspberry Pi, предназначенный для аудиофилов, на базе операционной системы Raspbian Pi. Volumio прост в использовании, поддерживает все типы файлов (mp3, FLAC, Alac, Aac, Vorbis и т. Д.) И работает с большинством DAC HAT и официальным сенсорным экраном Pi. Доступные расширения обеспечивают совместимость с DLNA, AirPlay и Spotify. Платная услуга премиум-класса MyVolumio, основанная на подписке, также позволяет поддерживать Tidal и Qobuz.

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

Как работает RuneAudio (и большинство других музыкальных стримеров). (Источник: runeaudio.com)

Опции программного обеспечения для стримеров музыки и видео Pi

Многие из комбинированных программных пакетов для стримеров музыки и видео основаны на превосходной программе Kodi (ранее XBMC). Kodi — это полнофункциональный, бесплатный программный пакет для медиаплеера с открытым исходным кодом.Разработка Kodi началась со времен первоначальной модификации Xbox в начале 2000-х годов и была перенесена на большинство мыслимых устройств.

Если вы хотите просто создать специальный стример только для музыки, варианты Kodi, вероятно, будут излишними, поскольку они предназначены для воспроизведения всех популярных форматов мультимедийных файлов, включая аудио, видео и изображения.

Варианты Kodi

  • LibreELEC — (Libre Embedded Linux Entertainment Center) — некоммерческий форк OpenELEC для Kodi.Более стабильное и быстрое ощущение, чем Open ELEC.
  • OpenELEC — (Open Embedded Linux Entertainment Center) — небольшая операционная система Just Enough Operating System (JeOS) на базе Linux, созданная с нуля в качестве платформы для превращения Pi в медиацентр Kodi. Он предлагает надстройки для Kodi, которые обеспечивают доступ к большему количеству платформ и контента, а также быстрее и легче, чем Kodi.
  • OSMC — Операционная система (основанная на Debian), построенная на основе Kodi, но с более современной, легкой и оптимизированной оболочкой, чем OpenELEC, что делает ее более быстрой, простой в настройке и более настраиваемой.
  • Xbian — очень маленькая, быстрая и легкая версия Kodi для Raspberry Pi, основанная на Raspbian.
Многие полнофункциональные медиаплееры основаны на программном обеспечении Kodi Media Center. (Источник: kodi.tv)

Emby и Plex, хотя в настоящее время не основаны на Kodi, достаточно похожи, поэтому я включу их сюда. Ранние версии Plex были вариантом Kodi / XBMC.

  • Emby — (ранее «Медиа-браузер») — медиаплеер клиент-сервер, очень похожий на Plex.Plex проще в использовании, в то время как Emby более настраиваемый и гибкий.
  • Plex — система мультимедийного проигрывателя на основе клиент-сервер, для которой требуется компьютер мультимедийного сервера и отдельные клиентские устройства в сети для воспроизведения мультимедиа.

Установка программного обеспечения

Volumio , вероятно, является лучшим (и наиболее распространенным) решением для сетевого стримера на основе Pi. Он предлагает эффективный и интуитивно понятный веб-интерфейс управления и идеально подходит для начала работы.Новичкам стоит начать здесь!

Так как я недавно стал преданным пользователем Roon, я остановился на более полнофункциональной XL-версии RoPieee для моего сетевого стримера Pi после того, как попробовал другие варианты. В дополнение к Roon версия XL поддерживает технологии DLNA, Airplay и Spotify для потоковой передачи звука.

Базовый веб-интерфейс для настройки RoPieee довольно прост в использовании. Девиз

RoPieee: «Это не ОС, а устройство». Мне нравится эта приверженность простоте.Я просто хочу, чтобы устройство работало и не требовало постоянной возни с ним. Конфигурация (при необходимости) выполняется через веб-интерфейс RoPieee с любого устройства в сети.

RoPieee не будет воспроизводить музыку с сетевого диска или подключенного USB-накопителя. Если это то, чем вы хотите заниматься, выбирайте Volumio.

Честно говоря, RoPieee не самый красивый вариант для тачскрина. Шрифты и макет Volumio более привлекательны, но намного сложнее. Безусловно, сам Roon гораздо эстетичнее.Но это компромисс, на который я готов пойти.

В левой половине экрана Ropieee отображается обложка альбома, а в правой части — основные элементы управления воспроизведением / паузой, предыдущим, следующим, повтором, случайным образом и громкостью. Когда музыка не воспроизводится, RoPieee может по умолчанию отображать цифровые часы. Просто и полезно.

Экранный интерфейс для RoPieee довольно простой, но очень удобный. (Источник: ropieee.org)

Помните, что если вы купите несколько карт памяти, вы сможете переключаться между музыкальными плеерами и операционными системами на Pi всего за пару минут.

Как установить программное обеспечение на Pi

  • Загрузите образ программного обеспечения Pi на свой компьютер.
  • Загрузите установочный инструмент, например Balena Etcher, на свой компьютер.
  • Вставьте пустую карту MicroSD в компьютер. Вам может понадобиться USB-ридер.
  • Используйте Etcher, чтобы создать загрузочную SD-карту для вашего Pi из образа программного обеспечения, который вы загрузили на шаге 1.
  • Отключите Pi от питания.
  • Установите карту MicroSD в Pi.
  • Подключите кабель Ethernet к Pi.
  • Подключите питание к Pi. Обратите внимание, что первая загрузка обычно самая длинная.
  • Следуйте индивидуальным инструкциям по настройке программного обеспечения музыкального стримера.
Все, что вам нужно для установки образов программного обеспечения Pi на карты MicroSD.

Большинство программных пакетов потребуют от вас выполнения нескольких дополнительных действий по настройке после установки. Программное обеспечение проведет вас через шаги, чтобы включить DAC в качестве выхода, подключиться к вашей сети и установить дополнительные надстройки для поддержки дополнительных потоковых сервисов.Здесь бесценны руководства по запуску, предоставляемые самим программным обеспечением. Все они немного разные, но если вы застрянете, есть масса помощи.

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

Заключение

Мой первый сетевой музыкальный стример состоит из:

  • Pi 3B +
  • Официальный сенсорный экран 7 дюймов
  • Чехол SmartiPi Touch 2
  • HiFiBerry DAC 2 Pro HAT
  • Программное обеспечение RoPieee XL

Это здорово! Он работает безупречно и звучит фантастически.Он делает все, что я хочу, и стоит менее 250 долларов США.

Прослушивание CBC Radio 1 через Roon на RoPieee XL. Новый способ делать старые дела.

При этом для моей второй сборки я пропустил DAC HAT и примерно за ту же общую цену, обновился до Pi 4B в корпусе Touch Pro и использовал внешний USB-ЦАП (который у меня уже был под рукой, но его нет. учтено в цене сборки).

Если вы просто ищете аналоговые выходы RCA, Topping D10s — отличный доступный выбор ЦАП.Или xDuoo XD05 Plus предлагает аналоговые выходы для внешнего усилителя или усиленных динамиков, а также потрясающий встроенный усилитель для наушников. Нет предела для выбора ЦАП со сборкой, основанной на Pi 4B!

Это завершенная сборка 2 с беспроводной потоковой передачей музыки от Roon, включая Pi 4B и внешний USB-ЦАП.

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

Создание сетевого аудиоплеера

Какое оборудование вам нужно?

В зависимости от того, какое у вас есть, может потребоваться 2 типа оборудования.

Полная система или добавление к вашей системе

1. Полная система

Если вы хотите создать систему с нуля, вы обратились по адресу! Продаем все … кроме колонок. Не забывайте, что система настолько хороша, насколько хорошо ее самое слабое звено, поэтому потратите 150-400 долларов США / евро на пару динамиков, которые прослужат вам около 10-15 лет.

Итак, что вам нужно, это микрокомпьютер, ЦАП и усилитель.Вы можете купить систему по принципу «Plug and Play» или собрать ее самостоятельно.

Микрокомпьютер — это мозг предприятия.

У вас есть много вариантов для программных проигрывателей:

  • Объем
  • DietPi
  • MoodeAudio
  • Max2play
  • Picoreplayer
  • и более

Этот микрокомпьютер (потребляющий 5 Вт мощности) — Raspbbery PI 3.Очень популярный одноплатный компьютер (SBC), миллионы единиц которого отправлены по всему миру. Он стабильный, быстрый, экологичный и имеет огромную базу пользователей.

Этот RPI3 имеет порт Ethernet, порты USB, WIFI и соединение Blutooth. Ваш SBC будет виден в сети / Wi-Fi как устройство Airplay, DLNA / UPNP или BT. Вы можете транслировать прямо на него с iOS с помощью трансляции и с Android / ПК с помощью клиента DLNA. Вы также можете использовать BT (не рекомендуется для звука HIFI).

RPI — отличный компьютер и паршивый аудиоплеер. Войдите в шину i2s, по которой цифровой звук отправляется на следующий этап, на выделенный ЦАП i2s (BOSS), который просто находится сверху.

С этого момента все просто. Цифровой звук теперь аналоговый.
Вам нужно усилить его и отправить на динамики.

Выберите настройку:

Вот и все 🙂

2.Уже есть ЦАП и АМП

ОК, вы вложились в аудиосистему. Оставь это.

Прямо сейчас вы берете USB / SPDIF своего ноутбука и питаете свой ЦАП. У этого подхода есть несколько проблем:

Ноутбуки никогда не предназначались для аудио. Вы подаете на ЦАП очень шумный сигнал USB или очень неустойчивый сигнал SPDIF. Это напрямую приводит к потере качества звука. Используя наши оптимизированные рендереры или сетевые аудиостримеры, вы добавите оптимизированный Linux и оборудование в свою систему.БОЛЬШОЕ УЛУЧШЕНИЕ. (извините за колпачки, но я хотел внести ясность).

А). DigiOne HAT и плеер

Проигрыватель DigiOne Player был разработан с одной целью: получить наилучший выход S / PDIF.

А теперь позвольте мне объяснить … за грандиозной формулировкой кроется точная наука. Поскольку это цифровой поток, наиболее важным аспектом для «absolut best» является джиттер.Джиттер в цифровой области напрямую приводит к аналоговым ошибкам.

Потом мы приступили к работе.

Optical пришлось уйти … у него джиттер 4нс. Это 4000 пс. Мы просто удалили его. Однако оптический кабель имеет гальваническую развязку, поэтому мы решили использовать вместо него цифровой изолятор, который отделяет выходы от земли RPI / Wm8805 (истинная гальваническая развязка). После изолятора мы добавили схему повторного включения, поэтому джиттер равен 0.6ps (1 пикосекунда — время прохождения света в вакууме примерно 0,30 мм).

  • DigiOne имеет 2 выхода: BNC и простой RCA (коаксиальный)
  • Максимальный выход по стандарту SPIDIF при 24/192 кГц
В). USBridge HAT и плеер

Для входа USB мы создали USBridge.

Так почему бы не использовать дешевый ноутбук, RPI или даже Sparky в качестве USB-транспорта? Что ж, вы можете, но все они имеют некоторые ограничения.

Во-первых, ноутбуки шумные … очень шумные. На USB мы обычно видим всплески шума при 100 мВ. Это повлияет на звуковую систему.

Как насчет RPI? RPI великолепны и очень энергоэффективны, но у USB есть два основных недостатка. Во-первых, полоса пропускания распределяется между 2 портами USB (так что на самом деле есть только один USB), а во-вторых, Ethernet также используется на одной шине! Конечно, у вас также есть шум на USB около 60 мВ.

Может, Спарки? Два порта USB (рядом с портом Ethernet) используют один вход для ЦП (разделены концентратором). Шум на шине USB составляет около 27 мВ (довольно неплохо), а Ethernet полностью разнесен (шина не используется совместно). Так что это нормально, но не здорово.

Итак, мы разработали новую плату, которая подключается к нижней части Sparky. У Sparky 2 независимых контроллера USB (2 магистрали), и мы подключаемся ко второму. Затем мы используем новую USB IC, которая повторно перекрывает поток с помощью высококачественных генераторов NDK, и все работает от независимых LDO и высокочастотных фильтров.Конечный шум USBridge ниже, чем шум батареи.

  • USB-выход
  • 32/384 кГц PCM DOP128
  • DSD родной для 256 (кроме Mytek Brooklyn)

Как создать собственный недорогой высокопроизводительный стример

Нет категории продуктов с более широким диапазоном доступных цен, чем музыкальные стримеры.Я рассмотрел потоковые решения стоимостью менее 100 долларов, такие как Muzo Cobblestone (59 долларов США), и премиальные варианты, такие как Aurender ACS10 (6000–8000 долларов США), но все это были продукты «под ключ», которые поставлялись полностью собранными и готовыми к установке. Есть еще один способ — «Сделай сам» (сделай сам). Добро пожаловать в чудесный мир потоковых решений Raspberry Pi. Этот вариант не нов — компьютерные любители уже много лет используют Raspberry Pi. И даже некоторые готовые изделия, такие как стример / ЦАП Bryston 3.14, который я рассмотрел в выпуске 309, используют Raspberry Pi внутри как основу собственного проприетарного стримера.

Эта статья познакомит вас с Raspberry Pi и некоторыми из множества вариантов сборки и использования. Цель состоит в том, чтобы побудить вас рассмотреть и, возможно, даже попробовать проект Raspberry Pi самостоятельно. За чуть менее 100 долларов вы можете получить Roon-совместимую конечную точку потоковой передачи, способную поддерживать файлы PCM, FLAC, DSD и даже MQA высокого разрешения (если это поддерживается вашим DAC). Насколько хорошо это может звучать? Это больше зависит от возможностей и звучания вашего ЦАП, чем от самого Pi. А если вы хотите стать «ультра-фантастическим», для Pi предусмотрены обновления блока питания и SPDIF, которые требуют еще более высокого уровня производительности.

Здесь я должен отдать должное Нилу Смоллу, администратору группы Facebook «Roon Users» (facebook.com/groups/297515554867194), который собрал то, что лучше всего можно было бы описать как «Руководство для идиотов» (я смог сделать это, так что…) на сборку и настройку Raspberry Pi с программным обеспечением Diet Pi, а также некоторые полезные настройки производительности. Он также дал мне несколько очень необходимых советов о том, как установить расширение «Sleep» в ядре Roon (теперь оно больше не нужно, поскольку Roon наконец-то добавил встроенную функцию сна).В этом проекте мне также помогал Дэвид С. Снайдер, который терпеливо отвечал на мои более невежественные вопросы. Эти двое — эксперты. Я журналист.

Цели — не превращайте их в другое хобби

Мои собственные цели при сборке конечной точки потоковой передачи Raspberry Pi были просты. Мне нужен был способ потоковой передачи и использования внешних ЦАП без интегрированного решения под ключ, и мне нужно было что-то, над чем я мог бы полностью контролировать, без неожиданных обновлений программного обеспечения, которое было бы признано Roon и совместимо со стандартными протоколами потоковой передачи.И да, я хотел то, что мог себе позволить даже пенсионер 21-го века -го -го. Наконец, хотя я знаю многих аудиофилов, которые превратили свое аудио-хобби в компьютерное хобби, я хотел оставаться в первую очередь аудиофилом, а не компьютерным любителем, поэтому я хотел что-то достаточно простое, что можно было бы заставить петь и танцевать в соответствии с моими требованиями. не прибегая к часам программирования. Установка Pi Streamer может достичь всех этих целей. Если хотите, можете настолько увлечься компьютерным звуком, насколько захотите.

Pi MusicBox — проигрыватель Spotify, SoundCloud, Google Music для Raspberry Pi с дистанционным управлением

Сделайте свой поток Raspberry Pi!

Добро пожаловать в швейцарский армейский нож потоковой передачи музыки с помощью Raspberry Pi. С Pi MusicBox вы можете создать дешевый (похожий на Sonos) автономный потоковый музыкальный проигрыватель для Spotify, Google Music, SoundCloud, Webradio, подкастов и другой музыки из облака. Или из вашей собственной коллекции с устройства в вашей сети.Он не разряжает аккумулятор вашего телефона во время игры. Музыка не остановится, если вы поиграете в игру на своем телефоне.

Подключите Raspberry Pi за 25 $ к своей (сделай сам) аудиосистеме, легко настройте MusicBox — и вперед! Управляйте музыкой с дивана с телефона, планшета, ноутбука или ПК, никаких дополнительных усилий не требуется. Также включены потоковые передачи AirPlay и DLNA!


Характеристики

  • Безголовый аудиоплеер на основе Mopidy (без монитора), потоковая передача музыки из Spotify, SoundCloud, Google Music, подкастов (с каталогами iTunes, gPodder), локальных и сетевых музыкальных файлов (MP3 / OGG / FLAC / AAC), Webradio ( с каталогами TuneIn, Dirble, AudioAddict, Soma FM).
  • Управляйте им дистанционно с помощью приятного веб-интерфейса или с помощью MPD-клиента (например, MPDroid для Android).
  • Также включает потоковую передачу Spotify Connect, AirTunes / AirPlay и DLNA / OpenHome с вашего телефона, планшета (iOS и Android) или ПК с использованием такого программного обеспечения, как BubbleUPnP.
  • Поддержка USB Audio для всех типов звуковых карт USB, динамиков и наушников. Звук от самого Pi не так хорош…
  • Поддержка Wi-Fi (WPA, для Wi-Fi-адаптеров, поддерживаемых Raspbian)
  • Не нужно возиться, не нужно использовать командную строку Linux
  • Воспроизведение музыкальных файлов с SD-карты, USB, сети.
  • Last.FM скробблинг.
  • Поддерживаются несколько звуковых карт Pi (HifiBerry, JustBoom, IQ Audio)

Обратите внимание, что Pi MusicBox в настоящее время НЕ поддерживает Raspberry Pi 4

Скриншоты

Требования

  • Рабочий Raspberry Pi (любая модель , кроме Pi 4 )
  • Колонки, усилитель или наушники (аналоговые или USB)
  • SD-карта, минимум 1 ГБ, предпочтительно 2 ГБ
  • Компьютер с современным браузером; планшет или телефон.Веб-интерфейс протестирован с последние версии Firefox, Chrome, Internet Explorer и iOS (iPad / iPhone), современные версии Android (Chrome Mobile, Firefox Mobile). Internet Explorer версии 10 работает, более ранние версии — нет. Вы также можете использовать Клиент MPD для подключения.
  • Spotify Premium , Google Music (All Access) или SoundCloud для потоковой передачи.

DIY проекты с использованием Pi MusicBox

Pi MusicBox с гордостью предоставляет программное обеспечение для растущего числа аудиобоксов Do It Yourself, таких как эти:

Скачать

Здесь вы можете найти образ SD-карты для использования на вашем Pi.Это около 300 МБ для загрузки и поместится на SD-карту объемом 1 ГБ или больше (изменения):


Это может занять некоторое время, а пока, пожалуйста, расскажите об этом!

Howto’s

Наряду с шагами по установке, описанными ниже, вы также найдете более подробные инструкции в последней версии руководства. (Каталонский, Испанский, Французкий язык). Кроме того, некоторые полезные пользователи Pi Musicbox представили свои собственные инструкции и руководства.


Инструкции

Распакуйте zip-файл.Поместите полученный образ на вашу SD-карту с помощью чудесно простой утилиты Etcher SD card image. или следуя эти инструкции. Изображение поместится на карту емкостью 1 ГБ, но вам следует использовать карту большего размера, если вы может, так как это оставит больше места для ваших музыкальных файлов. Последние руководства размещены на странице выпуска.


Конфигурация
  1. Вы можете редактировать все настройки на новой странице настроек из веб-клиента. Чтобы получить к нему доступ, вам необходимо подключение к сети.Чтобы включить Wi-Fi, вы можете либо сначала подключить Pi с помощью кабеля и использовать страницу настроек, либо заполнить настройки Wi-Fi в ini-файле на SD-карте. Для этого:
  2. Вставьте SD-карту в свой компьютер. Откройте содержимое папки config на SD-карте в вашем Finder / Explorer.
  3. Добавьте в файл свою сеть Wi-Fi и пароль (и при желании отредактируйте другие настройки) настройки.ini В нем есть инструкция, что и куда класть.
  4. MusicBox автоматически обнаружит USB-аудиокарты / колонки / боксы и HDMI. Это можно изменить в настройках. Например, если вы хотите использовать аналоговый выход при подключенном hdmi.

Подробные инструкции можно найти в руководствах.


Запусти меня!
  1. Вставьте карту в Пи
  2. Подключите кабели (вам не нужно подключать монитор к Pi, если вы не хочу)
  3. Чтобы использовать Wi-Fi и USB-Audio, вам необходимо подключить устройства перед тем, как вы запустите Pi.Перезагрузите, если подключите их позже.
  4. Включите свой Pi
  5. Подождите немного … А пока следите за нами!

    Следуйте @pimusicbox в Twitter


Доступ к музыке
  1. Укажите в браузере Pi. В зависимости от вашей сети и компьютеров, он будет доступен по этому адресу: http: // музыкальный ящик.местный
  2. Большинство устройств OS X / iOS и Windows, вероятно, найдут его сразу же. Если это не сработает, вы можете попробовать установите Apple Bonjour / iTunes в Windows, чтобы он заработал. Linux также должен работать, если установлен Avahi или Samba / Winbind.
  3. Используя Android, вы должны указать в своем браузере MusicBox, используя IP-адрес вашего Pi, например http: // 192.168.1.5 / (заполняйте самостоятельно!). На данный момент это невозможно изменить, если Android не поддерживает это, IP-адрес печатается на экране при MusicBox запущен. Подключите монитор / телевизор, чтобы узнать. Или воспользуйтесь утилитой сканирования сети / Bonjour, такой как Zentri Discovery.

Поддержка и контакты

Перед тем, как задавать вопросы, обратитесь к разделу «Часто задаваемые вопросы» и руководству.


Вы можете обсудить особенности и проблемы на форуме. Сообщайте об ошибках в самом MusicBox в репозитории на Github. Вы также можете попробовать #mopidy канал на Freenode, или малина Форумы Pi для более общих вопросов о Pi.

Что нового?

Взгляните на последние изменения.

Безопасность

Это система не полностью защищена.Не запускайте его за пределами брандмауэра!

  • Музыкальный сервер Mopidy защищен не полностью
  • Кроме того, пароли Spotify и Wi-Fi хранятся в виде обычного текста на SD-карта.
  • Легко войти на сервер с учетной записью root и пароль musicbox (удаленный вход по умолчанию не включен).

Спасибо

Pi MusicBox основан на следующих замечательных проектах:

DIY Музыкальный сервер и Streamer для аудио-любителей — биты и байты

Последние шесть лет я использовал домашние, коммерческие и специализированные музыкальные серверы и системы. Большая часть моего путешествия была задокументирована здесь в довольно беспорядочной манере.В 2021 году я остановился на том, что, на мой взгляд, станет отличной отправной точкой для технического специалиста-любителя. Теперь это моя система goto, которая, на мой взгляд, звучит ЗАМЕЧАТЕЛЬНО!

Это никого не должно отпугивать; это не сложно настроить! Я не претендую на права на изобретения здесь. Я учился, играл, строил, слушаю …

Для начала вам понадобится несколько вещей:

ПК или компьютер Mac. Если вы используете Linux, вы уже на полпути!Вам понадобится хорошее подключение к Интернету для загрузки программного обеспечения и, конечно же, подключения к музыкальным сервисам в облаке. На компьютере должно быть устройство для чтения SD-карт, поскольку мы будем использовать карты MicroSD.

Некоторое знакомство с терминальными программами, SSH, Ping и; да, здесь может быть злая, ужасная работа с командной строкой. И снова НЕ СТРАХАЙТЕСЬ, пожалуйста! Ваша любимая поисковая система поможет вам в этом. Кроме того, на форуме есть много людей, которые могут помочь.

Вам придется потратить немного денег на оборудование; вам понадобится немного временного места для сборки вкусностей!

ПРИМЕЧАНИЕ. Все мои серверы и стримеры подключены через Ethernet. Я боюсь использовать беспроводную связь в аудиосистемах. Возможно, вам придется научиться проложить, спрятать кабели в вашем доме! Это не так сложно сделать в «большинстве домов». Для этого вам может потребоваться сетевой коммутатор.

Вот примеры систем, которые я использую:

Я предполагаю, что у вас есть ЦАП, какое-то усиление и динамики или наушники! Ничего экстравагантного! Я использую Topping D10Bal в паре дорогих студийных мониторов с питанием в качестве системы в подвале.

  • Pi4 в корпусе с пассивным охлаждением
  • Топпинг D10Bal $ 150
  • USB-кабель Schiit Audio
  • Два сбалансированных кабеля 150 долларов США (я использовал Mogami Gold) Сэкономьте сейчас и используйте Amazon Basics
  • Две активные студийные колонки Итого 400 долларов. У меня старые модели M-Audio BX5a!
  • Разветвитель для подключения системы.

Моя система наушников — это Allo USBridge Sig с подачей Shanti на Schiit Lyr-3 с Multibit DAC в моем офисе.Мне нравятся наушники Massdrop HD6xx за потраченные деньги. Есть прозрачный USB-кабель HP и кабели переменного тока Puritan Audio Laboratories. Это также позволяет мне немного поиграть в трубку! Для развлечения я подключил проигрыватель компакт-дисков Teac к несимметричным входам Lyr-3.

Эта система немного более продвинутая! В моей гостиной находится то, что я называю своей системой «прослушивания выступления» с парой динамиков Heavenly Soundworks Five Seventeen на стойках с изоляторами IsoAcoustic под динамиками.3 к MUTEC MC-3 + USB DDC. Я все еще беспокоюсь о кабелях AES, но на данный момент в системе есть кабель Mogami; Мне нужно три метра, и это бюджетная проблема.

Электропитание переменного тока — это все Puritan Audio Laboratories. Я использую их стандартные кабели для динамиков и Shanti. Стена к PSM156 и от PSM156 к Mutec — это их кабели Ultimate.

Мой сервер LMS — это Pi4 8 ГБ с встроенным твердотельным накопителем емкостью 4 ТБ, работающий от Farad Super 3 LPS.Сервер находится рядом с моим NAS. На стороне переменного тока есть шнур питания Puritan к прозрачному P2.

Правила Боба

  • Как я уже упоминал выше, я не использую беспроводные сети для инфраструктуры. Системы управления приемлемы по беспроводной связи; iPhone, iPad, ноутбук и т. д.
  • В ходе нескольких итераций я обнаружил, что отдельные конструкции сервера и стримера обеспечивают лучший звук и являются наиболее гибкими.Я продолжаю это здесь.
  • Я отношусь к системе как к устройству, основные музыкальные файлы хранятся в другом месте, а копии хранятся на сервере.
  • Я использовал файловые серверы и устройства NAS и отказался от них как от части системы воспроизведения, чтобы уменьшить сетевой трафик и нагрузку на серверные вычисления.
  • В конечном итоге блоки питания могут существенно повлиять на качество звука. Я нахожу, что поставляет с выходами суперконденсатора; очаровательный.
  • Межблочная разводка также имеет значение.
  • Я упорно работаю над устранением фанатов.
  • Программное обеспечение — король качества звука. Это ухудшает качество звука, просто находясь рядом. Чем меньше, тем лучше.
  • Наконец, поддержите программное обеспечение с открытым исходным кодом. Этот проект работает на нем! FOSS навсегда, детка!

Сложная часть

Теперь наступает сложная часть этой проблемы: поиск компонентов. Поскольку все покупают маски для лица и TP, пандемия, экономические потрясения и нехватка запчастей могут стать проблемой.В этом случае Amazon вам не друг, так как наценки там были довольно болезненными. Сначала осмотритесь.

Серверное оборудование

  • 75 долларов Raspberry Pi 4 (я использую один с 8 ГБ ОЗУ, но я думаю, что 4 ГБ подойдет)
  • 15 долларов Начните с источника питания от бородавок 5,1 В, 3,5 А. Пока все будет хорошо.
  • 15 долларов Приобретите карту MicroSD на 32 ГБ. Samsung и SanDisk — два бренда, которым я доверяю, от надежного поставщика.
  • $ ??? 2,5-дюймовый твердотельный накопитель для хранения музыки
  • Расширение хранилища GeekPi за 30 долларов

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

*** Я использую дочернюю плату для своего сервера с твердотельным накопителем емкостью 4 ТБ. Pi4 прикрепляется к верхней части платы, а SSD — к нижней части. Эта плата имеет цилиндрический разъем для питания обоих устройств.У меня это хорошо работает, но я использую другой блок питания. Для начала подойдет простой интерфейс USB — SATA. Это плата, которую я использую: GeeekPi Raspberry Pi 4 SATA Storage

Вот моя презентация на YouTube о настройке сервера:

Оборудование Streamer

Raspberry Pi 4 4 ГБ за 55 долларов.

$ 15 Начните с 5.Питание от бородавок 1В 3,5А.

Получите карту MicroSD на 32 ГБ

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

Я сейчас тестирую пару плат HAT, так что проблемы с кейсом еще не решены.

На данный момент стример имеет только USB-выход. Моя основная система прослушивания, динамики Heavenly Soundworks Five Seventeen, не имеет USB-порта. Я расскажу об этом чуть позже.

Просматривая Интернет здесь, в США, мне нравятся следующие поставщики: Canakit, PiShop.

*** Возможно, вам придется покупать у нескольких поставщиков, чтобы получить два Pi4 ***

Программное обеспечение, все это!

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

Думаю, я знаю из наблюдений. Когда программное обеспечение работает, оно потребляет электроэнергию и создает больше электрических помех в компьютере; Изучите EMC, RFI и TEMPEST. Как все это влияет на качество звука? Я плохо говорю. Аксиома Боба: меньше программного обеспечения — меньше шума.

Для меня это означает отказ от как можно большего количества программного обеспечения. Нет Windows, нет MacOS, нет Roon, Audirvanna и т. Д.

Чтобы цифровая музыка работала, нам нужно какое-то программное обеспечение.Позвольте мне рассказать об операционных системах для Raspberry Pi, компьютера, который я выбрал для этой задачи. В моем обзоре Allo USBridge Sig я пробовал несколько вариантов ОС по качеству звука, удобству использования и некоторой гибкости. Вот некоторые из них: Moode, Volumio, Ropee, Ropee XL, Diet Pi и еще несколько. Некоторые из них преданные игроки; некоторые просто стримеры. С этим оборудованием вы можете проводить те же оценки, что и я, за счет вашего времени, нескольких карт microSD и некоторой пропускной способности интернета. Здесь можно получить массу удовольствия.И немного боли.

Этим летом я обнаружил PiCorePlayer, построенный на Tiny Core Linux. PCP — это версия Tiny Core Linux, разработанная специально для Raspberry Pi для запуска проигрывателей Squeezelite, как вы уже догадались, Logitech Media Server. Ой, я выдал изюминку.

Tiny Core Linux работает в оперативной памяти, а размер настольной системы меньше 16 МБ! Прочтите их концепции здесь: http://tinycorelinux.net/concepts.html

Ну что ж, позвольте мне закончить еще немного.PiCorePlayer — это безголовая ОС. Вы не пользуетесь клавиатурой, мышью и дисплеем. Дополнительную информацию см. На их веб-сайте: https://www.picoreplayer.org. По умолчанию он настроен на подключение к сети Ethernet и отвечает на команды веб-браузера с использованием URL-адреса. http: //pcp.local. Один из основных клиентов для улучшения звука — запуск ОС в ОЗУ и загрузка туда музыкальных треков для воспроизведения.

PiCorePlayer запускался только как Squeezelite, но недавно был обновлен для установки LMS (Logitech Media Server).Если вам интересно, я провел базовое тестирование. Я могу улучшить звучание всей системы, сохранив LMS на отдельном Pi4.

Почему LMS и Squeezelite?

У меня есть пожизненная лицензия на Roon, две лицензии на ОС Euphony, год на Audirvanna Studio и две лицензии на Windows 10 Pro. Почему бы мне не использовать что-либо из вышеперечисленного на всем оборудовании, которое у меня есть? Потому что у меня НИКОГДА не было возможности заставить его звучать так же хорошо или стабильно, как два крошечных компьютера Raspberry Pi 4! Моя теорема состоит в том, что в любой из этих других систем работает слишком много программного обеспечения.Когда были разработаны LMS и Squeezebox, в системе обработки не было лишних накладных расходов. Код был проще!

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

https://forums.slimdevices.com

Это форум Squeezebox, и у ребят из PiCorePlayer тоже есть уголок! Извините, не все имеет такой стиль, как стиль аудиофилов

Процесс установки

Я бы начал с того, что собрал все необходимое в одном месте — оборудование Pi 4, пару запасных сетевых модулей, ваш ноутбук или настольный компьютер.Для Mac или Windows загрузите копию программного обеспечения Balena Etcher, используемого для записи операционной системы на карту microSD для Raspberry Pi. Для этого я использую PiCorePlayer. Загрузите 64-битную версию для Pi4

Команда PiCorePlayer задокументировала процесс прошивки карты MicroSD. Я предлагаю вам следовать их процессу: https://docs.picoreplayer.org/getting-started/

Осторожно вставьте карту microSD в один из Pi 4, затем подключите Ethernet и питание.Вы увидите, что загорится красный светодиод и около 15 секунд будет мигать зеленый светодиодный индикатор активности диска.

Откройте веб-браузер на своем компьютере и введите URL-адрес http: //pcp.local. Должен появиться пользовательский интерфейс PiCorePlayer. Осмотритесь, но пока расслабьтесь. Вы можете отключить первый Pi и настроить второй Pi таким же образом.

Пора праздновать! Тяжелая работа сделана. Ой, подожди, ты хочешь включить музыку…. Что ж, я думаю, есть еще кое-что, что нужно сделать.

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

http://tinycorelinux.net

https://www.picoreplayer.org

https://docs.picoreplayer.org

https://forums.slimdevices.com

https://forums.slimdevices.com/forumdisplay.php?27-Logitech-Media-Server

Теперь, когда вы знаете, что оба ваших компьютера Pi4 запущены и работают, я предлагаю вам подключить их к их фактическим рабочим местам.Вставьте стример в систему, подключите сеть, USB и питание.

Найдите удобный безопасный уголок для LMS Pi 4 и подключите его к сети и источнику питания.

Если вы откроете http: //pcp.local в веб-браузере своего компьютера, вы увидите две вкладки с двумя разными машинами, готовыми к работе.

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

Итак, начнем:

Мне нравится называть свои устройства как для отображения в LMS, так и для доступа в Интернет. В настройках Squeezelite измените имя вашего плеера по своему усмотрению. Щелкните поле сохранения, чтобы сохранить изменения.

В меню «Настройки» установите имя хоста, которое вы запомните, и нажмите кнопку «Сохранить».

Прежде чем продолжить, я хочу поблагодарить @seetooyou за то, что он указал мне на несколько целевых веб-сайтов о PiCorePlayer.

Подробнее см. Здесь: https://audiophilestyle.com/forums/topic/64086-a-short-introduction-to-tiny-core-linux/?tab=comments#comment-1161667

Клаус, автор саундчек-аудио на blogger, написал серию аудиопотоков, в которой рассматриваются причины появления Pi, процесс настройки и многое другое. Это моя библия по настройке PCP.

Основной блог находится здесь: https://soundcheck-audio.blogspot.com

Этот первый сегмент представляет собой введение в причины использования Pi4: https: // soundcheck-audio.blogspot.com/p/soundchecks-tass-intro.html

Предпосылки и настройка PiCorePlayer в качестве стримера: https://soundcheck-audio.blogspot.com/p/in-part-2-of-project-i-address-setup-of.html

Настройка Logitech Media Server Клаус не показывает макет на PiCorePlayer. https://soundcheck-audio.blogspot.com/p/the-streaming-server.html

Настройки Squeezelite для PiCorePlayer. Обратите внимание, что в более позднем посте несколько предложенных здесь настроек изменятся.https://soundcheck-audio.blogspot.com/p/in-part-3-of-audio-engine-series-id.html

Это хорошо продуманный сегмент сетевых технологий с тестированием с использованием iperf и др. Это хорошее прочтение, но использование Ethernet на современном оборудовании должно устранить много беспорядка. Перейдите сюда, если у вас есть проблемы с вашей сетью, вы хотите использовать беспроводную связь и т. Д. Https://soundcheck-audio.blogspot.com/p/the-net.html

Это начало расширенной настройки.Я бы воздержался от этого и сначала убедился, что у вас есть работающее воспроизведение музыки: https://soundcheck-audio.blogspot.com/p/the-rpi-audio-streaming-series-advanced.html

Это следующий расширенный сегмент, в котором рассказывается о пользовательской версии Squeezelite для Soundcheck. Вы обязательно этого захотите. Прочтите это и подождите немного, чтобы узнать больше о sKit ниже: https://soundcheck-audio.blogspot.com/p/the-engine.html

Это обширный раздел о преобразовании частоты дискретизации.Я бы посоветовал вам избежать этого, если вы только начинаете: https://soundcheck-audio.blogspot.com/p/the-converter.html

Это тот сегмент, который остановил меня от охоты за идеальным приложением для контрольных точек LMS. Material Skin и любой старый веб-браузер, WINS. Это необходимо прочитать и настроить: https: //soundcheck-audio.blogspot.com/p/the-controller.html

Это руководство по потоковой передаче DSD. Два из трех имеющихся у меня стримеров не воспроизводят DSD.Я сегментирую несколько имеющихся у меня альбомов и проверяю наличие версий PCM: https://soundcheck-audio.blogspot.com/p/the-rpi-audio-streaming-series-dsd.html

Этот отрывок был написан в августе 21 года и является основой для пения PiCore Player Streaming. Речь идет только о клиенте, а не о LMS! Вы можете доверять Клаусу и многим другим и начинать и заканчивать здесь. Проделайте все, что описано в этой небольшой статье, со своим проигрывателем Squeezelite на базе PCP, и вы должны быть довольны: https: // soundcheck-audio.blogspot.com/p/the-skit-pcp.html

Затем есть захватывающая серия сообщений и программного обеспечения на неанглоязычном форуме, через которые вам поможет Google Translate. Я все еще учусь понимать, что здесь происходит.

https://www.stsd99.com/phpBB3/viewtopic.php?p=20179#p20179

Мне еще предстоит протестировать различные варианты программного обеспечения, предлагаемые здесь. Он занимает одно из первых мест в моем «круглом» списке.

Питание переменного тока

Я провел много структурированных и неструктурированных тестов источников питания.Как я уже сказал выше, я доволен выходными источниками суперконденсатора. UpTone LPS-1.2, Allo Shanti и Farad Super 3 уже в стабильном! Например, я начал использовать сервер LMS со стандартным комплектом для защиты от бородавок Canakit. Затем я перешел на HDPLEX 200 Вт LPS. С переходом на использование MUTEC MC-3 USB в системе для гостиной, я переместил FARAD Super 3 на сервер и поставил Shanti на Pi4 наверху.

У меня есть еще несколько экспериментов, которые потребуют корректировки моей конфигурации блока питания.

Я хотел бы, чтобы вы осознали, что я понимаю эмоциональную проблему использования блока питания за 800 долларов на компьютере за 75 долларов. Прямо сейчас я бы поставил Farad Super 3 на каждый Streamer. Тем не менее, Алло Шанти по цене около 160 долларов — это просто потрясающе. Я хочу повторно подключить выходы источника Shanti с помощью более качественных и более коротких кабелей постоянного тока, чтобы увидеть, как это улучшает подачу питания и качество звука.

Моя система с активными динамиками в подвале работает от бородавок Canakit.Я обновлю его до Shanti или HDPLEX 200 и однажды посмотрю, что он сделает. Кто сказал, что вы не можете получить много удовольствия, используя активные колонки!

На этом я завершаю свой путь к использованию Raspberry Pi 4 в качестве музыкального вычислительного оборудования. У меня есть много идей, с которыми можно поиграть и узнать о них. Я все еще смотрю на блоки питания и некоторые кабели. Я тестирую три устройства с SPDIF или AES, чтобы посмотреть, как они соотносятся друг с другом. Меня очень интересует CM4 и некоторые платы, имеющиеся на рынке или в стадии разработки: https: // www.pi2design.com/coming-soon.html

Еще одна вещь

Поставщик радиолюбителей, компания DX Engineering, разработала и продает свой радиочастотный фильтр DX Engineering ISO-PLUS Ethernet. Например, вы вставляете по одному на каждом конце сети, ведущей к стримеру. Пара стоит 49,99 доллара, а упаковка из десяти — 239,99 доллара. Они идут с косичками, чтобы их соединить. Сделайте вашу систему стабильной и комфортной со звуком. Затем вставьте пару таких!

https: // www.dxengineering.com/search/product-line/dx-engineering-iso-plus-ethernet-rf-filters/part-type/network-devices?fr=part-type&SortBy=BestKeywordMatch&SortOrder=Ascending&autoview=SKU&keyword=iso%20plus

Некоторые из нас, работающих в Audiophile Style, считают, что они улучшают качество звука наших систем. Я установил их на всех трех моих стримерах.

Следующие четыре PDF-документа содержат мои настройки:

  1. Настройки LMS
  2. Настройки LMS
  3. Настройки Squeezelite
  4. Настройки Squeezelite

Проигрыватель потокового аудио DIY — Circuit Cellar

Как вы хотели бы потоковое аудио плеер? Иногда для того, чтобы построить гаджет, не нужно ничего строить.

M Она недавно попросила устройство, которое обеспечивало бы фоновую музыку в ее зоне шитья и на кухне. Пока мы обсуждали то, что она хотела, «дизайнерские характеристики» сводились к простой коробке, в которой просто играла музыку. Хотя мы, безусловно, могли купить проигрыватель потокового радио, никому из нас не понравились сложные пользовательские интерфейсы, сложности с лицензионным соглашением и задокументированные случаи сетевого шпионского ПО, которые сопровождают многие из этих плееров.

После некоторых экспериментов я остановился на оборудовании, показанном на фото , фото 1 : Raspberry Pi 2 Model B в стандартном корпусе, звуковая панель USB, предназначенная для ЖК-монитора, цифровая клавиатура USB с измененной маркировкой и либо USB Wi-Fi. Fi-адаптер или проводное соединение Ethernet.Что касается программного обеспечения, я написал программу Python, которая управляет mplayer, проигрывателем потоковой передачи из командной строки, работающим на Raspbian Jessie Lite Linux.

Фото 1
Raspberry Pi и USB-динамик обычно находятся в дальнем конце комнаты для квилтинга Мэри, а USB-клавиатура находится рядом с ее швейной машиной. Для плохого приема Wi-Fi в этом конце дома требовалось проводное соединение Ethernet, а не адаптер Wi-Fi с длинной антенной, показанный здесь. Одеяло находится в стадии разработки и все еще удерживается специальными английскими булавками, такими как тот, что находится рядом с Пи.

В этой колонке я опишу наш простой потоковый аудиоплеер, а попутно вы увидите, насколько многого вы можете достичь с помощью того, что Стив назвал бы «простым программным обеспечением». Тот факт, что вы можете собрать такую ​​систему из легкодоступных аппаратных и программных компонентов, показывает, что сегодня действительно золотой век создания вещей.

УПРАВЛЕНИЕ МОЩНОСТЬЮ

Платы Raspberry Pi 2 Model B, которые я использовал, получают питание от настенной бородавки 5 В, 2,5 А, подключенной к их USB-разъему Micro-B (слева на фото 1), что означает, что я должен отключить настенную бородавку, чтобы полностью развернуться. выключить питание.Я видел тщательно продуманные платы управления питанием с переключателями MOSFET, которые отключают Raspberry Pi от источника питания, но, поскольку они не выключают настенную бородавку, ее рассеивание мощности в режиме ожидания остается «вампирской нагрузкой», которая никогда не умирает.

Весь потоковый проигрыватель потребляет от 450 до 500 мА от источника питания 5 В, немного варьируясь в зависимости от громкости звука, для общего рассеивания около 2,5 Вт. После выключения системы с помощью sudo shutdown -P now он потребляет менее 30 мА и рассеивается. 150 мВт; большая часть этого тока может загореться красным светодиодом питания RPI, спрятанным внутри корпуса.Нагрузка вампира на стороне 120 В переменного тока кажется ниже 1 Вт, ниже минимальной нагрузки, которую я могу точно измерить, и я решил, что не буду об этом беспокоиться.

Как я опишу позже, программа Python декодирует системные события, производимые клавишами на цифровой клавиатуре. Когда мы нажимаем и удерживаем клавишу Backspace в верхнем правом углу клавиатуры (покрыт красной меткой Halt), программа выполняет код из Листинга 1 , чтобы выключить RPi. Затем для перезапуска RPi требуется цикл питания (отключение стенной бородавки!) Или аппаратный сброс.

   Листинг 1
Нажатие и удерживание клавиши Backspace на цифровой клавиатуре вызывает полное отключение с использованием этого кода, после чего рассеиваемая мощность системы падает до 150 мВт. Хотя эта программа Python будет работать на настольном ПК, вам, вероятно, не стоит этого делать! 

если (kc == 'KEY_BACKSPACE') и (KeyEvent (e) .keystate == KeyEvent.key_hold):
    print 'Backspace = выключение!'
    p = subprocess.call (['sudo', 'shutdown', '- P', 'now'])  

Последние платы RPi включают в себя две контактные площадки для заголовка RUN, который, несмотря на свое название, сбрасывает CPU, когда переключатель подключает контактные площадки. Фотография 2 показывает расположение заголовка на платах RPi 2 Model B, которые я использовал; в других версиях он находится в другом месте. Припаивание этого заголовка на место и модификация корпуса, позволяющая вставить разъем поверх контактов, были единственными двумя «аппаратными» изменениями, которые я внес во время всего этого проекта.

Фото 2
Единственные аппаратные модификации в этом проекте включали припайку двухконтактного разъема на печатной плате Raspberry Pi и вырезание для него места в пластиковом корпусе. Кратковременное замыкание контактов RUN вместе сбрасывает ЦП и запускает процесс загрузки.Я использовал существующее отверстие в стандартном корпусе Pi для небольшого кнопочного переключателя.

Я приклеил крошечный кнопочный переключатель к черной пластиковой крышке корпуса так, чтобы привод выступал через декоративный вырез Raspberry, как показано на фото 1. Стрелка на красной этикетке сброса указывает прямо на незаметный переключатель.

Хотя это не так удобно, как дистанционное включение-выключение питания, этого достаточно для наших целей: мы нажимаем кнопку «Сброс», чтобы включить музыку по пути в комнату, затем нажимаем кнопку «Остановить», чтобы выключить ее.Белый светодиод слева от ручки регулировки громкости на звуковой панели USB обеспечивает единственную видимую индикацию того, что система работает; музыка сообщает нам все, что нам нужно знать.

Когда мощность была под контролем, аудиовыход стал следующей проблемой.

АУДИО: хорошее, плохое и ужасное

Все платы Raspberry Pi включают четырехпроводной разъем 3,5 мм (он же 1/8 дюйма), который воспроизводит звук, который многие обозреватели называют «базовым». Возможно, это связано с тем, что гнездо также передает выходной композитный видеосигнал на свой терминал Sleeve с заземлением цепи (a.к.а. Common) на клемме Ring 2. Таким образом, разъем RPi соединяет экран трехжильного аудиокабеля с видеовыходом, а не с землей, и при этом может закоротить видеовыход RPi на землю.

Я планировал подключить к этому разъему громкоговорители с усилителем в стиле ПК, но после некоторого тестирования и перенастройки с различными разъемами мы решили, что звуковая схема Pi производит достаточно фонового шума и общих искажений, чтобы сделать классическую музыку неслышимой. Я послушался мнения Мэри, так как ее слух по-прежнему намного лучше моего, хотя звук тоже казался мне довольно плохим.

Платы

Raspberry Pi имеют видеовыход HDMI, который передает звук цифрового качества, но вы должны добавить монитор HDMI с аудиовыходами или аудиоразветвитель HDMI для извлечения аналоговых аудиосигналов для динамиков. Хотя можно убедить RPi включить выход HDMI без монитора, я не был уверен, что разветвитель будет работать в этой ситуации, и не хотел вкладывать средства в довольно специализированное оборудование, чтобы выяснить это.

Вместо этого я подключил старый аудиоконвертер Creative Labs Sound Blaster USB, который, как я знал, воспроизводил звук хорошего качества.Звуковая система ALSA обычно использует встроенное аудиооборудование RPi (которое она называет картой 0) для всего вывода звука, поэтому я добавил файл конфигурации в листинг 2, чтобы установить преобразователь USB (карта 1) по умолчанию.

   Листинг 2
Звуковая система ALSA помечает аудиоконвертер USB как «Карта 1». Эти строки в /etc/asound.conf устанавливают его как звуковое устройство по умолчанию. 

pcm.! default {
 введите hw card 1
}
ctl.! default {
 введите hw card 1
}
  

Тестовая установка звучала достаточно хорошо, хотя никому из нас не понравился дополнительный беспорядок и кабели.Я написал первую версию программы Python, используя эту конфигурацию, с обещанием, что она не будет постоянной.

При поиске в Интернете была обнаружена новая звуковая панель Dell AC511 USB, которая изначально предназначалась для установки на лицевую панель недавних ЖК-мониторов Dell. Как вы можете видеть на Фото 1, это, по сути, узкий черный ящик, в котором прорастает USB-кабель, который подключается непосредственно к RPi, что исключает внешний USB-аудиоконвертер. В отличие от большинства активных динамиков, он также незаметен.Мне нужно сделать кронштейны для крепления перекладин к основанию полок в швейных мастерских Мэри, что кажется намного проще, чем строить целые корпуса.

Устройство Linux и модули аудиоинтерфейса одинаково относятся к внешнему USB-преобразователю и AC511, поэтому mplayer одинаково хорошо работает с любой конфигурацией. Как и следовало ожидать, звук, воспроизводимый при данной настройке громкости микшера, зависит от оборудования, поэтому я скорректировал настройки по умолчанию, чтобы они соответствовали AC511. Имена каналов микшера также зависят от оборудования, что послужило еще одним стимулом для создания трех одинаковых плееров.

Пара 1,5-дюймовых динамиков AC511, очевидно, предназначенных для прослушивания через рабочий стол, обеспечивает достаточную громкость в швейной. Хотя более мощный усилитель и динамики большего размера обеспечили бы более высокий уровень звукового давления, Мэри хотела не это сопровождать при шитье.

СИСТЕМА УПРАВЛЕНИЯ

RPi и динамики располагаются через всю комнату, в стороне от ткани на столе для квилтинга, но органы управления должны оставаться близко к швейной машине. Дистанционное управление кажется решенной проблемой, особенно потому, что Linux поддерживает широкий спектр инфракрасных пультов дистанционного управления через проект LIRC (Linux Infrared Remote Control), пока вы не рассмотрите проблемы «пользовательского интерфейса».

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

Что еще хуже, для надежного ИК-управления необходимо направить передающий светодиод в общем направлении приемника.Нажатие кнопок на пульте дистанционного управления за большим рулоном ткани не сработает, независимо от того, насколько «живыми» ИК-сигналы могут быть в комнате, где нет препятствий.

В отличие от ИК-пультов дистанционного управления, пара цифровых USB-клавиатур из Фото 3 обеспечивает почти все функции, которые мы хотели. Я использовал проводную клавиатуру слева для своей тестовой установки и беспроводную клавиатуру справа в швейной, причем РЧ-канал 2,4 ГГц последнего работал надежно независимо от ориентации или местоположения. Поскольку цифровые клавиатуры возвращают те же коды клавиш, что и часть клавиатуры стандартной клавиатуры ПК, вы также можете использовать проводную или беспроводную клавиатуру, хотя это займет слишком много места рядом со швейной машиной.

Фото 3
Цифровые клавиатуры USB напоминают панели управления с большими «кнопками» и стандартизированными скан-кодами. Клавиша с тройным нулем на проводной клавиатуре возвращает три последовательных скан-кода KEY_KP0, что было бесполезно для моих целей.

Первые три строки в листинге 3 указывают интерфейсу устройства Linux udev назначить имя / dev / input / keypad для двух клавиатур и полной клавиатуры ПК из моей коллекции, при условии, что только одна из них будет подключена. в RPi в любое время.Затем программа Python может ссылаться на одно имя устройства, независимо от базового оборудования.

   Листинг 3
Помещение этих правил UDEV в /etc/udev/rules.d/streamer.rules автоматически назначит стандартные имена цифровым клавиатурам и регулятору громкости звуковой панели. Если вы подключите несколько клавиатур к RPi, будет использоваться только одна. 

ATTRS {имя} == "HID 13ba: 0001", SYMLINK + = "ввод / клавиатура"
ATTRS {idVendor} == "062a", ATTRS {idProduct} == "4101", ENV {ID_INPUT_KEYBOARD} == "1",
SYMLINK + = "ввод / клавиатура"
ATTRS {name} == "DELL Dell USB Entry Keyboard", SYMLINK + = "input / keypad"

ATTRS {имя} == "Звуковая панель USB Dell Dell AC511", SYMLINK + = "вход / громкость"  

Хотя беспроводная клавиатура использует тот же 2.Спектр 4 ГГц в качестве подключения к сети Wi-Fi, передача нескольких нажатий клавиш не вызывает сбоев в работе сети. В обратном направлении приемник клавиатуры работает надежно, несмотря на постоянный сетевой трафик через антенну Wi-Fi в соседнем USB-разъеме.

Звуковая панель AC511 включает диск управления громкостью, который, к моему удивлению, сообщает о себе как о USB-клавиатуре, а не напрямую управляет выходом звуковой панели, поэтому правило udev в последней строке листинга 3 создает устройство с именем / dev / input / объем для него.Диск непрерывно вращается, производя «нажатия клавиш» KEY_VOLUMEUP в одном направлении и клавиши KEY_VOLUMEDOWN в другом, и программа Python использует эти коды клавиш для регулировки громкости небольшими плавными приращениями.

Вы можете написать аналогичные правила udev для других USB-устройств, похожих на клавиатуру, хотя создание синтаксически правильного и семантически полезного правила udev требует значительных исследований на уровне системы. Ссылки в разделе «Ресурсы» документируют процесс.

Нас не совсем устраивают надписи на клавиатуре, которые вы видите на Фото 1, и я рассчитываю отрегулировать шрифт и размер после того, как мы остановимся на окончательном наборе потоковых источников.Ручка регулировки громкости звуковой панели, однако, работает ровно , как мы и ожидали!

КОНФИГУРАЦИЯ МАЛИНЫ ПИ

Типичная конфигурация RPi напоминает обычный настольный ПК с графическим дисплеем, полноценной клавиатурой и мышью. Хотя ЦП не может обеспечить производительность настольного компьютера, знакомый графический интерфейс работает хорошо и служит целям Raspberry Pi Foundation по обеспечению доступности компьютеров для школьников.

В отличие от этого, эти аудиоплееры напоминают простые встроенные системы, в которых работает одна программа с очень ограниченным пользовательским интерфейсом.Для установки Jessie Lite, версии CLI (интерфейса командной строки) ОС Raspbian Linux, в которой отсутствуют все компоненты графического интерфейса, требуются дисплей и клавиатура, но после того, как я настроил систему, чтобы разрешить удаленный доступ с моего настольного ПК, каждое устройство имело только оборудование, которое вы видите на фото 1, и я проделал всю дальнейшую работу по сети.

Вы найдете несколько проектов Raspberry Pi, обеспечивающих полную мультимедийную среду для телевизоров, мониторов, усилителей, пультов дистанционного управления и т. Д., Но у нас были гораздо более ограниченные цели.Я установил MPlayer, медиаплеер, который может работать либо в среде графического интерфейса пользователя, где он воспроизводит видеофайлы с DVD и сетевых потоков, либо в конфигурации интерфейса командной строки с аудиофайлами и потоками.

Краткий файл конфигурации MPlayer в листинге 4 определяет настройку, необходимую для потоковой передачи только аудио. В большинстве случаев проигрыватель автоматически выбирает правильные параметры, но установка значений по умолчанию в файл конфигурации устраняет некоторую задержку при запуске. Я обнаружил, что использование кодека ffmpeg вызывает меньше ошибок декодирования потока MP3, чем кодек mpg123 по умолчанию.

   Листинг 4
Эти параметры конфигурации mplayer (в ~ / .mplayer / config) адаптируют его для потоковой передачи только аудио. Настройки громкости зависят от выходного оборудования и вашего предпочтительного уровня звука. 

предпочитают-ipv4 = правда
novideo = true
cache = 500
кеш-мин = 50
ao = alsa
format = s16le
afm = ffmpeg, faad
микшер-канал = PCM
объем = 20
volstep = 1
тихо = ложь  

В нормальных условиях вы запускаете MPlayer из командной строки, затем управляете им с помощью символов клавиатуры, считывая выходные данные состояния на дисплее.Однако, как и в большинстве программ в стиле Unix, MPlayer считывает свой ввод и отображает вывод, используя стандартные операции ввода-вывода, которые позволяют другому процессу запускать, контролировать и отслеживать его работу, поэтому я написал программу Python, чтобы делать именно это.

Фрагмент кода из /etc/rc.local, показанный в листинге 5 запускает программу Python сразу после завершения запуска RPi. Затем эта программа использует библиотеку подпроцесса Python для запуска mplayer с URL-адресом потока по умолчанию из словаря в листинге , листинг 6 .Обычная последовательность загрузки RPi требует 7 секунд (в зависимости от скорости карты MicroSD), но музыка не начинается до тех пор, пока mplayer не буферизует 250 КБ из потока, что, в зависимости от скорости передачи данных потока, может добавить от 5 до 20 секунд. .

   Листинг 5
Все три проигрывателя потоковой передачи выполняют одну и ту же программу Python из общего сетевого ресурса. Этот фрагмент относится к /etc/rc.local и запускается сразу после запуска RPi. 

mount -o ro сервер: / mnt / Projects / Streaming_Player / Firmware / / mnt / part
sudo -u pi python / mnt / part / Streamer.py &  

Поскольку все три наших плеера имеют одинаковое оборудование, они загружают одну и ту же программу Python с файлового сервера в нашей домашней сети. Это означает, что я могу редактировать программу с помощью моего любимого текстового редактора на большом дисплее в портретном режиме на моем столе, а затем каждый игрок запускает новую версию при ее запуске.

УПРАВЛЕНИЕ MPLAYER

Как и большинство простых встроенных программ, программа Python состоит из бесконечного цикла, который анализирует вывод MPlayer на предмет сообщений о состоянии и проверяет ввод с цифровой клавиатуры и ручки регулировки громкости.У меня недостаточно места, чтобы показать полный исходный код, который вы можете скачать по ссылке «Ресурсы».

Вывод

MPlayer состоит из отдельных текстовых строк, которые код в листинге 7 считывает и анализирует построчно при каждом прохождении основного цикла. Я обнаружил, что MPlayer отключается, когда сталкивается с проблемами в сети или обнаруживает метку конца файла от станции потоковой передачи. Однако в большинстве случаев простой перезапуск MPlayer с тем же URL-адресом решает проблему, поэтому код просто убивает подпроцесс MPlayer, выполняет некоторую очистку и перезапускает его.Только в редких случаях, когда станция внезапно прекращает передачу, мы должны вручную переключаться на другую станцию.

   Листинг 7
Этот код считывает последовательные строки из вывода MPlayer и анализирует их, чтобы определить его статус. Я распечатал строку StreamTitle для диагностических целей, но она может отображаться на ЖК-дисплее. MPlayer может отключиться из-за проблем с сетью или потоковым сервером, хотя обнаружение этого условия и автоматический перезапуск MPlayer обычно решает проблему.

текст = lr.readline ()
если в тексте «ICY Info:»:
  trkinfo = text.split (';')
  для ln в trkinfo:
    если StreamTitle в ln:
      trkhit = re.search (r "StreamTitle = '(. *)'", ln)
      TrackName = trkhit.group (1)
      print 'Название трека:', TrackName
      перерыв
elif 'Exiting ...' в тексте:
  print 'Got EOF / stream cutoff'
  печать '... убийство мертвого mplayer'
  p.kill ()
  печать '... промывка труб'
  lw.truncate (0)
  напечатать '... отбрасывая ключи'
  while []! = kp.poll (0):
    kev = k.читать
  print '... перезапуск mplayer:', Media [CurrentKC] [0]
  p = subprocess.Popen (Media [CurrentKC] [- 1],
       stdin = subprocess.PIPE, stdout = lw, stderr = subprocess.STDOUT)
  печать '... работает'
  Продолжить
  

Код в листинге 8 обрабатывает обычные изменения станции в ответ на кнопки на цифровой клавиатуре. Как и раньше, программа выполняет этот код каждый раз в основном цикле, когда обнаруживает нажатие клавиши. Первая строка проверяет, совпадает ли код клавиши в переменной kc с каким-либо из кодов клавиш, хранящихся в словаре мультимедиа, показанном в листинге 6.Если это так, он отправляет символ «q», который сообщает MPlayer о корректном завершении работы, а затем перезапускает его с новым URL-адресом. Однако MPlayer не может ответить, если он уже отключился из-за проблем с сетью, поэтому код принудительно завершает процесс перед перезапуском.

   Листинг 6
Словарь Python связывает коды клавиш с командными строками mplayer. Многие потоковые радиостанции реализуют разделение нагрузки с помощью переменных списков воспроизведения, в которых указываются разные URL-адреса потоков при каждом вызове, поэтому конкретный URL-адрес может устареть почти сразу.Переменная CurrentKC определяет как начальную, так и самую последнюю выбранную станцию. 

Media = {'KEY_KP7': ['Классический', ['mplayer', '- плейлист', 'http: //stream2137.init7.net/listen.pls']],
         'KEY_KP8': ['Джаз', ['mplayer', '- плейлист', 'http: //stream2138.init7.net/listen.pls']],
         'KEY_KP9': ['WMHT', ['mplayer', 'http: //live.str3am.com: 2070 / wmht1']],
       ... другие потоковые радиостанции ...
}

CurrentKC = 'KEY_KP7'  
   Листинг 8
Чтобы переключиться на другую потоковую станцию, необходимо закрыть MPlayer.
вниз и перезапустите его с новым URL-адресом.Если MPlayer был отключен из-за сбоя станции или сети, он не может ответить и должен быть отключен принудительно. 


если kc в СМИ:
  print 'Switching stream to', Media [kc] [0], "->", Media [kc] [- 1] [- 1]
  CurrentKC = kc
  печать '... остановка игрока'
  пытаться:
    p.communicate (ввод = 'q')
  кроме исключения как e:
    print 'Может быть, mplayer умер?', e
    напечатать '... убить его наверняка'
    p.kill ()
  печать '... промывка труб'
  lw.truncate (0)
  print '... перезапуск проигрывателя:', Media [CurrentKC] [0]
  p = подпроцесс.Popen (Media [CurrentKC] [- 1],
        stdin = subprocess.PIPE, stdout = lw, stderr = subprocess.STDOUT)
  print '... running'  

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

Вся программа Python требовала всего 150 строк, при этом большая часть сложности была посвящена выяснению того, когда MPlayer остановился из-за внешних сил, не зависящих от меня.Я, конечно, не могу смоделировать все возможные режимы отказа, не говоря уже о написании кода для корректного восстановления после каждой ошибки, но текущая версия работает достаточно хорошо для наших целей.

КОНТАКТ-РЕЛИЗ

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

РЕСУРСЫ
Linux udev Device Manager, https: // en.wikipedia.org/wiki/Udev.
Э. Нисли, «Raspberry Pi: Jessie Lite Setup для потокового аудио», http://softsolder.com/2016/02/08/raspberry-pi-jessie-lite-setup-for-streaming-audio/.
———, «Правила UDEV для дешевых цифровых клавиатур»,
http://softsolder.com/2016/02/18/udev-rules-
for-cheap-numeric-keypads /.
Пакет Python evdev, https://python-evdev.readthedocs.org/.
Управление подпроцессами Python, https://docs.python.org/2/library/subprocess.html.
Каталог потоков Xiph, http: // dir.xiph.org/.

ИСТОЧНИКИ
AC511 Звуковая панель USB
Dell | https://accessories.dell.com/sna/product
detail.aspx? c = us & l = en & s = dhs & cs = 19 & sku = 318
-2885
Raspberry Pi 2 Model B
Raspberry Pi Foundation | www.raspberrypi.org
Беспроводные цифровые клавиатуры
eBay | www.ebay.com/sch/i.html?_nkw=numeric
+ клавиатура + usb + беспроводной & _sop = 15

ОПУБЛИКОВАНО В ЖУРНАЛЕ CIRCUIT CELLAR • ИЮЛЬ 2016 № 312 — Получить PDF-файл выпуска

EE и Автор в Покипси, Нью-Йорк | + сообщения

Эд Нисли — EE и автор из Покипси, штат Нью-Йорк.Свяжитесь с ним по [email protected], указав в теме письма «Circuit Cellar», чтобы избежать спам-фильтров.

Спонсируйте эту статью

Натан Моррис: DIYNetwork.com | Сделай сам

Самый старший и один из основателей Boyz II Men рано увлекся музыкой, пел в церкви и играл на трубе. Его одаренный слух был обнаружен в 4-м классе на уроке вокала в начальной школе.Учитель музыки начал играть песню, над которой класс работал неделей ранее, но начал играть ее в другой тональности. Натан быстро поднял руку, указал, что песня игралась в другой тональности неделей ранее, и начал петь ее в оригинальной тональности. Это вызвало интерес учителей к естественному дару Натана «относительный слух», поэтому он начал давать Натану частные уроки «пения с листа», а также уроки вокала и игры на фортепиано. Когда Натан окончил начальную школу, его учитель посоветовал его матери пойти в школу под названием Мередит, которая была неполной средней школой исполнительского искусства в Южной Филадельфии, где его жена была преподавателем музыки.Это был идеальный матч, если не считать того факта, что Натан умел попадать в неприятности. Поскольку он всегда был самым маленьким учеником в классе, школьный хулиган часто приставал к нему. Всегда придерживаясь позиции, не позволяющей никому указывать ему, что ему делать, Натан каждые две недели устраивал там драки. Когда пришло время выпускного, Натана направили в Высшую школу творческих и исполнительских искусств в Филадельфии (CAPA), но возникли две проблемы; Натан действительно не хотел идти, а в средней школе у ​​него было столько неприятностей, что его оценки были недостаточно хороши, чтобы попасть в эту школу.Натан хотел пойти в местную школу, в которой была сильная футбольная программа. Он хотел полностью отказаться от музыки и сосредоточиться на профессиональном футболе, но против его воли его мать и учитель потянули за ниточки и заставили его пройти прослушивание. Он исполнил две классические песни на двух разных языках (итальянском и немецком) и был принят почти мгновенно. Поскольку школа была слишком маленькой, чтобы иметь футбольную команду, Натан присоединился к баскетбольной, а также к теннисной команде, но ни одна из них не дала ему того удовлетворения, которое он искал.Однажды в глубине своего урока мировой истории ему стало скучно, и он начал громко петь в классе. Учитель попросил его успокоиться, иначе он даст ему розовую оговорку, но Натан в обычной манере стал громче. К нему присоединился еще один одноклассник по имени Марк Нельсон. Излишне говорить, что их обоих выгнали из класса и они начали говорить о своих музыкальных интересах. Они оба были большими поклонниками New Edition, так что сразу нашли общий язык. Затем Натан высказал идею создания вокальной группы, подобной New Edition, и начало Boyz II Men обрело форму.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *