前方预警:这是外国女程序员的神奇创作——莫尔斯 USB 键盘
打从记事以来,我就生活在设计精美的模拟设备的环境中,比如旋转式拨号电话,打字机和唱片机。我一直有把这些大部分现在不常用的东西转换成数字设备的想法,而这其中,老爸的旧莫尔斯电键看起来像是一个简单的项目~
所以我就想到当插入任何笔记本电脑或 PC 的 USB 3.0 端口时,莫尔斯键的行为就像一个键盘; 用户可以用莫尔斯电码键入信息,并在屏幕上出现相应的英文字母数字字符。这个项目的代码我 po 到了 Github 上,有心人都可以去尝试一下~(https://github.com/nomblr/morse/)
莫尔斯电键积了很多灰尘,而且装在一个很丑的塑料基地上,因此我准备把所有东西都拆开,把莫尔斯电键清洁干净!
在湿纸巾的帮助下,这项工作完成的很出色。并且我还仔细打磨了两个金属触点(“ 开关 ”),改善电路连接的情况并去除一些沉积的脏东西。
接下来就是将电键转换为数字设备。为了实现这一点,我使用一个小巧,便宜的微型控制器——Teensy 3.2。
这是我第一次尝试做这种事,你可以想象当我点亮并且成功运行的时候,我的内心是多么喜悦~
为了确保 Teensy 正确按照预期“ 翻译 ”莫尔斯密码,我为 Teensy 写了一些测试代码。因此每当按下莫尔斯电键一次,我就会看到电脑端有字符输出。
然而很快我就遇到了一个问题:机械开关按下时不能形成完美的物理接触 (通常在“ 通路 ”和“ 断路 ”之间摆动几次,持续约 1ms,然后稳定到“ 通路 ”状态)。计算机能够快速检测到这些振荡,所以当我按下我的莫尔斯电键时,Teensy 检测到照片中显示的几个快速按键。这种效应称为“ 反弹 ”,幸好内置的 Teensy 库能够补偿它。
Teensy 编程完后,我准备制作一个隐藏莫尔斯电键下方的电子设备的木质底座。为啥选木材而不是 3D 打印呢?其实不是美观不美观的问题,而是因为用 3D 打印出来的底座都适配失败了。。
我把木板锯成 110x90mm,这样莫尔斯电键可以很恰当地放在上面。在下方我凿出了一个尺寸约为 50x40x10mm 的凹痕,用于放置微控制器 Teensy 和布线。
最后我打磨了一下新的键盘,并将其连接到我的笔记本电脑上~
很高兴看到最终完成的莫尔斯键盘应用在笔记本电脑上~
*为了 Teensy 能够成功检测到每次点击莫尔斯电键的不同,来区分点、破折号、字母和单词之间的停顿。我在绝对时间的基础上结合自己的键控速度。用 150ms 的阈值来区分短划线,并且字母和单词之间的时间间隔被设置为 500ms 和 3000ms。当然,每个人的习惯都不一样,这个就要自己把握了~
你有没有什么创造的好玩儿的东西,欢迎和我们一起分享呦^_^ ~~这里是igeekbar,欢迎每一位Geek 常来做客~~~大家有啥建议、意见,不要客气!欢迎给我留言呀~~
相关推荐
本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。 内容简介 本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。本书集综合性、实用性为一体,是学习C语言...
【描述】中的"没见过比这再粗糙的贪吃蛇了,不过运行是可以保证的"暗示这个游戏可能没有华丽的图形界面或者高级的功能,但是基础的游戏玩法已经实现,能够正常运行。在初学编程或教学场景中,这种简单的实现方式是...
在本章中你将了解 Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 ...
我相信,如果你也对神奇的计算机世界充满好奇,并且希望通过自己编写操作系统的方式来了解背后发生的故事,那么你一定可以在这本书中得到一些帮助。而假如你真的因为我的书而重新燃起实践的热情,从而开始一段操作...
我相信,如果你也对神奇的计算机世界充满好奇,并且希望通过自己编写操作系统的方式来了解背后发生的故事,那么你一定可以在这本书中得到一些帮助。而假如你真的因为我的书而重新燃起实践的热情,从而开始一段操作...
对于开发人员来说,遇到未见过的异常或错误是很常见的。解决问题的关键在于良好的调试技巧和使用强大的开发者工具。例如,使用 IDE(如 IntelliJ IDEA 或 Eclipse)内置的调试功能,查阅官方文档,以及利用 Stack ...
无论你是业余爱好者还是专业程序员,无论你是自己玩玩还是为了盈利,都应该了解关于Android开发的更多信息。本书将帮助你迅速入门。. Android的特别之处 如今,市场上已经有了许多移动平台,包括Symbian、...
因为一些程序员使用不支持异常处理语言编程时,往往拖延或忘记错误处理程序的编写,故,Java强制程序员从项目一开始就着手进行异常处理,程序员必须投入很大精力把异常处理的策略融合到软件产品中<BR>11、 ...
对应的书籍资料见: Visual C++ 2005入门经典 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:...
Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...
紧接着就会有一个判断,用来确定该链表中是否只有一项,如果链表中保存了多个文档模版,则会弹出一个对话框,来让我们选择到底是使用哪一套文档模版来构建应用程序,相信大家也都见到过这种情况吧。对了,还有一点要...
对应的书籍资料见: Visual C++ 2010入门经典(第5版) 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2010 原出版社: Wrox 作者: (美)Ivor Horton 译者: 苏正泉 李文娟 出版社:清华大学出版社 ISBN:...