Год назад мне прилетела вожжа под хвост и захотелось странного. Вожжа выглядела вот так:
Это patchblocks, проект с кикстартера. Несколько абсолютно одинаковых модулей, соединяющихся в модульный синтезатор. Каждый модуль выполняет разный функционал благодаря тому, что прошит своим софтом из простого редактора…
В этом проекте прекрасно всё. Мне особенно понравилась красота и низкий финансовый порог входа при производстве небольших партий. То есть отсутствие литья пластмасс. И при этом штука выглядит красиво: «самодельность» придаёт ей особый шарм. Это же просто платка, аккумулятор и два куска оргстекла! Вау!
Когда я это увидел, моя пирамида Маслоу затупилась о страничку браузера. Хочу придумать так же круто!
Хотелки
В голове созрел детальный план работ:
- Придумать что-то крутое
- ???
- PROFIT!!!
План готов, осталось только его неукоснительно соблюдать.
Я увлекаюсь музыкой и синтезаторами. Уже пришёл в ту стадию, когда больше синтезаторами, нежели музыкой. За давностью уже не помню, как оформлялась мысль. Но в итоге я решил сделать какой-то модульный и кастомизируемый пульт управления чем-нибудь. Например, цифровыми синтезаторами или видеоредактором. То есть крутилки, кнопочки, слайдеры, индикаторы всякие. Ну что-то вроде этого, но без ограничений размеров:
Хардварные хотелки к этому нечто:
- Модульность. Максимально похожие модули, которые можно комбинировать простым способом. Короче лего.
- Пользователь обязан суметь очень просто сделать уникальное, удобное для своей задачи расположение модулей. И при этом не устать.
- Простая логистика. Идеально, если готовый модуль можно взять на производстве печатных плат одним куском, положить в пакет и отдать пользователю. А он уже сам всё себе соберёт. Да ещё и удовольствие получит от процесса. И не устанет.
- Красивость результата. Получившаяся в результате сборки пользователем кастомная железка обязана хорошо выглядеть. Никаких проводов, джигурды, изоленты и ожогов от пайки.
- Умность модулей. Нужно сделать так, чтобы можно было подключать их сразу много к какой-нибудь arduino через простой железный интерфейс. Вместе модули должны предоставлять какой-то единый программный интерфейс так, чтобы в коде не морочиться.
Первый блин
Проще всего придумывать абстрактное нечто решая задачу поконкретней. Нам же много чего придумать предстоит, желательно конкретизировать хоть что-то.
Для начала решил спроектировать модуль из четырёх потенциометров. Можно было бы взять кучу таких модулей и собрать себе матрицу из кучи потенциометров. Все любят матрицы из кучи потенциометров!
Идея простая. Есть платка с микроконтроллером, который опрашивает потенциометры и отправляет эту дату куда-то.
Управляющий микроконтроллер выбирал исходя из цены и мощи. Хотя, зачем я вру? Наткнулся на статью «НЕ Arduino за 55 центов» и просто влюбился в этого малыша! STM32F030F4P6 классный. У него не так много ног, но 9 из них с 12-битным АЦП и куча 16-битных ШИМ-портов.
Много времени занял выбор способа соединения модулей. Пересмотрел гору вариантов штекеров и разъёмов. Хотелось, чтобы соединение было простым. Оно не должно боятся механических нагрузок, быть надёжным и не должно выходить за край корпуса. А ещё ему должно быть абсолютно всё равно, каким боком пользователь соединяет модули. Через пару недель бицепс указательного пальца пришёл наконец в тонус от ежедневного скроллинга. Стало понятно что нужного разъёма просто нет в природе.
В итоге остановился на швейных кнопках. Получилось вот так:
С момента описываемых событий прошёл уже год. К сожалению, верхние крышки из оргстекла потерялись и фотографий с ними не осталось. Небольшое представление о том, как оно должно было выглядеть можно получить по модельке:
Из плюсов такого решения:
- Вся железка (кроме крышки) сделана из фольгированного текстолита. Все детали корпуса вместе с электроникой могут располагаться на одной печатной плате, и приходить одной большой деталькой прямо с завода. Пользователю останется только отломить их и собрать корпус.
- Кнопочки соединяются и разъединяются достаточно легко и с таким чудесным «хрум», что долгое время это был мой личный антистресс гаджет. Очень приятное ощущение.
- Соединение кнопками достаточно прочное. Модули держатся друг за друга хорошо: не болтаются, не люфтят.
Видео работы соединения:
Минусы тоже есть:
- Боковые стенки должны проводить электричество и при этом коммутировать с основной платой, на которой находится вся электроника. Мне удалось добиться надёжного механического и электрического соединения. На вертикальной плате есть краевые разъёмы с зубцами. На фотке видно верхний такой разъём. Нижний вставляется в гальванизированные прямоугольные отверстия в основной плате. Правда, боковые платы пришлось забивать в основную плату при помощи молотка и мягкой подкладки. Не то чтобы меня это сильно расстраивало, но UX прямо скажем не очень.
- Модули имеют направление. Нельзя соединить два модуля любой стороной.
- Монтаж компонентов в отверстия очень портит на ощупь нижнюю часть платы. Потенциометры поверхностного монтажа бывают, конечно. Но не факт, что получится найти абсолютно все необходимые детали с поверхностным монтажом. Мало ли, что может понадобится в будущем?
- Очень сложно угадать с высотой боковых стенок. Не до конца ведь понятно, какие конкретно компоненты захочется поместить внутрь? Пришёл к какому-то среднему значению. Но с этим средним значением те же потенциометры, например, едва выглядывают над верхней крышкой.
Интерфейсики
Из всех просмотренных вариантов стандартных железных интерфейсов мне больше всего понравился I2C. Можно соединить всех со всеми и они там сами разберутся. Но тут есть засада с адресами. Куча одинаковых потенциометров должна как-то отличать друг друга. А лучше всего, если куча будет отличать друг друга согласно своему собственному расположению относительно других.
В этом варианте «красивой железки» пожертвовал четырьмя пинами микроконтроллера на благо адресации. Мы знаем где у модуля входы, а где выходы. Назначим левый верхний модуль в массиве модулей главным.
На словах объяснить получается плохо. Попробую проиллюстрировать адресацию одной строчки на примере марширующих солдат:
Массив из строчек и столбцов модулей адресуется как-то так же. Просто нарисовать солдат с двумя входными портами несколько сложнее.
Забросил
Жаль было забрасывать разработку железки, в работе над которой провёл много прекрасного времени. Но с прототипами так бывает. Поигравшись с таким формфактором, потихоньку отказался от него. Оказалось, что можно решать задачу красивой железки гораздо проще и веселее. Об этом я расскажу в следующих сериях. А этой статьёй хотел отдать дань уважения прекрасной железке, с которой у нас не сложилось. Прости, Кнопочка. Дело не в тебе, просто я полюбил другую.
Upd.
Для ответа на комментарий пришлось погуглить. И нагуглилась та самая красивая железка, о которой я мечтал. Её уже сделали. Тут, конечно, совсем другой уровень. Меняем кнопочки на магнитики и подпружиненные контакты. А оргстекло и текстолит на анодированный алюминий. Да, я бы так не смог. Но всё же интересно наблюдать, как другие решили те же проблемы, которые сам решал.
Это называется «Palette». Молодцы ребята.
Комментарии (21)
AlekDikarev
28.11.2017 22:28Расскажите, я видимо чего-то не понял — зачем они все нужны если все это можно сделать софтом на компе?
acos Автор
28.11.2017 22:57Речь про patchblock или про красивые железки?
Если про контроллеры, то часто привычное тактильное управление гораздо удобнее, чем мышь или клавиатура компьютера. В основном используют для всяческих синтезаторов, но есть варианты и для видеомонтажеров.
Кстати. Только что погуглил. А всё уже сделали. Вот такой вариант — примерно то к чему стремился тогда palettegear.com. Только, конечно, здесь всё на высшем уровне. Никаких швейных кнопок) Эх, вот он современный мир.
gshamshurin
29.11.2017 11:17Оказалось, что можно решать задачу красивой железки гораздо проще и веселее.
Вот! Я на днях буду публиковать тоже про кнопочку, но другого назначения. Про фрезерование, токарку и лазерную резку там тоже будет.
(уже 30+ подходов к черновику :( Но я закончу, честно! )acos Автор
29.11.2017 12:03С удовольствием прочту. Как вас замотивировать?:) Подписался
gshamshurin
29.11.2017 12:05Да я решил не откладывать :) Сделал фото и опубликовал уже, по принципу «лучшее-враг хорошего»
geektimes.ru/post/291977
alex-1917
29.11.2017 11:56+1Швейные кнопки имеют ресурс. Механика же. В свое время наплевался от конструктора для ребенка на таких же кнопках — через полгода использования половина кнопок банально не держала свою пару.
И пайка к металлу сравнима с пайкой к магниту))). #железо.
Магниты красивее в плане отсутствия механики на порядок. Вы же хотели покрасивее?))acos Автор
29.11.2017 12:01Да, согласен.
Хотел скорее покрасивее и относительно дёшево в производстве. Комбо)
Про кнопки не знал, спасибо. Ещё у них минус — только ручной монтаж. Ну то есть я не представляю, как дать автомату для расстановки компонентов швейные кнопки)Moog_Prodigy
29.11.2017 17:51Вроде бы был такой когда-то детский радиоконструктор, где использовались именно кнопки. Он был одноуровневый, то бишь одна сторона кубика — один контакт. Но лучше — не надо. Кнопки это лишние препоны для науки о контактах. Магнитики тоже.
Я в своих изделиях использую простую систему — DB-9 мама справа, папа слева. И хоть 100 блоков в линейку. Но правда, это уже не дает простора фантазии — нацепил один блок, потом вешай строго справа в ряд. Мне нравится — масштабируемость. Если уж по дизайнерским соображениям или удобству нужно их мешать между собой вверх-вперед-сбоку, ну тут можно предложить индуктивное питание модулей, и бесконтактные интерфейсы а-ля Zbee.
madf
29.11.2017 13:59Выглядит круто и красиво, но пока привыкнешь к конкретному месту использования (софт), то неизвестно сколько времени пройдёт и сколько времени нужно потратить на настройку под конкретное ПО.
А потом, когда привык, уже сложно будет отвыкнуть (если блоки к тому времени перестанут производить или просто их не будет на другом месте).
roller
Как-то странно, что в процессе накачивания указательного пальца вы не дошли до двунаправленного оптического интрефейса. А само крепление можно на магнитиках, да.
acos Автор
Пальцы то дошли:) А вот пилить роутинг и увеличивать стоимость не хотелось совершенно.
acos Автор
К стати, можно крепить магнитиками. Можно питать через магнитики. Можно даже просто соединять два модуля двумя магнитиками и передавать данные прямо по шине питания, да так чтобы все слышали — шина питания ведь одна на всех. Вот пример передачи данных по шине питания www.electronicdesign.com/communications/simple-circuit-communicates-over-low-voltage-power-lines
Жаль паять магнитики нельзя
YegorVin
Много лишнего обвеса. Проще завести +1 линию.
acos Автор
Согласен. Но иногда и много лишнего обвеса не помешают) Как тут например. www.youtube.com/watch?v=fEqq8JykQoQ
roller
Паять нельзя (хотя где то видел кажется), но хороший прижим и клей решили бы проблему.
Либо паять припоем, с температурой плавления ниже точки Кюри (с)
acos Автор
В целом да, проблему как-то решают.
В принципе, если обеспечить каким-то образом железные скруглённые углы, можно было бы запитать квадратики через круглые магниты неодимовые, как в магнитных конструкторах. Типа таких
Без всякого клея и низкотемпературной пайки. Если у нас одна единственная точка подачи питания, а на каждом модульке стоит простой диодный мост, то можно любым боком соединять вот так модули:
При этом данные как-то передавать тоже нужно. Тут на выбор: третий контакт, оптопары, воздушные трансформаторы, по питанию…