• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
 
Сверху Снизу