- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计一个简单的密码锁
密码锁是锁的一种,开启时用的是一系列的数字或符号,在生活中十分常见。图1是一个常见的密码锁,用于锁皮箱、抽屉等私人空间。图2所示的也是密码锁,这是一个密码水龙头,只有输入正确的数字密码,才能打开。当然,这个设计在实际使用中未必很方便,但谁也不能否认这是个有趣的想法:连水龙头都可以设置密码,还有什么不可以设置密码呢?
常见的密码锁一般使用机械结构,转动一组刻有数字的拨轮圈,可以带动锁内部的机械。Boson Kit(具体介绍见上期文章)为我们提供了与、或、非等逻辑模块,那么能否用它来做一个基于逻辑的数字密码锁呢?本案例将具体介绍如何用Boson Kit设定密码来控制一只小灯。
● 功能分析
Boson Kit主板电源的功能很简单,只要输出给小灯的是高电位,就能控制小灯亮。但是我们希望达到的功能是:按下相应的按钮才能点亮小灯。为了使按钮能稳定在“按下”和“弹起”两种状态,我们选择了自锁开关模块作为密码按键。自锁开关是一种能够锁住自己的开关,在第一次按开关按钮时,开关接通并保持,即自锁;在第二次按开关按钮时,开关断开,同时开关按钮弹出来。用计算机的0、1表示其工作输出值,按下为1,弹起为0。如果想要一个数字密码键,只要给开关的按钮贴上数字就可以了。
假设我们的密码键有1、2、3三个数字,而我们的密码是3、1,只有先按下3再按下1,按键2处于弹起的状态时,才算解锁成功。下面,我们来逐步分析设置密码的过程。
1.利用And(逻辑与)模块实现3、1要同时按下才能解锁
在And模块的帮助下,实现按下2位数字解锁十分容易,如图3所示。
但是,这肯定存在问题:当按键1、2、3全部被按下的时候,小灯自然就亮了,完全没有达到密码的功效。
2.利用or(逻辑非)模块实现按钮2弹起状态才能解锁
要让按键1、3被按下而按键2未被按下,这里又多了一个条件,这就需要用到or(逻辑非)模块。线路图可以参考图4所示,此时只有按下1和3且2未按下,灯才能亮起。
3.实现3、1的先后次序按键才能解锁
细心的读者肯定能发现,完成了第二步后,其实还没有真正完成任务,因为还没有为密码设置顺序。因为无论是按1、3,还是按3、1,都是同样的效果,所以还需要再次改进。
我们可以采用一个有趣的思路,当用户(解锁人)先按下1,则输出一条线路,让3按下不起效果。但是如果先按下3,利用延时模块将信号保持1~2秒左右。只要在规定时间内按下1,就能点亮灯泡(解锁)。虽然按下1按键同样会导致3按键不可用,但是信号已经延时了,不受影响。连接图可参考图5所示。
● 拓展研究
密码之所以为密码,正是因为他人不知道密码的设置规律。这个装置的密码虽然简单,却非常好玩。为了降低猜中密码的概率,我们可以选择增加一些按键进行干扰。回到上面的例子,密码可能的组合有6种,即12、13、23、21、31、32这六种,因此猜对密码的概率为六分之一,如果增加一个按键使得按键总数为4个,而密码仍然为两位数的密码,那么密码的可能组合就有12种,即12、13、14、23、24、34、21、31、41、32、42、43,猜对密码的概率就变成十二分之一,降低了一半的概率。连接图可以参考图6所示。
该图的密码仍然是13。2、4处于弹开状态时,先按下1,再按下3,才能最终实现开灯的效果。
只要按键足够,还可以设置更多组合的密码,设置只有自己知道的奇葩密码。顺便说一下,其实多接几个无关紧要的按钮,也可以起到迷惑解锁人的作用。
● 外观美化
用密码控制开灯的功能已经实现,剩下的就是给它一个美丽的包装。建议找一个纸盒,挖几个小孔,将按键露出来(如图7)。当然,点亮灯没什么意思,可以装一个录音模块,按对密码就播放一句鼓励的话。也可以装一个马达,按对密码,盒子自动打开,超酷。
● 背后的数学知识
设置一个密码后,对于不知道密码的人而言,他猜中密码的概率是多少呢?像上面的例子概率是比较容易算的,但是当按键比较多的时候,一一列举就显得很不现实,如10个数字的按键密码锁,密码是2位不同的数字,我们可以列出密码的“可能组合”有90种,用数学中的树状图表示如图8所示。
所有的组合有90种,即每一个数字开头的都有9个组合,一共10个数字,计算公示为:10×9=90。同理,假设仍是10个数字,密码为3位有序数字,再用树状图表示部分情况,我们很快就知道组成的可能有10×9×8=720种,而真实密码只有一个,所以答对的概率为七百二十分之一。这样回到上面的例子,如果是4个数字的密码按键,密码是有序的2个数,则组合总数为4×3=12,答对的概率为十二分之一。可见用Boson Kit是无法做出安全性很高的密
文档评论(0)