Как сделать из клавиатуры ноутбука usb клавиатуру
Перейти к содержимому

Как сделать из клавиатуры ноутбука usb клавиатуру

  • автор:

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

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

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

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

  1. Самостоятельное создание схемы.
  2. Написание прошивки клавиатуры.
  3. Узнать, как работает протокол USB.

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

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

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

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

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

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

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

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

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

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

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

  1. Просканировать все клавиши в матрице.
  2. Сопоставить расположение кнопок с соответствующими символами в выбранной раскладке (QWERTY, Dvorak и т. д.).
  3. Взять результат сопоставления, сгенерировать пакеты USB HID Report и отправить на периферийное устройство USB.
  4. Включить светодиод на клавиатуре, если клавиша нажата, выключить — если нет.
static void scan_and_update() < scan_matrix.Scan(key_scans, row_count, column_count); keyboard.SendReport( key_pipeline.MapKeyScans(key_scans, key_count)); update_key_press_status(); >int main() < Init(); status_led.SetOk(true); while (true) < scan_and_update(); >>

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

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

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

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

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

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

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

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

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

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

  1. Все компоненты из списка материалов: переключатели, светодиоды, диоды, микроконтроллеры и т. д. Я обычно заказываю такие штуки на DigiKey.
  2. Сама печатная плата. Довольно много сервисов готовы недорого изготовить вам прототип. У меня отличный опыт работы с OshPark и JLCPCB. Для этого проекта я выбрал JLCPCB из-за цены на такой размер, а ещё потому что они разрешили выбрать синее покрытие.
  3. Все остальные детали: крышки и прочее. Для этого проекта мой шурин помог лазером вырезать верхнюю и нижнюю клавиатурные пластины из 1/4” акриловых листов. Для остальных частей можно использовать онлайновые сервисы лазерной резки и 3D-печати, если нет доступа к оборудованию.

JLCPCB очень доступный сервис. Этот дизайн с доставкой DHL из Китая обошёлся менее чем в $30, а весь процесс от загрузки файлов до прихода посылки занял чуть больше недели.

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

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

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

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

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

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

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

Итоги

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

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

Спасибо за чтение и приятных хаков!

  • Производство и разработка электроники
  • Компьютерное железо
  • Периферия
  • DIY или Сделай сам
  • Электроника для начинающих

Переделать клаву от ноута во внешнюю USB-клаву через arduino

В общем сабж.
Есть клава от «Fujitsu Siemens Amilo чего-то там», хочу сделать из неё внешнюю USB клаву. форфан / для экспы / интересно / .
Я в электронике вообще нуб, от слова совсем, даже паять не умею.
Всё что я делал на ардуинах — проверял чтоб работало то что я купил (китайский клон, nano 3.0, если правильно помню), а точнее заливал код на мигание диодом 0.1 сек, а не 1 сек (как в заводской прошивке).

Внимание вопрос — что мне нужно будет делать вообще?
Накопать доку по этой клаве? А если не будет — сделать переходник для шлейфа и анализировать какой сигнал приходит при нажатии разных кнопок?
Или разобраться как клава «крепилась» в ноуте, т.е. куда идут дорожки, может контроллер выпаять и сдалать вывод от него?
Или просто гуглить подобные решения, разбираться что и как там кто-то делал и пробовать применить?

q11q11 ★★★★★
05.01.16 00:46:12 MSK

Arduino.ru

Добрый день. Хочу подключить клавиатуру ноутбука по usb. Есть Mega 2560. Клавиатура 25 pin. Идея такова:

1) Узнаю карту клавиатуры (какие пины какая кнопка замыкает): подключаю все 25 пинов к цифровым выходам, зажимаю одну кнопку на клавиатуре, на один из пинов подаю высокий сигнал, остальные слушаю, ищу высокий сигнал и так по всем 25 пинам, в итоге получаю для каждой клавиши набор замыкающихся пинов при нажатии.

2) Обратная задача, строю контроллер: Беру карту клавиатуры из п.1 и вставляю в микроконтроллер (Atmega?), прикручиваю usb, заставляю при нажатии отправлять команды как это делает клавиатура

Самое важное — абсолютный 0 в программировании.

Может я вообще заблуждаюсь, и у меня ничего не получится? Прошу помощи.

  • Войдите на сайт для отправки комментариев

Как подключить клавиатуру к ноутбуку 3 способами

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

как подключить Usb клавиатуру к ноутбуку

Подключение проводной клавиатуры к ноутбуку

Владельцы лэптопов в качестве альтернативного устройства ввода, как правило, используют Usb-клавиатуры. Такой гаджет, скорее всего, удастся без проблем подключить к ноуту. Исключение — лэптопы, у которых только Thunderbolt и Type-C. В основном это некоторые разновидности макбуков. Если некуда вставить штекер Usb-клавиатуры, придется пробовать какое-нибудь беспроводное решение или использовать переходник.

При наличии подходящего порта Usb для подключения проводной клавиатуры к ноутбуку достаточно соединить их. При обилии разъемов Usb выберите более медленный — второй версии. При подключении клавы к Usb 3 вы ничего не выиграете, но затрудните использование быстрого порта, когда это действительно актуально, например, при записи гигабайтных файлов на флешку.

Если есть свободные порты Usb 2 справа и слева, возможно, стоит выбрать левый от себя. В таком положении шнур не будет мешать, свисать со стола.

Windows, скорее всего, без проблем распознает подключенную клавиатуру. Если этого не произошло, установите драйвера.

Также стоит упомянуть наиболее экзотичный вариант — подключение к лэптопу клавы с разъемом PS/2. Этот устаревший интерфейс производители ноутов давно уже игнорируют, поэтому подключение такой клавиатуры возможно только через переходник.

подключение к ноуту проводной клавиатуры

Как подключить беспроводную клавиатуру к ноутбуку

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

Существует два интерфейса для подключения к ноутбуку беспроводной периферии:

  • Первый в большинстве случаев предусматривает передачу сигнала на частоте 27 МГц. Дальность действия — до 20 метров. Радиосигнал огибает любые препятствия.
  • Блютуз работает на частотах, близких к 2,4 ГГц. Дальность действия — до 10 метров. Сигнал сложнее перехватить злоумышленникам, но передается он не так быстро, как хотелось бы. Блютузовские клавиатуры не подходят для игр.

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

Через Bluetooth

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

  1. Проверьте питание клавиатуры. Батарейки должны быть в порядке.
  2. Передвиньте ползунок включения, расположенный рядом с блоком светодиодов, в активное положение. Если клава уже включена, выключите ее и включите заново. Это поспособствует ее обнаружению.
  3. Нажмите комбинацию клавиш для сопряжения, указанную в документации к клавиатуре, например, Fn + W. Светодиод, подписанный значком блютуза, должен дать знак, что клава готова к сопряжению.
  4. Проклацайте «Пуск» — «Параметры» — «Устройства» — Bluetooth. Передвиньте ползунок блютуза в активное положение. Нажмите на плюсик, отвечающий за добавление блютузовского или другого устройства. Выберите блютуз. Ноут найдет внешнюю клавиатуру. Вам останется только клацнуть по ней в интерфейсе Windows для завершения сопряжения.

подключение клавиатуры к лэптопу через блютуз

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

пошаговые действия подключения клавы к ноуту по блютузу

С Usb-адаптером

Большинство пользователей ноутбуков не ограничиваются юзаньем тачпада: подключают к лэптопу мышь, упрощая тем самым управление интерфейсом Винды. Те, кто не любит кабели на столе, используют беспроводные манипуляторы. Для подключения такой мыши вставляют в Usb-разъем адаптер, который входит в комплектацию устройства.

беспроводная клавиатура

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

  • вставить адаптер в ноут;
  • перевести клавиатуру в рабочее состояние, передвинув переключатель в положение ON;
  • подождать пару секунд, пока Винда установит драйвера.

Возможные проблемы

Неполадки проводного подключения:

Проблема

Неполадки беспроводного подключения:

Проблема

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *