使用arduino自定义快捷键

简陋的Arduino可以做很多事情,但你知道它可以模仿USB键盘吗?通过这个简单的电路,您可以将长键盘快捷键组合成一个自定义快捷键。...

简陋的Arduino可以做很多事情,但你知道它可以模仿USB键盘吗?通过这个简单的电路,您可以将那些难以记住的长键盘快捷键组合成一个自定义快捷键。最终结果如下:

shortcut-keys

以前从没用过Arduino?先看看我们的入门指南。

你需要什么

Arduino Shortcut Parts

以下是**此项目所需的内容:

  • 1个Arduino Pro Micro。
  • 瞬时按钮或键盘按钮。
  • 10K欧姆电阻器。
  • 各种连接线。
  • 1 x 220欧姆电阻器。
  • 1 x 5mm(0.197英寸)LED。
  • 1 x 5mm LED灯座。

你将需要一个非常具体的Arduino为这个项目。我用的是Pro-Micro,因为它们又小又便宜,所以你需要一个Arduino,处理器内置USB串行接口(Atmega32u4)。有可能与其他Arduinos(如UNO或Nano)一起构建此项目,但是需要进行大量的艰苦工作才能重新刷新bios并摆弄工作。其他Arduino型号的克隆通常根本不起作用,但Pro-Micro克隆也可以。

OSOYOO Pro Micro ATmega32U4 5V/16MHz Module Board with 2 Row pin Header Replace with ATmega328 Pro Mini for Arduino BUY NOW ON AMAZON

您将需要一个瞬时按钮,一个10K欧姆电阻,和适当的连接线为每个按钮,你想使用。我使用樱桃MX机械键盘开关的实际快捷键按钮,虽然任何开关会做,只要它是暂时的,而不是锁定。

您可能需要一些其他的项目,这取决于您如何构建它。如果你想原型,你将需要一个无焊试验板。把钱花在一个好的上是值得的——它们有时很不可靠。如果你想把这个包装起来,你就得买些脱衣舞板。

建造计划

这就是它的工作原理。Arduino将被编程成一个USB键盘——就你的电脑而言,它就是。连接到Arduino的几个按钮将向您的计算机发送关键命令。例如,您只需按一个按钮,但您的计算机会认为您按了Alt>F4。

选择开关

Arduino Cherry MX

MX系列交换机有几种变体。这个网站提供了一个很好的介绍,但他们基本上归结为噪音和压力。有些型号需要更大的压力才能按下,有些型号按下时会发出机械的“咔嗒”声。我用的是樱桃MX棕色,按下时不会发出噪音。他们都是相同的尺寸,所以选择任何模式,你喜欢(或混合和匹配)不用担心。

当然,你还需要购买一些关键的帽子,外面有一个定制设计的世界——我们从英国的KeBooDo公司购买的。

案件

我已经3D打印了这个箱子,你可以从Thingiverse下载.STL文件。不用担心,如果你没有自己的3D打印机,你仍然可以建立这个。许多网站提供3D打印服务,如3D集线器或Shapeways。或者,这是一个非常简单的情况下,你可以做你自己的塑料,有机玻璃,木材,甚至纸板。如果你真的想节俭,CherryMX会在Amazon(英国)上**一套开关测试仪/采样器。您需要4个M5 x 35mm螺栓和4个M5螺母。你当然可以用这些来代替你现有的合适的替代品。

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switches Pro Sampler Tester Kit) BUY NOW ON AMAZON

如果你正在做你自己的情况下,有一个重要的细节,你需要知道:樱桃MX开关是一个推入安装孔适合。它们需要一个14 x 14毫米(0.551英寸)的方形安装孔,板的厚度不超过1.5毫米(0.059英寸)。偏离这些尺寸太远,您的交换机可能无**确安装。

Shortcut Case

3D打印盒分为顶部和底部两部分。将Cherry MX开关推入方孔:

Shortcut Cherry MX Mount

确保正确安装开关。顶部有“樱桃”字样,底部有一个小缺口。将一个3毫米的LED**这个小槽中:

Shortcut Cherry MX LED

您可能会发现LED最好是“倒置”安装。我使用的键帽就是这样,它根本不影响开关。

现在应该有9个带有9个LED的交换机。没有必要把这些部件粘在一起。焊料将固定LED,摩擦将固定开关。

Shortcut Cherry MX All

接下来,拧入LED支架(暂时不要拆下LED)。你将完成组装案件稍后,一旦电路建成。

电路

这个电路是建立在带状板上的。这是极好的建设半永久性电路,而无需成本的印刷电路板(PCB)。它只是一块玻璃纤维和铜轨道平行于一个方向运行。这些轨道既可以焊接,也可以切割。切割履带可以用专用工具或小钻头来完成。

对焊接不太自信?先看看这些简单的项目。

以下是剥离板布局(不包括尾随引线):

Arduino Shortcut Stripboard

一定要切断电阻和Arduino下面的痕迹。由于很难读取带板电路,这里有一个试验板版本:

Arduino Shortcut Breadboard

把所有的部件都挤进这么小的空间是很合适的。按如下方式切割脱衣舞板的角:

Shortcut Stripboard

这应该整齐地放在箱子底部:

Shortcut Stripboard in Box

确保轨道垂直运行。

将LED的阳极(长腿,正极)连接至200欧姆电阻器,然后连接至+5 V。将阴极(短腿,负极)连接至接地。用热缩套管盖住腿部,然后推入LED灯座。不需要任何胶水,但是您的LED支架可能不是推入式安装,因此您可能需要调整这些说明。

Shortcut Status LED

您可能希望在这里使用双色LED—这将允许您设置两个或多个开关组,每个开关组具有不同颜色的状态LED。

现在是时候焊接所有的LED的键帽。它们只用于使按键发光,因此如果您愿意,可以跳过它们,而且它们不必连接到数字管脚,只需连接电源即可。把所有的阳极连在一起,把所有的阴极连在一起。从我的错误中吸取教训--在连接开关之前这样做要容易得多!通过220欧姆的电阻器将阳极连接到+5伏,将阴极接地。这些LED是并联的。以下是这些LED的电路:

Shortcut Button LEDs Circuit

使用一小块热缩管覆盖LED和Arduino之间的连接:

Shortcut LED Heatshrink

接通Arduino电源,测试所有LED是否正常工作。你不需要上传任何代码。如果任何发光二极管不工作,去仔细检查你的线路。

Shortcut LED Testing

现在接通开关。这些必须通过10k电阻连接,否则Arduino会死掉。这就是所谓的死短路-+5V直接进入地面,剩下的所有你的Arduino将是一股烟(相信我,我已经杀了一个,所以你不必)。这是一个开关的电路:

Arduino Shortcut Circuit

所有九个开关的电路相同。将开关连接到数字管脚2到10,每个管脚都有自己的10K接地电阻。小心焊接樱桃MX开关,他们可以有点脆弱,我有几个引脚打破了我。您可能想焊接这些直接到一些更多的剥离板,但尾部引线仍然是合适的。

那是接线的。您可能希望安装一个USB类型B母插座,但是它们上的小引脚往往很难焊接。如果你不想这样做,不要担心。Arduino上的Micro USB接口与机箱上的孔配合得很整齐。如果您对不同的USB类型有点困惑,请确保您理解它们的区别。

最后,再次检查电路是否正确。一个短可以很容易地摧毁一个Arduino,它可以很容易地做使用剥离板。

代码

现在测试电路是否正确。这是一个好主意,这样做之前,继续,所以你可以解决任何问题,而你现在可以。上载此测试代码(不要忘记从Tools>board and Tools>port菜单中选择正确的板和端口):

c***t int butt***[] = {2,3,4,5,6,7,8,9,10}; // array of all button pinsvoid 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); } } }}

如果修改了电路,可能需要更改管脚。

上传后,打开串行监视器(右上角>串行监视器)。一个接一个地按每个按钮。您应该看到串行监视器显示您按下的按钮的编号。就像LED一样,如果您的电脑抱怨电流太大,或者按下按钮时LED熄灭,请立即断开连接!电路中的某个地方短路,请仔细检查电路是否正确,连接之间是否存在短路。

如果一切正常,就把电路放进盒子里。你可能想用一点胶水把电路固定在适当的位置(尽管电线把我的固定得很好)。把盖子也栓上。

使Arduino看起来像一个键盘是非常简单的。如果您使用的是Nano或UNO,您将使用设备固件更新(DFU)重新编程您的Arduino。这通常用于向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),只需要写一次。这也叫键盘.开始. 这将建立一个内置于Arduino库中的函数,专门为模拟键盘而设计。

创建名为readButton的方法:

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

这需要一个别针,并检查它是否被按下。它只返回TRUE或FALSE。它还包含一些软件去抖动-一个简单的延迟,然后重新检查开关,确保按钮真的被按下。

现在在void loop()中调用另一个for循环:

void loop() { // put your main code here, to run repeatedly: for (int i = 2; i < 11; ++i) { // check butt*** 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语句检查管脚号。Switch语句(有时称为Switch case)类似于if语句,但是它们有助于检查一件事(在本例中是pin编号)是否等于几个不同结果中的一个。基本上,它们的计算速度要快得多。

主要组件在此switch语句中。键盘.println向计算机写入文本,就好像您实际键入了每个键一样。键盘.按键按住一个键。别忘了用键盘。全部释放在短暂的延迟之后!

完整代码如下:

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 butt*** if(readButton(i)) { doAction(i); } }}boolean readButton(int pin) { // check and debounce butt*** 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快捷键,开始**自己的快捷键。

你创建了自己的快捷方式框吗?让我知道在评论中,我想看到一些图片!

  • 发表于 2021-03-17 01:02
  • 阅读 ( 570 )
  • 分类:IT

你可能感兴趣的文章

6个最佳arduino替代微控制器

今天,Arduino被广泛认为是DIY电子和编程的最佳途径,初学者的教程到新手项目的想法丰富多彩。 ...

  • 发布于 2021-03-11 16:53
  • 阅读 ( 491 )

如何用arduino和unity制作自定义游戏控制器

...戏控制器与Unity游戏引擎一起使用。这个控制器将由一个Arduino Uno提供动力,不过你也可以在这个项目中使用许多替代品中的一个。我们还将创建一个基本的游戏,你将使用你的控制器,以避免下降的物体和减慢时间。 ...

  • 发布于 2021-03-17 05:47
  • 阅读 ( 585 )

你应该开始使用mac的15个自定义快捷键

键盘快捷键提供了一些在Mac上执行操作的最快方法。不过,问题往往是,要记住的东西太多了。因此,除非你每天反复使用相同的快捷方式,否则你可能会转而使用鼠标或轨迹板。 ...

  • 发布于 2021-03-19 11:38
  • 阅读 ( 270 )

15个优秀的arduino初学者项目

Arduino项目可能很难知道从哪里开始。幸运的是有这么多的选择。这里有15个初学者Arduino项目,让你去! ...

  • 发布于 2021-03-23 11:30
  • 阅读 ( 356 )

7个很酷的项目,你可以建立一个小小的

...微控制器所需知识的良好入门知识,请参阅我们的自定义快捷键**指南。 ...

  • 发布于 2021-03-25 16:17
  • 阅读 ( 265 )

如何用游戏控制器和arduino控制机器人

Arduinos和类似的兼容板是各地DIY修补匠的首选设备之一。无论你是一个刚开始使用Arduino的初学者,还是一个已经在你的生活中使用Arduino的人,它们都为无数令人敬畏的项目提供了一个平台。 ...

  • 发布于 2021-03-25 23:05
  • 阅读 ( 323 )

图标包在iphone上如何工作?

...的iOS操作系统,支持图标包。您不能在几次点击中安装和使用图标包。不幸的是,安装过程需要一些时间。 图标包的工作得益于苹果iPhone快捷方式应用程序中的一项功能。您可以创建一个启动应用程序的快捷方式(使用“打开...

  • 发布于 2021-03-31 11:11
  • 阅读 ( 198 )

如何通过轻触iphone背面静音

...0(静音),则会将音量设置为0%,从而使**静音。 否则,快捷键会假定您的**已静音,并将音量设置为50%。 一旦你有了快捷方式,你就可以自定义你的iPhone在关闭静音时的音量。设置为50%,但您可以选择任何值。 要更改音量,...

  • 发布于 2021-04-01 10:35
  • 阅读 ( 160 )

如何使用小部件和图标自定义iphone主屏幕

...虽然苹果不会像Android那样让你更改应用图标,但你可以使用快捷方式应用程序为使用自定义图标的应用程序创建快捷方式。事实上,这项功能适用于所有运行iOS 12及更高版本的iPhone。 相关:如何在iPhone主屏幕上添加和删除小部...

  • 发布于 2021-04-01 13:25
  • 阅读 ( 184 )

自定义应用程序图标会降低iphone的运行速度

...pen when you tap a shortcut icon on your home screen. 问题就在这里 使用自定义应用程序图标的感觉是这样的:每当你点击一个漂亮的自定义应用程序图标时,应用程序的启动速度就会比你只使用它的内置图标慢。 要创建自定义应用程序...

  • 发布于 2021-04-01 13:49
  • 阅读 ( 161 )
t9472705
t9472705

0 篇文章

相关推荐