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

世界各地的人们使用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向您的计算机发送击键。只需打开一个在线钢琴应用程序并释放你的内心香蕉音乐家。

浅谈贴片安规Y电容的优缺点
华南地区首个AI公园项目已正式启动
易华录提出面向数据湖的数据安全治理框架
澳大利亚公司已扫清太阳能电池的主要障碍之一,利用铜代替银
STM32按键控制LED的亮灭
怎样使用Arduino和按钮自动重复按键
STM32的硬件I2C设计有BUG
大联大友尚集团推出基于onsemi产品的65W PD电源适配器方案
物联网网关如何配置云里物里IoT网关-G1操作说明
三星Galaxy Fold 2折叠屏手机添加新配色,采用6.7英寸显示屏
电动牙刷哪个牌子好?进取的生活理应有贵奢的它
电源设计说明:开关模式解决方案中的声学噪声抑制
全球首款碳纤维智能手机发布,比一袋薯片还轻
IGBT:走虚拟IDM之路
Amphenol Commercial SAS/PCIe 4.0连接器的特性和应用
cam350层的编辑
恩智浦半导体加入互联照明联盟
零跑汽车全系降价,最高综合优惠4万元
米尔科技荣获ARM公司颁发的“2013年亚太区最佳代理商大奖”
五分钟了解奇瑞全新SUV平台——T1X平台概念