В данном проекте создается клавиатура на базе микроконтроллера, которая отправляет нажатия кнопок по USB и сопрягается с Windows приложением AutoHotKey, предназначенного для создания приложений и макросов.
AutoHotKey может использоваться с вашей оригинальной клавиатурой без необходимости дополнительной клавиатуры. Данное устройство не предназначено для всех, однако может применяться в следующих ситуациях:
- Использование одной кнопки вместо нажатия комбинации горячих клавиш
- Создание специальных контроллеров для игр и интерфейсов
- Создание специальных программных задач, например, использование каждой кнопки для сохранения различных типов идентификатора файла в приложении.
Программное обеспечение AutoHotKey может назначать любое действие на нажатие кнопки:
- Запуск приложений
- Многошаговые команды, выполняемые с помощью клавиатуры
- Упрощение действий при использовании ярлыков
- Запуск специфических веб-адресов
- Вставка сниппетов текста.
Данный проект является полностью экспериментальным. Для выполнения проекта понадобятся знания в области разработки схем и программирования arduino. При использовании микроконтроллера вы можете обратиться к сайту trinket, однако информации там не очень много.
Шаг 1: Используемые компоненты
Материалы / компоненты:
- Микроконтроллер Adafruit Trinket
- Механический клавиатурный блок Mx Cherry
- Небольшая печатная плата
- Резисторы: 1кОм (x4 штуки), 100кОм (x2 штуки)
- Припой
- Проводники.
Инструменты:
- Паяльник
- Ножовка по металлу
- Плоскогубцы.
Шаг 2: Модификация корпуса
В проекте используется клавиатурный блок mx cherry, но вы можете подобрать и другие устройства с несколькими переключателями: игровые контроллеры, цифровые блоки клавиатуры или просто переключатели, установленные на печатной плате.
В отдельных стенках корпуса нужно прорезать канавки. Это необходимо для размещения проводников внутри корпуса. Я использовал плоскогубцы для удаления пластиковых перегородок корпуса между верхними и нижними кнопками для пропуска большего количества проводников.
Шаг 3: Сборка схемы
Я начал с припаивания полноразмерного проводника к входам, заизолировав с другой стороны. Далее необходимо припаять резисторы и соединения между кнопками, и в завершении расположить все необходимые проводники.
Установите все компоненты так, чтобы они располагались на своих местах и не выступали. Далее припаяйте микроконтроллер и резисторы на печатную плату и подключите кнопки.
Шаг 4: Код Trinket Arduino
На данном шаге указан программный код, используемый в проекте. Возможно, вам потребуется внести некоторые изменения для входных значений для получения наилучших результатов. Я заменил кнопки с буквой F на кнопки с буквами и выполнил тестирование в блокноте.
Шаг 5: Код AutoHotKey
SetTitleMatchMode, 2 Hotstring to enter time stamp in document ; F6 and F7 keys always have the same function regardless of the active program F6:: Run, "C:WindowsSysnativeSnippingTool.exe" ; opens snipping tool return #IfWinActive, Snipping Tool ; if snipping tool is open, the same button will close it F6:: { WinClose Snipping Tool } return #IfWinActive F7:: FormatTime, CurrentDateTime,, yyyyMMdd ; inserts the current date in a specified format SendInput %CurrentDateTime% return ; F8 and F9 keys function varies by the active program #IfWinActive, Program Manager ; functions if desktop is active F8:: run taskmgr.exe ; open task manager return F9:: IfWinExist Google Chrome ; open Chrome or maximize window if open already WinActivate, Google Chrome else run "C:Program Files (x86)GoogleChromeApplicationchrome.exe" return #IfWinActive #IfWinActive, Chrome ; Chrome specific functions F8:: Send, ^+{Tab} ; go left a tab return F9:: Send, ^{Tab} ; go right a tab return #IfWinActive #IfWinActive ahk_class CabinetWClass ; windows explorer specific functions F8:: Send, !{Up} ; go up a folder level return F9:: Send, ^n ; opens a new window return #IfWinActive
Шаг 6: Внесение изменений
Использование отдельного usb-устройства позволит вам выполнять нажатие кнопок в соответствии с вашими предпочтениями.