NEWS
Аудиоплеер для мультирума
-
Orange PI One - Проц H3 памяти 512.
Отсутствие WiFi легко решается через USB.
Если на Orange PI Lite - выведены все 40 GPIO, то проблем не должно быть. По мне лучше Ethernet, чем WiFi.
PS: хотел сделать кнопки для управления к GPIO, но что-то sunxi (H3) никак не могу правильно прерывания обрабатывать. На малинке все в пол пинка делалось… -:(
-
Огромное спасибо за разжеванную инструкцию
Попробовал запустить вот такой наборчик
https://ru.aliexpress.com/item/New-Oran … 29852.html
За пару часов вдумчивой адаптации типа как взлетело - LMS установленный на ноуте увидел клиента и чудно играет на нем музыку.
Основная заминка была в том, что пробовал сначала на наушниках (гарнитуре) взлететь но с ними нифига не получалось - шипение, свист и т.д.
Пришлось мотнуться в ближайший лабаз и нахватить самые простые активные колонки SVEN SPS-607.
Сижу, слушаю музыку
Следующий этап разобраться с микшированием, попробовать запустить еще одну программу работающую со звуком и прикинуть как лучше уменьшать громкость музыки когда вторая программа будет оповещения воспроизводить.
Ну и стопочка из Orange Pi One, DAC Sabre и усилка ждет своей участи
В связи с этим вопрос - можно чуть поподробней осветить вопросы связанные с отключением питания усилка когда DAC ничего не играет?
Если можно то со схемкой/номиналами деталей
-
PS: хотел сделать кнопки для управления к GPIO, но что-то sunxi (H3) никак не могу правильно прерывания обрабатывать. На малинке все в пол пинка делалось… -:( `
https://ru.aliexpress.com/item/PCM2704- … 05823.html - USB-DAC с кнопками громкости и mute.https://www.youtube.com/watch?v=9PcWuyjEuW0 - типа обзор.
https://sites.google.com/site/picorepla ... f-USB-DACs - нашел в этом списке.
-
Кстати греется апельсинка…
С наклеенным радиатором и в закрытом корпусе получается 51-54 градуса (по диагностике внутри системы).
Это нормально? Или предпринимать дополнительные шаги по охлаждению?
-
Кстати греется апельсинка…
С наклеенным радиатором и в закрытом корпусе получается 51-54 градуса (по диагностике внутри системы).
Это нормально? Или предпринимать дополнительные шаги по охлаждению? `
да нормальная температура, на проц посмотри по даташиту рабочую температуру. -
PS: хотел сделать кнопки для управления к GPIO, но что-то sunxi (H3) никак не могу правильно прерывания обрабатывать. На малинке все в пол пинка делалось… -:( `
https://ru.aliexpress.com/item/PCM2704- … 05823.html - USB-DAC с кнопками громкости и mute.https://www.youtube.com/watch?v=9PcWuyjEuW0 - типа обзор.
https://sites.google.com/site/picorepla ... f-USB-DACs - нашел в этом списке. `
поддержка Вашей USB в picoreplayer для нашей опельсинки ничего не значитSSPND сигнал с Вашей PCM2704 кажется тоже можно задействовать для вавода усилка из спячки (стр 26, 28 даташита).
Если DAC Sabre , то все зависит чем у Вас управляется питание усилка, есть усилки которые управляются 0, я есть те которым нужна 1, чтобы включится.
ES9023 - на 16 ноге выдает "1" когда звука нет.
Вариантов несколько:
1. у меня используется обычный инвертор на биполярном транзисторе, под рукой был bc817 в корпусе sot23 и 2 резистора на 6,8к. В моем случае когда на 16 ноге "0", то на выходе транзистора будет "1" - это +5В, их я и подаю на усилок для пробуждения.
2. можно поставить оптрон вот так (нога 16 , резистор, светодиод оптрона, +3.3В). Тогда гогда на выходе будет "0", то оптрон будет открыт. Выход оптрона включать в соответствии с требованием усилка.
-
да нормальная температура, на проц посмотри по даташиту рабочую температуру. `
Поверил на на слово -
нужна 1, чтобы включится.
ES9023 - на 16 ноге выдает "1" когда звука нет.
Вариантов несколько:
1. у меня используется обычный инвертор на биполярном транзисторе, под рукой был bc817 в корпусе sot23 и 2 резистора на 6,8к. В моем случае когда на 16 ноге "0", то на выходе транзистора будет "1" - это +5В, их я и подаю на усилок для пробуждения.
2. можно поставить оптрон вот так (нога 16 , резистор, светодиод оптрона, +3.3В). Тогда гогда на выходе будет "0", то оптрон будет открыт. Выход оптрона включать в соответствии с требованием усилка. `
Вот тут то как раз и вопрос.https://ru.aliexpress.com/item/2016-Hot … 337774.htm - усилок взял такой.
И похоже ошибся в выборе - не вижу на нем никаких пинов для "пробуждения"
-
вход аудио (3 пина)
-
выход правого канала (2 пина)
-
выход левого канала (2 пина)
-
вход питания (2 пина)
Больше ничего нет...
-
-
https://ru.aliexpress.com/item/2016-Hot … 337774.htm - усилок взял такой.
И похоже ошибся в выборе - не вижу на нем никаких пинов для "пробуждения"
-
вход аудио (3 пина)
-
выход правого канала (2 пина)
-
выход левого канала (2 пина)
-
вход питания (2 пина)
Больше ничего нет... `
Хотя стопhttp://www.ab-log.ru/forum/viewtopic.ph … =20#p24603 - вроде бы усилитель взял по ссылке рекомендованной "лучшими собаководами"
Михаил, признавайтесь как вы его "будите"
https://ru.aliexpress.com/item/ES9023-I ... 45889.html - саблю кстати тоже
https://myl8test.files.wordpress.com/20 ... asheet.pdf - судя по даташиту шишнадцатая нога находится напротив первой.
Правильно понимаю что первая нога помечена "ямкой" на чипе (в даташите однозначного ответа не увидел)?
-
-
Михаил, признавайтесь как вы его "будите" `
"Элементарно Ватсон!"Внимательно изучаем даташит на TDA7492, смотрим на плату и находим куда идет 20 нога (это и есть стендбай)… А на плате она идет через резистор 3К к 3.3В.
Делаем небольшую модернизацию... передвинув резистор в свободную сторону к 3.3В и на освободившуюся площадку подпаиваем проводок для управления питанием.
На ES9023 перерезаем MCLK (он все равно не используется) и вместо него делаем сигнал пробуждения для усилка.
643_img_20170202_090028.jpg
643_img_20170126_193929.jpg -
А в какой корпус можно засунуть апельсину и DAC? В оригинальный полупрозрачный войдет?
Хотелось бы иметь приличный вид у такой сборки.
Усилок не нужен, так как буду подключать в av ресиверу.
Или если задача подавления шума усилителя в паузе не стоит, то не стоит заморачиватся с отдельным DAC?
-
Или если задача подавления шума усилителя в паузе не стоит, то не стоит заморачиватся с отдельным DAC? `
Совершенно верно.Если Вы только не хотите получить 24бит 192кГц звук.
Корпус любой, можно и стандартный.
Если к усилку можно подключить через HDMI, то и DAC никакой не нужен, для 24бит 192кГц звука.
-
А в какой корпус можно засунуть апельсину и DAC? В оригинальный полупрозрачный войдет?
Хотелось бы иметь приличный вид у такой сборки. `
Испытываю некоторые сомнения что поместится…!
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201702 ... d14020.jpg">https://uploads.tapatalk-cdn.com/20170202/b6e620edf9bf551ff899efd349d14020.jpg</link_text>" /> -
"Элементарно Ватсон!" `
Ух ты! В картинках - это как раз для нас, чайников
@MSapogov:Внимательно изучаем даташит на TDA7492, `
Вот тут собственно и началась проблема - в виду слабой теоретической подготовки понимание даташитов не является моей сильной стороной… сходу понимаю в них только габаритные размеры да температурный режим
@MSapogov:смотрим на плату и находим куда идет 20 нога (это и есть стендбай)… А на плате она идет через резистор 3К к 3.3В.
Делаем небольшую модернизацию... передвинув резистор в свободную сторону к 3.3В и на освободившуюся площадку подпаиваем проводок для управления питанием. `
Ага, значит сняв радиатор это все проделывать надо."Сдвинув в сторону" - это типа остался на одной ноге висеть чтобы не потерялся на случай если назад запаивать?
@MSapogov:На ES9023 перерезаем MCLK (он все равно не используется) и вместо него делаем сигнал пробуждения для усилка. `
Уууу… монтаж SMD... Чувствую что к комплекту мелких жал для паяльника придется еще и увеличительное стекло докупить...Дорожка дремелем перебита?
@MSapogov:1. у меня используется обычный инвертор на биполярном транзисторе, под рукой был bc817 в корпусе sot23 и 2 резистора на 6,8к. В моем случае когда на 16 ноге "0", то на выходе транзистора будет "1" - это +5В, их я и подаю на усилок для пробуждения. `
http://www.smd-component.ru/webcatalog/ … code=08131 - правильно понимаю что два добавленных элемента с маркировкой 6801 это такие резисторы как по ссылке описаны?http://www.s-manuals.com/ru/smd/6b - а вот тут собственно искомые транзисторы
К ножке MCLK разъема получается коллектор транзистора припаян и туда же через резистор приходит напруга?
-
SolarW
Резисторы на 6.8к и транзисторы просто осталось много от одного проекта, вот их и поставил.
Дорожка перерезана скальпелем.
По остальным вопросам - да.
-
Адаптированная инструкция автора темы под Orange Pi Zero с использованием штатного аудио-выхода.
https://www.armbian.com/orange-pi-zero/ - качаем Armbian (Debian Jessie)
Разворачиваем образ на SD карту (под Win использую SDFormatter и Win32DiskImager)
Вставляем карточку в апельсинку.
Подключаем локальную сеть, питание.
После старта смотрим на маршрутизаторе какой адрес она получила (по умолчанию используется имя хоста orangepizero)
Второй вариант это вооружиться USB-UART с уровнем 3.3в и подключиться к UART'у на апельсинке - 3 пина рядом с сетевой картой, по умолчанию туда привязана консоль и можно через терминальную программу наблюдать процесс загрузки/произвести начальную настройку.
С помощью вашего любимого SSH-клиента (puTTY?) подключаемся к апельсинке, входим по умолчанию с root / 1234
Сразу после входа требуют сменить пароль - меняем.
Поскольку медиаплеер это не сервер Пентагона дополнительного пользователя для работы не завожу, нажимаю Ctrl-C.
Учитывая что при входе настойчиво попросили перезагрузиться чтобы закончить процедуру растягивания корневого раздела на весь доступный объем SD-карты - перезагружаемся (reboot)
После перезагрузки и повторного входа обновляем систему:
apt-get update apt-get upgrade
Ставим дополнительных программ для комфортной работы
apt-get install mc htop
С помощью программы nmtui (Network Manager Text User Interface) настраиваем параметры подключения к сети (Wired и/или Wi-Fi)
Смотрим что у нас с аудио устройствами
root@orangepizero01:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: sndhdmi [sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC sndcodec-0 [] - это интересующий нас аудиовыход
Ставим squeezelite (тянет за собой пачку зависимых пакетов, поэтому вручную последнюю версию не стал)
apt-get install squeezelite
Добавляем его в автозагрузку
systemctl enable squeezelite.service
Смотрим доступные для squeezelite устройства вывода звука
root@orangepizero01:~# squeezelite -l Output devices: null - Discard all samples (playback) or generate zero samples (capture) default:CARD=audiocodec - audiocodec, - Default Audio Device sysdefault:CARD=audiocodec - audiocodec, - Default Audio Device dmix:CARD=audiocodec,DEV=0 - audiocodec, - Direct sample mixing device dsnoop:CARD=audiocodec,DEV=0 - audiocodec, - Direct sample snooping device hw:CARD=audiocodec,DEV=0 - audiocodec, - Direct hardware device without any conversions plughw:CARD=audiocodec,DEV=0 - audiocodec, - Hardware device with all software conversions default:CARD=sndhdmi - sndhdmi, - Default Audio Device sysdefault:CARD=sndhdmi - sndhdmi, - Default Audio Device dmix:CARD=sndhdmi,DEV=0 - sndhdmi, - Direct sample mixing device dsnoop:CARD=sndhdmi,DEV=0 - sndhdmi, - Direct sample snooping device hw:CARD=sndhdmi,DEV=0 - sndhdmi, - Direct hardware device without any conversions plughw:CARD=sndhdmi,DEV=0 - sndhdmi, - Hardware device with all software conversions
Правим настройки squeezelite (кому в каком редакторе привычней, кто-то может через WinSCP захочет редактировать)
nano /etc/default/squeezelite
или
mcedit /etc/default/squeezelite
или
vi /etc/default/squeezelite
Можно прописать свое имя плееру (по умолчанию используется системное hostname которое настраивается через nmtui)
SL_NAME="$(hostname -s)"
Указать звуковую карту для вывода звука
SL_SOUNDCARD="default:CARD=audiocodec"
По желанию указать IP-адрес LMS (если не указывать будет искать автоматом в локальной сети)
SB_SERVER_IP="192.168.x.y"
Запускаем squeezelite
systemctl start squeezelite.service
Открываем управление LMS, видим появившийся плеер, запускаем воспроизведение - из колонок играет музыка.
К варианту с микшированием (чтобы одновременно могли играть звук более одной программы) попробую вернутся чуть позже - не до конца правильно пока понимаю что надо прописывать в asound.conf
-
Адаптированная инструкция автора темы под Orange Pi Zero с использованием штатного аудио-выхода.
…. `
а как по памяти - 512 хватает ?
-
а как по памяти - 512 хватает ? `
С головойroot@orangepizero01:~# free total used free shared buffers cached Mem: 506820 289800 217020 5960 16312 209816 -/+ buffers/cache: 63672 443148 Swap: 131068 0 131068
И это при том что система еще кучку каталогов в памяти посоздавала чтобы всякими tmp и log карточку не мусолить
root@orangepizero01:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mmcblk0p1 15020296 1089132 13767304 8% / udev 10240 0 10240 0% /dev tmpfs 101364 4612 96752 5% /run tmpfs 253408 0 253408 0% /dev/shm tmpfs 5120 4 5116 1% /run/lock tmpfs 253408 0 253408 0% /sys/fs/cgroup tmpfs 253408 0 253408 0% /tmp log2ram 51200 1036 50164 3% /var/log tmpfs 50684 0 50684 0% /run/user/0
-
По совместному использованию аудиовыхода двумя программами.
Получилось примерно следующее.
Ставим дополнительный пакет
> apt-get install alsa-oss
Редактируем /etc/asound.conf до следующего состояния (nano /etc/asound.conf):pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:0,0" # "hw:1,0" means HDMI change to "hw:0,0" for analog lineout jack output period_time 0 period_size 1024 buffer_size 4096 rate 44100 } bindings { 0 0 1 1 } } ctl.dmixer { type hw card 0 } pcm.!default { type plug slave.pcm "dmixer" } ctl.!default { type hw card 0 }
Указываем squeezelite использовать устройство default для воспроизведения (nano /etc/default/squeezelite)
> SL_SOUNDCARD="default"
Перезапускаем систему чтобы подхватились настройки (reboot)После старта системы запускаем с LMS воспроизведение, убеждаемся что музыка в колонках играет.
Так как второго плеера у меня не установлено то одновременно из консоли запускаем speaker-test
speaker-test -D default -c2
указав ему использовать устройство воспроизведения default и тестировать 2 канала.
Параллельно с музыкой слышим шум теста по очереди из правой и левой колонки.
P.S. А linphone сволочь не заработал нормально… Как-то по своему видит имеющиеся в системе звуковые устройства...
linphonec> soundcard list 0: ALSA: default device 1: ALSA: audiocodec 2: ALSA: sndhdmi 3: OSS: /dev/dsp 4: OSS: /dev/dsp1 5: PulseAudio: default
Если не запускать squeezelite и отдать linphone в исключительное использование звуковую карту - то все нормально.
А одновременно максимум удалось добиться чтобы звонок воспроизводился одновременно с музыкой, если ответить на вызов - то тишина.
Подозреваю что надо еще "крутить" asound.conf, а то в последней итерации и звонок перестал проходить - вначале короткий звук и тишина.
-
5. Хардварное управление плеерами. (частично реализовано здесь - http://forum.iobroker.net/viewtopic.php?f=33&t=5119)
2.2 - разделение внутреннего аналогового стерео выхода на два независимых источника моно вывода звука.
Варианты применения:
Сделать озвучку Ванная (моно) + Уборная (моно) без DACа. Это будут отдельные устройства для LMS
Ванная например левай канал, Уборная Правый, запущено будет 2 копии squeezelite, каждая на своем канале.
Привожу конфиги для alsa и запуск двух squeezelite как сервисов.
Получилось создать 2 независимых плеера с mono сигналом на OrangePi one без DAC.
asound.conf
pcm.mix_left { type plug slave.pcm { type dshare ipc_key 123456 slave.pcm "hw:0" slave.channels 2 bindings.0 1 } } pcm.mix_right { type plug slave.pcm { type dshare ipc_key 123456 slave.pcm "hw:0" slave.channels 2 bindings.0 0 } }
Создаем service-файл squeezelite_left.service в директории /lib/systemd/system/ (МАС адрес "-m" и название "-n" задаем "по вкусу")
[Unit] Description=Squeezelite_left (squeezebox emulator for linux) After=multi-user.target [Service] Type=simple ExecStart= /usr/bin/squeezelite -D -v -o mix_left -n Orange_left -m 00:00:00:00:00:05 [Install] WantedBy=multi-user.target
Создаем service-файл squeezelite_right.service по аналогии
[Unit] Description=Squeezelite_right (squeezebox emulator for linux) After=multi-user.target [Service] Type=simple ExecStart= /usr/bin/squeezelite -D -v -o mix_right -n Orange_right -m 00:00:00:00:00:06 [Install] WantedBy=multi-user.target
Включить только что созданный файл сервиса в автозагрузку (это создаст symlink-и в папке \etc\systemd\system\multi-user.target.wants )
systemctl enable squeezelite_left.service systemctl enable squeezelite_right.service
Если не хотите перезагружаться, то запустить сервисы
systemctl start squeezelite_left.service systemctl start squeezelite_right.service
Скоро обновлю шапку…
PS: Аптайм превысил 45 дней... глюков не замечено.