Иногда проекты, которые мы делаем просто для веселья, превращаются в нечто большее. А иногда нет. Хочу поделится историей одного такого фанового проекта, который пережил несколько трансформаций, пока не получилось что-то толковое. Часть первая, в которой толкового ничего не получилось. Но вы можете почерпнуть для себя несколько интересных решений.

Год назад мне прилетела вожжа под хвост и захотелось странного. Вожжа выглядела вот так:



Это patchblocks, проект с кикстартера. Несколько абсолютно одинаковых модулей, соединяющихся в модульный синтезатор. Каждый модуль выполняет разный функционал благодаря тому, что прошит своим софтом из простого редактора…

Да что об этом говорить? Просто посмотрите видео на кикстарте, оно того стоит

В этом проекте прекрасно всё. Мне особенно понравилась красота и низкий финансовый порог входа при производстве небольших партий. То есть отсутствие литья пластмасс. И при этом штука выглядит красиво: «самодельность» придаёт ей особый шарм. Это же просто платка, аккумулятор и два куска оргстекла! Вау!

Когда я это увидел, моя пирамида Маслоу затупилась о страничку браузера. Хочу придумать так же круто!

Хотелки


В голове созрел детальный план работ:

  • Придумать что-то крутое
  • ???
  • PROFIT!!!

План готов, осталось только его неукоснительно соблюдать.

Я увлекаюсь музыкой и синтезаторами. Уже пришёл в ту стадию, когда больше синтезаторами, нежели музыкой. За давностью уже не помню, как оформлялась мысль. Но в итоге я решил сделать какой-то модульный и кастомизируемый пульт управления чем-нибудь. Например, цифровыми синтезаторами или видеоредактором. То есть крутилки, кнопочки, слайдеры, индикаторы всякие. Ну что-то вроде этого, но без ограничений размеров:



Хардварные хотелки к этому нечто:

  • Модульность. Максимально похожие модули, которые можно комбинировать простым способом. Короче лего.
  • Пользователь обязан суметь очень просто сделать уникальное, удобное для своей задачи расположение модулей. И при этом не устать.
  • Простая логистика. Идеально, если готовый модуль можно взять на производстве печатных плат одним куском, положить в пакет и отдать пользователю. А он уже сам всё себе соберёт. Да ещё и удовольствие получит от процесса. И не устанет.
  • Красивость результата. Получившаяся в результате сборки пользователем кастомная железка обязана хорошо выглядеть. Никаких проводов, джигурды, изоленты и ожогов от пайки.
  • Умность модулей. Нужно сделать так, чтобы можно было подключать их сразу много к какой-нибудь arduino через простой железный интерфейс. Вместе модули должны предоставлять какой-то единый программный интерфейс так, чтобы в коде не морочиться.

Первый блин


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

Для начала решил спроектировать модуль из четырёх потенциометров. Можно было бы взять кучу таких модулей и собрать себе матрицу из кучи потенциометров. Все любят матрицы из кучи потенциометров!

Идея простая. Есть платка с микроконтроллером, который опрашивает потенциометры и отправляет эту дату куда-то.

Управляющий микроконтроллер выбирал исходя из цены и мощи. Хотя, зачем я вру? Наткнулся на статью «НЕ Arduino за 55 центов» и просто влюбился в этого малыша! STM32F030F4P6 классный. У него не так много ног, но 9 из них с 12-битным АЦП и куча 16-битных ШИМ-портов.

Много времени занял выбор способа соединения модулей. Пересмотрел гору вариантов штекеров и разъёмов. Хотелось, чтобы соединение было простым. Оно не должно боятся механических нагрузок, быть надёжным и не должно выходить за край корпуса. А ещё ему должно быть абсолютно всё равно, каким боком пользователь соединяет модули. Через пару недель бицепс указательного пальца пришёл наконец в тонус от ежедневного скроллинга. Стало понятно что нужного разъёма просто нет в природе.

В итоге остановился на швейных кнопках. Получилось вот так:



С момента описываемых событий прошёл уже год. К сожалению, верхние крышки из оргстекла потерялись и фотографий с ними не осталось. Небольшое представление о том, как оно должно было выглядеть можно получить по модельке:



Из плюсов такого решения:

  • Вся железка (кроме крышки) сделана из фольгированного текстолита. Все детали корпуса вместе с электроникой могут располагаться на одной печатной плате, и приходить одной большой деталькой прямо с завода. Пользователю останется только отломить их и собрать корпус.
  • Кнопочки соединяются и разъединяются достаточно легко и с таким чудесным «хрум», что долгое время это был мой личный антистресс гаджет. Очень приятное ощущение.
  • Соединение кнопками достаточно прочное. Модули держатся друг за друга хорошо: не болтаются, не люфтят.

Видео работы соединения:


Минусы тоже есть:

  • Боковые стенки должны проводить электричество и при этом коммутировать с основной платой, на которой находится вся электроника. Мне удалось добиться надёжного механического и электрического соединения. На вертикальной плате есть краевые разъёмы с зубцами. На фотке видно верхний такой разъём. Нижний вставляется в гальванизированные прямоугольные отверстия в основной плате. Правда, боковые платы пришлось забивать в основную плату при помощи молотка и мягкой подкладки. Не то чтобы меня это сильно расстраивало, но UX прямо скажем не очень.
  • Модули имеют направление. Нельзя соединить два модуля любой стороной.
  • Монтаж компонентов в отверстия очень портит на ощупь нижнюю часть платы. Потенциометры поверхностного монтажа бывают, конечно. Но не факт, что получится найти абсолютно все необходимые детали с поверхностным монтажом. Мало ли, что может понадобится в будущем?
  • Очень сложно угадать с высотой боковых стенок. Не до конца ведь понятно, какие конкретно компоненты захочется поместить внутрь? Пришёл к какому-то среднему значению. Но с этим средним значением те же потенциометры, например, едва выглядывают над верхней крышкой.

Интерфейсики


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

В этом варианте «красивой железки» пожертвовал четырьмя пинами микроконтроллера на благо адресации. Мы знаем где у модуля входы, а где выходы. Назначим левый верхний модуль в массиве модулей главным.

На словах объяснить получается плохо. Попробую проиллюстрировать адресацию одной строчки на примере марширующих солдат:


Массив из строчек и столбцов модулей адресуется как-то так же. Просто нарисовать солдат с двумя входными портами несколько сложнее.

Забросил


Жаль было забрасывать разработку железки, в работе над которой провёл много прекрасного времени. Но с прототипами так бывает. Поигравшись с таким формфактором, потихоньку отказался от него. Оказалось, что можно решать задачу красивой железки гораздо проще и веселее. Об этом я расскажу в следующих сериях. А этой статьёй хотел отдать дань уважения прекрасной железке, с которой у нас не сложилось. Прости, Кнопочка. Дело не в тебе, просто я полюбил другую.

Upd.
Для ответа на комментарий пришлось погуглить. И нагуглилась та самая красивая железка, о которой я мечтал. Её уже сделали. Тут, конечно, совсем другой уровень. Меняем кнопочки на магнитики и подпружиненные контакты. А оргстекло и текстолит на анодированный алюминий. Да, я бы так не смог. Но всё же интересно наблюдать, как другие решили те же проблемы, которые сам решал.


Это называется «Palette». Молодцы ребята.

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


  1. roller
    28.11.2017 19:53

    Как-то странно, что в процессе накачивания указательного пальца вы не дошли до двунаправленного оптического интрефейса. А само крепление можно на магнитиках, да.


    1. acos Автор
      28.11.2017 21:40

      Пальцы то дошли:) А вот пилить роутинг и увеличивать стоимость не хотелось совершенно.


    1. acos Автор
      28.11.2017 22:25

      К стати, можно крепить магнитиками. Можно питать через магнитики. Можно даже просто соединять два модуля двумя магнитиками и передавать данные прямо по шине питания, да так чтобы все слышали — шина питания ведь одна на всех. Вот пример передачи данных по шине питания www.electronicdesign.com/communications/simple-circuit-communicates-over-low-voltage-power-lines
      Жаль паять магнитики нельзя


      1. YegorVin
        28.11.2017 23:41

        Много лишнего обвеса. Проще завести +1 линию.


        1. acos Автор
          29.11.2017 00:30

          Согласен. Но иногда и много лишнего обвеса не помешают) Как тут например. www.youtube.com/watch?v=fEqq8JykQoQ


      1. roller
        29.11.2017 00:01

        Паять нельзя (хотя где то видел кажется), но хороший прижим и клей решили бы проблему.
        Либо паять припоем, с температурой плавления ниже точки Кюри (с)


        1. acos Автор
          29.11.2017 00:46

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

          При этом данные как-то передавать тоже нужно. Тут на выбор: третий контакт, оптопары, воздушные трансформаторы, по питанию…


  1. AlekDikarev
    28.11.2017 22:28

    Расскажите, я видимо чего-то не понял — зачем они все нужны если все это можно сделать софтом на компе?


    1. acos Автор
      28.11.2017 22:57

      Речь про patchblock или про красивые железки?
      Если про контроллеры, то часто привычное тактильное управление гораздо удобнее, чем мышь или клавиатура компьютера. В основном используют для всяческих синтезаторов, но есть варианты и для видеомонтажеров.
      Кстати. Только что погуглил. А всё уже сделали. Вот такой вариант — примерно то к чему стремился тогда palettegear.com. Только, конечно, здесь всё на высшем уровне. Никаких швейных кнопок) Эх, вот он современный мир.


  1. sned
    29.11.2017 09:29

    А мне швейные кнопки понравились.Плюс они ещё могут выполнять роль электрических разъёмов.


    1. artoym
      29.11.2017 11:07
      +1

      Они их и выполняют вроде как. Собственно это их ключевое назначение.


  1. gshamshurin
    29.11.2017 11:17

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

    Вот! Я на днях буду публиковать тоже про кнопочку, но другого назначения. Про фрезерование, токарку и лазерную резку там тоже будет.

    (уже 30+ подходов к черновику :( Но я закончу, честно! )


    1. acos Автор
      29.11.2017 12:03

      С удовольствием прочту. Как вас замотивировать?:) Подписался


      1. gshamshurin
        29.11.2017 12:05

        Да я решил не откладывать :) Сделал фото и опубликовал уже, по принципу «лучшее-враг хорошего»
        geektimes.ru/post/291977


  1. alex-1917
    29.11.2017 11:56
    +1

    Швейные кнопки имеют ресурс. Механика же. В свое время наплевался от конструктора для ребенка на таких же кнопках — через полгода использования половина кнопок банально не держала свою пару.
    И пайка к металлу сравнима с пайкой к магниту))). #железо.
    Магниты красивее в плане отсутствия механики на порядок. Вы же хотели покрасивее?))


    1. acos Автор
      29.11.2017 12:01

      Да, согласен.
      Хотел скорее покрасивее и относительно дёшево в производстве. Комбо)
      Про кнопки не знал, спасибо. Ещё у них минус — только ручной монтаж. Ну то есть я не представляю, как дать автомату для расстановки компонентов швейные кнопки)


      1. Moog_Prodigy
        29.11.2017 17:51

        Вроде бы был такой когда-то детский радиоконструктор, где использовались именно кнопки. Он был одноуровневый, то бишь одна сторона кубика — один контакт. Но лучше — не надо. Кнопки это лишние препоны для науки о контактах. Магнитики тоже.
        Я в своих изделиях использую простую систему — DB-9 мама справа, папа слева. И хоть 100 блоков в линейку. Но правда, это уже не дает простора фантазии — нацепил один блок, потом вешай строго справа в ряд. Мне нравится — масштабируемость. Если уж по дизайнерским соображениям или удобству нужно их мешать между собой вверх-вперед-сбоку, ну тут можно предложить индуктивное питание модулей, и бесконтактные интерфейсы а-ля Zbee.


        1. acos Автор
          29.11.2017 20:45

          Да, db-9 хорош. Надёжный как АК.


  1. madf
    29.11.2017 13:59

    Выглядит круто и красиво, но пока привыкнешь к конкретному месту использования (софт), то неизвестно сколько времени пройдёт и сколько времени нужно потратить на настройку под конкретное ПО.
    А потом, когда привык, уже сложно будет отвыкнуть (если блоки к тому времени перестанут производить или просто их не будет на другом месте).


  1. brazzzzzzzzzzzers
    29.11.2017 18:44

    вообще не нужная вещица


    1. vvzvlad
      30.11.2017 17:16

      Вообще не нужный комментарий