Клавиатура своими руками под свои руки, 65 фото+ много текста, сообщу

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (5) [1] 2 3 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
NikitaIzh
20.04.2013 - 17:32
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
245
Для меня всё началось с топика о механических клавиатурах, желания научиться печатать быстрее (к своему стыду до недавних пор печатал двумя пальцами, несмотря на 25летний стаж программирования), и появившихся недавно неприятных ощущений в кистях после рабочего дня (да и вообще времени, проведённого за компьютером).
Провёл короткое исследование о том, что вообще есть из клавиатур для программистов и тех, кто много печатает, и написал вот этот обзорный топик. Купил себе Happy Hacking Lite (минималистичная клавиатура с мембранными переключателями), но печатать на ней оказалось ещё менее удобно, чем на ноутбучной, в основном из за ещё более компактного расположения клавиш.
Вскоре появился топик, в котором автор рассказывал о новоприобитённой им Truly Ergonomic, пожалуй, практически идеальной клавиатуры с моей точки зрения, но в комментариях автор же отметил, что спустя два месяца использования так и не смог совсем пересесть на неё, а положение рук совсем не так и удобно, как рекламируется.
Чуть позже появился топик о Kinesis Advantage, по отзыву автора к которой тоже не так легко привыкнуть, а цена так и просто пугает.

Клавиатура своими руками под свои руки
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
NikitaIzh
20.04.2013 - 17:32
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Изыскания


По ссылке из первого топика я вышел на сайты фанатов любителей клавиатур, американский и европейский, на которых люди доделывали, переделывали и делали клавиатуры с нуля. Я заштудировал их, узнал всё (о многом я расскажу в этом топике), что нужно для сборки клавиатуры с нуля, заказал все нужные детали и инструменты, и стал ждать.
Список необходимого — ниже, а пока для затравки расскажу о двух наиболее интересных проектах эргономических клавиатур, которые я нашёл, и которые и вбили в мою голову мысль «Я тоже могу».

BlueCube

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:33
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
ErgoDox


Клавиатура, прошедшая эволюцию от Key64, через DoxKB, и дошедшая до стадии массового производства (правда, со самостоятельной сборкой из деталей) по цене в $200.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:33
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Проектирование


Обе клавиатуры из предыдущего раздела отличаются от типичных клавиатур тем, что в них заметно меньше клавиш. Это сделано за счёт отказа от блока цифровых клавиш, блока стрелок и блока функциональных клавиш. Стоит задуматься, так ли уж они часто используются, и нельзя ли вместо F1 нажимать Fn-1 или какое-то другое сочетание клавиш.
Клавиши на BlueCube, Ergodox расположены ровными колонками, а не ровными рядами. Такое же расположение клавиш используется и в Truly Ergonomic, TypeMatrix и ещё нескольких клавиатурах. Сделано это по двум причинам, во-первых — разница в длине пальцев, средний типично длиннее остальных, а мизинец — короче, и им всем не слишком удобно лежать на одном ряду. Во-вторых, при использовании метода быстрой десятипальцевой печати, если положить указательные на клавиши с засечками, F и J, а остальные на клавиши по бокам от них, попробуйте достать безымянным пальцем левой руки до клавиши X, не двигая остальных пальцев, или средним левой руки до клавиши C. Расположение клавиш ровными колонками решает обе эти проблемы.
Ещё один важный момент, используемый в BlueCube, это совмещение клавиш модификаторов с такими клавишами, как пробел, Tab и т.п. следующим образом: если клавиша нажата одиночно, то результирующий символ — пробел, а если клавиша зажата, а в этот момент нажата, а потом отпущена, другая клавиша, например 'q', то первая клавиша интерпретируется как модификатор, например, Shift, и результирующим символом получается Q.
Стоит также заметить, что большой палец, который практически не используется при печати на обычной клавиатуре, тут задействован больше, аналогично клавиатурам от Maltron и Kinesis. Однако, блок клавиш под большие пальцы не кажется таким уж удобным, что на ErgoDox (и аналогичный на Maltron и Kinesis Advantage), так и на BlueCube, где их приходится загибать аж до основания мизинца.
Поскольку ничто не сдерживало меня в том, как будет выглядеть клавиатура, я решил просто положить руки на бумагу, и понять, куда мне бы было удобно доставать пальцами, не слишком сильно перемещая кисти рук. В итоге у меня получился вот такой набросок:

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:33
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
который я тут же перенёс в векторный редактор, но уже с клавишами, на которые нанёс и символы, расположив их более-менее традиционно:


Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:34
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Итого у меня получилось, что пальцы достают до 50 клавиш, и вроде бы как все нужные клавиши на местах (хотя и не всегда на своих, если смотреть с точки зрения традиционных раскладок). Достаточно ли будет 50ти клавиш, учитывая то, что на традиционных клавиатурах 104 клавиши (в крайнем случае 87, в варианте без блока цифровых клавиш)? С использованием модификатора Fn это становится возможным, ведь сочетания букв и Fn обычно не используются, и можно на них повесить всё, что не влезло, но по каким-то причинам нужно, например, стрелки, Home, End, PgUp и PgDn.
Коричневые квадраты под запястьями обозначают мягкие подкладки.
Индикаторы? Я не пользуюсь Caps Lock'ом, отдельного цифрового блока нет, так что не нужен и NumLock, а для чего нужен ScrollLock многие, наверняка даже и не знают. Так что отметаю индикаторы.
Слегка смущает блок клавиш под мизинец, если вдруг кто-то другой решит воспользоваться моей клавиатурой, его мизинец сможет оказаться короче моего семиоктавного, поэтому блок под мизинец я решил сделать поворачивающимся, от такого, как на рисунке, до параллельного другим колонкам клавиш.
Ещё один аспект — это естественное положение рук, которое скорее ближе к вертикальному расположению ладоней, нежели к положению ладонями вниз, к которому мы все привыкли. Это одна из причин, по которым я не купил клавиатуру Truly Ergonomic и не успокоился. Это склоняет к тому, чтобы сделать клавиатуру разделённой на две половинки, как Kinesis Freestyle и Ergodox с BlueCube'ом, и наклонённой.

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

Детали


Краткий список того, что нужно:

— клавишные переключатели;
— колпачки на переключатели;
— диоды (зачем они нужны — чуть позже);
— микроконтроллер, позволяющий клавиатуре быть USB устройством, и считывающий состояние переключателей;

Плата


Поскольку шанс на безошибочное проектирование печатной платы с первой попытки для себя оцениваю, как крайне низкий, с ЛУТом и фоторезистом опыта не имею, цену на производство под заказ в единичном объёме — высокой, то решил сделать навесную проводку. Материал — текстолит, использующийся в обычных печатных платах. У друга, по счастью, залежались несколько пластин стеклотекстолита, которые я и одолжил. Шикарный материал, по удобству использования сравнимый только с синей изолентой.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:34
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Микроконтроллер


Несмотря на свой юношеский задор по поводу светлого будущего ARM-контроллеров, я тем не менее выбрал устройство на базе более традиционного AVR. Из наиболее подходящих для данного применения был выявлен Atmega32u4, с 32КБ ПЗУ, достаточным количеством портов ввода-вывода, работающий в режиме ведомого USB устройства, а также умеющий общаться по I2C. То, что клавиатура будет без традиционной печатной платы, привело к необходимости взять контроллер на выносной плате, и я выбрал наиболее компактный — Teensy. Вариантов достаточно много, даже от того же производителя, и даже есть отечественные аналоги, хотя они почему-то дороже.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:34
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Переключатели


Выбор клавишных переключателей заключался лишь между механическими от Cherry, марки известной многим по клавиатурам, и многочисленными китайскими клонами ныне не выпускающихся переключателей Alps.
Cherry выпускает две основные линейки переключателей, низкопрофильные Cherry ML, и более часто используемые MX, выпускаемые в следующих основных модификациях:
— чёрные (линейной силы нажатия, средней упругости, не щёлкающие);
— красные (линеные, лёгкие, не щёлкающие), популярны в игровых клавиатурах;
— серые (тактильные, упругие, не щёлкающие);
— прозрачные (тактильные, средней упругости, не щёлкающие);
— зелёные (тактильные, средней упругости, щёлкающие);
— голубые (тактильные, лёгкие, щёлкающие);
— коричневые (тактильные, лёгкие, щёлкающие);
— белые (тактильные, средней упругости, умеренно щёлкающие).

Исходя из личных предпочтений, мне понравились прозрачные.
Отличаются переключатели ещё способом установки. Есть вариант для монтажа на печатную плату, и для монтажа на дополнительную пластину. У первых есть два дополнительных столбика для большей устойчивости, а вторым для устойчивости нужна дополнительная пластина. В эту дополнительную пластину можно защёлкивать и первый вариант.
Существует ещё множество модификаций MX, но это одна из тех деталей, которые приобрести не так просто, либо не так дёшево, тем более в малых количествах, а в не слишком популярных модификациях — и подавно. На Ebay их продают чуть не по 4 доллара за штуку, у поставщиков электронных компонент выбор совсем мал. Замечательно то, что на клавиатурных форумах организовывают групповые покупки, в одну из которых я и вписался. К сожалению, нужно было либо ждать, либо брать, то, что есть, и я взял голубенькие (выбирая из красных, коричневых и голубых), в варианте с установкой на печатную плату.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:34
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Колпачки


Изначально я хотел купить какую-нибудь старую механическую клавиатуру, выпаять из неё переключатели и снять колпачки, но так ничего путного и не нашёл.
Раз уж покупать новые — так выбирать. Хороший выбор у WASD Keyboards, я решил попробовать взять разные клавиши, и взял набор из 39 клавиш алфавитного блока, и два набора цветных на пробу, к которым в комплекте идут также клавишные демпферы для уменьшения щёлкающего эффекта (щёлкающего эффекта колпачков по плате, а не внутреннего щёлкающего эффекта переключателя). Также нужны клавиши увеличенного размера, и я взял несколько клавиш, обычно использующихся как Tab (1.5x), Alt (1.25x) и Caps Lock (1.75x), разных цветов.
Сейчас в основном используются колбачки цилиндрической формы, у которых каждый ряд клавиш имеет свой профиль.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:35
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
У меня в наборах не оказалось ни одной клавиши из цифрового ряда E:

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:35
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
...

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:35
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
«Лего для взрослых»


Детали и инструменты.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:35
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Макет


Железо


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

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:36
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Рука (левая, я решил поступить по принципу примерки обуви) лежит удобно, достаёт до всех клавиш. Решено, продолжаю.

Микроконтроллер


Teensy идёт с зашитой прошивкой под названием «мигающая лампочка». Удивительно, но при подключении его USB шнуром к компьютеру, маленький диодик действительно начинает моргать. На сайте есть ещё одна прошика для примера, называющаяся «быстро миграющая лампочка», я скачал её и залил на устройство, и лампочка действительно стала мигать быстрее. Залил изначальную — опять медленее. Ну что ж, вполне неплохо, стробоскоп уже можно делать.
Небольшие копошения с исходниками примера с сайта под названием «USB клавиатура», и каждые 8 секунд на экране печатается символ пробела, а при замыкании GND с любым из входов на экране появляются два символа, обозначающи порт и номер ноги, например B1. Ток мизерный — 135мкА. Ещё удача.

Теория


Как же подключить 50 (а на обычных клавиатурах вдвое с лишним больше) клавиш к микроконтроллеру с 25 портами ввода-вывода, оставив несколько на такие вещи, как мышь?
Всё достаточно просто, нужно распределить клавиши по рядам и колонкам, сформировав матрицу. Подавая напряжение на колонку A, и сняв это напряжение с рядов 2 и 3, можно понять, что сейчас клавиши на пересечении этих рядов и этой колонки находятся в нажатом состоянии. Напряжение подаётся на колонки поочерёдно. Таким образом, грубо говоря, не нужно количество портов ввода-вывода равное количеству клавиш, а достаточно квадратного корня из этого количества, в моём случае — 8x7, то есть 8 выходов и 7 входов (или наоборот).

Однако, у этого метода есть один серьёзный недостаток, проявляющийся в блокировании и пропадании нажатий:

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:36
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
На этом рисунке видно, что при нажатых клавишах W, E и D, и при напряжении, поданном на колонку B, происходит ложное срабатывание клавиши S. Бороться с этим явлением и призваны диоды:

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:36
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Вдобавок к этому, стандарт USB привносит серьёзное ограничение для подключаемых к нему устройств печатного ввода, в 6 одновременно нажатых (не-модифицирующих) клавиш. Некоторые производители обходят это ограничение, эмулируя подключение нескольких USB устройств. Честно говоря, сталкивался с этим ограничением только по юности, когда денег на MIDI клавиатуру не было, а хотелось сыграть жирный аккорд. Но так, на заметку.

Небольшая пауза на раздумье

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:36
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
...

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:37
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Мне в разные моменты начинало казаться, что клавиш слишком много (да-да, как бы это смешно ни звучало при всего 50ти клавишах!). И когда я заказал всего 50 переключателей без всякого запаса, и когда пытался дотянуться мизинцами до крайних четырёх клавиш на макете, и когда начал думать о том, что седьмая колонка клавиш поведёт за собой необходимость тянуть между половинками клавиатуры дополнительный провод вдобавок к шлейфу. Вдобавок ко всему на этих изначально планируемых клавишах должны были расположиться Escape, Tab, Backspace и Enter, которые уже есть на клавишах под большие пальцы. Дублировать особого смысла нет. И если уже привыкать к новой клавиатуре, так сразу, без путей отступления.

Схема


Схема настолько проста, что даже нет особого смысла её рисовать.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:37
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Колонки и строки в матрице соответствуют клавишам, клавиши блока большого пальца — четвёртый ряд.
Подаём напряжение с колонки на все входящие ноги переключателей этой колонки. С выходящей ножки переключателя — на анод диода. Выходы с катодов всех переключателей в строке соединяем, и подключаем к входу строки.
Для правой половины клавиатуры требуется 6 выходов и 4 входа, на левой — ещё 6 выходов, а входы можно использовать те же. Получается матрица 12x4, итого аж 18 входов-выходов, что несколько неэкономично. Буду использовать матрицу 6 на 8, которую легко представить, как одну половину клавиатуры, расположенную не слева, а снизу от другой, итого получается 14 портов ввода-вывода.
Получается, что в левую половину клавиатуры нужно будет вести 10 жил. Купленные мной штырьковые разъёмы всего на 10 жил, и их ровно-ровно хватает.

Ножки на контроллере могут быть в двух режимах: вход или выход. Вход может быть открытым, в этом случае, если он не замкнут, он может шуметь, и лучше перевести его в режим с включённым встроенным подтягивающим резистором, чтобы в случае, если он не замкнут на землю, он всегда был в состоянии 1. Выходы ставим по умолчанию с состояние 5В, а во время чтения конкретной колонки опускаем до 0В, чтобы при его замыкании со входом последний переходил в состояние 0, означающее нажатие кнопки. Такой вариант подключения приводит к некому недоразумению в виде того, что ток «течёт» от входов в к выходам.
Существуют и другие варианты подключения, где всё более-менее логично, но они предусматривают дополнительные внешние элементы, такие как один на все выходы или несколько внешних резисторов (для экономии портов с чтением через АЦП), но мне кажется, что если есть контроллер с достаточным количеством портов, он и сам должен справляться с тем, как у него какую ножку куда замкнули, поэтому — самый простой вариант, хотя на первый взгляд и не самый понятный.
Ножки микроконтроллера на Teensy выведены не все, а те, что выведены — идут вразнобой. Из «цельных» портов есть только B. Частично выведенные — F (нет ножек F2, F3), D (две ножки на нижнем торце платы, не имеют собственно ножек, а ещё два совмещены с I2C, C (есть только ножки C6 и C7).

На микроконтроллере используем ножки PF0, PF1, PC6, PC7, PF4-PF7 используем под выходы, PB0-PB5 под входы (с подтягивающим резистором). Оставляем ножки PD0 и PD1 под I2C, который пригодится позже для подсоединения мыши/трекпоинта. Ножку PD6 не трогаем, потому что она соединена с размещённым на плате светодиодом, который может питаться током, поданным на эту ножку, и опускать напряжение с 5В до ~1.7В.

Железо


Плата


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

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:37
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
На текстолите остаются занятные узоры, позволяющие понять, как именно фольга снималась.


Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:38
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Очень рекомендую одевать перчатки, а снимать фольгу пасатижами, в противном случае царапины неизбежны.

Сверление


Я сделал набросок того, как переключатели должны располагаться на плате (платах, ибо получается как минимум 4 куска, а для лучшей компоновки на текстолите аж 6 кусков). Для того, чтобы они на ней закрепились, плату нужно просверлить. Для каждого переключателя это 7 отверстий, два по 0.8мм, два по 1.2мм, два по 1.6мм, и одно, центральное 4мм.
Сверлить сразу по распечатке не слишком удобно, поэтому из старой алюминиевой задней крышки мобильника я сделал трафарет:

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:38
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Резать и сверлить алюминий дело непростое, он греется, летит во все стороны, поэтому рекомендую использовать специальные защитные очки. Как и во время проведения других операций.
Вот как выглядит переключатель, вставленный в трафарет.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:38
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
...

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:38
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
Увы, кулачковый патрон дрели предназначен для свёрел c хвостиком максимального диаметра 3.4мм, но сверло на 3.5мм вполне устойчиво закрепилось. Для высверливания им отверстия 4мм пришлось совершить несколько круговых движений. Не рекоммендую повторять такое.
Сверлил изначально на деревянной подложке, и где-то на сотом отверстии сверло 0.8мм сломалось под корень, из за того, что текстолит сдвинулся относительно подложки в тот момент, когда сверло было опущено. Позже сверлил так, что под тектолитом ничего не было.

Клавиатура своими руками под свои руки
 
[^]
NikitaIzh
20.04.2013 - 17:39
Статус: Offline


Рекламное место свободно

Регистрация: 23.10.12
Сообщений: 1804
...

Клавиатура своими руками под свои руки
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 42887
0 Пользователей:
Страницы: (5) [1] 2 3 ... Последняя » [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх