Создайте свои собственные пользовательские ярлыки с помощью Arduino

Создайте свои собственные пользовательские ярлыки с помощью Arduino

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





Никогда раньше не использовали Arduino? Ознакомьтесь с нашими руководство по началу работы первый.





Что вам нужно

Вот что вам нужно для создания этого проекта:





  • 1 х Arduino Pro Micro.
  • Мгновенные кнопки или кнопки клавиатуры.
  • Резисторы 10 кОм.
  • Ассорти соединительных проводов.
  • 1 резистор 220 Ом.
  • 1 светодиод размером 5 мм (0,197 дюйма).
  • Держатель светодиода 1 x 5 мм.

Для этого проекта вам понадобится очень специфическая Arduino. Я использую Pro Micro , поскольку они такие маленькие и дешевые, вам понадобится Arduino со встроенным USB-последовательным интерфейсом в процессор (Atmega32u4). Можно построить этот проект с другими Arduinos, такими как UNO или Nano, однако требуется много тяжелой работы, чтобы перепрограммировать BIOS и возиться, чтобы заставить все работать. Клоны других моделей Arduino обычно вообще не работают, но клон Pro Micro тоже подойдет.

Плата модуля OSOYOO Pro Micro ATmega32U4 5 В / 16 МГц с 2-х строчным контактным заголовком, замена на ATmega328 Pro Mini для Arduino КУПИТЬ СЕЙЧАС НА AMAZON

Вам понадобится одна кнопка мгновенного действия, один резистор 10 кОм и соответствующий соединительный провод для каждой кнопки, которую вы хотите использовать. Я использую механические переключатели клавиатуры Cherry MX для фактических кнопок быстрого доступа, хотя любой Подойдет переключатель, если он работает мгновенно и не защелкивается.



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

План сборки

Вот как это будет работать. Arduino будет запрограммирован на работу как USB-клавиатура - для вашего компьютера так оно и есть. Несколько кнопок, подключенных к Arduino, будут отправлять ключевые команды на ваш компьютер. Вы нажмете только одну кнопку, но ваш компьютер будет думать, что вы нажали Все > F4 , Например.





Выбор переключателя

Есть несколько вариантов переключателей серии MX. Этот сайт обеспечивает отличное вступление, однако по сути они сводятся к шуму и давлению. Некоторые модели требуют большего усилия для нажатия, а некоторые модели издают механический щелчок при нажатии. Я использовал Cherry MX Browns, которые не издают шума при нажатии. Все они имеют одинаковые размеры, поэтому выбирайте любую понравившуюся модель (или комбинируйте и сочетайте) не беспокойтесь.

Вам также, конечно, нужно будет купить несколько ключей, и есть целый мир нестандартный дизайн там на выбор - мы купили у KeyboardCo в Великобритании





Дело

Я напечатал этот чехол на 3D-принтере, и вы можете скачать .STL файлы из Thingiverse . Не волнуйтесь, если у вас нет 3D-принтера, вы все равно можете его построить. Многие веб-сайты предоставляют услуги 3D-печати, например 3D-концентраторы или Shapeways . В качестве альтернативы, это очень простой футляр, вы можете сделать его самостоятельно из пластика, плексигласа, дерева или даже картона. Если вы хотите быть по-настоящему бережливым, Cherry MX продает тестер / пробоотборник переключателя, установленный на Амазонка ( Соединенное Королевство ). Вам понадобится 4 болта M5 x 35 мм и 4 гайки M5. Вы, конечно, можете заменить их на подходящую альтернативу, которая у вас есть.

Клавиатура Max Keyboard, переключатель Cherry MX, комплект тестера (комплект тестера пробоотборника Pro с 9 переключателями) КУПИТЬ СЕЙЧАС НА AMAZON

Если вы делаете свой собственный корпус, вам нужно знать одну важную деталь: переключатели Cherry MX вставляются в их монтажные отверстия. Для них требуется квадратное монтажное отверстие 14 x 14 мм (0,551 дюйма), при этом толщина пластины не должна превышать 1,5 мм (0,059 дюйма). Если отклонитесь слишком далеко от этих размеров, ваши переключатели могут перестать правильно устанавливаться.

Корпус, напечатанный на 3D-принтере, состоит из двух частей: верхней и нижней. Вставьте переключатели Cherry MX в квадратные отверстия:

Убедитесь, что вы правильно установили переключатели. На верхней части есть надпись «ВИШНЯ», а на нижней - небольшая выемка. Вставьте 3-миллиметровый светодиод в эту маленькую щель:

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

Теперь у вас должно быть девять переключателей с 9 светодиодами. Нет необходимости приклеивать какие-либо из этих деталей. Припой удерживает светодиоды, а трение удерживает переключатели.

Затем прикрутите крепление светодиода (пока оставьте светодиод снятым). Вы закончите сборку корпуса позже, когда будет построена схема.

Схема

Эта схема построена на стрипборде. Это отлично подходит для создания полупостоянных схем без затрат на печатную плату (PCB). Это просто кусок стекловолокна с медными дорожками, идущими параллельно в одном направлении. К этим дорожкам можно припаивать, а также резать. Нарезать гусеницу можно специальным инструментом или небольшим сверлом.

Не слишком уверены в пайке? Сначала взгляните на эти простые проекты.

Вот макет стрипборда (без учета контуров):

Убедитесь, что вы вырезали следы под резисторами и Arduino. Так как считывание схемы на плате может быть очень затруднительным, вот ее макетная версия:

Втиснуть все компоненты в такое маленькое пространство очень сложно. Обрежьте углы стрип-картона следующим образом:

Он должен аккуратно уместиться в нижней части корпуса:

Убедитесь, что дорожки идут вертикально.

Подключите анод ( длинная нога, позитив ) светодиода к резистору 200 Ом, а затем к +5 В. Подключите катод ( короткая нога, отрицательная ) К земле, приземляться. Накройте ножки термоусадочной пленкой и вставьте в держатель светодиода. В клее нет необходимости, однако ваш держатель светодиода может не быть вставным, поэтому вам может потребоваться адаптировать эти инструкции.

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

Пришло время припаять все светодиоды для колпачков. Они используются исключительно для того, чтобы клавиши светились, поэтому вы можете пропустить их, если хотите, и их не нужно подключать к цифровому выводу, только к источнику питания. Соедините все аноды вместе и все катоды вместе. Учитесь на моей ошибке - это намного проще сделать, прежде чем подключать переключатели! Подключите аноды к +5 В через резистор 220 Ом, а катоды - к земле. Эти светодиоды подключены параллельно. Вот схема только для этих светодиодов:

Используйте небольшой кусок термоусадочной трубки, чтобы закрыть соединение между светодиодами и Arduino:

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

Теперь подключите переключатели. Они должны быть подключены через резистор 10 кОм, иначе Arduino умрет. Это называется мертвым коротким замыканием - +5 В идет прямо в землю, и все, что осталось от вашего Arduino, будет дымом (поверьте мне, я уже убил один, так что вам не нужно). Вот схема для одного переключателя:

Эта схема одинакова для всех девяти переключателей. Подключите переключатели к цифровым контактам со второго по десятый, каждый с собственным резистором 10 кОм на землю. Будьте осторожны при пайке переключателей Cherry MX, они могут быть немного хрупкими, у меня сломалось несколько контактов. Возможно, вы захотите припаять их непосредственно к какой-нибудь дополнительной плате, однако выводные выводы все еще подходят.

Вот и все, что касается проводки. Вы можете установить гнездо USB типа B, однако крошечные контакты на них часто бывает довольно сложно припаять. Если вы не хотите этого делать, не волнуйтесь. Разъем Micro USB на Arduino аккуратно входит в отверстие в корпусе. Если вы немного запутались в различных типах USB, убедитесь, что вы понять различия .

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

Код

Теперь проверьте правильность схемы. Это хорошая идея сделать это перед тем, как продолжить, чтобы вы могли исправить любые проблемы сейчас, пока можете. Загрузите этот тестовый код (не забудьте выбрать правильную плату и порт из Инструменты > Доска а также Инструменты > Порт меню):

const int buttons[] = {2,3,4,5,6,7,8,9,10}; // array of all button pins
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int i = 2; i <11; ++i) {
if(digitalRead(i) == HIGH) {
// software de-bounce improves accuracy
delay(10);
if(digitalRead(i) == HIGH) {
// check switches
Serial.print ('input');
Serial.println(i);
delay(250);
}
}
}
}

Возможно, вам придется заменить контакты, если вы изменили схему.

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

Если все работает, вставьте схему в коробку. Вы можете использовать немного клея, чтобы удерживать цепь на месте (хотя провода держали мою в порядке). Также прикрутите крышку.

Сделать Arduino похожим на клавиатуру очень просто. Если вы используете Nano или UNO, вы собираетесь перепрограммировать Arduino, используя Обновление прошивки устройства (DFU). Обычно это используется для прошивки новой прошивки на Arduino. Вы собираетесь использовать его для прошивки Arduino новой прошивкой, которая заставит его работать как клавиатуру. Здесь это не рассматривается, поскольку это довольно сложная задача. В Сайт Arduino есть хороший учебник для этого.

Arduino Pro Micro делает этот шаг очень простым. Логика, необходимая для эмуляции USB-клавиатуры, уже встроена в процессор, так что это так же просто, как написать код!

Сначала настройте ключи:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

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

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

Теперь инициализируйте все контакты как входы:

void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}

Это сообщает Arduino, что все контакты в массиве являются входами. Для этого используется цикл, поэтому вместо записи pinMode (2, ВХОД) девять раз, вам нужно написать только один раз. Это также требует Keyboard.begin . Это устанавливает функцию, встроенную в библиотеку Arduino, разработанную специально для эмуляции клавиатуры.

Создайте метод под названием readButton :

boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}

Он берет булавку и проверяет, нажата она или нет. Он просто возвращает ПРАВДА или ЛОЖНЫЙ . Он также содержит некоторые устранение неполадок программного обеспечения - простая задержка с последующей повторной проверкой переключателя гарантирует, что кнопка действительно была нажата.

Теперь внутри вызывается еще один цикл for пустой цикл () :

void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}

Опять же, это просматривает каждый элемент в массиве и проверяет, был ли он нажат. Он делает это, называя readButton метод, который вы создали ранее. Если кнопка была нажата, он передает этот номер контакта другому методу, называемому doAction :

void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

Это проверяет номер контакта с помощью выключатель утверждение. Операторы переключения (иногда называемые чехол для переключателя ) похожи на если заявление, однако они полезны для проверки того, что одно значение (в данном случае номер вывода) соответствует одному из нескольких различных результатов. По сути, их гораздо быстрее вычислить.

Основные компоненты находятся внутри этого оператора switch. Keyboard.println записывает текст на компьютер, как если бы вы физически вводили каждую клавишу. Keyboard.press нажимает и держит одну клавишу. Не забудьте освободить их, используя Keyboard.releaseAll после небольшой задержки!

как моя жизнь узнает, кто меня ищет

Вот полный код:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}
boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}
void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

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

Теперь осталось создать несколько ярлыков. Вы можете сопоставить это с существующими ярлыками, такими как Все + F4 (закройте программу в Windows) или Cmd + Q (выйти из программы macOS). В качестве альтернативы обязательно ознакомьтесь с нашими полное руководство по быстрым клавишам , как создавать ярлыки Windows и каждый ярлык Chromebook чтобы начать создавать собственные ярлыки.

Вы создали свое собственное окно быстрого доступа? Дайте мне знать в комментариях, хотелось бы увидеть несколько фотографий!

Мы надеемся, что вам понравятся предметы, которые мы рекомендуем и обсуждаем! MUO имеет партнерские и спонсируемые партнерства, поэтому мы получаем долю дохода от некоторых ваших покупок. Это не повлияет на цену, которую вы платите, и поможет нам предложить лучшие рекомендации по продуктам.

Делиться Делиться Твитнуть Эл. адрес Вот почему ФБР выпустило предупреждение о вирусах-вымогателях Hive

ФБР выпустило предупреждение об особо опасной разновидности программ-вымогателей. Вот почему вам нужно особенно опасаться программ-вымогателей Hive.

Читать далее
Похожие темы
  • Сделай сам
  • Клавиатура
  • Горячие клавиши
  • Ардуино
Об авторе Джо Кобурн(136 опубликованных статей)

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

Ещё от Joe Coburn

Подписывайтесь на нашу новостную рассылку

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

Нажмите здесь, чтобы подписаться