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

 
 
 

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

📆13.10.18 | 🙋Sergiy_83 | 👀6 708 | 💬34

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

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

Поддержтваемые форматы аудио


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

Писать свой плеер полностью смысла не вижу, врят ли он получится лучше чем существующие. Поэтому, в качестве инструмента воспроизведения выступает 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. Запускаем . . . ммм! Звучать стало лучше, точно лучше. А может, самовнушение. Переутомился я.

Мой Аudio Сommander

Мое основное ПО — это тоже надстройка над 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, можно поменять путь к музыкальному каталогу.

Эксплуатация. Клиент С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 синтаксис.

Выводы

Надо было делать не так. К фигам эти GPIO, надо было делать все на USB. Клавиши, регулятор громкости — это USB клавиатура — самодельная разумеется. USB ЦАП — не проблема, USB дисплей, а почему бы и нет! Это позволило бы взять мини-ПК без HDMI, они дешевле. И вообще, все это можно было бы провернуть на любой материнской плате, и только потом подобрать современный мини-ПК. Надо осваивать USB!

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

Рис. 12. Пример хорошего охлаждения



Рис. 13. В интерьере


Видео в работе

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


Файлы

1. Мой образ SD карты с ОС Raspbian
2. Исходный код AC 🕗 09/10/18 ⚖️ 362,23 Kb ⇣ 28
3. Исходный код С83 🕗 09/10/18 ⚖️ 15,84 Mb ⇣ 32
4. Исходный код для видеоадаптера 🕗 09/10/18 ⚖️ 288,86 Kb ⇣ 30
5. Плата и схема видеоадаптера 🕗 09/10/18 ⚖️ 100,68 Kb ⇣ 40
6. Схемы 🕗 09/10/18 ⚖️ 31,64 Kb ⇣ 42

Спасибо за внимание!
Сергей (Sergiy_83)
Беларусь. Жодино
Профиль Sergiy_83
Электроникой увлекся в старших классах школы.
Потом закончил Минский профтехнический колледж электроники.
Потом «БГУИР» — Белорусский государственный университет информатики и радиоэлектроники. Инженер-электроник вот уже 11 лет.

Часто тянет что-нибудь изобрести.
Люблю программирование (Си, С++).
 

Читательское голосование

Нравится

Статью одобрили 102 читателя.

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

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Даташит CS4350 pdf datasheet 192-kHz Stereo DAC with Integrated PLL... Давненько наш справочник не пополнялся полезняшками. Предлагаю возобновить традицию: нашли...
Схема на Датагоре. Новая статья Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 2. ЦАП на CS4350 и БП... Всем привет! В этой части я расскажу вам о цифро-аналоговом преобразователе на основе чипа CS4350...
Схема на Датагоре. Новая статья Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 1. Блок питания для Raspberry Pi (5V, 2A)... Всем привет! Давным-давно в голову мне пришла идея сделать стационарный аудиоплеер, как в старые...
Схема на Датагоре. Новая статья Texas Instruments Audio Guide 2012... Официальный справочник-гид по всем аудиокомпонентам, предлагаемым TI в 2012 году включая Class-AB,...
Схема на Датагоре. Новая статья Аудиогид по продукции Texas Instruments 2011... Новинка с оф. сайта Texas Instruments. В каталоге представлены краткие описания современных...
Схема на Датагоре. Новая статья Кулинария lossless форматов... С тех пор, как стало возможным представить звук в цифровом виде, появилась возможность обмениваться...
Схема на Датагоре. Новая статья Новая программа от SRS Labs - Audio SandBox... SRS Labs выпустила программу Audio Sandbox 1.6.3.0, которая может стать реальным конкурентом Dolby...
Схема на Датагоре. Новая статья CD-проигрыватели. Схемотехника. Ю.Ф. Авраменко... CD-проигрыватели. Схемотехника В книге систематизировано изложены основные принципы и базирующиеся...
Схема на Датагоре. Новая статья USB ЦАП на PCM2702(E)... Захотелось мне построить хорошо звучащую систему на базе ПК. Поскольку, успех во многом зависел от...
Схема на Датагоре. Новая статья Миниатюрный усилитель 2х6W на ТРА1517 для начинающих... Решил - надо спаять что-то! Давно уже смотрел на микросхемки ТРА1517 — бесплатные семплы от фирмы...
Схема на Датагоре. Новая статья Audio power amplifier design handbook. Douglas Self... Руководство по дизайну аудио усилителей. Автор Douglas Self. Замечательная книга о конструировании...
Схема на Датагоре. Новая статья NE5532, SA5532, SE5532, NE5532A, SE5532A... Сдвоенный операционный усилитель с низкими шумами и внутренними цепями компенсации. Чип 5532 -...
<

goldmen8

Александр Читатель Датагора
  • Кандидат
Комментарий # 1 от 13-10-18, 11:42.
Ответить
  • С нами с 25.10.2012
  • 2 комментария
  • 0 публикаций
 
Сергей, не могу подобрать слова... от восторга и восхищения нет слов.
Поздравляю!!! ... красота!!!

<

vanechka_male

Иван Читатель Датагора
  • Меценат
Комментарий # 2 от 13-10-18, 16:44.
Ответить
  • С нами с 3.06.2016
  • 1 комментарий
  • 0 публикаций
 
У меня нет слов. Просто великолепно и замечательно! thumbup
Желаю повторить, но, врядли смогу.

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 3 от 13-10-18, 18:34.
Ответить
  • С нами с 26.02.2006
  • 2 159 комментариев
  • 271 публикация
 
Сергей, поздравляю с красивым завершением 4-летней эпопеи!
party Дисплейная часть офигенная, нигде раньше такого не видел, только у тебя.
И вывод полезный про «надо всё делать на USB».

Спасибо за труды!

<

sergei_sms

Сергей Читатель Датагора
  • Кандидат
Комментарий # 4 от 14-10-18, 16:35.
Ответить
  • С нами с 3.07.2009
  • 5 комментариев
  • 0 публикаций
 
Отличная работа!
И сразу вопрос - имею в наличии Raspberry Pi 3B, насколько я правильно понимаю прикрутить "в лоб" данную железяку вместо использованной в вашем устройстве Raspberry Pi model B не получится - я про несовпадение пинов GPIO, и, соответственно, о переконфигурировании портов для всей периферии.
Или они встанут "автоматом", а мне лишь придется переподключить пины в соответствии с распиновкой на моей "малине"?

Хочу попробовать поприкручивать к "малине" имеющиеся у меня ЦАПы, опыта в программировании практически нет.

<

litdn

Дима Читатель Датагора
  • Гражданин
Комментарий # 5 от 14-10-18, 23:49.
Ответить
  • С нами с 19.02.2010
  • 8 комментариев
  • 0 публикаций
 
Спасибо! Отличная работа и применение мини компьютера.

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 6 от 15-10-18, 9:35.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Александр, Иван, Игорь, Сергей, Дима - всем спасибо.
Цитата: sergei_sms
имею в наличии Raspberry Pi 3B, насколько я правильно понимаю прикрутить "в лоб" данную железяку вместо использованной в вашем устройстве Raspberry Pi model B не получится - я про несовпадение пинов GPIO, и, соответственно, о переконфигурировании портов для всей периферии.

Да, конечно не получится, придется править программу.
Я даже не уверен, запустится ли на «Raspberry Pi 3B» мой образ системы.

<

ILYAtank1

Илья Читатель Датагора
  • Гражданин
Комментарий # 7 от 16-10-18, 15:59.
Ответить
  • С нами с 19.09.2013
  • 2 комментария
  • 1 публикация
 
Красиво, прекрасно, потрясающе,грандиозно.
Какие титанические усилия были вложены в сей Аппарат.
Великолепная работа. Хочу теперь такой Аппарат иметь и у себя в арсенале.
Сергей, удачных разработок, спасибо за статью.

<

farg4

Сергей Читатель Датагора
  • Гражданин
Комментарий # 8 от 17-10-18, 4:05.
Ответить
  • С нами с 1.12.2009
  • 3 комментария
  • 0 публикаций
 
Потрясающая работа! Красиво получилось!

<

galrad

Радик Читатель Датагора
  • Гражданин
Комментарий # 9 от 22-10-18, 21:21.
Ответить
  • С нами с 23.08.2011
  • 94 комментария
  • 12 публикаций
 
Сергей, отличная работа как с "железом" так и с программным кодом! Уникальный образец получился. При таком большом дисплее напрашивается анализатор спектра или как минимум пиковый индикатор. Согласен по поводу USB, модульность даст больше перспективы на последующее совершенствование. Работа сделана очень большая, приятно смотреть на работу профессионала! thumbup

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 10 от 23-10-18, 12:17.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Илья, Сергей, Радик – спасибо.
Так как есть возможность управлять плеером по сети, в следующем обновлении будет возможность в настройках отключить дисплей и клавиатуру, это отвяжет мой Audio Commander от GPIO Raspberry Pi. Следовательно можно будет потренироваться с плеером на любом ПК с ОС Linux.

<

Yamazaki

Сергей Читатель Датагора
  • Гражданин
Комментарий # 11 от 03-11-18, 17:44.
Ответить
  • С нами с 2.07.2009
  • 175 комментариев
  • 7 публикаций
 
Очень крутой проект. Жаль, мало кто решится его повторить.
Но вот меня он подтолкнул к тому, чтобы подумать об управлении муызкой на компе со смарфона. Оказалось, есть плагин для AIMP, называется AIMP remote control, а к нему программа на смартфон.
Всё прекрасно работает! Единственное - плейлист уже должен быть в плеере. Просто докинуть в него какой-то произвольный файл с произвольного места на жестком диске с телефона не получится. Тем не менее, штука, повторюсь, очень и очень прикольная.

Ещё узнал про программу AirAudio. Она вещает просто весь аудиопоток со смарфона на любое устройство с поддержкой AirPlay. Поставив соответствующий софт на комп, можно пересылать на него аудиосигнал со смарфона без потерь качества и с приемлемым уровнем задержки.

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 12 от 04-11-18, 20:00.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: Yamazaki
Очень крутой проект. Жаль, мало кто решится его повторить.
Но вот меня он подтолкнул к тому, чтобы подумать об управлении муызкой на компе со смарфона.

Сергей спасибо. Так или иначе, мой проект, это всего лишь отдельная история. Можно посмотреть еще в сторону RuneAudio, Volumio и на конец MPD с кучей клиентов.
Самое главное, что устройство воспроизведения должно быть отдельное. ПК - это для других задач.
Тем не менее, штука, повторюсь, очень и очень прикольная.

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

<
  • Прохожий
Комментарий # 13 от 30-11-18, 17:42.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
Цитата: Yamazaki
Очень крутой проект. Жаль, мало кто решится его повторить.
Но вот меня он подтолкнул к тому, чтобы подумать об управлении муызкой на компе со смарфона. Оказалось, есть плагин для AIMP, называется AIMP remote control, а к нему программа на смартфон.
Всё прекрасно работает! Единственное - плейлист уже должен быть в плеере. Просто докинуть в него какой-то произвольный файл с произвольного места на жестком диске с телефона не получится. Тем не менее, штука, повторюсь, очень и очень прикольная.

Ещё узнал про программу AirAudio. Она вещает просто весь аудиопоток со смарфона на любое устройство с поддержкой AirPlay. Поставив соответствующий софт на комп, можно пересылать на него аудиосигнал со смарфона без потерь качества и с приемлемым уровнем задержки.


Попробуйте VLC, к нему множество клиентов есть на андроид для удаленного управления. Лично я пользуюсь VLC Remote+, для просмотра видео, но аудио он также умеет проигрывать, есть браузер по папкам компьютера, поддерживает стримминг медиафайлов с самого телефона. Как бонус, есть браузер по ютубу. Реклама вылазит лишь раз при закрытии приложения. Я не мог нарадоваться, когда нашел его.

По теме - нет слов, это великолепно

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 14 от 03-03-19, 19:16.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Здравствуйте!

Возникли сложности в запуске вашего софта. Залил образ проигрывателя на SD карту, малина згрузилась, по сети пингуется адрес 192.168.0.83, однако программа для андроид телефона не видит плеер и не подключается к нему.
В чем может быть дело, какие то ошибки есть на экране подключенном к малине по HDMI.

малина

загрузка на экране

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 15 от 09-03-19, 16:42.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Возникли сложности в запуске вашего софта. Залил образ проигрывателя на SD карту, малина згрузилась, по сети пингуется адрес 192.168.0.83, однако программа для андроид телефона не видит плеер и не подключается к нему.
В чем может быть дело, какие то ошибки есть на экране подключенном к малине по HDMI.

Здравствуйте. Мой косяк, уже исправил, после выходных подготовлю обновленный архив и выложу.
Мой аудио коммандер аварийно завершался из-за пустой целевой папки /mnt/sound, так как HDD нету у вас.
Теперь в такой ситуации будет открываться корневая папка.

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

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 16 от 11-03-19, 0:05.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
ага ,понял!
то есть после вашей правки сборка плеера будет с флешкой работать? или только будет запускаться без ошибки, ввиду отсутствия подключенного диска?
Получается, операционка недогружалась до конца, и по этому программа клиента на смартфоне не подключалась к плееру?

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 17 от 11-03-19, 0:20.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Sergiy_83,
ага ,понял!
то есть после вашей правки сборка плеера будет с флешкой работать? или только будет запускаться без ошибки, ввиду отсутствия подключенного диска?
Получается, операционка недогружалась до конца, и по этому программа клиента на смартфоне не подключалась к плееру?

Неважно какой носитель, важно что бы он был смонтирован в /mnt/sound
Носитель отформатировать желательно в ext4. Возможно придется подправить файл /etc/fstab, смотря как отформатируете.
Пока я не выложил образ, подключитесь по SSH и создайте в папке /mnt/sound пустую директорию или какой нить файл чтобы обойти глюк.
Операционка загружалась до конца, программа моя падала.

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 18 от 11-03-19, 0:22.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
логин и пароль на ssh напомните к вашей сборке пожалуйста

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 19 от 11-03-19, 0:26.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Sergiy_83,
логин и пароль на ssh напомните к вашей сборке пожалуйста

логин root пароль pi
Я использую программу под windows putty
putty.exe root@192.168.0.83 22 -pw pi

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 20 от 11-03-19, 0:42.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
Положил flac файл в папку, софт завелся.
Нашел где прописать id USB звуковой карты, работает! Еще буду спрашивать вас в личке. Спасибо огромное!

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 21 от 11-03-19, 1:01.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Sergiy_83,
Положил flac файл в папку, софт завелся.
Нашел где прописать id USB звуковой карты, работает! Еще буду спрашивать вас в личке. Спасибо огромное!

Отлично. Я к малинке USB карту не подключал, что у вас за DAC?
Выложите плиз скриншот команды alsamixer. Я добавляю сечайс возможность регулировать системную громкость, интересно посмотреть какие там есть каналы.

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 22 от 11-03-19, 1:04.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
Кстати да, громкость не регулируется на USB карте.
У меня простой китайский USB Цап для тестов.


вот отчет aplay^

root@player:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
root@player:~#

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 23 от 11-03-19, 1:15.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Sergiy_83,
Кстати да, громкость не регулируется на USB карте.
У меня простой китайский USB Цап для тестов.
...вот отчет aplay

У меня ж PGA2310 конечно громкость не будет регулироваться, пока.
Как подключали USB карту, где прописывали? Смотрю i2S не отключено, USB - как вторая идет.
Мне надо alsamixer.

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 24 от 11-03-19, 6:04.
Ответить
  • С нами с 26.02.2006
  • 2 159 комментариев
  • 271 публикация
 
Товарищи, вы только здесь логическую нить повествования не прерывайте. dash
А то переключитесь в личку, а тут непонятки остнутся и ценность коментариев для сообщества резко упадёт.
Как минимум, если найдёте решение — опубликуйте его.

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 25 от 11-03-19, 15:09.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
А, точно. У вас же PGA стоит.... Я забыл!
Как можно отключить i2s в системе?

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 26 от 11-03-19, 15:26.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: Datagor
Товарищи, вы только здесь логическую нить повествования не прерывайте. dash
А то переключитесь в личку, а тут непонятки остнутся и ценность коментариев для сообщества резко упадёт.
Как минимум, если найдёте решение — опубликуйте его.

Хорошо.
Цитата: nabiullin
Sergiy_83,
Как можно отключить i2s в системе?


Чтобы отключить I2S - четыре последние строчки закоментировать.
Кстати, для тренировки, можно включить встроенную звуковую карту snd-bcm2835 как на скриншоте.

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 27 от 12-03-19, 15:17.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
Понял попробую. Всё же, было бы хорошо, немного адаптировать сборку системы, что бы её могли использовать другие желающие (типа меня) с измененной конфигурацией плеера. С выводом звука на карту вроде разобрались. Теперь осталось, что бы была возможность автомонтирования флешки вставленной в USB порт и программа плеера могла воспроизводить файлы с неё. Вместо жесткого диска, который ранее у вас был "жестко" в системе заявлен.

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 28 от 12-03-19, 20:57.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Теперь осталось, что бы была возможность автомонтирования флешки вставленной в USB порт и программа плеера могла воспроизводить файлы с неё.

Я подумаю что можно сделать.

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

Добавлена возможность использовать системный ALSA регулятор громкости (протестирован на нескольких машинах, в том числе и Raspbery Pi с встроенной звуковой картой). Отвязка от GPIO, позволила скомпилировать и использовать мой audio commander (AC83) на x86 машинах, то есть на обычных ПК. Теперь, стационарный плеер можно собирать не только на малинке smile . mplayer теперь portable, отдельно его устанавливать не надо, будет в архиве с программой.

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

Загрузки:
ac_arm.tar.gz
https://cloud.mail.ru/public/3STo/dAMhnRJwL
ac_x86.tar.gz
https://cloud.mail.ru/public/Mz6g/JRgobFrXU
C83.apk
https://cloud.mail.ru/public/8xQH/8wNumzvFz
Raspbian_rt_12032019
https://cloud.mail.ru/public/JsQw/o3pK5oiYg
Описание фала настроек
https://cloud.mail.ru/public/KbzK/1QZggmiwU

Далее, в планах, как я уже говорил USB дисплей, и USB клавиатура с регулятором громкости. Передачу данных с помощью USB-HID на STM32 уже освоил, дисплей будет на этот раз один! 3.95inch 480x320 жду когда прилетят STM32.

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 29 от 13-03-19, 8:37.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
USB клавиатура с регулятором громкости. Передачу данных с помощью USB-HID на STM32 уже освоил, дисплей будет на этот раз один! 3.95inch 480x320 жду когда прилетят STM32.

Исходники и схемы подключения новых наработок будут доступны?

Sergiy_83,
дисплей будет на этот раз один! 3.95inch 480x320 жду когда прилетят STM32.
Сенсорный будет с управлением или только отображение информации?

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 30 от 13-03-19, 13:14.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Исходники и схемы подключения новых наработок будут доступны?

Конечно будут.
Цитата: nabiullin
Сенсорный будет с управлением или только отображение информации?

Только отображение.

<

nabiullin

Максим Читатель Датагора
  • Меценат
Комментарий # 31 от 13-03-19, 13:16.
Ответить
  • С нами с 1.03.2019
  • 10 комментариев
  • 0 публикаций
 
Sergiy_83,
А управление будет только на клавиатуре USB медиа кнопками?

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 32 от 13-03-19, 13:22.
Ответить
  • С нами с 16.10.2012
  • 65 комментариев
  • 7 публикаций
 
Цитата: nabiullin
Sergiy_83,
А управление будет только на клавиатуре USB медиа кнопками?

Да. Кнопки на плеере, клиент на Андроиде, другого управления нет.

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км!

Тестер универсальный LCR-TC1 для транзисторов, конденсаторов, ESR, MOSFET и т.д.
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.
Назад Вперед