[Перевод] Самодельная клавиатура
В прошлом году мне попалось выступление Мэтта Адерета про использование Clojure для создания прошивок, предназначенных для самодельных клавиатур.
Хотя этот доклад делался на конференции, посвящённой Clojure, я полагаю, что его стоит посмотреть любому, у кого есть склонность к программированию и к технике.
В выступлении было рассказано о том, почему клавиатуры, которые чаще всего используются в наши дни (QWERTY), выглядят именно так, как выглядят. Например, докладчик упомянул о том, что клавиши на QWERTY-клавиатуре расположены так, чтобы кнопки, расположенные ближе всего друг к другу, представляли бы буквы, которые не слишком склонны к тому, чтобы идти друг за другом в обычных английских словах. Ещё он сказал, что порядок расположения клавиш на современных клавиатурах, напоминающий шахматный, достался им в наследство от пишущих машинок. Дело в том, что при таком расположении клавиш меньше вероятность возникновения проблем со стержнями, идущими от основания клавиш к корпусу машинки.
Потом он поднял вопрос о создании самодельных клавиатур, в которых больше смысла в наше время, чем в клавиатурах, в основу которых не положены технологии 1800-х годов.
После того, как я послушал тот доклад и целую вечность просидел на r/olkb, я решил, что создание собственной клавиатуры будет стоящим делом по следующим причинам:
- Оптимизация. Я — программист и много работаю за клавиатурой. Учитывая то, что клавиатура — это инструмент, которым я пользуюсь каждый день, даже небольшие улучшения в эффективности её применения способны ускорить мою работу и снизить время, необходимое на то, чтобы мои мысли превратились бы в программный код.
- Улучшение эргономики. Я уже искал эргономичную клавиатуру, так как заболевания, вызванные повторяющимися движениями, довольно широко распространены среди программистов. Несколько заинтересовавших меня моделей, которые можно купить, стоят довольно дорого (например — Kinesis за примерно $300). Я понял, что если смогу создать собственную клавиатуру — значит — у меня может получиться что-то такое, что отличается отличной эргономичностью.
- Полезное применение 3D-принтера. Заветная мечта каждого владельца 3D-принтера — сделать с его помощью что-то осмысленное. Что-то, что будет работать и приносить пользу. Есть одна известная шутка про 3D-принтеры, которая заключается в том, что тот, кто обзавёлся таким принтером, всё время печатает какие-то детали для самого этого принтера, но не делает ничего другого, имеющего хоть какую-то ценность.
Я, когда принял решение создать собственную клавиатуру, как следует поразмышлял о том, чего я от неё жду:
- Клавиатура должна быть ортолинейной (клавиши должны быть расположены прямо, а не в шахматном порядке). Пальцы, когда их сгибают и разгибают, двигаются по прямой. Поэтому имеет смысл обзавестись клавиатурой, клавиши на которой расположены в виде прямых колонок и рядов. Попробуйте сжать и разжать пальцы — и вы сами увидите то, о чём я говорю.
- Клавиатура должна быть разделённой. Использование такой клавиатуры позволяет расположить запястья и предплечья под такими углами, которые удобны для конкретного человека. Обычные клавиатуры принуждают нас размещать руки так, чтобы их положение соответствовало бы устройству клавиатуры, что вызывает ненужное напряжение в руках.
- Клавиатура должна иметь группы клавиш, рассчитанные на большие пальцы. Большой палец гораздо сильнее и гибче других пальцев благодаря суставу, который находится в его основании (первый пястно-запястный сустав). Группы клавиш, рассчитанные на большие пальцы, позволяют снять нагрузку по выполнению некоторых операций с других пальцев и перенести её на большие пальцы. Это увеличивает эргономичность клавиатуры, позволяет работать с ней гораздо эффективнее, чем с обычными клавиатурами. (После того, как я поработал с готовой клавиатурой, могу сообщить о том, что способен использовать большие пальцы для работы со следующими клавишами: Shift, Tab, [, ], {, }, |, ,`, ~, Return, Delete, да и ещё с некоторыми. А мои мизинцы больше не устают так, как раньше!).
- (Необязательное пожелание) Форма клавиатуры должна соответствовать анатомическим особенностям кисти. Если взглянуть на форму наших рук, то ясно, что в плоских клавиатурах нет никакого смысла. Искривлённые клавиатуры, повторяющие форму рук, гораздо удобнее обычных.
После того, как я провёл некоторые изыскания, я решил сделать себе клавиатуру Dactyl Manuform 5×7.
Процесс создания клавиатуры
Не буду вдаваться тут в мелкие детали, опишу лишь общий ход работ. Процесс создания клавиатуры можно представить в виде четырёх основных этапов:
- Создание корпуса клавиатуры. У меня уже есть некоторый опыт 3D-печати, поэтому я решил сам напечатать части корпуса клавиатуры. В большинстве подобных проектов, которые мне доводилось видеть, тоже используется 3D-печать.
- Установка переключателей (механизмов клавиш) и верхушек клавиш в корпус. Механические переключатели клавиш можно во множестве найти в интернете. Большинство корпусов самодельных клавиатур спроектировано так, чтобы в них можно было бы установить стандартные клавиши. Я, в итоге, остановился на этих переключателях. Они подойдут тем, кому нужна достаточно тихая клавиатура, обеспечивающая хорошие тактильные ощущения.
- Пайка. Это, вероятно, самая сложная часть работы, так как в проводах довольно просто запутаться. При создании «проводной» части клавиатуры строят решётку из проводников, к которой и подключаются клавиши. У переключателей имеется по два штырька. Один подключается к проводу напрямую, а второй — через диод (электрический аналог клапана одностороннего действия). Затем решётка из проводов подключается к микроконтроллеру (к миниатюрному компьютеру), который запрограммирован так, чтобы определять то, какая именно клавиша нажата, анализируя прохождение электрического тока по решётке.
- Прошивка устройства. На этом шаге на микроконтроллер устанавливают программное обеспечение. Большинство тех, кто создаёт самодельные клавиатуры, используют на данном этапе QMK.
Трудности
- Печать клавиатуры заняла немало времени (24 часа). Любая ошибка в процессе печати может привести к серьёзным потерям времени и пластика для 3D-печати. Я, когда делал мою вторую модель клавиатуры, решил использовать полупрозрачный пластик. Но он оказался гораздо более хрупким, чем тот, к которому я привык. Когда я снимал первую готовую деталь корпуса со стола принтера, она разломилась пополам. Это была одна из тех немногих ошибок, которые я совершил при печати корпуса клавиатуры.
- Пайка — непростое дело, если, как я, не очень-то умеешь паять. Я часто обжигался, расплавил в нескольких местах корпус клавиатуры. Очень сложно было добраться до мест пайки, расположенных в некоторых из углов корпуса.
- Иногда переключатели не очень хорошо входят в предназначенные для них отверстия. Поэтому порой приходится тратить немало времени на возню с напильником и на подгонку деталей.
- Если попытаться сэкономить и купить дешёвый микроконтроллер, вроде того, что купил я, может случиться так, что если этот контроллер прижать чуть сильнее, чем нужно, от него отвалится питающий кабель.
- После того, как клавиатура готова, ещё в течение нескольких месяцев может случаться так, что какие-то контакты в её проводной части вдруг, посреди рабочего дня, перестают работать. Поэтому вместо того, чтобы заниматься своими обычными делами, приходится тратить время на поиск проблем в электрических цепях клавиатуры.
- С первого раза разобраться с проводами и деталями, которыми набита клавиатура, может быть не так уж и просто. (Я, когда впервые паял клавиатуру, подключил диоды параллельно, а не последовательно).
Результаты
В итоге могу сказать, что несказанно рад тому, что у меня получилось. Мне настолько нравится моя новая клавиатура, что я, на самом деле, сделал две таких. Одну — для работы, а вторую — для дома. Проект, в результате, оправдал все возложенные на него ожидания. У меня возникает ощущение, что, используя группы клавиш под большими пальцами, я могу быстрее писать код. А работать с моей клавиатурой гораздо удобнее, чем с обычной. Так как клавиатура хорошо показывает себя вот уже несколько месяцев, я сказал бы ещё, что её со всей уверенностью можно отнести к рабочим и полезным результатам применения 3D-принтера.
Интересно то, что необычная клавиатура на моём столе хорошо повлияла на социальную составляющую моей жизни. Она играет роль интересной темы для разговоров, людям нравится её разглядывать и пробовать, для чего я часто открываю текстовый редактор. Ещё я сильно, сильнее, чем заслуживаю, укрепил свою репутацию гика, что помогает мне, когда я сыплю на работе техническими жаргонизмами, которые и сам не очень-то понимаю. Люди полагают, что если я создал клавиатуру — значит я что-то соображаю в том, что говорю, когда речь идёт о коде, который я пытаюсь соорудить.
Вот — STL-файлы для печати подставок под запястья, а вот — файлы для печати корпуса клавиатуры.
Я определённо рекомендую этот проект всем, кто пользуется клавиатурой!
Какой клавиатурой вы пользуетесь? Хотите сделать себе какую-нибудь особенную клавиатуру?