Обсуждаем цифровые устройства...
Ответить

WEB-Radio на Ардуине

Пт мар 02, 2018 17:33:26

Слепил из Ардуины, МП3 шильда для нее же и Эзернет модулька на ENC28J60 WEB-радио. Подключил через роутер с УСБ 3G свистком. И оно даже работает. Но плохо. Звук сопровождается эффектами похожими на амплитудную модуляцию, чириканьем и тп артефактами цифрового звука. Но очень изредка - вполне себе классное звучание. Причем не похоже чтоб зависело от битрейта. Понял, что одному мне это не осилить. Надеюсь на коллективный разум.
Чтоб не было вопросов - МП3 шильд проверен. Музон с SD карты играл просто супер.
Выкладываю пока базовые файлы. "Ссинтезировал" на базе проектов Василиса Серасидиса и Вильяма Дадли.
Если будет интерес - рад буду обсудить вопросы и предложения, тк давно хотел собрать такую штуку. А просто так - не хочется зря пальцы топтать. С уважением.

ПС. В строке 273 отключен модуль, управляющий переподключением к сети в случае обрыва связи. Не так работает, тормозит.
Адреса все забил сегодня. Вещают все !!!
Вложения
Arduino_WebRadio_Sintetic.rar
(43.64 KiB) Скачиваний: 213

Re: WEB-Radio на Ардуине

Сб мар 03, 2018 23:37:07

Коль никого нет, продолжу сам. Спасибо коллеге, ткнул носом на инфу. http://cxem.net/arduino/arduino197.php
Написано что Эзернет модуль сбоит при длине буфера меньше 700 байт.
Поправил на 700 - приемник заработал на 4 . Уже можно слушать. Поставил пока 800 байт буфер.
ПС. Пробовал 900. Артефакты - все равно проскакивают независимо от размера буфера. Видимо дело не в размере.
ППС. Модуль Nokia5110 плохо показывает от 3,3 вольт, но работает. При 5 вольт все четко и работает. Противоречит даташиту. Наверно китайцы встроили понижайку уже внутрь.

Re: WEB-Radio на Ардуине

Сб мар 10, 2018 10:27:44

Добавил клавиатуру. Забавно, такая клавиатура позволяет жестко привязывать конкретный экземпляр программы к конкретному экземпляру устройства. При этом занимает всего один пин.
Никак не могу понять как сделать буферизацию, чтобы гарантированно избавиться от прерываний звука.
Вложения
Arduino_WebRadio_Sintetic.rar
(51.88 KiB) Скачиваний: 167

Re: WEB-Radio на Ардуине

Ср мар 14, 2018 13:26:52

ничего монолог... сбоит скорее всего из за того, что пакеты из сети имеют право приходить не по очереди, тут бы помог буфер побольше (хотябы на 1-3 сек воспроизведения) другой вопрос на чем его делать...

Re: WEB-Radio на Ардуине

Ср мар 14, 2018 18:22:22

Могу ошибаться, спасибо кто поправит. Вроде бы буферизации не придумаешь. Если пакет пропал, - хана. Отправить запрос - повторить пакет - в протоколе не предусмотрено. Как в обычном радио. Сам хотел делать буфер на микре SPI памяти. Прикупил микру. Но коль невозможно, ничего не cделаешь. На днях будет доступ к "хорошему" интернету. Проверю общее впечатление - отпишусь.
Есть подозрение, что библиотека VS1053 переводит стерео-звук в МОНО режим. Пробую другую библиотеку.

В памяти программ 50% - пусто. Хочу впихнуть SD плеер. Чтоб все сразу. Вот полуфабрикат только плеера. Работает. Пока без паузы, баланса, тон-регулятора. На другой библиотеке. Не стал убирать строчки исходника. Кому интересно, тот поймет. Буду рад, если кто выложит свой вариант интерфейса.
Вложения
My_MP3_ButtonPlayer1.rar
(2.39 KiB) Скачиваний: 156

Re: WEB-Radio на Ардуине

Вт апр 03, 2018 01:13:44

Всем - здравствуйте.
Наконец "дошли руки" до любимого хобби. Сообщаю. Появился очень хороший интернет, качество приема улучшилось, но не идеально. Так что - копать и копать. Сделал мелкую добавку. В библиотеке от автора ( VS1053.cpp) принудительно выравниваются громкости каналов. Странно - зачем? Убрал. Появилась возможность - ввел регулировку стерео-баланса. Но в библиотеке нет регулировок тембра. Это большой минус. Опять же - почему? Сейчас пробую другую библиотеку - SFEMP3Shield.h
Есть все, но нет в явном виде -

... else {
uint8_t* data = (uint8_t *) Ethernet::buffer + off; //Get the data stream from ENC28J60 and... - Взять поток данных из интернета и...

вот этого -
player. playChunk (data, len) ; //...send them to VS1053B - послать его нах - в микру.

Потому молчит как рыба. Как впихнуть массив данных в VS1053 ?
Вложения
Arduino_WebRadio_Sintetic.rar
(52.28 KiB) Скачиваний: 144

Re: WEB-Radio на Ардуине

Пт апр 06, 2018 01:04:14

Мдя. Вот это меня заклинило. Сам же включил запрос на метаданные и забыл про них.

void playWebRadioStation ( byte ip[4], const int hisPort, char* preset )
{
...
ether.browseUrl(PSTR("/"), "",PSTR(""), PSTR("Icy-MetaData:1"), my_callback); // Получать метаданные
// ether.browseUrl(PSTR("/"), "",PSTR(""), PSTR(""), my_callback); //Без метаданных
...
}

Станции шлют мета-данные, которые будучи не выдранные из потока портачат звук. Переносим "//" на строчку вверх и радуемся шажку к качеству. Не все станции метаданные передают по требованию, потому и "заблудился" - грешил на качество интернета.
Веб станции не гонят рекламу !!!

Re: WEB-Radio на Ардуине

Пт апр 06, 2018 07:33:22

Цель этого проекта получить опыт или собрать устройство для прослушивания интернет радио? Когда-то давно у меня был роутер dir-320. Так вот его можно было перепрошить альтернативной прошивкой в которой появлялась возможность установки приложений, в частности веб-радио. В USB на роутере включался свитч, а в него уже флешка с плейлистом радиостанций и USB звуковая карта. Станции переключались кнопками на звуковой карте.

Re: WEB-Radio на Ардуине

Пт апр 06, 2018 19:09:41

Да всё сразу. Приятное с полезным. Чего желаю всем Котам. Люблю музон, особенно буги-вуги. - В наушниках печатаю это сообщение. В ушах музон из Веб-радио. НИКАКОЙ РЕКЛАМЫ мать ее !!! Супер!!! Собрано - на Ардуине, МП3 шилде и макетке с Али. Подключено в сеть по кабелю. Собирать в законченный вид раньше чем удастся -- 1. подключаться к Интернету через безпроводку (сотовую сеть), 2. добавить тон-регулятор, 3. подключить SD карту, 4. часы реального времени, 5. питание от батарей - на мой взгляд слишком рано. Но если есть "особые" планы - рад поучаствовать.

Про проект с роутером я читал многократно, но все (Как говорится - и покажут и намажут, но покушать не дадут) так "туманно" , что не решился начать. .Или плохо искал.

Re: WEB-Radio на Ардуине

Вс апр 08, 2018 23:08:55

Оригинальная библиотека от Vasilis Serasidis-а не содержит регуляторов тембра ВЧ-НЧ. Про стереобаланс - уже писАл. Пришлось добавить. Немного, но совсем другой фаршмак, надо сказать !! Добавить функцию плеера с SD - не удается - мало ОЗУ. Много жрут Ethernet и SD библиотеки. Оставим на потом. Пока - осваивать выход в сотовую сеть. Сорри за неряшливый интерфейс, - успеется. С уважением.

ПС. Там есть функции, указывающие микре, что считать ВЧ и что - НЧ. Выставьте под СВОИ уши. А то мне медведь... Для баса 20-150, для дисканта 0-15000 Гц.
Вложения
VS1053.rar
(30.35 KiB) Скачиваний: 152

Re: WEB-Radio на Ардуине

Ср май 02, 2018 00:58:06

Уважаемые Коты. У кого есть проверенный рабочий код (на Ардуинном Си ) запроса ( "GET / HTTP1.0" ) к IceCast и ShoutCast серверам, переводящий их в режим трансляции потока к клиенту. Ну и цикла чтения потока заодно. С уважением.

ПС. Пытаюсь сделать вход интернет-радио через сотовую связь. Модулек NeoWay M590. Библиотека TinyGSM. В сеть выходит нормально, связь держит, но не получается задать нужный режим станции. Приходит либо сообщение сервера "о себе", либо просто ошибка запроса.

Re: WEB-Radio на Ардуине

Пт май 18, 2018 12:21:59

Странное дело. Дох*я и больше информации - как сделать WEB - станцию (транслятор). И абсолютно никакой информации - как сделать WEB - приемник. Имеется в виду HTTP код запросов. По всему - вроде бы должно быть наоборот !!?

Re: WEB-Radio на Ардуине

Сб май 19, 2018 01:29:17

Как раз всё логично. Слушать можно на чём угодно: смартфон, роутер, готовый приёмник, компьютер, а вот для трансляции стараются сделать что нибудь малошумное и не жрущее электричество.
Вот эту статью смотрел? http://elwo.ru/publ/skhemy_na_mikrokont ... /9-1-0-740

Re: WEB-Radio на Ардуине

Вс май 20, 2018 23:52:38

Это проект Василиса Серасидиса - писАл об этом в первом посте. Он работает, но нужен БЕЗПРОВОДНЫЙ приемник - через сотовую связь.
Мне кажется, Вы не правы. Тот кто желает именно транслировать, как раз особо и не озабочен экономией. И тем более не заинтересован в распространении
софта для конкурентов ? Но инфы-то полно ! Но это так - флуд.

ПС. В даташите на GSM модуль NeoWay M590e - по дефолту скорость обмена с хостом - 115200bps. Она может быть программно изменена и сохранена. Оказалось, что - при аппаратном ресете - восстанавливается последняя записанная скорость, а не дефолтная. Китайцы продают БУ - в моем оказалось сохранено - 9600bps. В библиотеке TinyGSM нет функции настройки скорости модема, хотя есть функция настройки скорости для хоста (Ардуины). Пришлось добавить. Максимальная скорость, на которой работает выход в GPRS - 57600bps. При 115200bps приходят сообщения от серверов о неподдержке. Хотя - они же приходят. Непонятно.

ППС. Заставить музыкальные серверы передавать мне (клиенту) музон - так и не удалось. В хекс-файле проводного приемника есть GET и POST типы запросов, и некоторые заголовки, но путного из них скомбинировать - не получается. HELP !!!

Re: WEB-Radio на Ардуине

Пн май 21, 2018 06:42:00

Ох уж эти мне ардуинщики. Возьми из того проекта часть отвечающую за соединение с музыкальным сервером. Зачем искать в библиотеке команду настройки скорости, если можно дать команды "AT+IPR=", "AT+ICF=" и "AT+IFC=" ?

Re: WEB-Radio на Ардуине

Пн май 21, 2018 08:53:28

А че "Ардуинщики" ? Ардуина - хороший полуфабрикат. А когда заработает проект полностью - развести свою плату под конструкцию - это как 2 пальца обос*ать.

AT-команды - это понятно, но это лишние строчки кода. Причем когда уже понял и знаешь, что в библиотеке недоработка. Но не это главное -
Пожалуйста - нарисуйте мне запрос к серверам IceCast и ShoutCast, переводящий их в режим трансляции клиенту (т.е. мне) музона. Ну не спец я в этом деле. Там всего 5-10 строчек кода. Уже месяц топчусь.

..".Хоть пол-царства моего".
— Не хочу я ничего!
Подари ты мне девицу,
Шамаханскую царицу, —
Ответить