В детстве когда я гостил у бабушки с дедушкой, у них всегда работала радиоточка, каких-то особых впечатлений по этому поводу у меня вроде небыло, во всяком случае кроме каких-то смутных воспоминаний о передачах и сигналах точного времени от радио "Маяк" ничего не помню. Но для меня она стала наверное одним из "маркеров" их квартиры, наряду с запахом, какими-то вещами десятилетиями находящимися на одних и тех же местах. Бабушки и дедушки давно нет в живых. Сейчас когда бываю у папы в той же квартире, в которой 99% осталось "как было", в моменты тишины ловлю себя на мысли что чего-то не хватает. Да, именно бубнящего в углу "брехунца", как иногда называли подобные приемники в то время.
Точку давно отрезали, я даже не знаю существует ли сейчас еще подобная сеть у нас в городе.
Другой мой дед рассказывал как его отец впервые услышал радио и каким для него это было шоком. Наверное появление интернета в конце прошлого века и его теперешние возможности не вызвали в людях, уже пресыщенных возможностями техники, таких сильных ощущений как тогда.
Я никогда не был ни радио любителем ни фанатом радиоэфира. Да, школьником я собирал простейший детекторный приемник без батареек, но это просто из любопытства "заработает ли?". Было дело когда ФМ-диапазон только стал заполняться станциями, я немного слушал наши молодые радиостанции, всякие там "Просто радио", "Гармонию мира", что-то еще... Да, бывали иногда какие-то передачи с альтернативной музыкой, в основном ночью, те же "Флер" как-раз тогда появились, но меня тогда сильно интересовал прогрессив-рок, а этого там практически не было. Потом появилась передача "Рок-файл" которую вел некий олдовый рокер Клифф Юргенс (он же Элвин Роллингс) :) Даже тогда его загоны казались смешными, но он таки крутил старый рок и иногда даже немного "прог".
Потом конечно все это умерло, появился интернет, почти все что добывалось по крупицам стало легко доступно и волшебства в мире стало гораздо меньше.
К чему вся эта прелюдия? Периодически у меня всплывала идея собрать "интернет-радио" приемник. Наверное первые интернет "радио-станции" появились в середине 90-х, а может и раньше, забавно что я никогда их и не слушал, даже с появлением высокоскоростного интернета, ведь можно было и так слушать ту музыку которую хочешь. Но мысль "собрать чтоб было" периодически всплывала и постепенно оформилась в идею сделать папе подарок на ДР, как в детстве - самодельный. Это конечно не радио и не "точка", но и времена сейчас другие.
Дальше наверное не всем будет интересно, но опишу немного технических моментов
Благо сейчас есть из чего выбрать всяческих одноплатных микро компьютеров навалом, как раскрученных типа РасбериПи так и всевозможных китайских поделий.
В итоге было решено не искать легких путей а взять за основу дешевенький роутер WT3020 с USB портом, китайскую юсб-звуковую плату, но чтоб было совсем по взрослому хотелось добавить к этому делу lcd экранчик на который бы выводилось название текущих станции, группы и песни. Двадцать первый век все-таки!
Над корпусом было решено думать потом, а собрать для начала "на столе"
Веселье началось почти сразу. Роутер я успешно перешил под OpenWRT, но оказалось что встроенных 8 мегабайт флеш памяти не хватит на весь софт который я хотел впихнуть в несчастного зверька. На роутере есть юсб и можно было конечно просто разместить все на внешней флешке, но хотелось странного, а тут еще попалась статья
https://mysku.ru/blog/aliexpress/43149.htmlЗаказал на али микросхему флеш памяти, правда не 32Мб, как у автора, а 16. Я решил что и 16 мне хватит с головой, а паять ее легче. Пайка меня смущала очень сильно -у меня нет ни фена, ни паяльной станции и вообще навыки пайки весьма условные, поэтому был большой риск все испортить на первых же этапах. Но так или иначе мне удалось перепаять флеш на роутере и он даже включился после этого!
Следующий этап сборка прошивки. До сих пор не понимаю как в итоге она собралась, возможно количество в какой-то момент перешло в качество, но скорее звезды оказались на нужных местах. Прошивка была собрана, залита во флеш и я даже не надолго поверил что этот проект имеет шансы не умереть. правда с тех пор прошивка многократно пересобиралась, т.к. менялись детали реализации
Настал черед экрана. У меня давно лежит 4х строчный lcd экранчик с юсб интерфейсом, я планировал использовать его, а всю программную часть сделать либо на питоне, либо на баше, но в итоге мне так и не удалось собрать версию прошивки с поддержкой этого экрана и наступил черед плана Б.
На все том дж алиэкспрессе была куплена платка Arduino Pro mini из недр электронного хлама был извлечен другой экранчик на базе HD44780. В итоге получился бутерброд из ардуины и экранчика. Ардуина же подключалась к роутеру по последовательному интерфейсу.
Здесь слева напрпаво: роутер, экранчик и звуковушка
Здесь к плате экранчика приклеена ардуинка
В процессе пришла мысль добавить возможность проигрывания музыки с флешки, опять таки с выводом информации на экран.
Управлять переключением треков и станций я планировал с помощь 3х кнопок на моей usb-звуковушке, изначально они предназначены для дискретной регулировки громкости и включения режима "Mute", но оказалось очень удобным что Линукс эти конпки видит как отдельное устройство -мини клавиатуру.
Программная часть
После старта OpenWrt запускается стартовый скрипт, который открывает mpd плеер и подсовывает ему плейлист со списком интернет станций. Нажатия кнопок мониторятся очень удобной для таких целей программкой triggerhappy -она позволяет назначать любые команды или запуск скриптов по нажатию кнопок. Теперь кнопка "Mute" у меня переключает режимы флешка/радио, а кнопки громкости переключают, вперед-назад, позиции в плей листе, т.е. позволяют переключать станции в режиме радио и листают треки с флешки в режиме плеера.
При переключении в режим плеера скрипт перемонтирует флешку и mpd заново индексирует ее содержимое, потом начинает проигрывать с первого трека, если снова нажать "Mute" -опять запустится плейлист с "радиостанциями". Нашел в интернете с десяток станций вещающих прогрессив-рок ну и до кучи добавил туда радио "Маяк" :) Да оно вполне себе существует и вещает в онлайн тоже.
Экранчик
Скажем так я очень плохой программист, а точнее вообще не программист, поэтому "танцую как могу" и мой код для Ардуино скорее напоминает детище Франкенштейна, но в целом он как-то работает. На роутере крутится вечный цикл, который с 5 секундным интервалом читает статус mpd и пишет его в последовательный порт, Ардуина же все время читает порт и далее парсит строку выделяя из нее название "радиостанции" и группу-песню, далее название станции выводит в нижнюю строку неподвижно (если длинное, то часть обрежется), а группу песню скролит в верхней строке.
Иногда подглючивает, но в целом работает почти хорошо.
Звукоизвлечение
Как я уже упоминал, звуком у нас занимается usb-звуковушка, далее с ее выхода сигнал поступает на опять таки китайский 15-ваттный усилитель, на выходе у нас опять таки 15-ваттнее динамики. Еще для пущей важности поставил в каждую колонку пассивный излучатель, в надежде что это добавит немного НЧ.
Питание
Пришлось использовать два БП
12 вольтовый, 5А блок питает усилитель. Все остальное питается от 5-вольтового блока. Первоначально при помощи опять таки китайской платки-преобразователя пробовал получить 5в из 12, но тут в аудиотракт шли сильные помехи от роутера, видимо из-за общей земли.
Чтобы одновременно подключить и звуковую плату и флешку используется простенький хаб USB 2.0. С этим хабом была веселая история во время которой я готов был бросить все это к чертям. Когда собрал "на столе" -все работало, но в процессе переноса в корпус у меня пропал звук и перестала монтироваться флешка. Я начал все перепроверять, никаких ошибок не нашел. Проблема всплывала и исчезала, я пробовал менять БП предполагая что виноваты помехи. кончилось все заменой злосчастного хаба, причем на обычном компьютере он вполне себе нормально работает
Корпус
Головная боль №2. Есть у меня странная особенность, когда хочу сделать нечто, то обычно при этом у меня нет желания погружаться во все детали процесса, а в некоторые так вообще лень. Хочется побыстрее делать интересные части, а чтоб неинтересные сделались как-нибдь сами и желательно сделались хорошо. Акустика вещь сложная и корпуса нормальных колонок обычно рассчитывают. Но вникать вот в это все у меня желания почему-то не было, поэтому размеры колонок выбирались "на глазок". У меня в сарае пылилась пара колонок от советского проигрывателя, понимая что использовать их по назначению в следующий раз я буду примерно никогда, решил одну из них пустить под нож. Колонку я распилил электро лобзиком, попутно вспоминая что аккуратность - это не мое. Решил сделать три секции -две сами колонки а в средней между ними расположить всю начинку.
Начинка помещалась плохо и неудобно.
Здесь в центре виден усилитель, слева 5-вольтовый БП,справа - 12В.
Переднюю панель сначала думал сделать небольшую из фанеры в средней части а там где динамики затянуть тканью от исходной колонки. Но потом решил сделать общую панель на весь фасад, выпилив лобзиком отверстия напротив динамиков. Делал из фанеры, а раз уж фанерка то и повыжигать можно. Результат не сильно радует, но переделывать в данном случае я уже ничего не буду.
Как-то так вышло что сфоткать в сборе я забыл, вот небольшое видео работы в режиме проигрывания с флешки
Итоги
Несмотря на все, эта штука работает, звук как мне кажется вполне ничего для такого класса устройств, станции переключаются, с флешки играет.
Уже вручил папе, он доволен.
Из недостатков-неудобств:
-При включении роутер грузится довольно долго, больше минуты
-Обрезаются слишком длинные строки, т.е. даже в режиме бегущей строки. Не разбирался, возможно я не правильно работаю с последовательным портом.
-Если на флешке много музыки, то устанешь искать нужное.
-Добавлять/убирать станции можно только редактируя файлы через консоль, хотя можно было бы и веб интерфейс сделать, но я б еще наверно год делал :)