怎样使用Arduino和按钮自动重复按键

电子说

1.3w人已加入

描述

世界各地的人们使用Arduino来控制电机,螺线管和泵,但是你做到了吗?知道Arduino也可以用来控制你的电脑吗?

使用一些简单的代码,Arduino可以作为键盘呈现给你的电脑,能够输入文字,按住键和触发键盘快捷键。您甚至可以将Arduino编码为鼠标或媒体控制器 - 可能性非常大!

强大的生产力工具

我觉得最令人兴奋的是,您可以对Arduino进行编程,以便向您的计算机发送一系列按键。因此,如果您将按钮连接到Arduino,您可以使用单按按钮来触发多次自动击键。

如果您经常发现自己键入重复文本或使用相同的键盘快捷键,那么现在是时候了你将你的Arduino变成一个强大的生产力工具,消除了很多关键的攻击!

向ATmega32u4问好

在你找到你之前Arduino Uno,你应该知道这个功能仅限于基于ATmega32u4微芯片的Arduino板。

与大多数Arduino板(有一个单独的微芯片来处理USB串行通信)不同,ATmega32u4可以完成所有工作。一个芯片,允许它直接呈现为键盘。

支持此功能的主板是Arduino Leonardo,Arduino Micro和Arduino兼容的Pro Micro。

对于本教程,我将使用Arduino兼容e Pro Micro。你可以从Ebay那里得到它们非常便宜,只要确保你不要把它与Pro Mini混在一起,这是一个完全不同的板!

与Arduino兼容的Pro Micro。

硬件

将我的Arduino兼容Pro Micro放入面包板并连接按钮,为触发我们的自动击键提供物理输入。这是一个非常简单的接线图 - 按钮的输入位于Arduino兼容Pro Micro的引脚2上。

这是接线图的示意图:

接线图示意图

如果你在家里玩(就像我一样,在我写作的时候),那么这里有一张照片实体板:

实际构建。不要介意我的(相当摇摆)电路布线。

击键自动化软件

该软件相当简单 - 它使用内置的 Keyboard.h 库发送击键,并有一个基本循环,用于监听第2针上的按钮按下。

#include // The main library for sending keystrokes.

void setup()

{

Keyboard.begin(); // Initialise the library.

}

// Loop around waiting for a button press on pin 2.

// When the button is pressed, go to the function triggerAutomation.

void loop()

{

if(digitalRead(2) == HIGH)

{

triggerAutomation();

}

}

void triggerAutomation()

{

Keyboard.press(KEY_LEFT_GUI); // Press and hold the Windows key.

Keyboard.press(‘r’); // Press and hold the ‘r’ key.

delay(100); // Wait for the computer to register the press.

Keyboard.releaseAll(); // Release both of the above keys.

delay(1000); // Wait for the Windows Run Dialog to open.

Keyboard.print(“Notepad”); // Type “Notepad”。

Keyboard.press(KEY_RETURN); // Press the Enter key.

delay(100); // Wait for the computer to register the press.

Keyboard.releaseAll(); // Release the Enter key.

}

作为一个有趣的例如,我已经将这个Arduino草图打开了Windows计算机上的应用程序记事本。它通过触发键盘快捷键“Windows Key + R”来打开Windows运行对话框来完成此操作。然后键入应用程序“记事本”的名称并按Enter键。

这种击键组合将使应用程序记事本在屏幕上快速弹出,所有这些都是通过链接到Arduino的单个物理按钮触发的。

如果您在Linux或OSX上并不绝望,可以非常轻松地调整代码以在您首选的操作系统中实现自动化 - 按键和快捷键的相同原则仍然适用。

后续步骤

想要打开不同的应用程序而不是记事本?简单!只需将字符串“notepad”替换为Arduino草图中的“winword”,看看会发生什么。..。..你可能对弹出的应用程序非常熟悉!

不要忘记延迟。..。..

可能不会立即显而易见的一件事是需要延迟代码。我把它们放进去是因为你的Arduino可以比计算机读取它们更快地发送击键。因此,您必须延迟100到1000毫秒才能使计算机赶上。

你能走多远?

如果你正在寻找使用这种Arduino键盘技术可以实现的一些灵感,然后看看Makey Makey。

它在一个聪明的小板上使用ATmega32u4芯片。设计用于连接(通过鳄鱼夹)香蕉,胡萝卜,软糖熊,以及任何你喜欢的东西!

带有Makey Makey的香蕉钢琴。图片由Makey Makey提供。

您可以通过有趣的事情在两个联系人之间建立联系(如一个香蕉)这将导致Makey Makey向您的计算机发送击键。只需打开一个在线钢琴应用程序并释放你的内心香蕉音乐家。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分