Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Обсуждение Интернет радио на ESP32

Тема в разделе "ESP32 - прошивки", создана пользователем rv9c, 26 апр 2018.

?

Интересен ли вам данный проект?

  1. Да

  2. Нет

Результаты будут видны только после голосования.
  1. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Всех приветствую. Хочу поделиться своим проектом интернет радиоприемника основанным на ESP32 без применения внешних ЦАП и декодеров потока. Более подробнее я рассказал в видео.

    Архив с схемами и файлами для прошивки можно взять тут- esp32internetradiofull.zip

    Мной использована отладочная плата LOLIN32 Lite, так же возможно использовать любой модуль основаный на ESP32 подключив обвязку и питание соответствующим образом.
     

    Вложения:

    • sch.GIF
      sch.GIF
      Размер файла:
      16,4 КБ
      Просмотров:
      213
    Последнее редактирование: 27 апр 2018
    rst нравится это.
  2. AndrF

    AndrF Активный участник сообщества

    Сообщения:
    338
    Симпатии:
    33
    Неплохо. Только не помешала бы возможность управления выбором станции и громкости с энкодеров...
     
  3. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Здравствуйте. Продолжаю развивать проект и хочу поделиться небольшим видео обзорами самого интернет радиоприемника и его веб интерфейса, а так же видео-инструкцию по прошивке.

    Конструкция и устройство приемника.


    Веб интерфейс приемника


    Инструкция по прошивке и первое включение
     
    tretyakov_sa нравится это.
  4. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Всех приветствую! В скором времени планирую выпустить небольшую партию интернет радиоприемников в виде набора для сборки и уже собранной платы. Предварительные размеры платы 50х55мм. Черновой вариант платы можно уже посмотреть.
    Набор №1 будет состоять из:
    1. распаянной платы
    2. соединительных проводов с разъемами
    Требуется только подключить динамики-колонки и подать питание и все заработает.

    Набор №2 будет состоять из:
    1. всех компонентов необходимых для сборки (печатная плата, модуль esp32, резисторы, конденсаторы и тд)
    2. соединительных проводов с разъемами
    Требуется для сборки распаять все компоненты на печатной плате, прошить esp32, подключить динамики-колонки и подать питание.

    За ценами и пред заказом пожалуйста на rv9c@yandex.ru
     

    Вложения:

    • lay1.png
      lay1.png
      Размер файла:
      186,3 КБ
      Просмотров:
      106
    • lay2.png
      lay2.png
      Размер файла:
      195,1 КБ
      Просмотров:
      100
  5. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Интернет радио на RDA? Это же вроде УКВ радиоприемник...
     
  6. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Хм. Похоже пробел у меня в элементной базе) спасибо за наводку. Буду читать и думать
     
  7. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Всех приветствую! Радостная новость, платы приехали! Первый прототип уже собран и протестирован. Фото прилагаю. Всем кому нужен приемник или печатная плата обращайтесь ко мне на почту.
     

    Вложения:

  8. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Всем привет! Пришла партия печатных плат, если кому то нужны для сборки обращайтесь на rv9c@yandex.ru или в магазин Магазин ESPradio

    Евгений
     
  9. Alcest

    Alcest Новичок

    Сообщения:
    36
    Симпатии:
    1
    Насколько велико время переключения между каналами у этого интернет-радиоприемника? Предположим, что интернет-соединение имеет крайне избыточную для интернет-радио скорость, пусть это будет 100 Мбит/с. Через какое время начнет воспроизводится звук после переключения с одного потока на другой?
     
  10. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Время переключения примерно 1сек максимум 5, все зависит от вещающего сервера и качества интернета.
     
  11. Alcest

    Alcest Новичок

    Сообщения:
    36
    Симпатии:
    1
    А нельзя уменьшить это время менее 1 сек при исключительно хорошем соединении и достаточно производительных серверах? Хотя бы до 0,3-0,5 сек. Размер буфера урезать, например. Вопрос мой чисто теоретический. Интересует, работает ESP в данном проекте на пределе своих возможностей или еще есть куда расти?
     
    Последнее редактирование: 4 ноя 2018
  12. rv9c

    rv9c Читатель

    Сообщения:
    22
    Симпатии:
    5
    Ресурсов расти ещё предостаточно, главное идеи) Возможно уменьшить буфер но тогда пострадает стабильность воспроизведения потока. Пакет потерялся, пошла разсинхронизация и начались заикания)
     
  13. rst

    rst Читатель

    Сообщения:
    253
    Симпатии:
    9
    ESP тут не при чём. Разные серверы вещания по-разному передают поток в начале соединения. Некоторые выплёвывают несколько сотен КБ на макс. скорости, а другие - выдают поток почти со скоростью реалтайма.
    Начать выдавать звук можно хоть сразу же, после декодирования первого же кадра (через несколько мсек), только делать так не следует, иначе в начале воспроизведения звук будет рваться. Необходимо сделать предварительную буферизацию, и включать звук только после накопления некоторого объёма в буфере.
     
  14. rst

    rst Читатель

    Сообщения:
    253
    Симпатии:
    9
    Сделайте выделение метаданных из потока. Это как идея развития ;)

    PS: Хотя, на такой базе, не очень-то далеко поразвиваешься (имхо) :cool:
     
    Последнее редактирование: 5 ноя 2018
  15. Alcest

    Alcest Новичок

    Сообщения:
    36
    Симпатии:
    1
    Пичалька... Заводя разговор о времени буферизации потока, я оглядывался, такскзать, на аналоговые эфирные радиоприемники, которые можно настраивать не глядя на шкалу или дисплей. Крутишь ручку вслепую, при настройке на радиостанцию тут же появляется звук. Останавливаешься на секунду на найденной станции, и в зависимости от востребованности передаваемого контента либо продолжаешь крутить дальше ручку настройки, либо останавливаешься на текущей радиостанции. Удобно. А в случае с интернет-радио нужно обязательно смотреть на дисплей, потому как быстро прокручивая ручку проскочишь все интернет-радиостанции не получив из динамиков ни звука...

    Я тут подумал, а не решается ли проблема (хотя бы частично) буфером с динамическим объемом? Минимальный размер буфера в процессе настройки, увеличивающийся если пользователь остановился на какой-то радиостанции. Так, чтобы при вращении энкодера звук появлялся сразу при минимальной буферизации, позволяя по быстрому оценить передаваемое интернет-радиостанции. Если передача заинтересовала, энкодер мы вращать прекращаем, и тут размер буфера увеличивается до максимума, обеспечивая бесперебойное воспроизведение потока.
     
  16. rst

    rst Читатель

    Сообщения:
    253
    Симпатии:
    9
    С онлайн-радио никакие ручки настроек крутить не надо. Вводится URL - устанавливается соединение. И время, через которое можно начать выдавать звук, зависит больше от сервера: некоторые сразу выплёвывают до ~300 КБ и сразу можно включать звук, другие - в начальный момент выдают поток примерно с той же скоростью, что и реальная скорость потока. Этот размер я называю размером пребуферизации. Т.е. - сервер начинает выдавать звук как бы из прошлого (до нескольких секунд назад). И у каждого сервера этот размер разный, в зависимости от настроек.
    Так что с нормальным сервером (с пребуферизацией хотя-бы в 2-3 секунды), никакой ощутимой на слух задержки не будет - звук будет почти сразу же после коннекта (менее чем через секунду).
    А с криво настроенными серверами (с малой пребуферизацией) или с очень нестабильной скоростью потока, если сразу начать воспроизводить, то звук будет рваться. И по такому рваному звуку ничего оценить не сможете.

    Вы понимаете, что в данном случае это поток - реального времени? Как Вы собираетесь динамически увеличивать буфер, если поток реального времени? Как только вы начали воспроизводить звук, то скорость заполнения буфера становится примерно равной скорости убывания данных из него (если сервер уже вышел из состояния пребуферизации) и, соответственно, если включили звук сразу, без пребуферизации, звук начнёт рваться, и он так и продолжит рваться, потому что заполненность буфера будет очень медленно нарастать. И на оценку "что там играет" уйдёт ещё больше времени.
     
    Последнее редактирование: 5 ноя 2018
  17. nikolz

    nikolz Гуру

    Сообщения:
    5.100
    Симпатии:
    465
    поправочка
    если это реального времени то скорость заполнения буфера строго равна скорости убывания данных но не в этом случае так как интернет радио использует алгоритмы сжатия с потерей
    поэтому скорость поступления всегда меньше или равна скорость убывания данных на выходе.
     
  18. rst

    rst Читатель

    Сообщения:
    253
    Симпатии:
    9
    Вы написали своё интернет-радио? И исследовали все потоковые сервера в инете? Видимо нет. Иначе бы знали, что это не так.
    Да даже видимо никогда и не включали онлайн-приёмник, не то что писать....
     
  19. nikolz

    nikolz Гуру

    Сообщения:
    5.100
    Симпатии:
    465
    опять Вы не угадали.
    Напрасно пытаетесь угадывать что делали другие. Это занятие бесполезное и увлекает лишь вас.
    Рассуждайте о том, что делали сами.
     
    Covox нравится это.
  20. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    9.379
    Симпатии:
    1.320
    Решается элементарно. Открывается и минимально буферизируется N каналов в плюс и N каналов в минус от текущего проигрываемого по индексу списка выбора. Т.е. в DAC проигрывается текущий канал, а другие 2N буферизируются и проигрываются в никуда. При переключении канала, к примеру, в плюс по списку, достаточно сменить дескриптор указателя потока идущего на DAC, закрыть соединение с (текущим – N) каналом и открыть более новый с номером (текущий + N). В таком варианте время переключения возможно сократить в N раз и довести до дискретности вывода в DAC. :)
     

Поделиться этой страницей