самодельная клавиатура для компьютера

KeeBee. Изготовление с нуля собственной USB-клавиатуры

Несколько месяцев назад завершился мой проект по изготовлению USB-клавиатуры. Среди прочего, я выполнил дизайн электронных схем, спроектировал печатную плат, запрограммировал прошивку, сделал макет в CAD и произвёл сборку устройства. В результате получилась удобная клавиатура, которую я использую ежедневно и ласково называю KeeBee:

ad2wy9hofgppmzgmk a7fqobizo
Клавиатура KeeBee в окончательном виде

Несколько целей проекта:

Исследование и макет CAD

Мне очень нравятся минималистичные клавиатуры в стиле OLKB Planck и Preonic, которые за счёт ортолинейного расположения клавиш получаются очень компактными. Ещё я сразу знал, что хочу использовать переключатели Cherry MX Brown. Имея виду эти два компонента дизайна, я начал играть с ключевыми макетами в OpenSCAD. Это отличный инструмент с открытым исходным кодом, который работает скорее как язык программирования, чем WYSIWYG-интерфейс для мышки.

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

Дизайн верхней пластины:

image loader

После добавления клавиш:

image loader

image loader

Прототипирование платы и проектирование прошивки

В качестве основного микроконтроллера я выбрал STM32F042K6T6. Это около трёх долларов за чип, если брать от одной штуки. У него достаточно контактов для матрицы сканирования 69 клавиш (всего 32 контакта). Он работает на процессоре ARM Cortex M0 и содержит специальную USB-периферию для отправки USB-сигнала, не загружая этой задачей основной процессор. Я купил dev-плату Nucleo для прототипирования с этим чипом, прежде чем интегрировать его в дизайн своей печатной платы. Nucleo очень удобно легла на макетную плату и запиталась по USB.

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

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

Когда матрица удовлетворительно заработала, пришло время поработать над USB.

Встроенный цикл прошивки по сути такой:

Компонент keyboard.SendReport фактически передаёт пакеты USB-хосту. Я упорно пытался заставить USB правильно работать. В этом протоколе много нетривиальных слоёв, которые требуют точного тайминга и правильной идентификации устройства. В итоге пришлось запустить Wireshark, чтобы прослушать все USB-пакеты, поступающие на мой ноутбук Linux и выяснить, где что потерялось. Поиск в интернете практически ничего не дал, на большинство вопросов отвечают примерно так: «Вероятно, ваше USB-устройство сломалось, нужно купить новое». Если вы на самом деле пытаетесь сконструировать USB-устройство, такие ответы не очень полезны. Мне оставалось только погрузиться в объёмные спецификации USB с большим количеством незнакомой терминологии.

Повозившись некоторое время, я всё-таки заставил клавиатуру с четырьмя клавишами корректно идентифицировать себя как USB HID (Human Interface Device) и все нажатия правильно передавались на ноутбук:

image loader

Регистрация в качестве USB-вендора и получение официального device id дорого стоит. Если у вас просто любительский проект, то придётся захватить идентификатор какого-нибудь похожего устройства. Я подумал, что “Gear Head” звучит круто, тем более они выпускают клавиатуры, поэтому выбрал их.

image loader

Схема и печатная плата

Получив более-менее работающую прошивку и рабочий прототип, пришло время составить схему и дизайн печатной платы в KiCAD и сделать реальную печатную плату. Когда я добился, что схема для 4 кнопок работает, осталась относительно простая задача соединить всё вместе:

image loader

После разработки схему и установки площадок для компонентов нужно произвести макет реальной печатной платы:

image loader

KiCAD умеет красиво рендерить будущую плату в 3D:

image loader

image loader

Есть много отличных учебников по KiCAD. Я начал с отличной видеосерии Getting to Blinkey 4.0 от Криса Гэммела, где он подробно разъясняет все этапы создания схемы светодиодного юлинкера в KiCAD от начала до конца.

Заказ печатной платы и компонентов

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

58zhtqbwaxb5

0eillnhgbfcciaovcjl3hwushyq

Шурин взял DXF-файлы из OpenSCAD и забросил их в лазерный резак:

Окончательная сборка

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

Общее время сборки платы составило около трёх часов — большую часть заняла пайка 70 диодов и переключателей.

Я добавил хедер для JTAG-отладки, через который подключил JLINK Edu mini для прошивки микроконтроллера с помощью OpenOCD.

Затем пришло время окончательного тестирования и финальной сборки:

jntezvouheop oqkcylzgvriaj4

btznnuwjhqasmyfimlchnur8vki

Сын решил, что это отличный поезд для его животных:

uynld1ae660x2w5um nta3rvwvy

zsih4wdyjnnzezye3e06row6zyi

Итоги

От первоначальной идеи до окончательной сборки проект занял около трёх месяцев. Было исключительно полезно в качестве хобби сделать то, что я до сих пор ежедневно использую на работе.

Все файлы проекта опубликованы на GitHub, в том числе исходники прошивки, схемы печатных плат, список материалов и модели CAD.

Источник

Нужна небольшая клавиатура – сделайте её сами

28e0b3e6e153afbe2d993ff2aacbe08d

Если вам нужна клавиатура, вы можете её приобрести. Если вам нужна небольшая клавиатура, то тут всё сложнее. Кроме вариантов с переделкой клавиатуры от Blackberry или возни с крохотными тактильными переключателями, нормальных решений для получения небольших, тонких и специализированных клавиатур нет. Однако есть один вариант: силиконовые клавиатуры. Пока этого никто не делал, поэтому я решил – почему бы и не попробовать.

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

Цель проекта – создать очень маленькую компьютерную клавиатуру для носимых устройств, электронных бейджей, игры в Fortnite на переносном компьютере, или просто для использования в качестве USB-клавиатуры. Такое уже делали раньше. Бейджик для конференции 2018 Hackaday Belgrade Conference использовал 55 стандартных тактильных переключателей, выстроенных в виде клавиатуры. Ещё один проект с Hackaday.io под названием (Pi)QWERTY тоже использовал несколько десятков стандартных тактовых переключателей. Однако у подобных устройств есть свои недостатки.

e27e966b0b8b21ffa5c47aaac99d6d3d
PiMiniQWERTY – наилучшая из самодельных миниатюрных клавиатур

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

Наконец, на кнопках нет маркировки. Если вы будете собирать клавиатуру из 4 мм кнопок, вам придётся делать маркировку на плате. На белградской конференции это было сделано довольно неплохо, а у mini (Pi)QWERTY – блестяще, поскольку там использовали две платы, одну для электроники, вторую для подписей. Можно представить нанесение надписей на кнопки, однако их поверхность и так весьма мала.

Решение: использовать силиконовые клавиатуры, изготовленные методом литья под давлением [injection molding]. Такие клавиатуры есть почти во всех пультах дистанционного управления, они использовались в старых телефонах Nokia типа «кирпич». Силиконовые клавиатуры повсюду, и есть фабрики, изготавливающие их на заказ.

image loader
Силиконовые клавиатуры с TaoBao и AliExpress. Продающие их компании изготавливают их и на заказ.

В использовании силиконовых клавиатур есть много преимуществ. Во-первых, большинство из них используют метки на кнопках. Во-вторых, вы не ограничены 4 мм кнопками. Кнопки могут быть любого размера и любой формы. Собирать их легко; чтобы использовать такую клавиатуру с платой, нужно просто поместить её на плату; всё остальное уже сделано за вас. Наконец, силиконовая клавиатура выглядит круче чем любые кнопки. Так почему же их не используют? В основном, из-за стоимости, однако есть и некоторые проблемы инженерного характера.

Различные типы силиконовых и мембранных переключателей

image loader
Мембранная клавиатура ZX Spectrum

Перед тем, как углубиться в проектирование силиконовых клавиатур, нужно обсудить схемы небольших клавиатур и наборов клавиш. Первые – это клавиатуры Metal Dome, или мембранные. Лучшими примерами таких тактильных мембранных кнопок будут клавиатуры от популярных домашних компьютеров 1980-х, ZX Spectrum или Atari 400. Если посмотреть в других местах квартиры, возможно, такая клавиатура стоит у вас на микроволновке.

Такие клавиатуры располагают кнопки матрицей. Электрическая схема состоит из дорожек, нарисованных токопроводящими чернилами на двух листах полиэстера. Купол из нержавейки располагается под каждой кнопкой. Нажатие на кнопку сжимает купол, и замыкает два слоя полиэстера.

Лучшие изображения мембранной клавиатуры можно взять с одного из своих проектов. Таким мембранам всё равно, как был нажат металлический купол. Простейший вариант – расположить кнопки и буквы прямо поверх мембраны. Кусочек пластика можно наклеить на массив тактильных переключателей. Именно так сделаны клавиатуры в игрушках Speak N Spell и Big Trak [в СССР был аналог такой игрушки, «Луноход» / прим. перев.]. Именно так можно сделать клавиатуру для трёхлетнего малыша, защищённую от арахисового масла.

Однако чистые мембранные переключатели на ощупь очень дешёвые и не дают обратной тактильной связи. Один из вариантов – расположить пластиковые кнопки над мембранным переключателем. Клавиатуры Metal Dome (с металлическим куполом) используют клавиши из жёсткого пластика, нажимающие на небольшие металлические купола, зажатые между двумя слоями полиэстера с проводящими чернилами:

a7b1d6ea18647eaec96cbad9bda3e83b

4bcf0fa3bb40d9336f230cfb82b33085

8d2cdf806ea75424325f662684ce2b0d

af6bdf3497395448585ec98dfd7da912

506100a81c03c2c186eccd7ba08ad8cc

Но мембранным клавиатурам не обязательны жёсткие пластиковые кнопки. Можно использовать мягкие силиконовые, поверх мембранной клавиатуры, как сделано на ZX Spectrum. Вместо жёстких пластиковых прямоугольников, как у меня в проекте Metal Dome, Speccy использовали единое полотно из силиконовых кнопок. ZX Spectrum использовал силиконовые кнопки на своей клавиатуре, но это всё равно была мембранная клавиатура. Нет разницы, как нажимать металлический купол – через лист пластика с напечатанными символами, или силиконовыми прямоугольниками.

Другой тип клавиатуры – такая, которую я сделал для этой статьи – это силиконовая, или резиновая клавиатура.

e277f36f95c181ac3efa47c730f806ec
Вездесущий мембранный кейпад для Arduino

Резиновая клавиатура использует силиконовые кнопки, изготовленные методом литья под давлением, нажимающие на контакты. Углеродный контакт («таблетка») встроен в силиконовую кнопку, а контакты для клавиатурной матрицы создаются из дорожек на печатной плате. Контакты можно интегрировать в плату (рекомендуется технология ENIG) или напечатать поверх токопроводящими чернилами. В любом случае, клавиатура состоит из печатной платы, силиконовых кнопок с проводящими контактами под каждой кнопкой, маленьких проводящих углеродных контактов в каждой кнопке, и гнёзд для закрепления силикона на плате.

Выбирая между мембранной и резиновой клавиатурой, стоит рассмотреть несколько моментов, и многие из них способны перевесить чашу весов в пользу мембранной. Хотя резиновые клавиатуры можно делать многих цветов, символы на мембранной клавиатуре, по сути, печатаются; на мембраной клавиатуре можно сделать любые символы любых цветов. Мембранные клавиатуры дешевле, поскольку им не нужна форма для литья. Резиновым клавиатурам требуется полоска, содержащая монолитный блок силиконовых клавиш, что означает дополнительная стоимость второй формы для литья. И выигрывает резиновая клавиатура только по тактильным ощущениям. Если вы когда-нибудь пробовали использовать Atari 400, вы согласитесь: на резиновых клавиатурах гораздо проще печатать. А ещё они более стильные, чем мембранные.

Текущие проекты

7478fcefbc59244efdf66d418fb83346
Не специализированная резиновая клавиатура, которую можно использовать хоть сейчас

На сегодня мне неизвестны случаи использования специализированных резиновых клавиатур малыми тиражами. Они, конечно, существуют в DIY-сообществе: Adafruit продаёт клавиатуры 4х4 (у Sparkfun есть то же самое), и подобные кнопки можно заказать на AliExpress и eBay. Да, конечно, Sparkfun и Adafruit потратились на разработку плат, но сами кнопки, скорее всего, делают где-то далеко-далеко. Это не специализированные клавиатуры; это стандартные готовые клавиатуры для специализированных проектов.

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

И это единственные, насколько мне известно, DIY-проекты, в которых используются силиконовые клавиатуры 4х4. Люди, конечно, пытаются делать что-то ещё. Некоторые из них ищут на форумах резиновые клавиатуры, а кое-кто экспериментирует с алюминиевыми формами для литья, но пока что никому не удалось достичь успеха. Дэйв Джонс отверг идею резиновых клавиатур для своего проекта uSupply и перешёл на специализированные мембранные переключатели.

Разработка клавиатуры, бобышки и отверстия для воздуха

Так из чего же строится создание резиновой клавиатуры? По сути, мы разрабатываем стальную или алюминиевую форму для литья. Форма отправляется в машину для литья под давлением, где её заполняют углеродными шариками, заливают горячим силиконом, который потом вулканизируют. Возможна дальнейшая обработка кнопок – лазерное нанесение меток, шелкография или нанесение эпоксидного покрытия. Проектирование резиновой клавиатуры – это проектирование формы для литья, но базовые компоненты довольно просты. Ниже приведён пример – клавиатура из единственной клавиши – которую я за несколько минут сделал в Fusion360.

image loader

image loader

image loader

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

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

image loader
Силиконовая клавиша в разрезе. Чёрный объект – углеродная таблетка, служащая мостиком между двумя контактами на плате.

4374a8fe1edd88a919b6857b8f7432fb
Размеры моей клавиатуры, в мм.

image loader

После того, как проект клавиатуры был готов, а файлы отправлены на фабрику для изготовления формы и производства нескольких пробных образцов, настало время разработать печатную плату. Для моего проекта схема особого значения не имела – главное, чтобы на плате были близко расположены две дорожки, соединённые с противоположными сторонами клавиатурной матрицы. Для этого рекомендуется технология ENIG. Имеют значение и производственные ограничения: стандартный минимум ширины дорожки и расстояния между ними составляет 0,15 — 0,20 мм, и я разработал плату с дорожками в 0,25 мм и таким же расстоянием между ними.

Закончив клавиатуру и плату, можно переходить к крепёжной полоске. Это перфорированный пластик, прикручивающийся к плате. Резиновая клавиатура зажимается между ним и платой. Я сделал следующий прототип, просто затем, чтобы протестировать клавиатуру. Электроника – просто Teensy LC (была у меня под рукой), с вырезом, дающим доступ к плате для прототипирования:

image loader

image loader

Я отправил эту модель в Shapeways, и клавиатура была собрана. Прошивка на Teensy использует стандартную библиотеку Keypad и представляется компьютеру, как устройство USB HID. Получилась специализированная резиновая клавиатура именно той формы, что мне надо. Это не окончательный вариант, поскольку USB-клавиатура – это просто рабочая концепция для проверки резиновых клавиш, однако она реально работает.

3caf9e8b86de98c09b373a7b590ab81b

1f15070d586b2c1ded31093fd389d7c6

340bbc7671abf088cbc1eeb7503bcf5a

eee53f0a0eec119de75b418a86f1d629

8376c103dcec38c4d03bc7cfbae4dd55

682b4b8c7b483ff583dcbf4d040dca5c

8b90ec56a86d93b5ad2f231f0bd2205e

Раскрою стоимость проекта; стоит учитывать, что выборка тут очень маленькая – я обращался лишь к одному производителю только с одной моделью. Однако из-за сильной конкуренции на рынке, я думаю, что эти цены будут достаточно репрезентативными для средней стоимости специализированной резиновой клавиатуры.

Стоимость получилась следующей:

Изготовление $2 219
Проектирование $600
Банковская комиссия $58
ИТОГО $2 877

С экономической точки зрения всё это имеет смысл при тиражах порядка 10 000

Резиновые клавиатуры подходят для крупных производителей: Samsung продаёт миллионы телевизоров, и у всех них один пульт д/у. Вопрос изготовления резиновой клавиатуры для DIY-проекта всегда оставался открытым. Проекты мелкого масштаба не используют эту технологию, поэтому некого было спросить, имеют ли смысл специализированные силиконовые переключатели. Я говорю, что смысл есть, если вы делаете тысячу клавиатур. На тираже в пять тысяч стоимость резиновой клавиатуры и пластикового крепежа может опуститься меньше стоимости микроконтроллера.

Источник

Подробная инструкция по изготовлению сплит клавиатуры на основе ATmega32U4. Аналог Iris / Jiran своими руками

Моя самоделка

bml hr2fu9y7rbelmygvly6dd8w

Перед изготовлением своей клавиатуры я наметил следующие цели:

hnzusbpm3hj z9kaeaqmjqm36bm

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

Клавиатура с коротким HDMI кабелем:

uyeam3r4cl5u6g bstzq6dsoik0

Подучим термины для понимания дальнейшего текста. Ниже на фото – кнопка, переключатель, свитч. Свитч – англицизм, позаимствованное слово из иностранного языка.

p0tonbhpom3ssd1ybbpapbt 6mi

На фото ниже — колпачок (кейкап) и резиновые кольца для них:

5nlahbvaogicjgnr7rpvez3z868

Кому нужен исторический экскурс и почему мной была выбрана именно такая форма клавиатуры, загляните сюда:

Муки выбора раскладки

Итак, поехали. Мы хотим сделать сплит-клавиатуру, гуглим «Iris keyboard», выглядит она примерно так:

Можно было бы такую и купить, но на ней отсутствуют кнопки «Х» и «Ъ» и переучиваться на новое их расположение у меня нет никакого желания. Так клавиатура неплоха, но нам она не подходит. Наш соотечественник придумал удобный вариант– «jian keyboard», смотрим:

v gmz0jffovzhftmtqqgwgfiiho

Но и он не удобен, получился концепт, годный лишь для работы в текстовых редакторах. На мой взгляд, он тут перестарался, устранив верхний ряд цифровых клавиш. Есть доработанный вариант – «jiran keyboard»:

За этой работать будет уже комфортнее, в отличие от предыдущей. Мне при работе в Word клавиши курсора, F1-F12, блок «Delete, PgDown и т.д.» вполне комфортно нажимать через Fn клавишу. Правой руке намного меньше приходится тянуться к мышке – это огромнейший плюс, который начинаешь понимать, только прочувствовав его. На этой основе можно начинать разработку своего варианта. Первый мой прототип выглядел вот так:

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

hx79ldcdegg pvqnyhqbquian e

Переходим по ссылке: keyboard-layout-editor и в вкладке Presets выбираем Ergodox. Кнопки можно удалять, добавлять, поворачивать и двигать по своему усмотрению. Потренируйтесь, там нет ничего сложного.

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

Какое это имеет значение? Возможно, вам придется подкорректировать расположение вертикальных рядов под свои индивидуальные особенности. Мне было проще, необходимости в корректировке не было:

Это может показаться вам малозначительным нюансом, но из таких вот маленьких деталей и складывается конструктор под названием «Моя идеальная клавиатура».

После многочисленных корректировок у меня получилось вот так:

k4suvmvj9ohtbppu 0sl wj9nuc

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

Возможно, я приведу пример не самый удачный, но он показателен. Пилотам Формулы1 сиденья и спинки к ним ставят изготовленные по их слепку тела, а не так называемые «спортивные», выпускаемые на заводском конвейере. В самом деле, почему?

Почему я реализовал отдельным блоком клавиши курсора помимо тех, которые нажимаются через модификатор МО(2)? Я проектировал клавиатуру универсальной, на которой можно еще и поиграть. Попробуйте поиграть в «X3 terran conflict»/«X3 albion prelude» с курсорами через модификатор и вы взвоете. Переназначить кнопки можно, я даже делал четвертый слой именно под игру, но получалось не очень удобно. В этой игре практически вся клавиатура задействована, кто играл – тот знает.

Мы можем узнать получившееся количество кнопок:

ntonkzkue ygk6q68fj zhyfsy4

Приступаем к покупкам

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

А после прочтения я настоятельно рекомендую вам прошвырнуться по магазинам, где продаются клавиатуры с механическими переключателями и собственными пальцами ощутить разницу между синими, коричневыми и остальными свитчами. Меня полностью устроили коричневые Gateron, их я и купил. Но только не у наших барыг с наценкой 300%-500% и еще выше. На Алиэкспрессе есть все, нужно лишь хорошо постараться поискать.

Я не призываю покупать нужные нам комплектующие там, где брал я – вы можете брать, где вам удобнее. Но ссылками я поделюсь.

Переключатели Gateron на Али, которые купил я:
Gateron
Существуют следующие типы колпачков для кнопок:
Все, что нужно знать при выборе профиля кейкапов

pp jalaipqibbgc11 7160mq9rw

Я пробовал разные, но остановился на самых низких DSA, на них мне удобнее всего! Помните, у вас может и скорее всего будет иначе. Помните? Идем в магазин и пробуем, пробуем. Это важный кирпичик удобства вашей клавиатуры. Брал тут, качество хорошее:
PBT DSA

Следующее, что нам нужно, ATmega32U4 5Вольт 16 МГц. Их много модификаций есть:
Atmega32U4

Мне же достаточно будет этого с головой:
Pro Micro ATmega32U4 5V 16 МГц
Диоды. Я не заморачивался с беготней по радиомагазинам, заказал тоже на Али:
100 шт 1N4148 DO-35

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

Я по наводке приобрел эту смазку, жалеть не пришлось: Смазка.

Резиновые колечки для колпачков.

5nlahbvaogicjgnr7rpvez3z868

Нужны для уменьшения шума от печати, брал белые 9х4х2.5, нареканий нет:
Резиновые колечки

Кабель Micro USB для подключения платы к компьютеру. Так-то у меня их полно, но нужен был именно угловой, с ним намного удобнее (смотри фото в начале статьи):
Кабель Micro USB

Клавиатуру я сделал разделенной на два блока. Эти блоки нужно было соединить проводами. Поначалу я соединил блоки шлейфом от компьютерного СD привода.

Временное решение, для постоянного использования не советую. Лучше сделать съемный соединительный кабель, проще будет в дальнейшем. Хорошо подошел кабель HDMI, у него 19 жил при нужных 12 (5 строк + 7 столбцов). Резать кабель мне очень не хотелось, и я приобрел разъемы для него:
разъем HDMI 19 Pin
Вопрос: можно ли использовать длинный кабель HDMI? Можно, и даже — нужно! Просто посмотрите на фото:

Клавиатура не сползает с подлокотников. Запястья рук лежат на подставках под ладони. Каждая подставка двумя магнитами держится за свой блок клавиатуры. Провод HDMI ногам не мешает совершенно. Ничего никуда не уползает, получилось просто круто.
Вам, возможно, пригодятся такие переходники:
HDMI кабель-переходник 270 180 90 градусов

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

Это я давненько сфоткал. Тот пост уже вряд ли существует, так что только в таком качестве.
Сложим мои расходы, получилось

Покупки будут ползти из Китая ориентировочно месяц. И у нас полно времени, чтобы сделать корпус нашей клавиатуры.

Делаем верхнюю панель и корпус клавиатуры

Возвращаемся к нашему онлайн-конструктору. Надо ввести данные, какой тип свитча мы используем:

ob4 bhavlwypbzvvoh6feq7jwsw

И следующая картинка:

iytorvjsrsm5gyhgcyj tkes4mg

Сейчас нам понадобится вот эта вкладка:

rrkkcnd4oly95a3jn0c9ew92hyy

Комбинацией Ctrl+A выделяем весь текст и копируем его в буфер обмена Ctrl+C. Открываем ссылку:
Plate & Case Builder

И получаем вот такое:

Не повезло, изображение расползлось. Не беда, поправим в Photoshop:

buh1iggcnhgkctzsvdcar6yebfw

Отправляем печатать это на принтер. Измеряем линейкой размеры квадратов на бумаге – везде должны быть 14 мм. А расстояние между квадратными отверстиями должно быть не менее 5 мм, иначе колпачки будут задевать друг друга. У меня сохранились распечатки промежуточных результатов:

rtjhjsndjgedoaspemq6vev4jge

Это мы только что распечатали трафарет, с помощью которого будет удобно делать разметку для отверстий под клавиши. Далее вы должны выбрать материал верхней панели вашей будущей клавиатуры: алюминий, стеклотекстолит, оргстекло, акрил, поликарбонат… Материалов очень много всяких разных, я же выбрал оргстекло. Используйте материал толщиной не более 2 мм, иначе кнопки не будут держаться на пластине – защелки не смогут зацепиться.

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

znzybtuflh6ufi3cclmb eyitdw

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

gfp7vc8e8sbhtebrkz0 tv7iqyu

m z4fv 2mqnbfztcb232hetvatg

Разметку на оргстекло можно наносить как процарапывая чертилкой, так и просто рисуя ручкой – ее хватит. Далее я плавил отверстия паяльником, а доводил их до размера напильником. Можно поработать и дремелем. Не забывайте, посылкам ползти из Китая месяц. Торопиться некуда, поэтому я и не носился в поисках лазерной резки.

Это верхние пластины первого варианта, в которые вставляются кнопки. Нижние пластины точно такие же по размерам, только без отверстий под свитчи. Осталось только придумать способ крепления верхних пластин к нижним. Я реализовал крепление на стойках, как материнские платы в компьютерных корпусах. В нижних пластинах просверлил отверстия такого диаметра, чтобы в отверстия помещалась гайка М3.

06olpmknvp3jj9jomjnwo5

И вклеиваем в эти отверстия наши гайки с помощью суперклея.

В гайки вкручиваем стойки.

u1oqwhtyvn0crzt6 wyiqtpscdi

Стойки я выбрал по высоте такие, чтобы впритык хватало высоты для свисающих с верхней пластины свитчей.

uzjeqnfyqfoblzp pwkteaoa1be

Чем меньше получится высота нашей клавиатуры, тем лучше для наших рук! Высота корпуса моей клавиатуры с резиновыми ножками менее 12 мм:

r uu

Полностью высота составляет 25 мм:

nzchnw sjuowl0somtezdhf o6i

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

Вариант 2 до обтягивания пленкой:

uydt93g7cojp73pwl5uw mtit2w

Далее совсем необязательная вещь – я обтянул пленкой верхнюю панель клавиатуры. Но в паре мелочей она все же помогла: бликов от настольной лампы больше нет и теперь не видно светящий красным светодиод на работающей ардуине.

sohukunltmkui7pqegdy0fds7va

Объяснять, как клеить пленку — не вижу необходимости. Все что требовалось от этой пленки – не отвлекать на себя внимание при работе. И эту задачу она отлично выполняет. Куплена была на Али года четыре назад.

rglvlgyeqmn9fvf3pf72bh9pwn4

Материал, который пошел на подставки под ладони. Как называется, не имею ни малейшего понятия. Вспененное что-то там. Обернул скотчем, а сверху наклеил пленку.

1ovi vefnmczh0aqq7hcdwe6ip4

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

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

Переходим к изготовлению прошивки

Возвращаемся к онлайн-редактору, нам нужна вот эта вкладка:

rrkkcnd4oly95a3jn0c9ew92hyy

Комбинацией Ctrl+A выделяем весь текст и копируем его в буфер обмена Ctrl+C. С помощью скопированного текста мы можем увидеть, как примерно будет выглядеть наша будущая клавиатура. Переходим по ссылке:
Keyboard Layout 3D Viewer

uamgt4lyhcr4ouazj lr9drx wu

Можно повращать камеру мышкой и поиграться с зумом. В общем, разберетесь.
Следующий этап, открываем в новой вкладке браузера ссылку онлайн-конструктора нашей прошивки для ардуины:
Keyboard Firmware Builder

Вставляем скопированное, как на скриншоте:

m6u1j9v5sbcgkey4

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

fbszq

Надо помочь алгоритму сработать правильно, сам он справиться не в состоянии. Для этого возвращаемся в онлайн-конструктор и приводим нашу клавиатуру к виду:

lj3zn

Заново открываем вкладку Keyboard Firmware Builder и вставляем скопированное:

m6u1j9v5sbcgkey4

То, что нужно. Вы должны добиться подобной разводки и у себя. Далее переходим к вкладке PINS, в ней мы укажем, какими контактами ардуины будем пользоваться. Смотрите внимательно, если вы купили такую же плату, как у меня, то у вас в наличии будут только такие контакты как на рисунке ниже:

gzhosezl 43ktijqp3icbwiw8na

Исходя из того, что мы имеем, выставляем в столбцах ROWS и COLUMNS пины, которые есть в наличии. Ниже на скриншоте пример расстановки:

pbwvreotjyepacejts6sc2qwf5y

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

Переходим к вкладке KEYMAP, в ней мы зададим поведение кнопок:

Частично конструктор присвоил значения кнопкам за нас, доделаем остальное. Тут очень интересно, можно столько всего напридумывать! Начнем с элементарного:

dbmuzewanm6hrwreij rio0t6mc

И кнопке присваивается значение «3». Далее аналогично присваиваем значения остальным кнопкам. Вот пример, как сделать правую или левую клавиши «Windows»:

xiu6kbjzr cxbr2s ck3ipi97k8

Это все у нас была основная раскладка (слой ноль) по умолчанию, давайте теперь сделаем второй слой.

pn81coyek p8nd6q08jt1mce 48

Как пользоваться этой МО(1)? Она работает аналогично клавише SHIFT. Только клавиатурой выдаваться будет то, что мы запрограммируем на слое 1. Начинаем наполнять слой1:

asl

Сделаем клавишу DELETE:

kc9kndqwk7 jo 23bqknfmudqnk

По умолчанию эта кнопка работает, как BACKSPACE. Но теперь, если мы ее нажмем, удерживая нажатой МО(1), то кнопка будет работать как DELETE. Вот так все просто. Аналогично присваиваем значения остальным кнопкам. Причем необязательно всем. Если мы не присвоили кнопке значение на слое 1, то она будет давать значение слоя ноль (который по умолчанию). Давайте сделаем мультимедийные клавиши управления громкостью.

e6ihhjm pp5p8nbiouncrvkd1we

VOLD, VOLU – это регулировка громкости. Управление плеером, например Foobar2000: PLAY, STOP, PREV, NEXT. И это все – глобальные клавиши, которые будут управлять плеером даже если вы при этом будете работать в WORD либо играть в какую-то игру.

Далее будет волшебство, недоступное обычным клавиатурам. Вспомните, как часто вам приходилось убирать руку с клавиатуры к мышке, чтобы прокрутить (проскроллить) колесиком мышки документ в WORD или страничку в браузере. Часто, наверное? Открываем ссылку:
Mouse Keys

Сейчас мы научим клавиатуру вести себя как компьютерная мышь.

Смотрите, что я могу сделать одной левой рукой! Я могу двигать курсором мыши (если честно, этим почти не пользуюсь), могу нажимать левую и правую кнопки мыши (периодически клацаю правую), кручу колесо мыши (использую все время, даже привыкать не пришлось!) и управляю плеером Foobar2000 и громкостью. Ладонь при этом ни на миллиметр не смещается в сторону.

mf

С этим, я думаю, всем должно быть все понятно. А давайте сделаем, чтобы комбинация Ctrl+Alt+Del нажималась одной кнопкой! Не то чтобы очень надо, но знать, как делается – полезно.

on gh tubvxpbtf

9lkieswvlddnj4trltfbhla5o0

bmucgi

Наконец-то уже сама кнопка:

jlribi6ecfi75cfid rzu7mm94o

Должно получиться вот так:

grzvwqj u0voisizsehvehcjnyw

И подобных комбинаций можно придумать множество.

Давайте сделаем слой МО(2):

В слое МО(2) я у себя расставил клавиши F1 – F12, клавиши курсора и PgDn/ PgUp/ Home/ End. Insert, как и Caps Lock, я счел ненужной клавишей и не стал вводить ее у себя.

Таким образом, я могу с помощью этого слоя, вообще никак не перемещая правую ладонь, пользоваться клавишами курсора и блоком PgDn/ PgUp/ Home/ End. Уж поверьте, это удобно! После этого смотреть на обычные стандартные клавиатуры даже не хочется.

Все мы играем в компьютерные игры, одна из моих любимых – NFS Underground. Давайте создадим слой кнопок, предназначенный только для этой игры! Естественно, удерживать во время игры все время нажатой кнопку МО(3), чтобы рулить клавишами курсора — будет очень неудобно. Вместо него используем модификатор TG(3) — он аналогичен принципу работы клавиши Caps Lock. Нажали клавишу TG(3) и отпустили – клавиатура остается в режиме работы слоя TG(3). Нажали и отпустили эту клавишу еще раз – клавиатура вернется в режим работы слоя по умолчанию. Вот так все просто. Для примера давайте представим себе, что игра не позволяет изменять клавиши, а нам хочется настроить под себя поудобнее.

Я сделал себе вот так:

Для удобства я замылил на скриншоте неиспользуемые кнопки. На обеих половинках клавиатуры сделал клавиши курсора – на случай если рука затечет и захочется дать ей отдохнуть. Не забыл в этом слое реализовать клавишу TG(3) – чтобы можно было вернуться из этого слоя в слой по умолчанию. Сделал также в слое 3 клавишу МО(1) – для управления мультимедийными кнопками. Ну а остальное в принципе и так понятно. Очевидно, с таким слоем кнопок играть точно будет комфортнее.

Идем далее. Всего слоев можно сделать 15 штук. Мне сложно представить, как их можно все задействовать. И еще тяжелее представить, как их всех запомнить. Я сейчас использую только 4 слоя и пока их достаточно.

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

p rhiybj1gaawt2ybmt5zseayny

И вот теперь мы можем забрать готовую прошивку с этой вкладки:

akom1g7lef9o31zg5ofpngckt2k

Теперь нам нужно залить прошивку в нашу ардуину. Проще некуда. Переходим по ссылке:
QMK Toolbox

s5hf7ct6qwpamig84ae0e618yn4

А теперь качаем последнюю версию программы:

raa2uqpuyxoyd6 cj5wp2rmgesa

Инсталлируем программу, на всякий случай перезагружаем компьютер и с потрясением смотрим как вовремя нашей Windows10 приспичило обновиться.
Сейчас вам нужно будет взять в руки паяльник и припаять двумя проводками кнопку к ардуине к контактам GND и RESET.

lt0x5b6vz0rksvzseo3qu g57ns

Подключаем кабелем micro usb к компьютеру нашу плату – на ней должен загореться светодиод. Запускаем программу QMK Toolbox. Выбираем файл прошивки *.hex, который мы недавно скачали.

Жмем на кнопку, которую мы перед этим подпаяли к ардуине, и ждем появления желтой строки на темном фоне программы. Как только она появилась, не тормозим и быстренько нажимаем на кнопку FLASH:

Если вы все же протормозили и появилась вторая желтая строка – кнопка FLASH не начнет прошивку платы. Начинайте заново: нажимаем припаянную кнопку и т.д.

Переходим к пайке деталей

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

Смотрите, что из себя представляет левая часть клавиатуры:

fijmvcshccuv41blrpqpcf0hhwm

А теперь посмотрите на фото ниже:

Верхний ряд клавиш ESCAPE,1,2,3,4,5 мы соединили диодами. Диоды мы спаяли друг с дружкой катодами, а сами диоды припаяли к контактам кнопок анодами. Точно так же мы поступаем со строкой кнопок TAB,Q,W,E,R,T. Это второй ряд кнопок сверху. Диоды спаиваем между собой катодами, в общем, точно так же, как и верхний ряд кнопок. Остальные ряды спаиваем диодами точно так же. Следом распаиваем проволочки как на фото ниже.

wavzzvuufb78oq w0pmo8uqj054

Я специально паял разноцветными проводками от кабеля витой пары, чтобы можно было легко разобраться. Внимательно посмотрите на правый край фото. Я соединил синей проволокой свободные контакты ВЕРТИКАЛЬНОГО РЯДА клавиш: ESCAPE,TAB,ALT,CTRL,TG(3). С остальными вертикальными рядами поступаем совершенно точно также.

Когда вы все это спаяете, можно будет переходить к подключению ардуины. Вспоминаем эту картинку:

pbwvreotjyepacejts6sc2qwf5y

И сравниваем ее с этой картинкой:

fijmvcshccuv41blrpqpcf0hhwm

Проволоку, соединяющую вертикальный ряд клавиш ESCAPE,TAB,ALT,CTRL,TG(3) соединяем проводом к контакту ардуины С6. Проволоку, соединяющую вертикальный ряд клавиш 1,Q,A,Z, TG(4) соединяем проводом к контакту ардуины D7. Проволоку, соединяющую вертикальный ряд клавиш 2,W,S,X,LShift соединяем проводом к контакту ардуины E6. Далее действуем по аналогии. Переходим к строкам. Спаянные между собой катоды диодов строки ESCAPE,1,2,3,4,5 подключаем к контакту ардуины D3. Спаянные между собой катоды диодов строки TAB,Q,W,E,R,T подключаем к контакту ардуины D2. Катоды диодов строки Alt,A,S,D,F,G подключаем к контакту D1. И далее аналогично. Правая половина клавиатуры готовится аналогично левой.

Если б не клавиши курсора, фото ниже не было бы таким запутанным:

od5dduspqpjiszeu8fcvbltbwlc

Но мы то уже знаем, что на самом деле все просто – строки кнопок соединяем диодами, а столбцы кнопок – проволочками по схеме перед этим фото. И как подключить этот блок клавиатуры, вы тоже уже должны понимать сами.

Спаянные между собой катоды диодов строки UP,6,7,8,9,0,] — подключаем к контакту ардуины D3. Спаянные между собой катоды диодов строки DOWN,Y,U,I,O,P,[ — подключаем к контакту ардуины D2. И так далее. Проволоку, соединяющую вертикальный ряд клавиш UP,DOWN,LEFT,RIGHT соединяем проводом к контакту ардуины B2. Проволоку, соединяющую вертикальный ряд клавиш 6,Y,H,N, МО(1) соединяем проводом к контакту ардуины B3. И снова далее по аналогии.

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

pbwvreotjyepacejts6sc2qwf5y

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

Источник

Поделиться с друзьями
RemontPC.top
0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии