0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:工程师吴畏 2019-07-26 14:09 次阅读

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

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

    关注

    188

    文章

    6469

    浏览量

    187094
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 873次阅读

    控制的按钮开关是交流还是直流

    控制按钮开关可以是交流(AC)或直流(DC)供电,具体取决于其设计和应用场景。在电气系统中,按钮开关通常用于控制电路的开启和关闭,它们可以是简单的机械开关,也可以是更复杂的电子控制单元。 1.
    的头像 发表于 09-11 14:54 674次阅读

    开源项目!基于 Arduino DIY 漂亮的宏机械键盘

    功能。例如,对于键 2,我指定了截屏快捷键,在 Mac OS 上是 CMD+SHIFT+5。在if条件下,如果按下按钮Arduino 将通过 Keyboard.press () 函数将三个按键发送到
    发表于 08-19 17:02

    怎样Arduino测试锂电池容量

    本文详细介绍了如何用Arduino测量锂电池的容量。并附有电路图和Arduino的程序代码。
    的头像 发表于 07-30 09:14 900次阅读
    <b class='flag-5'>怎样</b>用<b class='flag-5'>Arduino</b>测试锂电池容量

    在ESP32-S3-DevKitM-1上学习使用按键中断,无法工作是哪里的问题?

    硬件:ESP32-S3-DevKitM-1 IDE:Arduino IDE 2.0.3 想借助板子上的boot按钮学习使用按键外部中断控制RGB亮灭,代码附下,问题表现为开发板重启,中断无法工作
    发表于 07-01 07:32

    ESP32使用Arduino启用蓝牙后编译固件过大,怎样缩减大小呢?

    ESP32使用Arduino启用蓝牙后编译固件过大,怎样缩减大小,日志级别已经最低了,分区不能动,已经是1.9M的OTA分区配置了,怎样还能缩减大小,蓝牙功能能否裁剪
    发表于 06-28 11:27

    Arduino怎样配置LVGL8.1.0访问spiffs里面的字库或图片?

    抱歉把Arduino的内容发在这个版块了. 在Arduino的示例中LITTLEFS_test.ino SPIFFS_Test.ino FFat_Test.ino已经测试成功, 并且使用ESP32
    发表于 06-19 06:15

    使用idf.py命令方式编译,怎样才能编译arduino的库,并且在项目中可调用?

    在编译过程中,提示找不到对应的头文件。 请问使用idf.py命令方式编译,怎样才能编译arduino的库,并且在项目中可调用。
    发表于 06-13 06:56

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用
    发表于 06-12 07:21

    stm8触摸感应按键怎样扫描的?

    stm8触摸感应 按键怎样扫描,和怎样消抖
    发表于 04-01 06:17

    如何用Arduino制作一个简易自动喂鱼器

    如果你家里养有鱼,并想找到一种自动化喂食的方法,这个项目可能会对你有所启发。 在这个教程中,作者将展示如何制作自己的基于Arduino自动喂鱼器,让小鱼不在饿肚子。 自动喂鱼器的
    发表于 03-28 11:25

    arduino中while循环怎么跳出

    Arduino 是一款开源的硬件平台,广泛应用于各种物联网和嵌入式系统项目。在 Arduino 上编写代码时,循环结构起到了至关重要的作用。而其中的 while 循环更是常用于需要根据特定条件重复
    的头像 发表于 02-14 16:22 2599次阅读

    如何将按钮连接到Arduino

    在本快速入门指南中,您将学习如何将按钮连接到Arduino板,并根据按钮是否被按下来读取HIGH或LOW。您将使用电路板上随附的发光二极管 (LED)通过按钮打开和关闭,以便验证
    的头像 发表于 02-11 10:52 3852次阅读
    如何将<b class='flag-5'>按钮</b>连接到<b class='flag-5'>Arduino</b>板

    使用Arduino IDE 2.0开发ESP32摄像头模块

    的ESP系列开发板。新的Arduino IDE 2.0使用与经典Arduino IDE不同的基础平台,具备更多现代IDE特征,有更好的语法高亮显示,自动完成,代码导航,在线调试等功能。Ardu
    发表于 02-07 17:06

    传iPhone16 Pro取消实体按键

    根据最新传闻,苹果在最新的iPhone 16 Pro工程机上做出了一项重大改变。这款新机型的操作按钮已从实体按键转变为电容式按键,彻底取消了实体按键的设计。
    的头像 发表于 01-15 15:26 1152次阅读