[Перевод] Самодельная клавиатура

В прошлом году мне попалось выступление Мэтта Адерета про использование Clojure для создания прошивок, предназначенных для самодельных клавиатур.

Хотя этот доклад делался на конференции, посвящённой Clojure, я полагаю, что его стоит посмотреть любому, у кого есть склонность к программированию и к технике.

obrw73_lbvki4fwgnsbxizvskri.jpeg

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

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

  • Оптимизация. Я — программист и много работаю за клавиатурой. Учитывая то, что клавиатура — это инструмент, которым я пользуюсь каждый день, даже небольшие улучшения в эффективности её применения способны ускорить мою работу и снизить время, необходимое на то, чтобы мои мысли превратились бы в программный код.
  • Улучшение эргономики. Я уже искал эргономичную клавиатуру, так как заболевания, вызванные повторяющимися движениями, довольно широко распространены среди программистов. Несколько заинтересовавших меня моделей, которые можно купить, стоят довольно дорого (например — Kinesis за примерно $300). Я понял, что если смогу создать собственную клавиатуру — значит — у меня может получиться что-то такое, что отличается отличной эргономичностью.
  • Полезное применение 3D-принтера. Заветная мечта каждого владельца 3D-принтера — сделать с его помощью что-то осмысленное. Что-то, что будет работать и приносить пользу. Есть одна известная шутка про 3D-принтеры, которая заключается в том, что тот, кто обзавёлся таким принтером, всё время печатает какие-то детали для самого этого принтера, но не делает ничего другого, имеющего хоть какую-то ценность.


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

  1. Клавиатура должна быть ортолинейной (клавиши должны быть расположены прямо, а не в шахматном порядке). Пальцы, когда их сгибают и разгибают, двигаются по прямой. Поэтому имеет смысл обзавестись клавиатурой, клавиши на которой расположены в виде прямых колонок и рядов. Попробуйте сжать и разжать пальцы — и вы сами увидите то, о чём я говорю.
  2. Клавиатура должна быть разделённой. Использование такой клавиатуры позволяет расположить запястья и предплечья под такими углами, которые удобны для конкретного человека. Обычные клавиатуры принуждают нас размещать руки так, чтобы их положение соответствовало бы устройству клавиатуры, что вызывает ненужное напряжение в руках.
  3. Клавиатура должна иметь группы клавиш, рассчитанные на большие пальцы. Большой палец гораздо сильнее и гибче других пальцев благодаря суставу, который находится в его основании (первый пястно-запястный сустав). Группы клавиш, рассчитанные на большие пальцы, позволяют снять нагрузку по выполнению некоторых операций с других пальцев и перенести её на большие пальцы. Это увеличивает эргономичность клавиатуры, позволяет работать с ней гораздо эффективнее, чем с обычными клавиатурами. (После того, как я поработал с готовой клавиатурой, могу сообщить о том, что способен использовать большие пальцы для работы со следующими клавишами: Shift, Tab, [, ], {, }, |, ,`, ~, Return, Delete, да и ещё с некоторыми. А мои мизинцы больше не устают так, как раньше!).
  4. (Необязательное пожелание) Форма клавиатуры должна соответствовать анатомическим особенностям кисти. Если взглянуть на форму наших рук, то ясно, что в плоских клавиатурах нет никакого смысла. Искривлённые клавиатуры, повторяющие форму рук, гораздо удобнее обычных.


После того, как я провёл некоторые изыскания, я решил сделать себе клавиатуру Dactyl Manuform 5×7.

image-loader.svg


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


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

  1. Создание корпуса клавиатуры. У меня уже есть некоторый опыт 3D-печати, поэтому я решил сам напечатать части корпуса клавиатуры. В большинстве подобных проектов, которые мне доводилось видеть, тоже используется 3D-печать.
  2. Установка переключателей (механизмов клавиш) и верхушек клавиш в корпус. Механические переключатели клавиш можно во множестве найти в интернете. Большинство корпусов самодельных клавиатур спроектировано так, чтобы в них можно было бы установить стандартные клавиши. Я, в итоге, остановился на этих переключателях. Они подойдут тем, кому нужна достаточно тихая клавиатура, обеспечивающая хорошие тактильные ощущения.
  3. Пайка. Это, вероятно, самая сложная часть работы, так как в проводах довольно просто запутаться. При создании «проводной» части клавиатуры строят решётку из проводников, к которой и подключаются клавиши. У переключателей имеется по два штырька. Один подключается к проводу напрямую, а второй — через диод (электрический аналог клапана одностороннего действия). Затем решётка из проводов подключается к микроконтроллеру (к миниатюрному компьютеру), который запрограммирован так, чтобы определять то, какая именно клавиша нажата, анализируя прохождение электрического тока по решётке.
  4. Прошивка устройства. На этом шаге на микроконтроллер устанавливают программное обеспечение. Большинство тех, кто создаёт самодельные клавиатуры, используют на данном этапе QMK.


Трудности


  1. Печать клавиатуры заняла немало времени (24 часа). Любая ошибка в процессе печати может привести к серьёзным потерям времени и пластика для 3D-печати. Я, когда делал мою вторую модель клавиатуры, решил использовать полупрозрачный пластик. Но он оказался гораздо более хрупким, чем тот, к которому я привык. Когда я снимал первую готовую деталь корпуса со стола принтера, она разломилась пополам. Это была одна из тех немногих ошибок, которые я совершил при печати корпуса клавиатуры.
  2. Пайка — непростое дело, если, как я, не очень-то умеешь паять. Я часто обжигался, расплавил в нескольких местах корпус клавиатуры. Очень сложно было добраться до мест пайки, расположенных в некоторых из углов корпуса.
  3. Иногда переключатели не очень хорошо входят в предназначенные для них отверстия. Поэтому порой приходится тратить немало времени на возню с напильником и на подгонку деталей.
  4. Если попытаться сэкономить и купить дешёвый микроконтроллер, вроде того, что купил я, может случиться так, что если этот контроллер прижать чуть сильнее, чем нужно, от него отвалится питающий кабель.
  5. После того, как клавиатура готова, ещё в течение нескольких месяцев может случаться так, что какие-то контакты в её проводной части вдруг, посреди рабочего дня, перестают работать. Поэтому вместо того, чтобы заниматься своими обычными делами, приходится тратить время на поиск проблем в электрических цепях клавиатуры.
  6. С первого раза разобраться с проводами и деталями, которыми набита клавиатура, может быть не так уж и просто. (Я, когда впервые паял клавиатуру, подключил диоды параллельно, а не последовательно).


Результаты


В итоге могу сказать, что несказанно рад тому, что у меня получилось. Мне настолько нравится моя новая клавиатура, что я, на самом деле, сделал две таких. Одну — для работы, а вторую — для дома. Проект, в результате, оправдал все возложенные на него ожидания. У меня возникает ощущение, что, используя группы клавиш под большими пальцами, я могу быстрее писать код. А работать с моей клавиатурой гораздо удобнее, чем с обычной. Так как клавиатура хорошо показывает себя вот уже несколько месяцев, я сказал бы ещё, что её со всей уверенностью можно отнести к рабочим и полезным результатам применения 3D-принтера.

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

Вот — STL-файлы для печати подставок под запястья, а вот — файлы для печати корпуса клавиатуры.

image-loader.svg


Я определённо рекомендую этот проект всем, кто пользуется клавиатурой!

Какой клавиатурой вы пользуетесь? Хотите сделать себе какую-нибудь особенную клавиатуру?

image-loader.svg

© Habrahabr.ru