Сделайте свои собственные кнопки быстрого доступа с Arduino

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

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

первый.

Что вам нужно

Части ярлыка Arduino
Вот что вам нужно, чтобы сделать этот проект:

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

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

первый.

Вот схема макета (исключая концевые отведения):

Arduino Сочетание клавиш

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

Ардуйно ярлык макет

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

Сочетание клавиш

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

Сочетание клавиш в коробке

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

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

Светодиодный индикатор состояния ярлыка

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

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

Сочетание кнопок светодиодов цепи

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

Ярлык светодиодный термоусадочный

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

Ярлык светодиодного тестирования

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

Arduino Схема быстрого доступа

Эта схема одинакова для всех девяти переключателей. Подключите переключатели к цифровым контактам с 2 по 10, каждый со своим собственным резистором 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, INPUT) девять раз, ты должен написать это только один раз. Это также вызывает 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 ():

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 есть полезный список.

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

, как создать ярлыки Windows

и каждый ярлык Chromebook

чтобы начать делать свои собственные ярлыки.

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

Ссылка на основную публикацию
Adblock
detector