用摩尔斯电键作鼠标和键盘

上一篇文章介绍了使用Teensy 3.2将摩尔斯电键变为键盘的方法。经过研究,我决定使用Arduino Leonardo实现之。相比Teensy 3.2,Arduino Leonardo成本更低,并且实现起来也较为简单。电键则采用全新产品,无需手动走线、打磨底座等,避免了使用二战时期古董带来的种种问题。

Arduino Leonardo是基于ATmega32U4微控制器的开发板。它有20个输入/输出引脚(在写入程序时可以定义各个引脚的作用,其中最多有7个可用于PWM输出、12个可用于模拟输入),一个16 MHz的晶体振荡器,一个Micro USB接口,一个DC接口,一个ICSP接口,一个复位按钮。它包含了支持微控制器所需的一切,你可以简单地通过把它连接到计算机的USB接口来驱动它。
Leonardo不同于之前所有的Arduino控制器,他直接使用了ATmega32U4的USB通信功能,取消了USB转UART芯片。这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/ COM端口,还可以作为鼠标或者键盘连接到计算机。更多内容可以参考文档(在DOCUMENTATION选单中包含完整电路图)。
硬件准备工作:
1、Arduino Leonardo开发板1一块
2、摩尔斯电键一个(例如K4型重型电键)
3、面包板、导线(杜邦头连接线)及USB线
取决于摩尔斯电键的输出方式,可能还需要一个3.5mm/6.5mm音频接口
有必要的话,还可以准备万用表等辅助工具
软件准备工作:
1、Arduino IDE
2、准备烧录的程序源代码
3、Bounce2库
理论上Arduino Leonardo在Mac下可以无需驱动,即插即用;如果出现系统无法识别设备(串口)的情况,可以到相关论坛寻求帮助(出现这种情况,常见的可能是FTDI驱动冲突,或者是由macOS系统完整性保护造成的问题;常见的解决方案包括重启Arduino Leonardo并等待几秒、外接9V电源或者检查驱动问题)Windows下情况暂未测试。
操作步骤:
1、打开Arduino IDE,导入下载的Bounce2库。

2、将Arduino Leonardo开发板通过USB线连接到电脑上,在Arduino IDE的“工具”菜单下设置正确的开发板和端口,如图所示。

3、如果是初次使用,在“文件”菜单下选择示例,找到Blink,打开后,依次点击编译、上传。如果出现未响应、无法找到端口等现象,请点击开发板上的按钮重启。如果上传成功,并且二极管L以0.5Hz的频率闪烁,则说明配置正确。

4、解压并打开下载的源代码文件。其中Keyboard文件能够将摩尔斯电键变为虚拟键盘,通过敲击字符的摩尔斯电码输入;Mouse文件能够将摩尔斯电键变为虚拟鼠标,按下即触发一次鼠标点击。选择你需要的文件,使用Arduino IDE打开,然后依次点击编译、上传。
5、请使用物理方法将摩尔斯电键的两端分别连到Arduino Leonardo的GND和12端口,如图所示(当然,你可以更改源代码来使用别的端口)。如果是虚拟键盘模式,连接GND和8端口可以输入大写字母,不连接则输入小写字母。

6、如果一切就绪,那么,当你按下电键或输入摩尔斯电码,电脑就会作出正确的反应。

以上就是用摩尔斯电键作鼠标和键盘的教程。当然,Arduino Leonardo开发板的作用远远不止这些,如果发现更为有趣的应用,我会继续分享出来。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code