电子说
世界各地的人们使用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向您的计算机发送击键。只需打开一个在线钢琴应用程序并释放你的内心香蕉音乐家。
全部0条评论
快来发表一下你的评论吧 !