LINUX.ORG.RU

Домашнее рабочее место и самосборная 12x4

 


6

3

В бОльшей степени это сообщение для r3lgar, ибо говорил что покажу ему раскладку по слоям на самосборной клаве.

Но тема где мы это обсуждали перенесена в архив + вдруг кому ещё будет интересно.

Так что уже выкладываю все внутренности девайса.

Альбом со всеми фотками: https://imgur.com/a/d12Tlhr

На общей фотке домашнее рабочее место, ничего особенного кроме клавы - ноут, наушники, мышь под точкой фотографирования. Фоткать не умею, так что пардон если что.

По конструкции:
Основная пластина - бывшая материнка от ноута Fujtisu-Amilo, пилил лобзиком.
Нижняя пластина - кусок нижней части корпуса какой-то дешёвой поломанной клавы.
Электроника верха и низа соединяется линейными/полосными/однорядными коннекторами (или как они правильно называются).
Капсы на разных фотках разные, на момент сборки не было более дешёвых, в данный момент (и как финальный вариант) стоят те что на общей фотке, поверх ноута. Их брал подешёвке как остатки у кого-то с deskthority. Те что подороже - будут на следующей клаве.
Чтоб сделать low-profile пришлось модифицировать сами свитчи.
Свитчи самые дешёвые с АлиЕкспресс на тот момент - gateron brown, по ощущениям так себе, зато без клика и никому не мешают спать.
На нижней стороне клавы есть нескользящие нашлёпки.
Высота от поверхности размещения клавы до верха капсов - 27-29мм.
2 USB раъзёма на случай если один случайно выломается, а чинить некогда / негде / нечем.
Reset для контроллера (на предпоследней фотке альбома) - micro-switch из старой мыши, ножки согнул и запаял прямо в GND и RST.
Контроллер тоже с Али, один из клонов с 32u4, тот что дешевле 5 долларей.

По слоям раскладки:
В этой схеме кое что не оптимально и дубликаты, но она мне подошла для несложного перехода от full-size к 12x4.
Готовые раскладки типа Planck или Preonic вообще не зашли.
Расположение «]» позволило впихнуть всю кириллицу в базовый слой.
Двойная кавычка во втором слое под «del» нужна только для команд вима "+p и "+y, чтоб "+ нажимать в одном слое.
Везде где нарисованы по два символа - нужен Shift чтоб печатать верхние символы.
Правые Ctrl и Shift нужны исключительно для утилит где перевод на новую строку происходит через Ctrl+Enter и Shift+Enter, чтоб не тянуться одной рукой через всю клаву + привык эти комбинации жать правой рукой.
Кстати Esc и Enter жму теми частями ладоней откуда начинаются мизинцы, внезапно оказалось удобно.
Из недоделок - придумать чтоб знаки препинания в любой языковой раскладке были всегда на одном месте и найти удобное место для кнопки контекстного меню.

>>> Просмотр (986x690, 740 Kb)

★★★★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 6)

Ответ на: комментарий от q11q11

Я знаю, что значит NKRO. Это было два отдельных вопроса :)

Первый касается матрицы подключения N-клавиш к ограниченному количеству портов в arduino, а второй - прерываний.

Crystal_HMR ★★★
()
Ответ на: комментарий от Crystal_HMR

Последний раз эту теорию я читал пару лет назад и для моих запросов этого хватает, но возможно уже есть методы и посвежее.
Если кратко - матрица ROWSxCOLS, кнопки в колонках соединены последовательно, в рядах на каждой кнопке диод (ориентированный «от кнопки») и за диодом идёт последовательно (фотка для наглядности), один ряд/колонка = одна нога контроллера (в моём случае 12 + 4 заняло 16 доступных ног на ProMicro, но не все ноги можно использовать во всех софтинах, например PCINT6 нельзя в EasyAVR, а RX/TX можно), с некоторой частотой идёт опрос всех ног на предмет замыканий, диоды предотвращают ghosting и masking, NKRO делается софтом, насколько я знаю используется 3 буффера (прошлое, настоящее, будущее) которые постоянно циклично обновляются с частотой опроса, в usb уходят данные из «настоящего», «будущее» это точто ты нажал, но оно ещё не ушло, «прошлое» вроде как надо только для сравнения состояний, USB не поддерживает больше чем 6KRO, но при правильном использовании частоты можно просто выдавать «настоящее» кусками по 6 кейкодов, для пользователя такое разделение будет в общем-то незаметно, особенно если учесть что для подавляющего большинства людей не возникает необходимости нажимать так много кнопок одновременно.

На тему софта - https://www.reddit.com/r/MechanicalKeyboards/wiki/firmware

Ну и если по вопросам :)

как вы в самопалах решаете проблему с NKRO?

используем готовый фирмварь

Сколько одновременно нажатых клавиш может оно обрабатывать?

в теории - все, по крайней мере на том что я тут показал пробовал нажимать смартфоном (маленький, htc200), покрыло кусок в 6x3 кнопки (qwerty на qaz) - напечатались все 18 различных букв, но не по порядку.

Можно как-то запилить, что бы при нажатых одновременно «а» и «о» (например) писалось не «аооооооооооо» как в обычных клавах, а «аоаоаоаоаоаоао»?

в теории можно, но надо софт переделывать

Как ведет себя ардуина с этим?

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

q11q11 ★★★★★
() автор топика
Последнее исправление: q11q11 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.