Comments 162
Ваш покорный вчера взял приёмник Philips 1962 года выпуска, выкинул из него кишки, поставил Raspberry Pi Zero вместе с аудио-HAT от SeedStudio и настроил Spotify с помощью Mopidy. Осталось завести кнопки радиоприёмника и переменный резистор регулировки громкости через восьмиканальный ADC по I2C, чтобы можно было выбирать «станцию», да Google Assistant прикрутить.
Бюджет — что-то типа $20 и час времени, большая часть из которого ушла на разглядывание схемотехники полувековой давности.
Проблема кроется именно в подборе правильного корпуса (нового), и реализации органов управления. Ну и так же главное ограничение было — выбор дисплея.
Мы за Вас рады. Вчера каждый что-то сделал. Пост запилить забыл только… ИМХО, автор вот молодец — сделал и поделился!
Мне вот не понятно почему китайцы клепают кучу дешевых устройств с бт и фм, а вифи радио клепает один производитель за дорого?
Что значит сложны? Я себе на кухню купил наконецто Auna. Куча предустановленных станций на все жанры и возможность добавлять свои потоки.
Крутишь ручку — настраиваешь.
Второе это стримминг. Т.е., интернет радио, стоящее у тебя на кухне может принимать поток, который делает твой компьютер в кабинете. Ты слушаешь уже свою музыку без необходимости делать погромче колонки компьютера. А ещё, эта схема вполне масштабируется до дом-работа. Я такое уже делал: запускал связку shoutcast сервер и shoutcast trans на своём шлюзе, который брал контент с локального NASа и стриммил. А слушал с ноутбука в командировках или всё с того же радио.
Ну Алиса это всетаки не WiFi радио.
OD да, от 5к. Я как раз и имел ввиду их.
Sangean там вообще цены не адекватные.
Auna как раз тоже родом из Германии, но оттуда если напрямую заказывать тоже не дешево.
Если брать от 10к русских рублей там конечно можно повыбирать, но както это дороговато имхо. RPi + BT колонка с китая это < 5к.
Сомневаюсь что в Sangean стоит железо сравнимое с RPi.
Сомневаюсь что в Sangean стоит железо сравнимое с RPi.
Wolna на ESP32/8266 сделана, на хабре были статьи.
А вообще первопричина дороговизны интернет-радио на мой взгляд небольшие объёмы выпуска: удорожается производство и логистика, в постах про Wolna автор немного писал про экономику производства.
Sangean там вообще цены не адекватные
Ну там ещё и за качество звука и изготовления доплата приличная, если говорить про стационарные модели корпус там из натурального шпона, мебельный лак, говорю как владелец стационара Sangean без интернета правда, только FM/USB/Bluetooth. Но оверпрайс, да согласен, базовые их пластиковые модели особенно.
Волну тоже рассматривал, но вторая версия выглядит так себе, а первая дороговато вышло.
Индикатор действительно неплох, ЕМПИП он исходно RS-232, и их должно быть много и дёшево из-за постоянной смены поколений фискальных регистраторов.
Интернет радио вообще отличная вещь. Есть масса готовых, например, фирмы Auna, но функциональность привязана к сайту, а с локальным управлением могут быть нюансы.
Ещё вариант — Ka-Radio, функциональность на высоте, но динамики/усилитель/блок питания нужно собрать до кучи руками. Впрочем, можно втулить в готовые активные колонки.
Индикатор действительно неплох, ЕМПИП он исходно RS-232
У меня было два индикатора: RS-232 и USB (который под капотом Virtual-COM). В работе ничем не отличаются. Проблема в том, что у всех индикаторов разный несовместимый протокол. Ну там символ вывести или стереть строку одинаково, а вот символ перегрузить — это каждый извращается как хочет.
Отличное законченное изделие. Своими руками.
Руководитель радиокружка, который я посещал, всегда говорил так: устройство должно работать в корпусе, а не в принципе.
У меня тоже долгострой. Но пока около года только :)
Вот такой:
Фото
Цель была сделать ретро интернет радио. На ebay купил Panasonic RF- 1405L. Выбирал по тому, чтобы было больше переключателей.
Настройка — вместо КПЕ установлен энкодер.
Одноплатник — Raspberry Pi Zero W. Дополнительно звуковая плата к нему и плата УНЧ.
Музыку играет MPD. Управление самописное, на питоне.
Долго думал, как сделать шкалу, чтбы не испортить внешний вид. Пока сделал голосовую индикацию. Крутишь ручку настройки, приемник при настройке на следующую станцию, говорит ее название и начинает играть.
Думаю может еще добавлю настройку при помощи NFC.
Еще нужно добавить регуляторы тембра.
Может еще что нибудь придумаю.
Хотел еще сделать воспроизведение плейлистов Youtube, но пока не нашел приемлемого клиента.
Шкала, несомненно, представляет собой отдельную ценность, на на её место встал бы и аналогичный описываемому в статье индикатор.
У меня от оригинала сейчас отличается только четырьмя головками болтиков в на боковой стенке и отверстием под разъемы в задней крышке.
Еще придумал испольовать NFC — приделпть NFC ридер и сделать набор NFC карточек с названиями радиостанций.
Сам проект volumio умеет всё что вы хотите, и там хорошо документированное API, плюс решены проблемы с mpd. Единственное, что написан он на Node JS.
А у вас нет git-проекта?
А у вас нет git-проекта?
Вечером проверю как там с актуальностью, постараюсь привести в прядок и выложить, раз есть интерес.
Но, блин, это реально прикольно. Снимите видео, жутко интересно. Спасибо!
А про видео, это что сделать что-нибудь типа видео для youtube? Я такого еще не делал, не уверен, что получится нормально.
Кстати, одной из главных целей моего проекта было испольвоание этой моей питоновской библиотеки для программ, использующих мультипроцессорный режим (github.com/ekazanov/BaseApp)
А про видео, это что сделать что-нибудь типа видео для youtube? Я такого еще не делал, не уверен, что получится нормально.
Тут все свои, и не требуется великое видеоблогерство. Просто демонстрация работы.
А в чём её фишка? Нельзя использовать системы межпросессного взаимодействия вшитые в *nix системы по умолчанию?
Цель в удобстве и быстроте написания многопроцессорных программ.
Очень коротко фишки такие:
— Программа представляет собой несколько юникс процессов.
— Главный процесс.
— Процессы воркеры (один или больше).
— Все процессы обернуты в классы (включая главный).
— Каждый процесс может принимать или посылать сообщения (сообщение включает тип сообщения (имя для вызова обработчика сообщения), и данные (питоновские pickable типы)).
— Сообщения принимаются/передаются чрез очереди.
— Каждый процесс может кроме сообщений иметь вутреннюю event loop для своей внутренней логики, или только обработчики сообщений.
— Фреймворк включает в себя классы процессов, включаюшие в себя входные очереди сообщений и класс роутинга сообщений.
Это так, грубо.
Был у меня один проект, на работе, который был сделан без фреймворка, но с имплементацией внутри себя основных его фич. Это вдохновило меня на написание этого микрофреймворка, а веб радио — первый процесс с его использоваием.
Микрофремворк готов процентов на 80, но пользоваться вполне уже можно.
Оно привязано к сервису Reciva, но позволяет формировать свои плейлисты из потоков, как доступных в каталоге Reciva, так и указанных пользователем через сайт Reciva. В самом радио что-либо вбить нельзя, только выбор энкодером. Звук приличный, есть линейный выход. Внутри какой-то SoC на девборде, которая воткнута в основную плату и USB-A гнездо, где живёт USB WIFI донгл. Это радио стояло везде, последние 3 года в кабинете без выключения — просто убираю иногда громкость на 3 деления и оно там бормочет.
Но затем мне захотелось интернет радио но чтобы с эзернетом и я купил второе.
Я видел на экране фотографии лота что там есть иконка WiFi соединения и иконка LAN соединения. Но пришло радио без этой опции (RJ45 не установелн, дырка просто заклеена наклейкой а на экране висит иконка, что эзернет не подключён). Это радио не было привязано ни к какому сервису и не понятно, откуда берёт свой каталог, но выбор, в принципе, приличный.
Это всё было отступление. А теперь, собственно, сама суть. Изначально я не хотел бы, чтобы радио было привязано к какому-либо сервису, т.к. не хочется зависеть от капризов этого сервиса. Т.е., есть желание и возможность переделки этих двух приёмников. Но есть белые пятна, к которым не понятно как подходить. Например, где брать потоки? Руками формировать списки или, например, есть какие-то открытые источники? Так же, было бы неплохо подвязать такое радио, например, к Яндекс.Музыка или другим подобным сервисам. Проблемы в замене SoC не вижу, внешний вид (энкодеры, кнопки и экран) лучше сохранить оригинальные.
Получилось сумбурно, но будет интересно послушать мнение автора.
Например, где брать потоки? Руками формировать списки или, например, есть какие-то открытые источники?
Я не знаю чёткого ответа на вопрос, лично я гуглю по теме и потом вбиваю руками. volumio как-то формирует списки динамически, и они у него при каждом включении разные. Можно поковырять его исходники. И там же посмотреть подвязку к яндекс музыке. Но с яндекс музыкой не ясно, есть же Алиса…
Экран возможно придётся реверсить в вашем случае. Но вообще железяки интересные.
А так, вообще есть куда расти с радио, и есть куча идей и тем как сделать «правильное» wifi-радио.
У него по платам тоже есть опция эзернета, но там ничего не распаяно + в корпусе не дырки + в прошивке никак про эзернет не упоминается, в отличии от WR-282.
Если ему сделать вебморду, то в принципе половина вопросов закрывается.
Есть пара подобных сервисов, чуть более свежих, через них соответственно работают более свежие приёмники.
Как вариант в VLC Player можно сформировать плейлист Icecast Radio Directory, ну или поискать непосредственно в самом Icecast.
Бывают, платы выходят из строя, рано или поздно это может произойти и с сайтами, вероятно тогда всерьёз и придётся озаботиться заменой платы.
Ещё кстати, вариант — эти плееры, в принципе, поддерживают dlna, раньше даже в сторах были соответствующие приложения, которые позже были выпилены. Путём перебора десятка dlna серверов удалось найти относительно совместимый с моим радио сервер — universalmediaserver, который смог скормить приёмнику ссылку на файл в локальной сети, затем с помощью Wireshark был проанализирован запрос и сгенерирован подобный уже вручную.
Но весь этот dlna настолько крив, что остаётся только посочувствовать автору библиотеки libupnp, на которой основаны чуть более чем все соответствующие проекты. Его опыт работы с dlna весьма красноречиво вынесен в заголовок статьи, упомянутой в статье про dlna на Википедии.
В общем, дорогу осилит идущий.
Ещё кстати, вариант — эти плееры, в принципе, поддерживают dlna, раньше даже в сторах были соответствующие приложения, которые позже были выпилены.
Вот, кстати, да. WR-200 в сети выглядит вот так:
Там будет адрес файла descritpion.xml, в котором ссылки на ещё пару-тройку xml:
RenderingControl.xml
AVTransport.xml
RecivaRadio.xml
Все адреса с длинными GUID, обмен через SOAP-XML, на любой чих нужно корректно сформировать запрос на пару килобайт, шаг вправо-шаг влево — хнычет на некорректность запроса. «Спасибо» dlna альянсу за детство нескучное наше.
Спецификация dlna, кстати, стоит 500 евро, так что неудивительно, что как-то это работает только у членов альянса. Нормальных свободных реализаций нет и не будет, см. Why do I hate DLNA protocol so much? отсюда.
Из опробованных десятка dlna серверов только Universal Media Server может что-то передать на приёмник.
Ну и в Windows он виден, не зря Microsoft входит в альянс. Но сделать с приёмником Windows ничего не может, у неё лапки. Хотя все интерфейсы описаны в выдаваемых по запросу с приёмника xml файлах.
В общем, поле непаханое и пахать некому. А сделали бы передачу параметра через uri — больше ничего бы не понадобилось: воспроизвести фай такой-то, с момента такого-то, громкость такая-то.
Контекстное меню по клику ПКМ на приёмнике на странице «Устройства и принтеры»
Указанной мной выше скриншот это в сетевом окружении. Там светится радио и не отключенный DLNA сервис компьютера жены. В «устройствах и принтерах» этого радио нет. Так что не могу выполнить указанные вами действия.
Это, кстати, максимум, чего мне с его помощью удалось добиться — скормить поток пока не получилось.
Время потока показывает верно. И даже стоп сработал — радио заткнулось в статусе STOPPED. На остальные кнопки один ответ:
16:28:41 ERROR Failed to send action «Seek» to HardWareMan Radio: Error: Internal error (HTTP response was: 500 SOAP error)
16:28:48 ERROR Failed to send action «Pause» to HardWareMan Radio: Error: Transition not available (HTTP response was: 500 SOAP Error)
16:29:42 ERROR Failed to send action «Seek» to HardWareMan Radio: Error: Internal error (HTTP response was: 500 SOAP error)
TuneIn нашел как неизвестное устройство:
Думаю, это тупиковая ветка развития. Надо переделывать под нормальный свободный потоковый плеер. Желательно с вебмордой.
Ещё, кстати, проверьте на всякий случай telnet (в моём не отвечает) и ftp (есть, но не смог подобрать пароль).
И спасибо, попробую у себя. А чем сливали?
Сливал программатором, сдув плешку.
Например, где брать потоки?
Есть у меня подозрение что они все тянут какой-нибудь XML с этих сервисов. Можно попробовать поснифить трафик, или на край попарсить их личный кабинет и подергать оттуда ссылки. Если хочется каталог с возможностью выбора жанров, то думаю что можно парсить первый попавшийся агрегатор потоков.
У меня Auna привязана к Frontier Nuvola Smart Radio.
Там можно допихивать свои потоки в избранное, но возможность отвязаться от вендора была бы не лишней.
Готовое, с vfd-дисплеем? Покажите срочно
Иначе — это балабольство.
Меня заводил сам факт VFD-дисплея, его магия и очарование. Плюс, в действительности, когда начинал подобного ничего не было или я не встречал. Часто стараюсь делать сам, даже если есть в продаже, для опыта.
Касательно проекта, это конечно хобби. Его я делал на работе, когда меня в край задалбывал проект и моё радио было как отдушина.
По поводу стартапа… Это интересная мысль, но мне кажется я опоздал с ним лет на 10. Конкурировать с Алисой и подобными станциями уже смысла нет. Хотя, кто знает, кто знает.
www.universal-radio.com/catalog/wifi/3168.html
работает до сих пор. Только мой клон звался IR168. На чём сделан — понятия не имею. Ручка — энкодер с нажатием.
Имеет веб-интерфейс. Список станций когда-то качался с сайта, но можно создать руками, что сейчас и делаю.
У меня даже бинарник с прошивкой есть. Думал как нибудь туда русский язык прикрутить, но увы — квалификация не та. Вообще крутая железяка. И UPnP работает.
А у друга SANYO примерно такого же возраста. И родной сайт до сих пор работает.
Такое это какое?
Ну-у-у, получилось хорошо. Но дело в том, что теплое и ламповое не получилось. Выглядит как мобильная радиостанция из 80-ых.
Если надо было теплое и ламповое — индикаторы надо было использовать газоразрядными. (https://ru.wikipedia.org/wiki/Газоразрядный_индикатор) а оконечный усилитель тоже сделать ламповый. И конечно деревянный корпус!
Вакуумно-люминесцентный индикатор (ВЛИ), или катодолюминесцентный индикатор (КЛИ) (vacuum fluorescent display (VFD), нем. Digitron либо Fluoreszenzanzeige) — электровакуумный прибор, элемент индикации, работающий по принципу электронной лампы.
Несмотря на то, что такой индикатор является, по сути, радиолампой, он не считается устаревшим радиоэлементом, продолжает производиться и сегодня, и применяется в современной радиоаппаратуре, в том числе и во вновь разрабатываемой[1][нет в источнике]. Как и д
таки ламповая :))). Но я понимаю ваше несогласие и претензию. Хотелось да, в деревянном корпусе, об этом я писал. И ламповый усилитель тоже хотелось. Но больше хотелось закончить в этой жизни, поэтому решил пока сделать так.
кк картинку увидел — сразу триггер сработал, глянул автора — ну понятно))
Даже так достаточно "тёпло-лампово" смотрится, если не совсем уж буквально подходить.
Хотя ардековские радиоприёмники и радиолы — это и правда ещё более тёплое и уютное в плане внешности.
Ох, прям какая ностальгия от этой статьи накатила.
Собирал в школе классе в 11 тоже свой интернет-радиоприёмник. В роли начинки — малинка 2011 года, к ней RTL-свисток для приёма эфирного радио и кусок провода на GPIO для передачи. Позднее добавилось гнездо для антенны и релюшка, чтобы щёлкать для виду или переключать антенну между приёмом и передачей :-)
Из радиостанций в основном крутились Happy Hardcore UK, тогда ещё живой Digitally Imported (эллиминейт зи эдс, буст зе куолити!) и, впоследствии, Радио "Проводач".
В качестве корпуса использовался первый попавшийся — бывший спутниковый приёмник Humax с горелыми мозгами. Из родного осталась только фронтальная панель, и дисплей на ней. На VFD тогда не было ни денег, ни опыта, а стандартные HD44780 были "недостаточно ламповыми и тёплыми", поэтому остался там родной — 4 семисегментника, и SAA1064 в качестве драйвера.
Поначалу всё было банально — на дисплее цифра с номером станции, кнопками переключение, вкл/выкл выбором входа на усилителе. Но потихоньку проект стал обрастать фичами — сначала часы в выключенном состоянии, потом автояркость часов в зависимости от времени суток, затем показ тегов с автоматической транслитерацией с японского в виде бегущей строки, куча разных анимаций и эффектов… честно говоря, даже сам поражаюсь, сколько всего можно было сделать на банальных семисегментниках :-) Для рисования шрифта и анимаций пришлось тулзу накидать.
Потом появилась возможность трансляции в FM-диапазон, чтобы слушать на карманном приемнике перед сном, не оставляя работать стойку с аппаратурой, а потом и приём AirPlay с тем же отображением тегов.
Возможно, это всегда, когда делаешь что-то своими руками, но почему-то интерфейс этой штуки казался с этими анимациями и прочими фишками (типа, "показывать теги после смены трека либо раз в 10 минут") каким-то живым что ли, не как у остальных девайсов с такими индикаторами.
В итоге со временем в малинке сдохла карта памяти, а потом всё было разобрано на запчасти… Но из всей оставшейся в прошлом стойки с аппаратурой скучаю больше всего именно по этому радио: с
К сожалению, видео работы в финальной версии толком не снимал, если найду — покажу.
Нашлись только бессмысленная заметка из блога о первой версии и код, который спустя столько лет вызывает кровотечение из всех возможных мест.
Но в любом случае это было круто!
Нашел пару видосов: эффект выталкивания цифры наподобие механических индикаторов с барабанами, вторая версия ещё с кривым шрифтом и не показывающая теги Airplay, и какая-то чудом спасённая из сообщений ВК демка третьей версии, увы, тоже неполная :-(
Но, думаю, представление об интерфейсе получить можно и из них.
Описываются проблемы как с запитыванием смартфона от блока питания, так и помех от БП на усилитель, в результате чего приходилось ставить гальваническую развязку по питанию усилка.
У Вас блок питания не сетевой ли, трансформаторный, родной в корпусе приёмника?
Ну и повозиться с паяльником, вспомнить старые времена.
Так что да, делается, но это не спортивно и не интересно
И спортивно (микроконтроллер вместо одноплатника — вполне себе challenge), и интересно.
Ну и если делать, как некоторые умельцы, газоразрядные индикаторы самостоятельно, то и текст можно, да хоть анимацию.
Подробнее
Ну и если делать, как некоторые умельцы, газоразрядные индикаторы самостоятельно, то и текст можно, да хоть анимацию.
Так если рассуждать, то как BarsMonster можно начать свои микросхемы делать. Но нужно ли это, когда просто хочешь wifi-радио с vfd дисплеем покупателя?
разве что ленивый на них что-то не делалВыероятно я тот ленивый. Купил как-то по случаю ИН-18, и по сей день руки не дошли.
Если у вас есть какие-то потоковые радиостанции которые вы можете порекомендовать, особенно по электронной музыке, то пишите в комментариях :)
https://scenesat.com
А как ссылку на поток поиметь?
И соответственно воспроизведение с нее же.
Опять же, что слушать если инет отвалился? Интернет безотказный есть не везде.
Лично я бы убрал корпус у блока питания (он и так внутри корпуса, лучше охлаждаться будет) и избавился бы от лишних хабов и USB разъёмов.
Серьёзная работа.
Спасибо
Лично я бы убрал корпус у блока питания (он и так внутри корпуса, лучше охлаждаться будет) и избавился бы от лишних хабов и USB разъёмов.
Лично я бы вообще всё сделал по другому. Но лучше так, чем никак. У БП не такое энергопотребление, так что он там не особо греется.
Лично я бы вообще всё сделал по другому.:)) Я не про то, чтобы всё переделывать.
У БП не такое энергопотребление, так что он там не особо греется.В закрытом объёме корпуса он греется хорошо. У меня в люстре подобный стоит, так там аж конденсатор деформировался.
Теплое ламповое интернет-радио