`
jjfat
  • 浏览: 284716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

女程序员的键盘,你一定没见过!

 
阅读更多

不得不佩服女程序猿的想象力,她们的打字方式你永远也猜不到!

前方预警:这是外国女程序员的神奇创作——莫尔斯 USB 键盘

 


 

以下为文章翻译:

 

打从记事以来,我就生活在设计精美的模拟设备的环境中,比如旋转式拨号电话,打字机和唱片机。我一直有把这些大部分现在不常用的东西转换成数字设备的想法,而这其中,老爸的旧莫尔斯电键看起来像是一个简单的项目~

 

莫尔斯电码是一种将国际公认的字母表(a-z)和数字(0-9)字母表示为一系列点和破折号的方式。在一战和二战期间,它变成了一个十分方便发送加密的信息的方式。传统的莫尔斯电键就像一个开关,联通和断开电路连接就能通过无线电波传播这些点和点的音长。


 

所以我就想到当插入任何笔记本电脑或 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 到莫尔斯电键的电线,顶部有四个较小的导向孔,用来把莫尔斯电键旋进底座。

 

 

最后我打磨了一下新的键盘,并将其连接到我的笔记本电脑上~


 

很高兴看到最终完成的莫尔斯键盘应用在笔记本电脑上~


 

*为了 Teensy 能够成功检测到每次点击莫尔斯电键的不同,来区分点、破折号、字母和单词之间的停顿。我在绝对时间的基础上结合自己的键控速度。用 150ms 的阈值来区分短划线,并且字母和单词之间的时间间隔被设置为 500ms 和 3000ms。当然,每个人的习惯都不一样,这个就要自己把握了~

 


 

你有没有什么创造的好玩儿的东西,欢迎和我们一起分享呦^_^ ~~这里是igeekbar,欢迎每一位Geek 常来做客~~~大家有啥建议、意见,不要客气!欢迎给我留言呀~~

ps:女程序猿动起手来真的真的很可怕呦~

 

 

via  imgur.com/gallery/lNAtQ

0
0
分享到:
评论

相关推荐

    C语言入门经典(第4版)--源代码及课后练习答案

     本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。 内容简介  本书是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。本书集综合性、实用性为一体,是学习C语言...

    JAVA 编写的 贪吃蛇

    【描述】中的"没见过比这再粗糙的贪吃蛇了,不过运行是可以保证的"暗示这个游戏可能没有华丽的图形界面或者高级的功能,但是基础的游戏玩法已经实现,能够正常运行。在初学编程或教学场景中,这种简单的实现方式是...

    C#微软培训资料

    在本章中你将了解 Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 ...

    自己动手写操作系统(含源代码).part2

    我相信,如果你也对神奇的计算机世界充满好奇,并且希望通过自己编写操作系统的方式来了解背后发生的故事,那么你一定可以在这本书中得到一些帮助。而假如你真的因为我的书而重新燃起实践的热情,从而开始一段操作...

    自己动手写操作系统(含源代码).part1

    我相信,如果你也对神奇的计算机世界充满好奇,并且希望通过自己编写操作系统的方式来了解背后发生的故事,那么你一定可以在这本书中得到一些帮助。而假如你真的因为我的书而重新燃起实践的热情,从而开始一段操作...

    高效 Windows 工作环境 && Java 开发环境搭建 - 文章 - 伯乐在线1

    对于开发人员来说,遇到未见过的异常或错误是很常见的。解决问题的关键在于良好的调试技巧和使用强大的开发者工具。例如,使用 IDE(如 IntelliJ IDEA 或 Eclipse)内置的调试功能,查阅官方文档,以及利用 Stack ...

    Android程序设计基础

    无论你是业余爱好者还是专业程序员,无论你是自己玩玩还是为了盈利,都应该了解关于Android开发的更多信息。本书将帮助你迅速入门。.  Android的特别之处  如今,市场上已经有了许多移动平台,包括Symbian、...

    JSTL详细标签库介绍

    因为一些程序员使用不支持异常处理语言编程时,往往拖延或忘记错误处理程序的编写,故,Java强制程序员从项目一开始就着手进行异常处理,程序员必须投入很大精力把异常处理的策略融合到软件产品中<BR>11、 ...

    Visual C++ 2005入门经典--源代码及课后练习答案

    对应的书籍资料见: Visual C++ 2005入门经典 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2005 原出版社: Wiley 作者: (美)Ivor Horton 译者: 李颂华 康会光 出版社:清华大学出版社 ISBN:...

    JAVA上百实例源码以及开源项目源代码

    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...

    MFC的程序框架剖析

    紧接着就会有一个判断,用来确定该链表中是否只有一项,如果链表中保存了多个文档模版,则会弹出一个对话框,来让我们选择到底是使用哪一套文档模版来构建应用程序,相信大家也都见到过这种情况吧。对了,还有一点要...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    对应的书籍资料见: Visual C++ 2010入门经典(第5版) 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2010 原出版社: Wrox 作者: (美)Ivor Horton 译者: 苏正泉 李文娟 出版社:清华大学出版社 ISBN:...

Global site tag (gtag.js) - Google Analytics