28 ноября 2011 в 09:23

Старинное радио на базе Android

Введение


Мне очень нравится простота некоторых старинных радио: три-четыре станции. Вот – джаз, вот – новости, вот – классика. Ну, а ещё мне нравится мастерить всякие интересные штуки. Поэтому я решил собрать радио, которое будет проигрывать загруженную мною музыку и скачивать подкасты. Более того, хотелось, чтобы вид устройства был в стиле начала XX-ого века.

В этом посте я расскажу про детали проекта: про устройство на базе Android, про IOIO Board и про вырезание по дереву.


Результат


Вот как выглядит законченный проект:



Процесс создания


Компоненты

Радио. Поиск на ebay показал, что в продаже есть очень много старинных радио. Какие-то работают, какие-то сломаны. Я выбрал самое приличное из сломанных: внутренности мне всё равно ни к чему, а работающую вещь ломать не хотелось. Да и стоят ломаные на порядок дешевле. Вот что мне приглянулось:



Вот как выглядели неработающие вакуумные лампы:



Archos 28. Этот дешевый плеер на базе ОС Android мне приглянулся ещё с предыдущего проекта. Небольшая цена, 8 Gb встроенной памяти, звуковой выход и Wi-Fi отлично подходят для несложной конструкции. Личным опытом было также установлено, что плеер отлично работает в режиме 24/7.

Читатель спросит: почему бы не решить задачу микроконтроллером и набором модулей? Мне показалось дешевле и проще использовать этот телефон: всё, что надо, уже собрано на одной плате, плюс ОС Android предоставляет неплохой уровень абстракции. Радио будет включено в сеть круглые сутки, так что проблем с энергопотреблением не возникает.

IOIO Board для взаимодействия с «железом». Эта штука подключается к устройству по USB и распознаётся ОС как «включен режим дебага». Есть небольшое API, которое позволяет из любой Android программы читать состояние линии (как цифровой, так и аналоговой) и генерировать на линии сигнал (цифровой и PWM).
Читатель спросит: почему бы не использовать Android ADK? Увы, поддержка ADK была добавлена лишь в Android 2.3. Плеер от Archos работает на 2.2.

Усилитель на базе STA540. Я плохо разбираюсь в усилителях. Выбор пал именно на эту деталь во многом из-за рекомендаций знакомых, ну, и из-за наличия набора по сборке. STA540 – электронный усилитель класса AB. Мне очень понравился режим Stand-by: чрезвычайно тихий режим (совершенно не слышно шумов).
Читатель спросит: почему бы не отреставрировать уже существующие вакуумные лампы? Ответ прост: у меня нет аппаратуры для тестирования и работы с ними. А ещё стрёмно работать c 120V. Радио, которое я купил, похоже использовало архитектуру AA5.

Колонки Blaupunkt GTx-542. 4 Ома, 70-20,000 Hz, две полосы (для низких и высоких частот) и подходящие размеры определили мой выбор.
Читатель спросит: почему не какие-нибудь другие колонки? Тут я разведу руками. Если есть какие-либо соображения, почему другая модель подходит лучше, пожалуста, пишите в комментариях.

Прочее Китайский нонеймовый датчик угла поворота, чтобы песни переключать боковой ручкой. Четыре кнопки и несколько резисторов.

Подоготовка шасси

Сперва я достал старые компоненты и очистил металлическую основу от вековой грязи (спасибо, WD-40). Чтобы не крепить новые компоненты на железку, я решил вырезать шасси из основы печатной платы:



Подоготовка корпуса

В целом корпус подходил очень хорошо. Я даже решил оставить старинный потенциометр для ручки изменения звука. Мне не нравилось лишь одно: экран телефона был слишком глубоко утоплен в корпус. С помощью Dremel'я я сделал нишу:



С телефоном это выглядит вот так:



Программное обеспечение

Ничего особо сложного не предстояло. Устройство управляется Android приложением, которое читает состояние железа и играет подходящую песню с SD-карты. Пожалуй самым интересным был процесс подготовки интерфейса. Мне очень хотелось сделать так, чтобы экран подходил по стилю к корпусу. Я придумал такую модель: четыре барабана в ряд (по барабану на станцию). На каждом барабане написаны названия песен. Боковая ручка крутит текущий барабан, кнопки переключают барабаны.
Сперва я попробовал реализовать это на OpenGL. Надо сказать, получилось не очень красиво. Так что я остановился на обычной двухмерной графике. Сперва, нарисовал фон:


Потом выбрал шрифты и эффекты:



Логика для скачивания подкастов вышла черзывчайно простая: скачиваем последний выпуск BBC Global News, кладём его на SD-карточку и удаляем все предыдущие выпуски. Повторить два раза в день.

В планах прикрутить небольшой FTP-сервер, чтобы музыку можно было закачивать по сети (устройство и так должно быть подключено в домашнему Wi-Fi).

Всё вместе

Железо выглядит вот так:



Мне очень хотелось, чтобы кнопки говорили о том, что будет играть. Одна папка-станция играет джаз, другая – обработанную классику, третья – разные мелодии, четвёртая станция – новости. Вот как выглядит главный дисплей:



Вот как выглядит устройство сзади:



Заключение


Радио играет музыку, скачивает подкасты и радует своим видом. Я буду рад ответить на любые вопросы, выслушать критику и предложения.
+94
4376
93
apple_fan 185,7

Комментарии (38)

0
swetlanaspb, #
Очень интересное решение! Понравилось сочетание корпуса и функциональности. Отличный гиковский гаджет!)
0
apple_fan, #
Спасибо! Мне было очень важно сделать так, чтобы в устройстве корпус и функциональность продолжали друг друга. Увы, очень во многих гаджетах дизайн и функции очень плохо согласованы.
Этот проект был, в частности, упражнением на создание удобного пользовательского интерфейса.
0
djmorgan, #
Я наверное единственный кто даже основную начинку собирал сам на основе AT91Sam7X512 а не брал все готовое)
0
apple_fan, #
Собирал свой приёмник? А расскажите, как? Что выбрали для усилителя? Что для чтения SD-карт? Что для коммуникации с сетью?
0
djmorgan, #
Всю роль у меня выполняла макетная плата AT91SAM7X-EK которую я собрал сам, так как цена готовой очень сильно кусалась. там было все и DAC и слот для карт памяти, и Ethernet. Примеров в интернете полно потому для начала собрал радио. Потом уже веб сервер) В качестве усилителя я брал обычную TDA2005
+1
ploop, #
Я сначала подумал, что корпус самодельный (по первому фото). Похож очень :)
+10
BOOTor, #
Дырка для экрана топорная. А так прикольнечко :)
0
apple_fan, #
Меня тоже эта дырка мучит. Интересно, можно ли что-нибудь с ней сделать?
+6
GRADUSnick, #
Можно поставить потертое временем оргстекло. Возможно даже не прямое, а выпуклое, как для барабана настройки. Изначально же там такое и было?
+1
apple_fan, #
Хорошая идея. Там не было никакого. Однако, выпуклое оргстекло действительно сделает эту штуку лучше.
0
akudryavtsev, #
Вы же с руками, может быть сделать декоративные молдинги из листа меди?
image
+3
apple_fan, #
Я видел этот приёмник на instructables. Если честно, мне этот молдинг как-то не приглянулся. Как-то он искусственно выглядит…
0
leshaogonkov, #
Я бы оставил родной барабан, а управление по wifi сделал.

Да, это сложнее, но, извините, то что вы сотворили с таким классным радио это жесть.
0
Alexufo, #
Только вчера вспоминал про старое немецкое радио на балконе, наверное тоже сделаю обзор.
НЛО прилетело и опубликовало эту надпись здесь
0
kost, #
Что это, дайте ссылку, пожалуйста.
0
reff, #
Это Logitech Squeezebox Radio.
+4
navar, #
Если бы новую начинку показать во времена этого радио его конструктору, то он бы, наверное, был поражен!
0
SADKO, #
Прикольно, хотя бывают приёмники и по симпатичней…
Одно непонятно, накой было выкидывать тёплый, ламповый усилитель.
Даже если он не рабочий, там много вкусностей, как то трансформаторы и панельки под лампы.
Так-что даже не обладая сакральным знанием ламповой схемотехники, замутить усилитель на одном пентоде, велел сам Бг.
+3
apple_fan, #
Это правда, бывают и посимпатичней… Зато этот – мой!

Слушайте, все лампы и рассыпуха у меня сохранились. Если готовы оплатитить доставку, то они – ваши.
+1
asx, #
Новости, подкасты — можно понять. Но слушать музыку на одной колонке — нужно совсем неприхотливым в этом плане быть.
0
apple_fan, #
Это правда: идея в том, чтобы включить песенку по дороге из душа на работу.
+2
kfedorov, #
Красота, люблю ретро вещи, адаптированные к современному миру)
0
CaptainKatya, #
очень здорово! получила огромное удовольствие от прочтения: познавательно и необычно
0
apple_fan, #
Я очень надеюсь, что подобные посты донесут ещё одну мысль: создавать такие штуки чрезвычайно просто.
+1
Mushtat, #
Вакуумные трубы?! А почему не радиолампы? :)
0
apple_fan, #
Уже исправил. Vacuum tubes, понимайте ли. Я микроэлектронику по американским материалам изучал. Только что дошло, что это и есть лампы! Ламповый звук! Тфу, пропасть…
0
Int_13h, #
Капитан Очевидность просит исправить «вакуумные лампы» на просто лампы.
0
Ocelot, #
Капитан Очевидность сегодня не в форме, лампы бывают и газонаполненные.
+2
shaman007, #
Экран выглядит инородным телом, надо было ему рамку медную сделать, чтобы он был вровень с корпусом.
+1
AlexanderG, #
И «магического глаза» очень не хватает.
0
herurg, #
хм, экран ИМХО нужно как-то «выпуклить» — родной смотрелся гармоничнее.
0
braintorch, #
Серый цвет каким-то синим выглядит на фоне всего остального. Выпадает из гаммы.
0
serafims, #
Надо же! Я планирую изготовление похожего устройства, только с некоторыми отличиями.
Могу поделиться идеями — добавить проигрывание плейлистов различных интернет-станций, например, jazzradio, там хоть иногда проскакивает реклама если не платить, все же очень приятные направления. Можно подцепить через .pls файл.
В моем устройстве будет сочетание оффлайн аудиотеки и онлайн-трансляций.
0
apple_fan, #
А на базе какой платформы вы думаете делать?
0
serafims, #
Микроконтроллер (да, да, Ардуино.), кнопки-вертелки от радиотюнера, его же шкала.
Также дополнительно планирую ИК пульт.

Микроконтроллер шлет команды плате miniITX с VIA или Atom где все крутится на XP с возможностью выхода из Hibernate с сохраненным состоянием.
0
bethrezen, #
Apple Fan рассказывает про устройство на Android :)
0
afch, #
У меня есть плата IOIO вот такая www.sparkfun.com/products/10748
куплена здесь www.seeedstudio.com/depot/-p-1023.html?cPath=132_206
с помощью PIKit 3 прошил в плату bootloader 3,06 и firmaware 3.26, но мой блютуз адаптер попрежнему не хочет работать(телефон не видит блютуз устройства) с этой платкой IOIO (купил из списка совместимых github.com/ytai/ioio/wiki/Supported-Bluetooth-Dongles) dx.com/p/super-mini-bluetooth-2-0-adapter-dongle-vista-compatible-11866. Что же я делаю не так? По USB плата работает отлично.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.