Pi-Sonos: хобби, вышедшее из-под контроля
Идея дизайна нового корпуса интернет-радиостанции Pi-Sonos родилась еще до завершения работы над предыдущей его версией. Со временем, она впитала в себя накопленный пользовательский опыт и учла допущенные ранее недочеты. На этот раз все «по-взрослому».
Прошу любить и жаловать
Давайте попрощаемся с названием "Pi-Sonos", и сегодня и впредь будем называть колонку "RadioBox". И хотя в этот раз Sonos Play 1 оказал наибольшее влияние на развитие проекта, новое название, во-первых, звучит лучше, а во-вторых, отражает его специфику и самостоятельность.
Мотивация
Вроде бы корпус №2 был более удобным для пользователя по сравнению с первым, но и он тоже был не лишен недостатков.
Основными и принципиальными были два из них:
- Кнопка «play/pause» на переднем торце. Кнопка не самая жесткая, но тем не менее, при нажатии на нее колонка очень часто сдвигалась с места.
- Аналоговый регулятор громкости («крутилка»). Громкость можно регулировать не только со смартфона, но и на самой колонке. Первый способ — цифровой, второй — аналоговый. Соответственно, периодически между ними возникал рассинхрон. Особенно расстраивали случаи, когда кто-нибудь выкручивал аналоговую громкость на 0, и потом сколько ни тыкай в смартфон — громче не сделаешь, приходилось все равно вставать и идти крутить ручку.
Следовательно, надо было как минимум заменить аналоговую крутилку на две цифровые кнопки громкости, и перенести все три кнопки на верхний торец. Кстати, в Sonos Play 1 сделано именно так.
Сюда же добавились еще две «хотелки». Первая — это плавное мигание светодиода в режиме паузы. Вторая — другой цвет светодиода во время загрузки колонки, чтобы было без смартфона понятно, когда колонка готова к использованию после включения.
Ну и последнее, но не по важности — хотелось красивый корпус с минимальным количеством швов, плавными линиями и стильным дизайном. Хотелось повторить эстетику и лаконичность Sonos.
Процесс
Корпус
Скетч в начале статьи — реальный набросок будущего корпуса. Там не прорисованы фазоинверторы, но объем корпуса уже рассчитан под имеющиеся динамики и выделены места для динамиков и электронной начинки. Сглаженные углы стали для меня настоящим вызовом. Как ни крути, а склеить такое из отдельных стенок нереально из 8мм МДФ (я не рассматриваю другие материалы по двум причинам: 1) удобство обработки этого МДФ; 2) отсутствия других нормальных материалов в магазинах в моем районе). Пришлось полностью менять подход к изготовлению корпуса.
На этот раз пришлось применять технологию склейки слоев. Она проста до неприличия: рассекаем весь корпус горизонтальными плоскостями с интервалом 8мм и вырезаем из МДФ получившиеся проекции. Идейный вдохновитель технологии, как всегда, канал SoundBlab. Главный плюс такого подхода — можно сразу сделать много камер почти любой формы (например, очень удобно делать фазонверторы). Но, как известно, дьявол кроется в деталях.
Высота корпуса со всеми «крышками» — 168мм, МДФ толщиной 8мм, т.е. надо сделать 21 слой. Нет, не так. Надо:
- распилить панели МДФ на 21 заготовку;
- затем сделать 21 деталь определенного размера (т.е. отфрезеровать 63 грани, по 3 грани на каждой детали, одна грань изначально была ровной, следовательно, отправной);
- потом срезать фрезером 84 угла по шаблону;
- далее — выпилить около 50 отверстий разной величины и формы;
- после этого склеить все детали в единый корпус;
- а еще высверлить и зафрезеровать отверстия под динамики и порты Raspberry Pi;
- наконец, зашпаклевать, зашкурить и покрасить корпус и крышки;
- и только тогда можно преспокойно приступать к сборке компонентов внутри корпуса и «финишной» отделке колонки.
Если с распилом не было проблем (на торцовочной пиле п.1. занял минут 10), то дальше начинались некоторые сложности. Для тех, кто не сталкивается с деревообработкой, поясню: сделать больше 2х строго прямоугольных деталей строго одинакового размера и формы с помощью только фрезера и линейки — очень сложно.
Можно было сделать одну деталь, а потом использовать ее как шаблон (примерно вот так), но тогда (как видно на примере) за раз можно обработать всего 2 грани из 3х, а затем надо поворачивать заготовку, что все равно грозило «сбить прицел» и сделать что-нибудь криво.
На практике оказалось проще и лучше собрать свой собственный небольшой фрезерный стол и фрезеровать детали уже на нем.
И, собственно, вот так все выглядит в собранном состоянии:
Снаружи наклеена акустическая ткань, а белые заглушки, закрывающие ее стык и отсек для электроники — обрезки кабель-канала 40х25. Крышки сверху и снизу покрашены белой эмалью из баллончика в 5 слоев (сильно жалею, что не выбрал акриловую краску — эмаль сильно воняла, долго сохла, а сейчас активно собирает пыль и отпечатки).
Начинка
Динамики переехали в новый корпус из старого. К ним нет нареканий. Это все те же пара мидбасов и пара твитеров, подключенных к усилку через кроссоверы.
Теперь по усилку. Раз уж отказываемся пользоваться аналоговой «крутилкой» платы Suptronics X400, то можно, как вариант, просто спрятать ее в недрах корпуса. Но плата большая, и из-за её размеров появились пара проблем, вынудивших меня поискать ей замену.
Спасибо IgorKKK, что заставил разобраться в продукции Hifiberry. Когда-то давно я считал, что их AMP+ — это только аудиоусилитель, который надо вешать над их же ЦАП-ом DAC+. Но AMP+ — это плата «все-в-одном», и она вполне могла бы заменить X400, только вот характеристики у нее хуже. А вот у её потомка — AMP2 — с характеристиками все ОК. Она компактнее, чем X400, и зажимы у нее выведены в более удобную для монтажа сторону.
Для сравнения размеры X400 и AMP2 в сборе с Raspberry Pi 3:
Hifiberry AMP2:
Кстати, AMP2 на Алиэкспрессе не продается, её я заказывал напрямую у производителя (очень рекомендую — заказ из Швейцарии дошел до меня всего за 6 дней). А вот AMP+ вполне себе можно купить и на Али.
Элементы управления
В прошлой версии за управление воспроизведением управляла одна маленькая плата с кнопкой и светодиодом. Теперь платы пришлось разделить. Первая плата — с кнопками «play/pause», «volume -» и «volume +» — разместилась под верхней крышкой, вторая — управляющая миганием светодиодов — в отсеке с «малинкой».
Наконец, софт и UX
Веб-интерфейс стал функциональнее, приятнее, и научился подгружать обложку альбома для текущей композиции. Весь код по-прежнему доступен всем желающим на Github.
В логику работы физических кнопок добавилась обработка долгого нажатия:
play/pause: короткое нажатие — запуск/остановка воспроизведения; длинное нажатие — переключение станции на следующую по списку;
volume: короткое нажатие — однократное изменение громкости; длинное нажатие — непрерывное изменение громкости.
Хорошо, а что дальше?
На фото видно, что корпус собирался летом, и у него было достаточно времени на обкатку и доработку. На текущий момент и внешний вид, и качество звука, и юзабилити устраивают как моих домашних, так и (что главное) меня. И хотя пока я не вижу причин для переделки этого корпуса и/или замены его частей, останавливаться на достигнутом я не намерен. В планах — превращение этой колонки в голосового помощника, а также изготовление мини-колонки для детской на основе Raspberry Pi Zero в корпусе, напечатанном на 3D-принтере. Так что ждите новых статей в недалеком будущем!
Источник: Хабр, по ссылке доступна полная версия статьи с блок-схемами