• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Интернет радиоприёмник на WIFI ESD-12E

gerkimuyda

New member
шкалу подогнать - придется повозиться, IMHO. Ну и надо учитывать - эти мелкие модули должны управляться контроллером, то есть просто так их воткнуть хоть как не получится.
Дело было в 90-х. Шкала УКВ имеет совсем другие частоты, чем FM. Поэтому - все равно надо дорисовывать (если надо, т.к. я не заморачивался). И втыкался модуль просто так. Никаких дополнительных контроллеров тогда не было.
Эх. Дабы не быть голословным, пришлось найти плоскую отвертку и вымазаться немного в паутине :)
IMG_2017-11-13_173739-.jpg
 

Сергей_Ф

Moderator
Команда форума
Потому сей приемник валяется и могу продать желающим - скажем за 2500.
это не спортивно. Сам, решил сделать на базе Апельсин Нуль на 256 Мб, хотя там тоже не все просто, оказалось. Пока радио прикрутил, осталось дисплей, пульт и энкодер для управления.
 

rst

Member
У меня работает на отладке STM32F429I-DISCO + ESP8266. Играет любые станции в MP3-формате (с WiFi) и также с FM-тюнера (RDA5807). Без заиканий и других проблем (буфер MP3-потока == 350кБ). Поток любой - хоть 320kbps, стерео. Управление: с ИК-пульта (любого). Проигрывание через встроенный ЦАП (2 канала). Список станций вводится/редактируется ИК-пультом или через терминалку (локальная на UART или удалённая на TCP-порт). Для добавления FM-станций есть сканер частот. Есть поддержка RDS. Конфиг хранится во FRAM. И текущая громкость и станция тоже сохраняются во FRAM. Для декодирования MP3 использую открытый Helix-декодер.
В планах: добавить поддержку AAC-потоков. Ресурсов хватит.
 
Последнее редактирование:

rst

Member
В планах: добавить поддержку AAC-потоков. Ресурсов хватит.
Добавил поддержку AAC/AAC+ потоков. В режиме SBR - с удвоением sample rate.
Загрузка процессора сильно выросла, но на 128kbps - вполне хватает. бОльших AAC-потоков я в инете не нашёл.
 

pvvx

Активный участник сообщества
Добавил поддержку AAC/AAC+ потоков. В режиме SBR - с удвоением sample rate.
Загрузка процессора сильно выросла, но на 128kbps - вполне хватает. бОльших AAC-потоков я в инете не нашёл.
Исходники и схему то где глянуть?
В данной теме нет перспектив, кроме собственного развлечения. STM32F429I-DISCO + ESP8266 + ... стоит дороже дешевого телефона с FM-приемником (от 390 руб) или уже смартфона с поддержкой всех перечисленных форматов (от 1200 руб).
STM32F429I-DISCO давно снята с производства и купить её в магазине сложно...
Иначе это всё смахивает на то, как из Samsung Note 8 сделать проигрыватель...
Для собственных развлечений есть замена -> всё в одном, кроме дисплея -> RTL8195A (WiFi, NFS, Cortex M3, RAM 2.5МБ, 2xI2S, SPI,.... + USB2.0 High-speed) по цене от 400 руб. Для более простых (меньше RAM) есть Cortex M4F в серии RTL871xBx - они дешевле и на буфер для потоков там хватит RAM...
Прикрутите этот DAC (Direct Stream Digital (DSD) 11,2 МГц): AK4490EQ | 製品 | 旭化成エレクトロニクス(AKM)
Или этот DSD (Direct Stream Digital) на частоте 22,4 МГц
 
Последнее редактирование:

rst

Member
Исходники и схему то где глянуть?
В данной теме нет перспектив, кроме собственного развлечения. STM32F429I-DISCO + ESP8266 + ... стоит дороже дешевого телефона с FM-приемником (от 390 руб) или уже смартфона с поддержкой всех перечисленных форматов (от 1200 руб).
STM32F429I-DISCO давно снята с производства и купить её в магазине сложно...
Иначе это всё смахивает на то, как из Samsung Note 8 сделать проигрыватель...
Для собственных развлечений есть замена -> всё в одном, кроме дисплея -> RTL8195A (WiFi, NFS, Cortex M3, RAM 2.5МБ, 2xI2S, SPI,.... + USB2.0 High-speed) по цене от 400 руб. Для более простых (меньше RAM) есть Cortex M4F в серии RTL871xBx - они дешевле и на буфер для потоков там хватит RAM...
Прикрутите этот DAC (Direct Stream Digital (DSD) 11,2 МГц): AK4490EQ | 製品 | 旭化成エレクトロニクス(AKM)
Или этот DSD (Direct Stream Digital) на частоте 22,4 МГц
Исходники выкладывать никуда не собираюсь. Да и зачем? Сам декодер я конечно не писал, взял готовый. Только портировал на Cortex-M и оптимизировал немного. И схема чего? Подключения ESP к МК или ЦАП-а МК к УМЗЧ?
Да, делаю это для собственного развлечения. Но насчёт перспектив вы глубоко ошибаетесь: уже нашёлся человек, желающий купить серию подобных устройств (немного с другим интерфейсом и органами управления, но это не суть). Хотя я его даже не искал - сам нашёлся. Может быть даже и возьмусь за работу.
И мир не ограничен одними телефонами/смартфонами. Причём тут они вообще?

PS: И если буду всё-таки делать коммерческую серию, то будет не F429, а скорее всего F407. Да, конечно разумнее было бы подобрать МК с бОльшим кол-вом набортной ОЗУ. Но затраты сил на перенос на другую платформу будут неадекватны задаче. Так что скорее всего остановлюсь на ESP8266+F407+внешняя_SRAM и вывод звука через стерео-ЦАП МК: затраты времени на перенос будут минимальны.

PSS: Всё-таки AAC - гораздо более жручий кодек чем MP3. И уже точно не влезет в ESP8266: загрузка процессора примерно в 2 раза выше на тех-же битрейтах, памяти (для внутренних нужд декодера, не считая входных и выходных буферов) нужно в 4 раза больше (~80 кБ). Это в режиме SBR. Можно конечно отключить его, тогда требования примерно как у MP3. Но это не наш метод! Если реализовывать, то сколько влезет. :cool:
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@rst, вот интерфейс и органы управления в этом деле самое главное. Всё остальное, действительно, можно конспективно описать.
 

pvvx

Активный участник сообщества
И мир не ограничен одними телефонами/смартфонами. Причём тут они вообще?
Они имеют на борту всё что необходимо для реализации такой задачи. Ну и много лишнего, как и в вашем случае с STM32F429I-DISCO.
Xiaomi делало примерно такое устройство -> Wi-Fi интернет-радио Xiaomi WLSYJ01CM (порядок местной цены 2 т.руб)
Я хотел переделать примерно такие колонки со встроенным БП и усилителем, прикрутил туда RTL8710AF MP3 на RtlDuino, но потом вытащил - неинтересно. Цена всего устройства вышла ~400 руб :)
20170110.jpg
Надо менять ручку на энкодер и врезать какой-то мелкий TFT, а желание пропало...(т.к. телевизор тоже может воспроизводить каналы MP3/AAC/... с интернет и он уже занимает место и вписан в обстановку)

А в таких мониторах места мало:

Но тоже можно впихнуть, но тогда всё-же желательно поставить 32-х битные DAC и проигрывать не инет-радио-каналы с ужасным качеством звука, а с собственного сервера по всяким протоколам, хотя-бы по UPnP/DLNA.
 
Последнее редактирование:

rst

Member
@rst, вот интерфейс и органы управления в этом деле самое главное. Всё остальное, действительно, можно конспективно описать.
Интерфейс и управление я делал под себя, так как в данное время это просто хоббийный проект.
Ну если конкретно:
Я знаю что у меня будут большие проблемы с конструктивом (корпус, кнопки и т.п.), поэтому постарался максимально отвязаться от этого - основной орган управления - любой ИК-пульт. Вначале необходимо обучить устройство данному пульту (подключаем к UART к терминалке входим в меню привязки пульта, нажимаем кнопки на пульте и привязываем полученные диаграммы импульсов нажатия, отжатия, автоповтора к виртуальным кнопкам). Можно обучить сразу нескольким пультам - устройство все их запомнит.
Далее всё управление - через ИК-пульт и экранное меню. Но большинство функций управления дублируется и через терминалку. Через неё доступны также некоторые расширенные функции. Через терминалку быстрее можно вбить список URL-ов радиостанций с названиями. Есть возможность переключить поток терминалки на удалённый TCP-порт: через меню с ИК-пульта ввести IP:порт и конфигурить терминалкой на компе без проводов.
Также в составе устройства есть и FM-тюнер (на RDA5807M). Так что радиостанции в общем списке могут быть как онлайновые, так и FM.
Экран - LCD 320x240. Подключен по SPI (SCLK=40МГц - 45МГц).
На данной отладке конечно есть тачскрин. Я опрос его сделал, но пока он не используется для управления: под него нужно сильно доработать GUI-интерфейс. Может в будущем сделаю.

PS: Все компоненты кроме отладочной платы и FRAM/FLASH-памяти я заказывал с алиэкспресса задёшево. LCD как на отладке тоже впрочем есть на али.
 
Последнее редактирование:

rst

Member
Они имеют на борту всё что необходимо для реализации такой задачи.
А при чём тут, что они имеют на борту? А конструктив (корпус, органы управления, питание и т.п) под данную конкретную область применения Вы предлагаете на коленках колхозить? Впиливать лобзиком в каждый телефон энкодеры и кнопки управления и в несколько десятков устройств и продавать потом заказчику этот колхоз??? :)
Компьютер вон тоже всё умеет: и ТВ показывать и звонить по нему можно. Но вы же купили всё-таки отдельный телевизор зачем-то? И купили наверное и телефон, а не таскаете с собой комп чтобы позвонить. :D
Для условий применения заказчика не нужен LCD, минимум управления нужен обычными кнопками (никаких сенсорных не должно быть - там это невозможно), защищённое исполнение корпуса нужно. И есть узко-специальные требования по конфигурированию списка радиостанций и централизованному управлению этим списком удалённо. Ну и другие требования.
Знаю, что есть готовые инет-радиоприёмники. Но они опять же не походят по условиям применения и управления. Иначе бы заказчик не обратился ко мне.
 

pvvx

Активный участник сообщества
А при чём тут, что они имеют на борту? А конструктив (корпус, органы управления, питание и т.п) под данную конкретную область применения Вы предлагаете на коленках колхозить? Впиливать лобзиком в каждый телефон энкодеры и кнопки управления и в несколько десятков устройств и продавать потом заказчику этот колхоз??? :)
Компьютер вон тоже всё умеет
Интерфейс и управление я делал под себя, так как в данное время это просто хоббийный проект.
Я выделил ваши-же и мои разногласия :) Т.е. вы сами дали ответ самому себе.
Я именно в контексте хобби и рассматриваю данное сочинение... Для спец. или пром. "оповещателя" идут другие критерии, сертификаты и прочие бумажки и это всем понятно :)
Успехов в получении сертификатов на пожаро-взрыво-безпастность, но это наверно не тот форум и не тот WiFi-SoC, где про это... :)
На форуме уже есть такое решение https://esp8266.ru/forum/threads/orange-pi-zero-h2-quad-core-za-7.1776/page-5#post-30212 ...
А в ESP-32S разве не лезут декодеки и TFT?
 
Последнее редактирование:

rst

Member
А в ESP-32S разве не лезут декодеки и TFT?
Не знаю. Может и лезут. Но когда я проект начинал, ESP-32 ещё не было.
Для AAC-декодера (с включённым SBR) нужно ~80 КБ быстрой памяти + сэмпловый буфер (зависит от реализации) + кольцевой буфер под принимаемый с сервера поток около 400КБ медленной памяти (исходя из моего опыта работы с несколькими десятками станций - большинству достаточно меньшего объёма, но некоторые сразу после подключения выплёвывают такой объём, а управление потоком по TCP в АТ-командах ESP8266 отсутствует). Это пожалуй основные расходы памяти.
Ну и достаточное кол-во ресурсов процессора.
 

pvvx

Активный участник сообщества
Там опять основа на внешней микросхеме. А вывод через собственные 8-ми битные DAC прямые сделаны скучные...
Вот тут видно (на 7:24), что скорость DAC позволяет сделать нормальное формирование звукового вывода на пинах ESP-32:
Но пока никто не озаботился. А мне ESP32 пока не интересен.
 

rst

Member
У меня уже кроме MP3 ещё и AAC+ -потоки проигрываются. :) На том же МК без внешних DAC-ов и декодеров.
Странный там список поддерживаемых дисплеев. При таком разбросе величин разрешений - как интересно организован графический интерфейс? Вряд-ли сделано для каждого разрешения отдельное формирование картинки.
Неужто сделан сложный вариант - динамическое изменение размеров/положений (в том числе - взаиморасположений) элементов графического меню??
Скорее можно предположить тупое центрирование или сдвиг к какому-либо краю на больших экранчиках картинки, сделанной для самого маленького дисплея. :cool:

PS: Аааа... ну понятно: глянул ниже на фотку - там GUI примитивный, такой несложно отмасштабировать динамически в runtime или в buildtime.
 
Сверху Снизу