Радио в виде компьютера
Недавно в разговоре с радиолюбителями, я посетовал на отсутствие аппаратуры для мониторинга радиолюбительских диапазонов. - А ты купи свисток!, - посоветовал один из них. Так он назвал всеволновый SDR приемник выполненный в виде флешки. На небезызвестном сайте их можно прикупить по цене от 500 рублей до пяти тысяч. Отличатся данные приемники будут качеством исполнения, шириной полосы пропускания и диапазоном принимаемых частот.
Я приобрел приемник по цене 816 рублей. Комплект, который мне прислали за эти деньги вы видите на фото ниже. Доставка из Китая была бесплатной и заняла чуть больше недели.
В данном приемнике применена микросхема RTL238U и изначально он предназначен для приема цифрового ТВ, но совершенно неплохо справляется и с функциями всеволнового приемника. Благодаря специальному драйверу, разработанному радиолюбителями.
Итак, приступим к тестированию. На компьютере я установил программу SDRSharp - самую популярную программу для работы с SDR (SDR, кстати переводится как программное радио). И действительно большинство функций радиоприемника берет на себя персональный компьютер. Главное не устанавливать стандартный драйвер, идущий в комплекте. Он предназначен для цифрового ТВ, а нам нужен специальный - программа по его установке называется Zadig.
Вот так выглядит моя приемная станция - ноутбук и штатная антенна за окном на подоконнике.
Высота третьего этажа, самая граница Московской области. Так что для хорошего приема антенну придется сменить.
Несмотря на то, что приемник работает на любой частоте, на КВ я никого не услышал. Флешки данного типа не работают на коротких волнах. Прием начинается от 70 мГц. Зато радиовещательные станции он принимает неплохо.
Из-за небольшой длинны антенны хороший прием я смог получить только на диапазонах от 400 мГц и выше. Планирую установить более серьезную антенну и продолжить эксперименты с этим приемником.
Будем ловить МКС, принимать погодные спутники NOA, слушать общение радиолюбителей через ИСЗ, принимать сигнал RDS и цифровые виды связи, слушать гигагерцовый любительский диапазон.
Системную шину ПК можно превратить в передатчик радиосигнала. Так работает System Bus Radio, которое транслирует музыку на стоящий рядом с компьютером AM-приемник. Расскажем подробнее и приведем другие необычные способы «извлечения» музыки из компьютера.
Сборка
Начал с поиска подходящей макетки. В моём случае 10х22 см. Сначала расположил на ней все кроватки для микросхем, убедился что всё влезает. Составил примерное расположение микросхем и припаял панельки с обратной стороны за первый и противоположный ему по диагонали выводы. Так же добавил фильтрующие конденсаторы 0,1 мкФ.
Это самая долгосрочная поделка в моей жизни. От идеи до конечной реализации, так чтобы ей можно было пользоваться, прошло 12 лет! За это время произошло колоссальное количество событий: переезды, рождения, смерти, но идея была со мной и ни смотря ни на что, я её доделал. И хочу рассказать о путях, терниях, чаяниях, которые сопровождали данную поделку и что из этого в результате получилось.
Саму идею Wi-Fi радио на базе маршрутизатора я увидел давным-давно вот в этом проекте. Если что — это 2009 год. Это было радио на базе роутера, Linux и mpd-демона. Тогда это были не совсем понятные для меня термины, но очень хотелось иметь подобное радио. И я загорелся этой идеей. Плюс меня очень вдохновляла любая ламповая техника: усилительные лампы, индикаторные лампы (6Е1П, которая у меня на аватарке), ЭЛТ-экраны. И так же очень радуют VFD-дисплеи (VFD — Vacuum Fluorescent Display или по-русски Вакуумно-люминесцентный индикатор (ВЛИ), или катодолюминесцентный индикатор (КЛИ).
Поэтому я принял решение использовать кассовый дисплей. Тогда я даже не знал, что он называется дисплей покупателя.
Итак идея: дисплей покупателя, некоторый одноплатный компьютер или роутер, Linux+mpd, вакуумно-люминесцентный индикатор и какие-то органы управления этим добром. Примерно по аналогии с проектом, который меня вдохновил.
Понимаю, что с этой поделкой сильно опоздал, так как есть куча различных вариантов Wi-Fi радио. Но всё же оно отличается концептуально, даже сегодня, от остальных и думаю будет интересно почитать о создании такого устройства. Тем более, что делал я его для души, а не для продажи.
Пару слов об исходном коде и настройках
Заметил, что если в статью добавляется описание кода, то ее читаемость снижается сразу вдвое. Поэтому в данной статье кода будет очень мало, хотя только описанию кода можно посвятить две статьи. Настройку mpd-демона описывать не буду, тысячи статей в том числе и на хабре, да и сам мануал обычно исчерпывающий на него. Настройку Linux на Beaglebone опущу. Разве что пришлось включить UART, для подключения Arduino. Но это тоже легко гуглится. Исходный код всего проекта обитает на гитхабе и доступен всем.
Не буду разбирать все моменты кода. Работу с дисплеем ранее осветил в статье. Пробегусь по файлам.
В папке arduino_encoder лежит проект энкодера для ардуины. Там все интуитивно понятно и не вижу смысла это как-то разбирать. В папке Linux исходные коды самого радио, именно этот код кочевал из проекта в проект.
- display.c
- display.h
- output.h
- charset_coverter.c
- charset_coverter.h
Но, есть нюанс: букв «ё» нет, твердый знак «ъ» и мягкий знак «ь» перепутаны местами. Так что после декодировки надо додекодировать.
Подробнее, как такое писать рассказывал в статье «Терминальная графика».
Добавление радиостанций у меня происходит следующим скриптом.
Если у вас есть какие-то потоковые радиостанции которые вы можете порекомендовать, особенно по электронной музыке, то пишите в комментариях :)
Еще для удобства управления и настройки, добавил себе web-интерфейс из проекта ympd. Выглядит это вот так.
В результате файл /etc/rc.local в конце выглядит вот так:
Да, да, я знаю, что на Ubuntu systemd и rc.local использовать плохо и другие бла, бла, бла. Но я использую, потому что хочу и могу.
Конечно, радио получилось не таким красивым и пафосным, как задумывалось вначале, но я решил, что лучше синица в руке, чем журавль в небе. Лучше сделать так, чем растягивать удовольствие еще на несколько лет с неясным результатом. Тем не менее, хоть и неказисто, но очень меня радует. Ну и что читать кучу текста, пора смотреть видео, как это все выглядит и функционирует.
Видео чуть старое, сейчас антенна и Ethernet подключены и вполне себе даже работают.
Основной концепт и дизайн
У этого радио в те годы (примерно 2010 год) была и другая проектная цель. В те годы я изучал сербский язык и мне хотелось иметь простое устройство, где «щелкнув тумблером» получал сербскую радиостанцию. Телефоны, компьютеры были не вариант, так как они меня сами по себе сильно отвлекали: пока откроешь уже забудешь что делал. Второе, мне очень хотелось чтобы железяка оставалась максимально похожей на обычное привычное радио и им смог бы пользоваться даже пожилой человек. И последнее, хотелось чтобы управление было в минималистичном стиле: одна кнопка.
Меня очень вдохновляли дизайнерские решения 30-40-х годов 20 века в архитектуре, интерьере и в частности в дизайне радиоприемников. Этот стиль зовется Ар-деко. В нашей стране яркий представитель этого стиля здание Ленинской библиотеки, станция метро Аэропорт, Маяковская, Красносельская (точнее будет сказать имеет влияние этого стиля). Если говорить о приемниках (дизайн которых они получили уже из архитектуры), то наиболее интересные варианты были тех, у кого шкала находится сверху.
Дизайнерские решения, которые сильно вдохновляли
Конечно, изначально корпус данного радио планировал делать из ценных пород дерева, наподобие приемника сверху. И даже когда-то тут на хабре познакомился с дизайнером, который делал аналогичный проект (не помню какой, простите); и мы даже сделали какие-то наброски, прикидывали проект, но все же тогда я не решился пойти по столь серьезному пути, а зря… В общем было много всяких странных мечтаний и желаний. Но все упиралось в жестокую реальность.
Другие «компьютерные» способы создания музыки
Для воспроизведения музыки при помощи электромагнитного излучения можно использовать не только внутренние компоненты компьютера. В 2001 году Эрик Тиле (Erik Thiele) создал программу Tempest for Eliza для Linux, которая воспроизводила музыку с помощью электромагнитного излучения монитора.
Для этого использовались специальные изображения, при отображении которых ток электронного пучка кинескопа принимал форму, близкую к низкочастотному (единицы-десятки МГц) АМ-сигналу. Изначально такой способ перехвата сигнала был рассчитан на ЭЛТ-мониторы, но программа работает и с LCD-экранами.
В музыкальный инструмент можно превратить и другое ретрооборудование, например матричный принтер. На них записывают каверы на известные песни и саундтреки. Для них пишут оригинальные произведения.
Источник вдохновения музыканты и композиторы также нашли в звуке флоппи-дисководов. При помощи этих устройств музыку создавал даже кинокомпозитор Беар МакКрири (Bear McCreary): он использовал «флопики» для написания саундтрека к фильму «Восстание».
В сети можно найти руководства по созданию системы на базе Arduino, которая будет играть музыку на дисководах для 3.5" дискет. Программу для управления получившимся инструментом можно найти на GitHub.
Подобные решения показывают, что музыка окружает нас с вами в буквальном смысле, и её нужно лишь услышать.
«Аудиомания» в Telegram — о звуке и гаджетах в микроформате:
Кино на пластинках
Звуки из мира кошмаров
Гид по встраиваемой акустике
Как зазвучали Звездные войны
Музыка на работе
История бренда: Marshall
Необычные аудиогаджеты
Вы когда-нибуть собирали компьютер? Ну хотя бы один раз в жизни. Хотя бы не полностью.
— «Ну конечно!» — скажете вы.
И будете не совсем правы.
Нет, я ни в коем разе не умаляю ваших достижений, однако, в далеком 1986 году в СССР собрать компьютер могли лишь опытные радиолюбители. Это сейчас достаточно купить материнскую плату, процессор, достать пару планок оперативной памяти и жесткий диск на побольше, и водрузить это все в красивый корпус с блоком питания на 500W. Все это, заметьте, делается без помощи паяльника, осциллографа и кучи принципиальных схем.
Радио86РК — не первый бытовой компьютер, который предлагался для сборки радиолюбителями. Его предшественником был «Микро-80», состоявший из большого количества модулей, и насчитывавший порядка 200 микросхем. Он был сложен в сборке и наладке, поэтому особого распространения не получил.
А вот Радио86РК состоял всего лишь из 29 микросхем и небольшого количества других радиодеталей, был прост в сборке и, если не было допущено ошибок в монтаже, начинал работать сразу после включения питания. Однако, из-за попадавшихся бракованных радиодеталей, Радио86РК мог и не запуститься, и вот тогда приходилось брать в руки щупы осциллографа, и искать неисправность.
Лишь потом, когда государство приняло решение выпускать радиолюбительские конструкторы (и даже производить клоны радиолюбительских бытовых компьютеров) серийно, жить радиолюбителям стало немного проще.
Об одном из клонов Радио86РК, серийно выпускавшемся на производстве, уже было написано на Хабре в обзоре ПК «Микроша» — один из клонов «Радио-86РК», однако у автора этот бытовой компьютер корректно работать отказался из-за выкушенных конденсаторов КМ, которые, из-за содержащихся в них драгметаллов, в свое время, видимо, сдали в цветмет.
К тому же, «Микроша» лишь частично совместим со своим прародителем, поэтому многие программы и игры для Радио86РК, не смогут запуститься на нем без соответствующей адаптации.
Помимо «Микроши», на страницах Хабра был обзор радиолюбительского компьютера Орион-128, за основу которого, судя по всему, был взят Радио86РК. Орион-128 имел гораздо больше оперативной памяти, чем Радио86РК, к нему подключался ROM-диск и дисковод, также была возможность подключить через специальный контроллер жесткий диск до 10Mb.
Технические характеристики Радио86РК.
Процессор: К580ИК80А (КР580ВМ80А) — советский аналог процессора I8080А, работающий на частоте 1.78 МГц. На самом деле, номинальная тактовая частота этого процессора составляла 2.5 МГц, однако для упрощения схемы бытового компьютера Радио86РК было решено отказаться от тактового генератора для видеоконтроллера, и использовать в качестве него генератор тактовой частоты процессора. В связи с тем, что видеоконтроллер переваривал только частоту 1.78 МГц, приходилось довольствоваться заниженной частотой процессора.
ПЗУ: 2 КБ на микросхеме с ультрафиолетовым стиранием К573РФ2 или К573РФ5 (буржуйский аналог — 2716) в которой размещена управляющая программа «Монитор». Во время отладки компьютера, вместо «Монитора», в ПЗУ записывали диагностический тест, проверяющий корректную работу памяти, знакогенератора и клавиатуры. Поэтому данную микросхему обычно устанавливали на панельку.
Оперативная память: в оригинальном варианте — 16 КБ на восьми микросхемах К565РУ3. В доработанном варианте — 32КБ на шестнадцати микросхемах К565РУ6 (напаенных друг на друга вторым этажом). Для нормальной работы компьютера Радио86РК с 32 КБ оперативной памяти было необходимо изменить прошивку ПЗУ «Монитора» в связи с изменением конечных адресов ОЗУ.
Видеоподсистема: построена на связке микросхем КР580ВГ75 + КР580ВТ57. Символы для знакогенератора прошиты в микросхеме ПЗУ К573РФ1. Данная микросхема требовала для своего питания аж целых три напряжения: +5, +12 и -5 вольт, и часто выходила из строя в случае пропадания одного из напряжений питания. Многие радиолюбители заменяли ее на микросхему К573РФ5, благо изменения в схему вносились небольшие. Доступен только текстовый черно-белый режим 25 строк на 64 символа, не смотря на то, что микросхема КР580ВГ75 позволяла реализовать цветное изображение. Для простоты конструкции от цветного изображения решили отказаться.
В связи с дефицитностью микросхемы КР580ВГ75, некоторые радиолюбители заменяли ее на отдельную плату, содержащую около двадцати более распространенных микросхем. Правда после такой замены на компьютере некорректно работали программы, обращающиеся к видеопамяти напрямую, в частности — игры. Без адаптации работали только те программы, которые обращались к видеопамяти через функции ПЗУ.
В качестве монитора использовался обычный телевизор или видеомонитор Электроника МС 6105.
Клавиатура представляла собой матрицу с контактами на замыкание, которая полностью обслуживалась ЦПУ через порт ввода-вывода, выполненного на одной из микросхем КР580ВВ55 (всего таких микросхем в компьютере две). В клавиатуре чаще всего использовались герконовые кнопки от калькуляторов, которые не отличались плавностью хода, зато имели высокую надежность.
В качестве источника звука использовался вывод процессора INTE (на котором формировался сигнал «разрешение прерываний»), переключаемый командами EI/DI. Поскольку прерывания в компьютере не использовались, этот вывод был свободен. Не пропадать же добру, ведь правда?
Блок питания: один из наиболее важных узлов компьютера, проектировавшийся с максимально возможной надежностью, ведь из-за его неисправности могли выйти из строя довольно дефицитные и дорогостоящие микросхемы. Дело в том, что для своей работы компьютер Радио86РК использовал три напряжения питания (-5В,+5В и +12В), причем первым должно подаваться напряжение -5В, а затем +5В и +12В. Сниматься же они должны в обратном порядке. Также допускается одновременная подача и снятие всех напряжении, а при пропадании одного из них должны сниматься и все остальные.
В качестве внешнего устройства для хранения программ и данных применялся бытовой кассетный магнитофон.
Периферийные устройства (например, принтер) подключались свободному порту на второй микросхеме КР580ВВ55.
Внешний вид Радио86РК.
Говорить о внешнем виде самодельного компьютера не совсем корректно.
Каждый старался как мог, и делал корпус под свой РК86 из того, что под руку попадется. Некоторые вообще не заморачивались, и оставляли компьютер совсем без корпуса, а потом холили и лелеяли его — не дай бог пролить на него пиво чай, или убить статикой.
Радиолюбители, постигшие Дзен, старались спрятать свое детище в корпуса от советских калькуляторов соответствующих габаритов (например, Искра 111М), а те люди, которые умели не только держать в руках паяльник, но и работать с оргстеклом делали свои собственные корпуса.
А теперь, давайте посмотрим на корпусное исполнение моего экземпляра Радио86РК.
Он сделан из оргстекла, и покрашен в желтый цвет. В верхней крышке корпуса вырезаны отверстия для кнопок и двух светодиодов.
Клавиатура набрана из кнопок от советских калькуляторов. Буквы и стрелки приходилось рисовать на кнопках вручную — сверху таких кнопок имеются прозрачные колпачки, защищающие надпись от стирания. Цифры на кнопках рисовать было не нужно, так как они уже были нанесены заводским способом на кнопки каждого уважающего себя калькулятора.
По бокам корпуса нет ничего интересного, а вот на задней стенке расположились все необходимые разъемы — разъем для подключения магнитофона, телевизора, кнопка «Сброс», и разъем для блока питания.
Корпус блока питания также сделан из оргстекла и покрашен в желтый цвет.
Помимо разъема питания Радио86РК и кнопки включения, на передней стенке корпуса БП имеется розетка +5В, которая, в принципе, не нужна. Но это не баг, это фича (с).
Боковая стенка блока питания — гигантский радиатор. Вот таким образом были решены проблемы с охлаждением.
Что же у него внутри?
Снимаем верхнюю часть корпуса — никаких винтов, просто тянем вверх.
Нашему взору предстает клавиатура, соединенная шлейфом с основной платой компьютера.
Открутив 4 винтика и отсоединив шлейф от клавиатуры, можно добраться до основной платы компьютера Радио86РК. Печатная плата — двухсторонняя, довольно качественно вытравленная. Однако из-за ошибок разводки некоторые дорожки перерезаны и проложены с помощью обычного провода.
Очень многие микросхемы установлены на панельку. Например, процессор.
Оперативная память также гнездится в панельках. Да еще и вторым этажом.
Знакогенератор. Вместо отечественной микросхемы К573РФ1, он выполнен на немецком аналоге U555. Так надежней.
Микросхема К573РФ5 (ПЗУ «Монитора») также заменена на аналогичную ей микросхему 2716.
Генератор тактовой частоты КР580ГФ24. Тоже в панельке.
Видеоконтроллер.
Напоминаю, что всю эту красоту радиолюбитель должен собрать сам, руководствуясь описанием и схемами из журнала «Радио». А помочь в кропотливой сборке и наладке должны были справочные таблицы, опубликованные там же.
Это выглядело примерно так.
Делу время, потехе — час.
Многим наверняка будет интересно, во что же играли суровые дядьки, сумевшие собрать бытовой компьютер Радио86РК. Оказывается, для РК86 было написано довольно приличное количество программ, в том числе и развлекательного характера.
Хотите на них взглянуть? Пожалуйста!
Сперва подключим Радио86РК к монитору и магнитофону. Теперь вставляем кассету с любимой игрой, жмем на компьютере кнопку I (начальная буква слова «Input»), после нее не забываем нажать клавишу ВК (возврат каретки, аналог клавиши Enter), и включаем магнитофон на воспроизведение. Монитор волшебным образом перестает выводить что-либо на экран (это особенность работы компьютера), и лишь после загрузки программы изображение снова появляется. Загрузка завершена.
Для запуска программы необходимо нажать кнопку G (начальная буква слова «GO»), и подтвердить команду нажатием клавиши ВК. Иногда необходимо указывать начальный адрес памяти, где располагается программа, но это бывает очень редко.
Давайте же посмотрим, во что можно было поиграть на компьютере Радио86РК.
Червяк.
Крестики-нолики
Цирк
Lode Runner
Pacman
Тетрис
Вот, в принципе, и все, что я хотел рассказать о советском самодельном бытовом компьютере Радио86РК. Возможно кто-то из читателей Хабра в свое время занимался сборкой такого компьютера, или работал на нем. Если вы можете поделиться своими впечатлениями, замечаниями и просто интересными фактами о Радио86РК, я буду вам признателен.
И вот я увлёкся ретро-компьютерами. Конечно, идея назревала уже давно, но. То одно, то другое и руки дошли только недавно. У меня, как и у многих других в начале 90-х годов, появился клон "Спектрума". Отец собирал компьютер самостоятельно, так как тоже "болел" радиолюбительством. У меня плохо отложилось, как отец всё это делал, но факт остаётся фактом, он спаял отменный компьютер!
К сожалению у меня не сохранился этот компьютер, поэтому фотографию здесь привести не могу. Зато у меня сохранилась горстка микросхем, купленных отцом "про запас". Я просто обожал этот комп! Родители же, почему-то, не разделили моего энтузиазма: то кассету помоги включить, то провода между компьютером и телевизором пройти мешали, то спать не уложить, потому что картинку не дорисовал или программу не дописал. Конечно Бэйсик мне в то время был сложен, но какие-то детские программки я писать умудрялся. Бестолковые, правда. А уж когда я услышал, что можно купить книгу и с батей самому написать игру.
Вообщем, слили они быстренько этот комп и купили мне взамен "Денди". К своему стыду, красивая картинка подкупила меня, и я надолго забыл про персональные компьютеры. Ну а потом у друзей стали появляться IBM-PC совместимые компьютеры.
Интерес стал появляться скорее со стороны профессиональной деятельности. Как оно там было устроено. Ну и зацепился)
Радио-86РК
Сначала, конечно, сунулся в "Ленинградец". Но сходу не разобрался и решил начать с чего-то попроще. В итоге где-то наткнулся на упоминание какого-то Радио-86РК. Как потом выяснил, схема и описание публиковались в широко известном журнале "Радио" в 86 (как не трудно догадаться) году. Википедию я тут цитировать не буду, кто не в курсе, сможет сам нагуглить (наяндексить). Прочитал, что-то отложилось в башке и забылось. И как-то наткнулся я на статью на хабре, где человек собирает это чудо на макетке проводом МГТФ. Ну и меня, естественно, бомбануло) Стал курить вопрос и выяснил, что один добрый человек на тематических форумах переделал схему на SRAM память (там ещё много у него всяких доработок). Естественно, схема была распечатана, изучена, а все необходимые детали заказаны. Кто захочет тоже повторить, в поиске необходимо вбивать Радио - 86РК 32k SRAM .
Куда расти?
А расти есть куда. Один из ответвлений этого проекта, который я долго эксплуатировал — это проект Volumio. Это восхитительный плеер-агрегатор, который позволяет слушать радиостанции со всего мира, потоковые вещания и т.п. Всем хорош, прекрасно состыковался с моим проектом и выводил все станции на экран. Разве что органы управления были совершенно бесполезны. Еще можно добавить голосовое управление, есть чудесный проект Rhasspy, о котором даже была статья на Хабре. Он позволяет делать голосовое управление без связи с внешним сервером!
Единственное, что стоит отказываться от mpd — это бутылочное горлышко. Если станции нет, он зависает в ожидании нее. Нет предбуферизации других станций и т.п. То есть, почва для роста есть. И тема безумно интересная, с кучей идей. Спасибо, что дочитали!
Окончательное решение
Но не стоит думать, что вот так просто я сдался. Нет, идея продолжала жить. И вот спустя некоторое время, решил все же добить это радио. И так удачно получилось, что у меня завалялся корпус, купленный в Китае. В качестве мозгов я взял beaglebone black, с которым работал в одном проекте и знаю его хорошие и плохие стороны. Платка конечно старая, но для данной задачи подходит отлично. Изначально качестве основной ОС хотел поставить OpenWRT, но получил там кучу проблем с драйверами Wi-Fi. Звуковую карту взял на популярном ЦАП PCM2704. Она легко ищется по данному запросу на популярном аукционе, белая такая платка. Звуковой картой очень доволен, но в целом можно было поставить любую, хоть SoundBlaster.
Этапы прототипирования, пробуем разные звуковые карты, одноплатники, образы Linux, Wi-Fi-адаптеры и подбираем наиболее оптимальное решение
В прошлой своей статье я говорил о том, что нужно потратить время на выбор компонентов, иначе будет головная боль. Тут случилось так же, я хотел USB-Wi-Fi-карту с поддержкой Linux. И не очень долго думая взял себе TP-Link N150. Если кратко, не делайте так. Она выпила у меня тонны крови, потратил на нее неделю. Под OpenWRT завести мне ее не удалось, на Ubuntu завел с какими-то лютейшими танцами с бубном. Если совсем кратко, то устанавливал ее вот по данному мануалу (там инструкция где-то в серединке). Стартовый скрипт (/etc/rc.local) у меня выглядит примерно вот так (после кучи экспериментов).
В общем, после всех мытарств все это завелось и все это было скомпоновано и убрано в корпус. Всех деталей не буду описывать, ибо у каждого будут свои. Но изготовил новые втулки для ножек, снизу основание из фанеры и к нему же все крепил. Дисплей крепил на деревянных рамках.
Передняя панель
Управление все осуществляется с помощью энкодера. Влево-вправо — выбор станции, нажатие на кнопку энкодера — пауза; двойное краткое нажатие на кнопку — вывод времени и даты (работает как часы).
Задняя панель
Не смотря на то, что это именно Wi-Fi радио, оставил возможность подключения по Ethernet для диагностики и отладки. Так же, как можете заметить усилителя теперь в корпусе нет. Только линейный выход, что, на мой взгляд даже удобнее. Давайте заглянем внутрь.
Внутри слева видим блок питания, снизу на морде дисплей в деревянной рамке, справа на морде энкодер. В верху USB-хаб, в который воткнуто питание, от него же питается дисплей, в хаб также вставлена звуковуха; сам одноплатник стоит на алюминиевом уголке на стойках, прикрученный к фанере. Справа спрятан контроллер энкодера, он выглядит вот так.
Контроллер энкодера
Это обычная ардуинка, которая подключена по UART к Beaglebone.
Рабочий прототип
Первый рабочий прототип, который был автономен и даже играл радио и стоял на кухне, я реализовал на базе роутера TP-Link 3020 и китайской USB-звуковой карте за 100 рублей. Этот роутер отличная штука для таких поделок, его главное преимущество, что можно купить в ближайшем компьютерном магазине, в отличии от любого другого одноплатника. Основная ОС была OpenWRT, звук воспроизводился через самые дешманские колонки, за 500 что ли рублей с питанием от USB. В общем, все по нижней планке. И оно даже работало! Короче, лучше один раз увидеть, чем тысячу раз прочитать.
После чего, стало понятно что как в видео управлять с планшета ну не вариант. Теряется смысл радио, когда можно использовать тот же самый планшет. Поэтому принял решение добавить управление с помощью энкодера. Изначально энкодер подключался к GPIO данного роутера (да, у него есть GPIO на борту), но мне не очень понравилась его работа и такое решение не было переносимо, поэтому в будущем сделал отдельный контроллер энкодера на базе arduino, которая подключается по UART.
Энкодер подключен к GPIO TP-Link 3020
После чего надо было сделать «настройку» радиостанции, и хотелось ее сделать так, чтобы она выглядела как в старых радиоприемниках, когда крутишь ручку, а ползунок бегает по экрану. Для этого был реализован шрифт вертикальной палки, пять штук. И перегружал ее каждый раз, о том как загружать шрифты читайте в моей статье. В результате получилось такое решение.
Ну осталось скрестить само радио с этими опытами и в результате получаем удобное управление. Сказал в двух словах, а на деле прошло несколько месяцев, но мне важен результат.
Вроде все, но как обычно у всех моих знакомых радиолюбителей — у устройства нет корпуса, и начал думать, что же делать. Меня очень вдохновили открытые старинные приемники 30-х годов, где просто уголок с щитком и ручками, и все кишочки на свободе.
И решил повторить. Для этого раздербанил колонку, снял с нее размеры и сделал прототип из картонки.
Потрошу колонки, достаю усилитель и делаю замеры размеров
После того как разобрал колонку, вынул от туда усилитель, затем снял все размеры корпуса, крутилки усилителя и энкодера, и все разметил на картонке как это будет выглядеть.
Разметка размеров
Подумал, а чем черт ни шутит, дай посмотрю как это будет выглядеть в картоне, этакий картонный прототип.
Картонное радио
И оно даже работает!
После чего срисовал все размеры, начертил и отправил в лазерную резку.
После пришел порезанный акрил, и вот как это выглядит после сборки.
На передней панели кнопка включения, энкодер, ручка громкости. Внутри можно заметить, что есть самостоятельный блок питания, куча хабов, ну и будем честны, выглядит не очень.
Как многие могут заметить, акрил прозрачный. Изначально я хотел дисплей разместить за него, чтобы он просвечивал сквозь него (дисплей и так белый, светит через зеленый светофильтр). Но мне не понравился цвет и контрастность.
На фото свет через оранжевый акрил, честный цвет дисплея (в жизни он белый), и синий светофильтр одного из дисплеев (у меня в радио сейчас стоит зеленый).
Результирующая конструкция конечно прикольная, но не буду врать самому себе, не практичная. Конечно, это работало и даже некоторое время это изделие я слушал, однако вскрылся ряд проблем. Во-первых, пользоваться в таком виде было совершенно невозможно: собирает пыль, нельзя ничего поставить сверху, занимает много место. Во-вторых, TP-Link 3020 оказался слабоват для радио, и многие сталкивались с проблемой реализации на нем. В OpenWRT нет аппаратной поддержки плавающий точки, и поэтому mpd на 100% грузит процессор и это слышно в звуке (идут неприятные цифровые щелчки). Что в общем-то поставило крест на вот такой реализации. Плюс ряд обстоятельств в моей жизни не позволил больше заниматься данным проектом, и это радио было разобрано и убрано в буквальном смысле в ящик.
Краткая история «компьютерного радио»
В 1959 году в продажу поступил компьютер IBM 1401. Память этой «машины» программировалась таким образом, что она начинала излучать электромагнитные волны. Этот сигнал можно было «распознать» с помощью радиоприёмника.
Отец исландского композитора Йохана Йоханнсона (Jóhann Jóhannsson) с помощью этой особенности IBM 1401 записал на пленку несколько мелодий. Позже эти записи обнаружил сам Йохан, и они легли в основу его альбома 2006 года под названием «IBM 1401, A User’s Manual». Под его музыку даже поставили танец.
Способ извлечения звука из компьютера через аппаратные компоненты описан и в книге Стивена Леви (Steven Levi) «Хакеры: Герои компьютерной революции».
В 1976 году один из участников клуба любителей компьютеров Homebrew Computer Club Стив Домпьер (Steve Dompier) создал программу для Altair 8800, которая позволяла писать музыку и транслировать её на радиоприемник.
На одной из встреч клуба он воспроизвел песню The Beatles «Fool on the Hill». По воспоминаниям участников Homebrew Computer Club, удачный эксперимент с Altair 8800 показался им первым признаком того, что они могут изменить историю компьютеров.
Этот опыт Стив описал в своей статье для журнала Dr. Dobb’s Journal, чем вдохновил на создание музыки других людей: после публикации он получил более четырехсот звонков от увлеченных энтузиастов.
Годом позже, в 1977, Домпьер создал игру Target для компьютера Sol-20. Суть была простой: внизу экрана размещалась пушка, из которой нужно было стрелять в пролетающих мимо монстров. В этом проекте Домпьер использовал свои предыдущие эксперименты с музыкой. Пользователи могли поставить около компьютера AM-приемник, настроить его на нужную частоту и услышать звуковые эффекты игры.
В Altair 8800 и Sol-20 излучателем выступала шина S-100. Она была и в других компьютерах того времени. Поэтому экспериментировать с «компьютерным звуком» могли многие. Для тех же, кто хотел изучить этот вопрос более серьезно, ряд компаний предлагали специальное оборудование. Например, Newtech выпускала платы, которые усиливали сигнал и давали возможность подключить компьютер к внешней аудиосистеме.
Приложение System Bus Radio
System Bus Radio несколько лет назад представил инженер и специалист по ИБ Уильям Энтрикен (William Entriken). Программа транслирует на рядом стоящий приемник песенку Mary Had a Little Lamb. Излучение генерируется с помощью инструкций процессора SSE, результат выполнения которых записывается по определённому адресу в оперативной памяти.
Идея приложения пришла Уильяму в голову, когда тот принес включенный AM-приемник в комнату с ноутбуком и заметил помехи в звучании.
Программа использует прямоугольную модуляцию, а качество передачи зависит от выбранной частоты и от используемого оборудования.
У создателя программы были Macbook Air 2015 года и приемник Sony STR-K670P. Для этого набора оборудования лучше всего сработала частота 1580 кГц АМ. Энтрикену удалось добиться стабильной передачи сигнала на расстояние до двух метров (или на один метр, если путь преграждает гипсокартонная стена).
Фото Arul Irudayam / CC
Эксперимент Уильяма заинтересовал людей из разных стран. Сейчас они присылают автору результаты тестов программы на других устройствах и в иных условиях.
Первые шаги реализации
Основой всего Wi-Fi радио стал дисплей покупателя. Дисплей я подбирал очень долго, тупо ходил по магазинам и смотрел что мне больше всего нравится. Больше всего мне понравился дисплей Posiflex PD-2700. На нем я и остановился.
Первое включение, и вывод изображения на экран
По работе с данными дисплеями я писал отдельную статью. Можете почитать вот тут. Поэтому подробно останавливаться на принципе их работы я не буду.
В качестве «мозгов» этого радио себя примеряли роутер TP-Link 3020, Nokia N800 (да-да, не удивляйтесь, именно N800), различные ноутбуки, промышленные компьютеры всех мастей, кассовые компьютеры, Raspberry Pi различных поколений, одноплатники и многое другое. Все говорит об универсальности принятых решений. И забегая вперед, некоторые решения были сделаны в угоду переносимости, а не удешевления конструкции.
Но в целом, все эти решения мне не нравились, либо были чрезмерными по возможностям для такой задачи, либо наоборот были слишком низкой производительности и имели проблемы с воспроизведением звука (например роутеры). Далее я расскажу основные пути, по которым шел в реализации проекта. Без тупиковых ответвлений, типа Nokia N800 (при всей романтичности данного подхода).
Читайте также: