[Перевод] Клавиатура Squeezebox

Я спроектировал и изготовил раздельную эргономическую клавиатуру на основе идей, которые давно уже хотел проверить. Основные особенности клавиатуры таковы:
  • Раздельная конструкция
  • Ровные столбцы клавиш
  • Настраиваемые под пользователя смещения столбцов
  • Настраиваемые под каждый палец вертикальные смещения
  • Кластер под большие пальцы с 6 клавишами

012ao1a6bcoliyu05k64lcmpmom.jpeg

Раздельная клавиатура Squeezebox
h86czxvvyuzbor4ld2bvttdhwom.jpeg

Левая часть клавиатуры Squeezebox версии 21a, вид сверху

Положение в неподвижном состоянии


qsok6g72r4atxoiakncurb8m1ys.jpeg

Руки в положении покоя, лежащие на среднем и нижнем рядах

Мне кажется, основной элемент дизайна, отличающий мою клавиатуру от подобных ей — это форма средних и нижних рядов. Они расположены под резким углом в 100 градусов, а исходная позиция опор для пальцев — это пальцы, лежащие на среднем ряду и подушечки пальцев, лежащие на нижнем ряду. Можно печатать на среднем ряду, одновременно сохраняя контакт с нижним рядом, и наоборот. То есть пальцам никуда не нужно тянуться, чтобы нажимать две клавиши.

lhgkj48ujpexnpfx3wnqvyy4xuk.jpeg

Нажимаем средний ряд
p_ckelgmplcbio1ey6lt2ndtf30.jpeg

Нажимаем нижний ряд

Кроме того, поскольку переключатели находятся под таким резким углом, можно нажимать оба одним пальцем, нажав в угол. Обе клавиши нажимаются и отпускаются в полном унисоне. То есть после добавления в раскладку QMK-комбо у каждого пальца есть три символа, которые можно водить и никуда при этом не тянуться.

mmaimgchldej8nit03tjvqgd8sa.jpeg

Однопальцевый аккорд на среднем и нижнем рядах

Также есть верхний ряд, который расположен и наклонён так, чтобы тянуться до него нужно было минимально, то есть получается по 4 клавиши на палец. Верхний ряд так близко расположен, что если вы потянетесь к нему, то промахнётесь. К нему не нужно тянуться. Достаточно просто «подумать», и вы попадёте.

b6mfeht08toc8yazj9pngb0lm24.jpeg

Нажимаем верхний ряд

Физическое расположение переключателей


h86czxvvyuzbor4ld2bvttdhwom.jpeg

Основная сетка для четырёх пальцев и кластер для большого пальца

Итак, у нас есть сетка 3×5 для четырёх пальцев и 6 клавиш для больших пальцев, то есть получается 21 клавиша для каждой руки, а в сумме 42 (круто!). Кластер для больших пальцев содержит пары клавиш по схеме «шезлонг»: одна клавиша плоская, а вторая наклонена под углом, благодаря чему их легко нажимать по отдельности или аккордом. Один столбец посередине — это исходная позиция для большого пальца, на второй нужно нажимать, двигая большой палец внутрь, а на третий — двигая его наружу.

Эргономика и настройка под пользователя


Расстояние между рядами спроектировано так, чтобы быть как можно теснее, с учётом размеров переключателей Kailh Choc. Я с самого начала знал, что мне нужно ещё более плотное расположение, и если бы продавались переключатели поменьше, я бы сделал его ещё компактнее, но моя система уже и так близка к идеалу.

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

Для регулировки дальности столбец каждого пальца расположен в прорезях, позволяющих перемещать его примерно на 15 мм. Достаточно немного ослабить болты, настроить позиции для каждого пальца, а затем затянуть болты.

x9vgkibuljwwgqg-scgwjyunip8.jpeg

Опора кластера большого пальца для настройки высоты и позиции по X/Y

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

Также кластер может вращаться вокруг оси болта, крепящего его к корпусу клавиатуры.

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

Голые переключатели


Никаких колпачков! Переключатели Choc имеют идеальные плоские опоры для пальцев (stem). Для компактной геометрии, которая была мне нужна, требуется чрезвычайно малый зазор между переключателями средних и нижних рядов, и колпачки будут этому мешать. Если посмотреть сбоку, то вы заметите, что опора для пальца переключателя нижнего ряда немного нависает над опорой переключателя среднего ряда. Строго говоря, колпачки можно было бы использовать в верхнем ряду и кластерах больших пальцев, но они практически не имеют никакого смысла, и мне кажется, что без них клавиатура выглядит по-хипстерски круто. Это как велосипед с фиксированной передачей от мира клавиатур. Переключатели повёрнуты на 90 градусов от стандартного расположения, чтобы уменьшить зазор нажатий в столбце каждого отдельного пальца.

Соединение и пайка


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

Этот прототип казался отличным, но пайка внутри всех этих корпусов была бы настоящим кошмаром

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

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

nek_nfgkzuygeba2w_bi3on_o-0.jpeg

Пайка перед сборкой
bhztd_7nncwshlxerp6yfwemot4.jpeg

Подключение столбцов пальцев, пока прикреплена только одна стенка

Клавиши под опорой для запястий


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

Подставка на колени


Разбираясь с мешаниной из двух раздельных клавиатур на столе, я случайно поставил подставку Squeezebox на колени и понял, что могу выровнять подлокотники моего кресла с опорами для запястий и получить очень удобную позу. На подлокотниках кресла лежат предплечья, а опоры для запястий находятся непосредственно перед ними на той же высоте. Подставка также может быть поверхностью для мыши, расположенной посередине. Поэтому пока я планирую использовать в качестве основной позы работу с клавиатурой, лежащей на коленях. Но с ней вполне удобно работать и когда она лежит на столе.
012ao1a6bcoliyu05k64lcmpmom.jpeg

Подставка на колени и подлокотники кресла

3D-печать


Эта версия состоит из шести отдельных частей. я соединяю их, просверлив отверстия в поверхностях для вставки резьбовой втулки и скрепляю части болтами M3. Раньше я никогда не использовал резьбовые втулки в 3D-печати; оказалось, они отлично подходят, их очень просто моделировать и монтировать при помощи паяльника. Я их обожаю и буду использовать в будущих проектах.

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

Сильно заметен рост моих навыков моделирования в процессе работы над проектом. На моделирование первых деталей и прототипов требовались многие часы работы во FreeCAD, я много раз начинал сначала и создавал множество версий файлов в git. Зато в конце проекта я смоделировал внутреннюю стенку с пространством под разъём RJ-9, микроконтроллер и порт USB-C меньше, чем за час, а успешно всё напечатать удалось со второй попытки.

В самом начале я не понимал простую штуку, которая оказалась очень удобной: для симметричной раздельной клавиатуры почти все различия между правой и левой частью можно передать, выполнив зеркальное отражение в программе-слайсере. Это значит, что в CAD достаточно смоделировать только одну половину.

Кривая обучения


В целом обучение не особо отличается от привычной мне ergodox, особенно потому, что я постепенно в течение нескольких лет уменьшал количество клавиш моей ergodox, изучая новые функции QMK и техники создания раскладок. Однако перемена достаточно радикальна, чтобы снизить мою скорость набора с 60 до 20 слов в минуту. Пока я не очень много печатал, потому что по-прежнему совершенствую раскладку клавиш в области символов пунктуации и других аспектов. Я уверен, что спустя одну-две недели практики по вечерам наберу достаточную скорость и точность, чтобы перейти на повседневное использование.

Подробности о деталях клавиатуры


Я использовал переключатели Kaihl Choc Red — линейные низкопрофильные тихие переключатели с малым усилием нажатия. В качестве микроконтроллеров я использовал Elite-C. Части клавиатуры соединены кабелем RJ-9 и программной последовательной конфигурацией. Резьбовые втулки предназначены для болтов M3. В целом, это довольно стандартный подход к созданию самодельной клавиатуры с подключением проводов вручную.

Раскладки клавиш


В моей руке возникали боли из-за хронического растяжения сухожилий, когда мизинец тянулся к внешнему столбцу и нажимал аккорд с Shift на моей ergodox, поэтому у меня была сильная мотивация снижения нагрузки на мизинец и переноса нагрузки на большой палец, из-за этого в моей клавиатуре нет столбцов, расположенных наружу от мизинцев. Shift и Control/Escape переместились под большой палец (и/или в QMK-комбо, но я над ними ещё работаю), а Tab переместился на слой навигации, поэтому мизинцу остались только нажатия на буквенные клавиши. Вероятно, когда-нибудь я перейду на схему, минимизирующую нагрузку на мизинцы, например, BEAKL, но я не хотел привыкать к ней параллельно с освоением новой клавиатуры.

Я оставил один внутренний столбец, до которого нужно тянуться, потому что хотел сохранить базовый слой для Dvorak, чтобы не переходить сразу на что-то новое. То есть внутренний столбец на самом деле нужен только для облегчения моего перехода на новую клавиатуру, но в конечном итоге я, возможно, создам раскладку, в которой он не требуется, и избавлюсь от него. Для уменьшения расстояния, на которое пальцу нужно перемещаться вбок, два внутренних столбца расположены на одной пластине, поэтому зазор довольно мал — всего 2 мм.

Процесс изучения возможностей, в том числе модификаторов, ещё не закончен. Я протестировал модификаторы основного ряда, но с Dvorak они очень подвержены ложным срабатываниям на правой руке при таких комбинациях, как th и ns, поэтому я переместил их в нижний слой своей ergodox. Но если поместить модификаторы в нижний ряд на Squeezebox, то с ними нельзя будет создавать комбо, из-за чего я теряю многие потенциальные возможности этой конструкции. Думаю, в следующий раз я попробую модификаторы только для Ctrl и Alt в верхнем ряду, чтобы можно было нажимать однопальцевые комбо в среднем и нижнем рядах. Наличие такого количества клавиш для больших пальцев создаёт множество отличных возможностей, особенно для действий, которые требуются только изредка.

Если вам любопытны подробности, то в моём форке QMK есть моя раскладка.

Видео



Выводы о создании работающей самодельной клавиатуры


Это был очень увлекательный проект. Я хотел реализовать его ещё с тех пор, когда впервые описал концепцию угловых клавиш моему коллеге по созданию клавиатур Майклу Слоэну в январе 2020 года. Мой опыт работы с CAD и 3D-печатью находился на очень низком уровне и я никогда до этого не создавал параметризированный CAD, только немного работал с TinkerCAD и SketchUp. Параметризация абсолютно необходима для подобных проектов, поэтому я изучил немного программный стек dactyl manuform (clojure, openscad), но в конечном итоге смоделировал всё в FreeCAD, получив хорошие результаты.
a_gh2tmt-wqjmfyfiqrfgnvw3fg.jpeg

Проект FreeCAD, в котором видны параметры электронной таблицы и модель основной стенки

Для создания этого проекта потребовалось не меньше двух месяцев значительных трудозатрат по вечерам и выходным, а также разработка большого количества прототипов (подробнее об этом ниже). Раньше я уже занимался пайкой нескольких клавиатурных комплектов, но никогда вручную не подключал провода и никогда не конфигурировал самостоятельно встроенное ПО QMK. Я много страдал с прошивкой микроконтроллеров и с тем, как привязать соединения проводов к встроенному ПО. Я благодарен множеству людей с форумов в Discord и Slack, которые отвечали на мои вопросы и каждую неделю помогали справляться с проблемами.

Планы на новую версию


Больше всего в этой версии мне не нравится, что угол между верхним и средним рядом безымянного и среднего пальцев слишком резкий. Я не могу толком печатать в верхнем ряду кончиками пальцев, как это задумывалось. Вместо этого ногти царапают колпачок. Это вызвано тем, что изначально я проектировал вертикальную ориентацию в стиле джойстика, в которой такой угол вполне подходит. Но в процессе работы я перешёл на горизонтальную ориентацию, и не понял, что это повлияет на геометрию. Такой угол идеален для указательного пальца и мизинца, что немного странно, но в следующей версии верхний ряд для безымянного и среднего пальцев всё равно будет почти плоским, порядка 170 градусов.

Я добавил пазы для магнитов, чтобы можно было устанавливать клавиатуру и опоры для запястий на стальную пластину, приклеенную к куску фанеры толщиной ½» для подставки на колени. Возможно, я заменю спиральный кабель RJ-9 на плоский, чтобы его можно было прикрепить к фанере и проложить его по краю, полностью освободив таким образом центральную часть подставки для мыши (или для кофе, когда клавиатура лежит на столе).

В этой конструкции я не учёл необходимость места под физическую кнопку reset, потому что думал, что сделаю клавишу reset в раскладке. Оказалось, что это очень оптимистичное решение, поэтому мне пришлось прилепить её и она свисает на проводах. В следующей версии я придумаю для неё подходящее место. Я ожидал, что настройка и прошивка QMK будет довольно быстрым процессом, и мне понадобится всего несколько прошивок. Как же я ошибался. Я потратил целиком несколько выходных на отладку странного поведения: сначала работали 39 из 42 клавиш, а потом внезапно не работала ни одна, потом случайно начинал работать только нижний ряд, потом всё начинало работать, но клавиши были в обратном порядке, и так далее.

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

Также я подумываю полностью переделать кластер под большие пальцы. Наверно, клавиши верхнего ряда я расположу рядом друг с другом.

У меня есть катушка чёрного PLA Prusament, который будет отлично смотреться с переключателями Choc Red.

Долгие недели прототипирования


_dnrfocfjjtie0larctyxcyr7m4.jpeg

Один из первых вертикальных прототипов с двумя степенями регулировки при помощи прорезей и пазов

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

Название «Squeezebox» («коробка для сжимания») я выбрал потому, что из-за положения рук и тесного расположения клавиш устройство напоминало аккордеон или концертину. Squeezebox — это жаргонное название подобных инструментов. Даже после того, как я решил разрабатывать горизонтальную конструкцию, название сохранилось, потому что корпуса оказались похожими на коробки, а угловые клавиши срабатывают от сжимания, так что оно показалось подходящим.

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

xqdhxhg6ogrsrlvxip1a_6jwxyg.jpeg

Вертикальный прототип, регулируемый рядами прорезей и болтами

Схему для основных столбцов четырёх пальцев я реализовал очень быстро. Тогда я только начинал изучать параметрическое 3D-моделирование во FreeCAD, поэтому испытывал небольшие трудности с реализацией своих идей в программе. Для создания регулировки, выполняемой в двух измерениях (вперёд-назад, выше-ниже) пришлось создать множество прототипов и потратить почти две полные катушки филамента PLA. У меня были конструкции с прорезями, с болтовыми соединениями, с магнитными креплениями, с клеевыми соединениями, скрепляемые наподобие деталей LEGO, и т.д. Некоторые из этих прототипов было сложно соединять проводами, поэтому после того, как я подобрал нужные позиции, самым сложным было подключение проводов вручную.

xmvytaxoqyq501o8cfpdykfobuo.jpeg

Два джойстиковых прототипа с магнитными основаниями
3-lruyf3r1jvvqwttpvkh1591a8.jpeg

Сад прототипов

Весь альбом с фотографиями сборки


В альбоме больше 150 фотографий, его можно посмотреть во Flickr.

woqf6cweprtwtuq2m7jch92h5wk.png

© Habrahabr.ru