Идея дизайна нового корпуса интернет-радиостанции Pi-Sonos родилась еще до завершения работы над предыдущей его версией. Со временем, она впитала в себя накопленный пользовательский опыт и учла допущенные ранее недочеты. На этот раз все «по-взрослому».

Прошу любить и жаловать


Давайте попрощаемся с названием "Pi-Sonos", и сегодня и впредь будем называть колонку "RadioBox". И хотя в этот раз Sonos Play 1 оказал наибольшее влияние на развитие проекта, новое название, во-первых, звучит лучше, а во-вторых, отражает его специфику и самостоятельность.

Мотивация


Вроде бы корпус №2 был более удобным для пользователя по сравнению с первым, но и он тоже был не лишен недостатков.

Основными и принципиальными были два из них:

  1. Кнопка «play/pause» на переднем торце
    Кнопка не самая жесткая, но тем не менее, при нажатии на нее колонка очень часто сдвигалась с места.
  2. Аналоговый регулятор громкости («крутилка»)

    Громкость можно регулировать не только со смартфона, но и на самой колонке. Первый способ — цифровой, второй — аналоговый. Соответственно, периодически между ними возникал рассинхрон. Особенно расстраивали случаи, когда кто-нибудь выкручивал аналоговую громкость на 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х, а затем надо поворачивать заготовку, что все равно грозило «сбить прицел» и сделать что-нибудь криво.

На практике оказалось проще и лучше собрать свой собственный небольшой фрезерный стол и фрезеровать детали уже на нем.

Немного про стол для тех, кому любопытно
В сборке фрезерного стола нет ничего сложного. Материалом столешницы послужили остатки ламината — он достаточно жесткий и дает идеально ровно гладкую поверхность. Для рамы использован строганный брусок 30х30мм. 2 рамы, 4 с небольшим ребра жесткости — et… voila:



В качестве направляющей для фрезеровки идеально подходит квадратный алюминиевый профиль 20мм. В самом простом случае, его можно было просто крепить к столешнице струбцинами с двух сторон, но это не comme il faut. Гораздо лучше сделать его перемещаемым по столу по специальным направляющим и фиксируемым винтами с барашками на концах. Для этого ламелях параллельно длинной грани на небольшом расстоянии от края фрезеруются пазы. Поскольку все ламели ровные, пазы получаются абсолютно параллельными, алюминиевый профиль свободно перемещается по ним. Для усиления зажима можно использовать гровер-шайбу под шляпкой винта (снизу).

А вот подъехали фоточки процесса
Распил заготовок:



Фрезерный стол в действии: фрезеровка углов по шаблону:



Все детали после фрезеровки. Будущие крышки лежат отдельно.



Тут должно быть фото выпила отверстий в слоях, но Джонни уже сделал монтаж.

Корпус колонки перед шлифовкой:



В конце корпус был покрашен в черный цвет, чтобы черные динамики не выделялись на нем темными пятнами после покрытия декоративным материалом.

И, собственно, вот так все выглядит в собранном состоянии:



И сзади:



Снаружи наклеена акустическая ткань, а белые заглушки, закрывающие ее стык и отсек для электроники — обрезки кабель-канала 40х25. Крышки сверху и снизу покрашены белой эмалью из баллончика в 5 слоев (сильно жалею, что не выбрал акриловую краску — эмаль сильно воняла, долго сохла, а сейчас активно собирает пыль и отпечатки).

Начинка

Динамики переехали в новый корпус из старого. К ним нет нареканий. Это все те же пара мидбасов и пара твитеров, подключенных к усилку через кроссоверы.

Теперь по усилку. Раз уж отказываемся пользоваться аналоговой «крутилкой» платы Suptronics X400, то можно, как вариант, просто спрятать ее в недрах корпуса. Но плата большая, и из-за её размеров появились пара проблем, вынудивших меня поискать ей замену.

Спасибо IgorKKK, что заставил разобраться в продукции Hifiberry. Когда-то давно я считал, что их AMP+ — это только аудиоусилитель, который надо вешать над их же ЦАП-ом DAC+. Но AMP+ — это плата «все-в-одном», и она вполне могла бы заменить X400, только вот характеристики у нее хуже. А вот у её потомка — AMP2 — с характеристиками все ОК. Она компактнее, чем X400, и зажимы у нее выведены в более удобную для монтажа сторону.

Для сравнения размеры X400 и AMP2 в сборе с Raspberry Pi 3
Suptronics X400:



Hifiberry AMP2:



Кстати, AMP2 на Алиэкспрессе не продается, её я заказывал напрямую у производителя (очень рекомендую — заказ из Швейцарии дошел до меня всего за 6 дней). А вот AMP+ вполне себе можно купить и на АЭ.

Расположение компонентов внутри корпуса
Сверху — «малинка», усилок и платы управления:



Снизу — динамики и кроссоверы:



Элементы управления

В прошлой версии за управление воспроизведением управляла одна маленькая плата с кнопкой и светодиодом. Теперь платы пришлось разделить. Первая плата — с кнопками «play/pause», «volume -» и «volume +» — разместилась под верхней крышкой, вторая — управляющая миганием светодиодов — в отсеке с «малинкой».

Схема плат для особенно пытливых умов
Физические платы разделены на схеме серой линией.



Немного комментариев по схеме.

Справа все тривиально — три кнопки с тремя парами защитных резисторов, защищающих входные пины от выгорания.

Слева интереснее. Сразу бросается в глаза схема включения синего светодиода LED2. Принцип её работы прост, но неочевиден. Здесь используется тот факт, что все GPIO-пины общего пользования по умолчанию работают как входные (input). При включении питания с пина +3.3V подается напряжение, которое гонит ток через ограничительный резистор R1, синий светодиод LED2 и пин OUT1 (который пока еще не OUT, а IN, поэтому-то через него можно пропускать ток на вход). Когда Raspbian загружен полностью, запускается мой демон, который переводит пин OUT1 в режим output и подает на него напряжение +3.3V (HIGH). Разность потенциалов, падающая на участке «R1-LED2» становится равной 0V, и светодиод гаснет. Т.о. колонка сигнализирует о полной готовности к работе.

Белый светодиод работает в трех режимах:

горит постоянно — колонка воспроизводит музыку;
мигает редко и плавно — колонка в режиме паузы;
мигает часто и резко — нажата какая-либо кнопка.

Включением и отключением белого диода управляет пин OUT2, а плавностью мигания — пин OUT3. Когда нужна плавность мигания, через пин OUT3 на затвор MOSFET-а Q1 подается логическая 1 (HIGH, +3,3V), транзистор открывает участок цепи «R12-C1-Q1». И тогда при установке пина OUT2 в уровень HIGH (+3.3V), ток начинает заряжать конденсатор C1 и по мере его заряда зажигает светодиод LED1. А при установке пина OUT2 в уровень LOW (0V), конденсатор постепенно разряжается через светодиод, плавно уменьшая уровень его яркости до 0. Несложно посчитать, что время полного заряда/разряда конденсатора составляет примерно 3 секунды, оптимальный, на мой взгляд, период мигания.

Наконец, софт и UX

Веб-интерфейс стал функциональнее, приятнее, и научился подгружать обложку альбома для текущей композиции. Весь код по-прежнему доступен всем желающим на Github.

Сравнение с версией 2.0
Было Стало


В логику работы физических кнопок добавилась обработка долгого нажатия:

play/pause: короткое нажатие — запуск/остановка воспроизведения; длинное нажатие — переключение станции на следующую по списку;

volume: короткое нажатие — однократное изменение громкости; длинное нажатие — непрерывное изменение громкости.

Хорошо, а что дальше?


На фото видно, что корпус собирался летом, и у него было достаточно времени на обкатку и доработку. На текущий момент и внешний вид, и качество звука, и юзабилити устраивают как моих домашних, так и (что главное) меня. И хотя пока я не вижу причин для переделки этого корпуса и/или замены его частей, останавливаться на достигнутом я не намерен. В планах — превращение этой колонки в голосового помощника, а также изготовление мини-колонки для детской на основе Raspberry Pi Zero в корпусе, напечатанном на 3D-принтере. Так что ждите новых статей в недалеком будущем!

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


  1. chapter_one
    08.01.2019 19:25

    Выглядит симпатично, но неужели у вас совсем нет доступа к ленточной пиле? Подобные закругления делаются элементарно. www.youtube.com/watch?v=VtQ447rQx_o

    Почему МДФ, а не фанера, которую купить элементарно? При наличии стола и циркулярки можно склеить щиты нужного размера и работать с деревом. Просто я бы рехнулся вручную все эти слои вырезать. Что угодно бы придумал, лишь бы этого не делать.


    1. bellerofonte Автор
      08.01.2019 19:55

      Я не профессиональный плотник, но пока строил дом, успел поработать со всеми древесными материалами: деревом (как с мягким, так и жестким), фанерой, ОСП, ДСП, ДВП, МДФ. Из всего этого для небольших и аккуратных проектов мне больше всего импонирует МДФ — он жесткий, ровный, не крошится, не отслаивается, хорошо режется и клеится. Фанера — материал хороший, я её тоже много где использую, но и её качественную рядом со мной не найти. а мучаться с классом 3/4 или даже 4/4 как-то не хочется.
      И да, увы, у меня нет доступа ни к ленточной пиле, ни, тем более, к ленточному шлифовальному станку.


      1. chapter_one
        08.01.2019 20:05

        Понятно. Пожалуй, имея только фрезер и торцовку, сложно придумать какой-то другой процесс. Завидую вашему терпению. И да, выглядит действительно очень здорово. Единственное, на крышках фрезерованные галтели выдают рыхлый материал. Их бы отшпатлевать и зашкурить перед покраской до гладкости.

        P.S. Я делал закругления большого радиуса на ящиках подобного размера вручную. Склейка стандартная, как на видео. Затем внешние скругления отпиливал ручной ножовкой до многоугольника, затем ленточной шлифмашинкой выводил. Внутренние радиусы выбирал стамеской, предварительно сделав пропилы, само собой, затем круглый рашпиль и в финале снова шлифмашинкой. Процесс не быстрый, но все же проще и быстрее (и аккуратнее), чем фрезеровать кучу слоев руками. Был бы под рукой ЧПУ-фрезер, тогда другое дело. По сути, у вас аддитивная технология. Печать корпуса из МДФ толстыми слоями ))


        1. bellerofonte Автор
          08.01.2019 20:17

          Их бы отшпатлевать и зашкурить перед покраской до гладкости.

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


          1. chapter_one
            08.01.2019 20:41

            Работать с водой. Пыли не будет вообще. Будет грязь, но немного ))


            1. bellerofonte Автор
              08.01.2019 21:48

              хм, как вариант!


              1. chapter_one
                08.01.2019 22:29

                Только вода не должна попадать на открытые спилы МДФ. С деревом и фанерой такой проблемы нет.


      1. gosha-z
        09.01.2019 12:18

        Если есть доступ к обычной дисковой, то вот понравившийся мне способ гнуть фанеру. А такой перерасход материала, как у вас — это ой. В вашем случае, поскольку вы полностью драпируете корпус, вполне можно и фанеру 4/4 использовать.


        1. bellerofonte Автор
          09.01.2019 14:14

          Дисковой пилы тоже нет, как и распиловочного стола. Только торцовка, лобзик и фрезер.
          Кстати, на видео парень ошибся с расчетом радиуса скругления и сломал огромный кусок фанеры. По сравнению с этим мой перерасход кажется пустяком)))
          Но да, технология рабочая, по-моему и МДФ можно гнуть таким же макаром.


  1. skoptsev
    08.01.2019 19:29

    Отличный хэндмэйд, фото готового продукта как с конвейера.


    1. bellerofonte Автор
      08.01.2019 19:56

      Спасибо, приятно!


  1. kudryavy
    08.01.2019 23:11

    Мне почему-то безумно жаль крутилку.
    Жаль, что не получилось заменить кнопки крутилкой: по часовой стрелке — аналог цифровой кнопки увеличения громкости, а против — аналог цифровой кнопки уменьшения громкости. То есть аналоговое управление цифровыми кнопками.
    И такой вопрос: теперь если на колонке уменьшить громкость до 0, то со смартфона можно увеличить без проблем?


    1. natan555
      09.01.2019 02:25

      тоже жаль крутилку, не знаю как реализовано, но на усилителе Pioneer (про другие ничего не знаю) регулировка звука сделана крутилкой и крутить ее можно в любую сторону любое число оборотов (разве что по часовой только до стука в стену соседом ), так чтосомневаюсь что это реализовано на аналоге. А автору респект и уважуха


      1. bellerofonte Автор
        09.01.2019 09:59

        kudryavy, natan555, крутилка на Suptronics X400 — это обычный потенциометр, он распаян в плате и на нем никак не реализуешь аналоговое управление цифровыми кнопками.
        Опять же, вопрос пром-дизайна: крутилку неудобно использовать, если она торчит сверху. По-крайней мере, пройдите по отделу с музыкальными центрами в магазинах электроники или вспомните торпеду любого авто. А теперь представьте, как это будет выглядеть при моей реализации корпуса. Надо делать дырку в обшивке на торце, а потом как-то красиво её закрыть. Я свои силы знаю, от этой идеи отказался сразу. Даже светодиоды не торчат наружу, а светят из-под тряпки.


      1. ay8910
        09.01.2019 14:03

        на усилителе Pioneer (про другие ничего не знаю) регулировка звука сделана крутилкой и крутить ее можно в любую сторону любое число оборотов


        Видимо, электронный регулятор громкости с энкодером.


    1. bellerofonte Автор
      09.01.2019 10:02

      И такой вопрос: теперь если на колонке уменьшить громкость до 0, то со смартфона можно увеличить без проблем?

      Теперь да, и вебка и кнопки теперь регулируют громкость через mpd.


    1. prilichny
      10.01.2019 09:54

      можно было энкодер поставить. а раньше на музцентрах были крутилки с моторчиками. то есть с пульта кнопку жмешь — и крутилка вращается при этом.


  1. mitgard
    08.01.2019 23:33

    Почему не использовали энкодер вместо резистора для регулирования громкостью?
    На кнопки обычно ставится небольшие конденсаторы для шумоподавления, у вас с этим проблем нет?


    1. bellerofonte Автор
      09.01.2019 10:01

      Я знаю про эффект дребезга контактов у кнопок, но на практике ни разу не было ошибочных нажатий.


      1. mitgard
        09.01.2019 10:24

        Глянул с компа, такое ощущение, что расчет резисторов не был произведен. Дребезга возможно нету например из-за программной фильтрации.
        А что с энкодером?


        1. safari2012
          10.01.2019 11:48

          Если использовались GPIO с малины, то там, наверняка, можно было обойтись встроенной подтяжкой. А что с энкодером? Его нет, видимо, хозяин про него просто не подумал :)


      1. alexhott
        09.01.2019 10:47

        Я тоже когда читал про крутилку, первое что подумал — будет энкодер.
        Ан нет поставили кнопки. жутко не люблю громкость регулировать кнопками.
        Еще есть моторизированные потенциометры


        1. bellerofonte Автор
          09.01.2019 11:23

          mitgard, alexhott, про крутилку написал немного выше. После перехода на кнопки ни разу не пожалел, что отказался от «крутилки». Видимо, нечасто регулирую звук — выставил комфортный уровень, и просто нет необходимости трогать.

          mitgard, резисторы считал так, чтобы а) на пин падало напряжение, достаточное, чтобы переключать пин; б) через пин шел мизерный ток, чтобы не перегрузить пин.


          1. alexhott
            09.01.2019 11:39

            В том то и дело что энкодер — это такая крутила, которая крутится на 360 и формирует импульсы управления. То есть можно вместо кнопок поставить и если выкрутить в ноль энкодером, то с телефона запросто можно добавить.
            А спрятать можно красиво — сделать большого диаметра и низкую, или поискать энкодер который при нажатии фиксируется и прячет крутилку заподлицо — так можно и выключатель сделать этой же кнопкой или плэй/стоп.
            На счет резисторов не я спрашивал, но поддержу что неправильно сделано: если пролезет хорошая статика то вся уйдет на пин контроллера, нужно 10к включить до 1М чтобы хотябы маленький делитель был. Там вместо мегоомных резисторов надо супрессоры вольт на 6, и резюки 10К до супрессоров.
            типа такого
            image


            1. bellerofonte Автор
              09.01.2019 12:21

              alexhott, mitgard, посмотрел все туториалы в своих закладках — там везде 1кОм + 10кОм. Возможно я на схеме указал неправильный номинал, буду разбирать — проверю. Но все работает как ожидается уже почти полгода.
              Пока смотрел туториалы, вычитал, что у малинки в схеме зашита защита (каламбур) от шума на входных пинах.


              1. mitgard
                09.01.2019 20:37

                Резистор ограничивает ток. Ток проходящий через него расчитывается законом Ома. Взгляните на свой диод. Не знаю, какая модель у вас, но у нее есть рабочий ток(обычно 10 мА). И резистор подбирают такой, чтобы формировать этот ток.
                По защите это хорошо, что есть. Тогда ваши решения скорее всего просто не играют роли.


                По мегаомным резисторам в кнопках пойдет. Там просто подтяжка к земле с малой утечкой.
                А вот на затворе формируется делитель напряжения. Лучше изменить порядок. И надо быть аккуратнее


                1. bellerofonte Автор
                  10.01.2019 15:46

                  Резюки на диодах подбирались по диодам по яркости свечения. Синий диод требует бОльший ток для той же яркости, что и белый, поэтому резюк у него меньше. Для белого — резюки надо было подобрать таким образом, чтобы и яркость держать на нужном уровне, и время зарядки RC-цепи сделать нужной величины.
                  Про MOSFET тоже несложно вроде. Его затвор — это фактически конденсатор, R5 ограничивает ток его зарядки, защищая т.о. пин OUT3. R6 — притягивает затвор к земле. Да, есть делитель, но если посчитать — там выходит ~3,25В на затворе, при типичном напряжении открытия 2,7В для 2N7000.


  1. Coriolis
    09.01.2019 07:42

    Прошу прощения за ламерский вопрос. Вот можно сэтим усилителем (я о конкретной модели из статьи) динамики вынести витой парой метров на 20-40? Если можно то качество звука просядет сильно? Хочу электронику всю держать в кладовке рядом с остальным оборудованием умного дома а динамики разнести по комнатам. Спасибо.


    1. bellerofonte Автор
      09.01.2019 10:08

      Как минимум витой парой точно не стоит. Витая пара не рассчитана на эту мощность. Используйте специальный аудио-кабель, причем чем больше расстояние — тем толще он должен быть. С хорошим толстым медным проводом проблем быть не должно. Теоретически еще могут еще возникнуть проблемы с наводками от электропроводки, так что лучше провод как-то экранировать, но лично я бы забил.
      На сайте производителя есть отличный туториал, человек делал себе что-то похожее.


      1. Coriolis
        09.01.2019 10:24

        Спасибо! Пробежался, понял что в самом деле лучше малинки повтыкать вместе с динамиком. Но тогда встаёт вопрос питания, и малинки и усилителя. Буду изучать, по крайней мере ерунду с аудиокабелем уже не буду городить.


        1. bellerofonte Автор
          09.01.2019 11:03

          Смотрите, там же еще нюанс такой — усилитель двухканальный. если будете вешать 1 динамик на 1 пару «малинка-усилок» (например, только в левый[правый] канал), то усилок будет разбалансирован по мощности, я не знаю, как он это переживет. Можно задать вопрос на сайте производителя, они отвечают в течение суток обычно.
          Питание — вообще не проблема, если рядом проводка. на том же АЭ куча БП на любой вкус.


          1. alexhott
            09.01.2019 11:42

            делал на подобном усилителе с али колонку
            усилок стерео, динамик один на одном из каналов. второй канал вообще без нагрузки
            живет прекрасно


    1. alexhott
      09.01.2019 10:50

      Громкость немного просядет, но работать будет, если пар 8 то запараллелить по 4.
      Качество лично я на слух витую пару от аудиокабеля сплетенного китайской девственнецей не отличаю.


      1. bellerofonte Автор
        09.01.2019 11:16

        Покурил вопрос с витой парой.
        Во-первых, канала-то два. Надо тогда или класть два провода и в каждом собирать по 4 жилы; или класть один и собирать по 2 проводника на каждый провод каждого канала.
        По нормативам сопротивление одной жилы стандартного cat 5e должно быть меньше 10 Ом на 100м, т.е., Coriolis, в Вашем случае при 2 варианте на 40 метров сопротивление провода будет до 2Ом на провод и, следовательно, до 4Ом на канал. Сопротивление обычного динамика тоже где-то 4Ом, следовательно, на проводе будет теряться примерно половина мощности аудио сигнала.
        В первом варианте — где-то потеряется треть мощности.
        Для аудио-кабеля 1,5мм сопротивление будет минимум вдвое меньше (0,8Ом на 40 метров в обе стороны), следовательно можно потерять примерно 10-15% мощности.


        1. chapter_one
          09.01.2019 12:29

          Есть такая штука, называется 100-вольтовая линия, или трансформаторная линия. Применяется очень широко, когда нужно организовать трансляцию на кучу динамиков на большие расстояния. Суть в том, что после усилителя мы трансформатором поднимаем напряжение, на колонках снижаем обратно. После такого трюка можно смело гнать сигнал на сотни метров по практически любой лапше, потерь почти не будет. К тому же значительно упрощается расчет нагрузки на усилитель, который работает на кучу динамиков.


  1. Nalivai
    09.01.2019 16:17
    +1

    А, простите, то что он писонос это специально так?


    1. bellerofonte Автор
      10.01.2019 09:53

      просто я не нашел более звучного сочетания слов «Sonos», «Raspberry» и «Pi». то был 2k17, выживали как могли…


  1. igrushkin
    09.01.2019 17:35

    Браво! Люблю, когда «дивавай» (с) выглядит, как промышленный образец


  1. aivs
    09.01.2019 17:49

    Дизайн мне нравится!