Направете свои собствени персонализирани бутони за бърз достъп с Arduino

Направете свои собствени персонализирани бутони за бърз достъп с Arduino

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





Никога преди не сте използвали Arduino? Разгледайте нашите ръководство за начало първо.





От какво имаш нужда

Ето какво ви е необходимо, за да направите този проект:





  • 1 x Arduino Pro Micro.
  • Моментни бутони или бутони на клавиатурата.
  • 10K ома резистори.
  • Различни кабели за свързване.
  • 1 x 220 ома резистори.
  • 1 x 5 мм (0,197 инча) LED.
  • 1 x 5 мм LED държач.

За този проект ще ви трябва много специфичен Arduino. Използвам a Pro Micro , тъй като те са толкова малки и евтини, имате нужда от Arduino, който има вграден USB-Serial към процесора (Atmega32u4). Възможно е да се изгради този проект с други Arduinos, като например UNO или Nano, но това изисква много упорита работа, за да се обнови отново биографията и да се заиграят, за да накарат нещата да работят. Клонове на други модели Arduino обикновено не работят изобщо, но клонинг Pro Micro също е добре.

OSOYOO Pro Micro ATmega32U4 5V/16MHz модулна платка с 2 -редов заглавие на щифта Заменете с ATmega328 Pro Mini за Arduino КУПЕТЕ СЕГА НА AMAZON

Ще ви трябва един моментен бутон, един 10K ом резистор и подходящ свързващ проводник за всеки бутон, който искате да използвате. Използвам механичните превключватели на Cherry MX за действителните бутони за бърз достъп всякакви превключвателят ще направи, при условие че е моментен и не се затваря.



Може да се нуждаете от няколко други елемента в зависимост от това как го изграждате. Ако искате да създадете прототип, ще ви трябва макет без запояване . Струва си да похарчите парите за добър - понякога те могат да бъдат много ненадеждни. Ако искате да вмъкнете това, ще искате да закупите някаква лента.

Строителен план

Ето как ще работи това. Arduino ще бъде програмиран да действа като USB клавиатура - що се отнася до вашия компютър, това е така. Няколко бутона, свързани към Arduino, ще изпращат ключови команди към вашия компютър. Ще натиснете само един бутон, но компютърът ви ще мисли, че сте натиснали Всичко > F4 , например.





Избор на превключвател

Има няколко варианта на превключватели от серия MX. Този уебсайт осигурява отлично въведение, но по същество те се свеждат до шум и налягане. Някои модели изискват по -голяма сила при натискане, а някои издават механичен звук на щракване при натискане. Използвал съм Cherry MX Browns, които не вдигат шум при натискане. Всички те са с еднакви размери, така че изберете всеки модел, който харесвате (или смесете и съчетайте) без притеснение.

Ще трябва също да закупите някои ключови капачки, разбира се, и има свят на персонализирани дизайни там за избор - ние закупихме от KeyboardCo във Великобритания





Случаят

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

Max Keycap Keypap, Cherry MX Switch, Tester Kit (9 превключвателя Pro Sampler Tester Kit) КУПЕТЕ СЕГА НА AMAZON

Ако правите свой собствен калъф, има един важен детайл, който трябва да знаете: Превключвателите Cherry MX са притискащи се към техните монтажни отвори. Те изискват квадратен монтажен отвор 14 x 14 мм (0,551 инча), като плочата не е по -дебела от 1,5 мм (0,059 инча). Отклонете се твърде далеч от тези размери и вашите ключове може вече да не се монтират правилно.

3D отпечатаният калъф е от две части, горната и долната. Натиснете превключвателите Cherry MX в квадратните отвори:

Уверете се, че сте монтирали превключвателите правилно. Отгоре има надпис „CHERRY“, а отдолу има малка прореза. Поставете 3 мм светодиод в този малък слот:

Може да откриете, че светодиодите изглеждат най -добре монтирани „с главата надолу“. Такъв беше случаят с ключовете, които използвах, и това изобщо не влияе на превключвателите.

Сега трябва да имате девет превключвателя с 9 светодиода. Няма нужда да залепвате някоя от тези части. Припоят ще държи светодиодите, а триенето ще задържи превключвателите.

След това завийте LED стойката (оставете светодиода отстранен засега). Ще завършите сглобяването на кутията по -късно, след като веригата бъде изградена.

Веригата

Тази схема е изградена върху лента. Това е отлично за изграждане на полу-постоянни схеми, без разходи за печатна платка (печатна платка). Това е просто парче фибростъкло с медни релси, успоредни в една посока. Тези писти могат да бъдат запоени, както и изрязани. Изрязването на коловоза може да се извърши със специален инструмент или малка свредло.

Не сте много уверени в запояването? Първо разгледайте тези прости проекти.

Ето оформлението на лентата (с изключение на задните линии):

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

Притискането на всички компоненти в толкова малко пространство е плътно. Изрежете ъглите на лентата, както следва:

Това трябва да се вписва добре в дъното на кутията:

Уверете се, че пистите вървят вертикално.

Свържете анода ( дълъг крак, положителен ) на светодиода към резистора 200 ома и след това към +5 V. Свържете катода ( къс крак, отрицателен ) за заземяване. Покрийте краката с термосвиваема втулка и след това натиснете в LED държача. Няма нужда от никакво лепило, но вашият LED държач може да не е притискащ, така че може да се наложи да адаптирате тези инструкции.

Вместо това може да искате да използвате двуцветен светодиод-това ще ви позволи да настроите две или повече банки от превключватели, с различен цветен светодиод за състоянието за всяка банка.

Сега е време да запоите всички светодиоди за ключовете. Те се използват единствено, за да накарат клавишите да светят, така че можете да ги пропуснете, ако искате, и те не трябва да бъдат свързани към цифров щифт, а само към захранване. Свържете всички аноди заедно и всички катоди заедно. Учете се от моята грешка - много по -лесно е да направите това, преди да окабелите превключвателите! Свържете анодите към +5 V през 220 омов резистор и катодите към земята. Тези светодиоди са свързани паралелно. Ето схемата само за тези светодиоди:

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

Включете Arduino, за да тествате всички светодиоди. Не е необходимо да качвате никакъв код. Ако някои светодиоди не работят, отидете и проверете отново кабелите си.

Сега свържете превключвателите. Те трябва да бъдат свързани чрез 10k резистор, в противен случай Arduino ще умре. Това се нарича мъртъв късо съединение - +5 V влиза директно в земята и всичко, което остава от вашия Arduino, ще бъде облак дим (повярвайте ми, вече убих един, така че не е нужно). Ето схемата за един превключвател:

Тази схема е еднаква за всичките девет превключвателя. Свържете превключвателите към цифрови щифтове от два до десет, всеки със собствен 10K резистор към земята. Внимавайте да запоявате ключове Cherry MX, те могат да бъдат малко крехки, имах няколко щифта върху мен. Може да искате да ги запоявате директно към още няколко ленти, но все пак задържащите кабели все още са подходящи.

Това е всичко за окабеляването. Може да пожелаете да монтирате женски контакт USB тип B, но малките щифтове върху тях често могат да бъдат доста трудни за запояване. Ако не искате да направите това, не се притеснявайте. Микро 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 с нов фърмуер, който ще го накара да работи като клавиатура. Това няма да бъде разгледано тук, тъй като това е доста сложна задача. The Уебсайт на 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;
}
}

Това проверява пиновия номер с помощта на a превключвател изявление. Превключване на изявления (понякога наричани разпределителна кутия ) са подобни на an ако изявление, но те са полезни за проверка дали едно нещо (в този случай пинов номер) е равно на един от няколко различни резултата. По същество те се изчисляват много по -бързо.

Основните компоненти са вътре в този оператор switch. Keyboard.println записва текст на компютъра, сякаш физически сте въвели всеки ключ. Клавиатура.прес натиска и задържа един клавиш. Не забравяйте да ги освободите с помощта 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 + В (затворете програмата macOS). Друга възможност е да прочетете нашите най -доброто ръководство за клавишни комбинации , как да създадете преки пътища за Windows и всеки пряк път за Chromebook за да започнете да създавате свои собствени преки пътища.

Създали ли сте собствено поле за бърз достъп? Кажете ми в коментарите, бих искал да видя няколко снимки!

Надяваме се, че артикулите, които препоръчваме и обсъждаме, ви харесват! MUO има партньорски и спонсорирани партньорства, така че получаваме част от приходите от някои от вашите покупки. Това няма да повлияе на цената, която плащате, и ни помага да предложим най -добрите препоръки за продукти.

Дял Дял Туит електронна поща Ето защо ФБР е издало предупреждение за кошера за рансъмуер

ФБР издаде предупреждение за особено гаден вид рансъмуер. Ето защо трябва да сте особено предпазливи към рансъмуера на Hive.

Прочетете Напред
Свързани теми
  • Направи си сам
  • Клавиатура
  • Комбинация от клавиши
  • Arduino
За автора Джо Кобърн(136 статии са публикувани)

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

Още от Джо Кобърн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате