Mixly开源项目设计14:制作一个免打扰闹钟

时间:2022-04-25 06:09:57

Mixly开源项目设计14:制作一个免打扰闹钟

“闹钟”是非常常见的创客作品的主题,我们发现凡是跟人的生活和健康密切相关的产品,其价值总会高一些,如一个LED在闪烁,虽然做成一个闪灯和做成一个闹钟或做成一个用来美容护肤的光波美容装置的原材料的成本都是类似的,但却因为同一个原理用在了具有不同附加值的领域,它们的价格就产生了很大的差别。这就如同写作文,使用同样的文字,不同的组合、不同的对象、不同的时机就自然产生了不同的价格。本次,我们设计的是一个免打扰闹钟,它安装在眼罩中,当设定的时间到来时,眼罩会发出红色的闪光,被眼睛接收到,达到叫醒使用者的目的。相对于声音或者震动的叫醒方式,这种原理的闹钟对他人的影响更小一些。

制作:制作一个眼罩闹钟的原型

原型阶段是创客作品常常需要经历的一个设计阶段,这个阶段的核心要求是制作一个核心功能完善的样本,用于检验这件作品最基础的设置。此次制作需要一个UNO主板作为主控,一个旋钮来设定多长时间发出警报,一个LED来表示警报来临。在原型阶段的接线,我们之前常常采用绕线器来完成,绕线器的优点是方便制作作品,便于将电路图和实物链接对应起来,但其效率和速度远不如面包板。因此,此次的连线阶段,我们使用面包板来实现。

如图1所示,面包板两侧标有“+”号和“-”号的两行都是相互导通的,中间abcde这个单元同一列之间是相互导通的,fghij这个单元中同一列也是相互导通的,但不同的单元之间是不导通的。从中我们能够看出,旋钮的最外侧引脚实际上和棕色的线之间是导通的,同理中间引脚和绿色的线导通,另一侧引脚和红色的线导通。

如果将面包板的背胶撕去,我们可以更加明显地看到这种连通关系,如图2所示。

导通的行或者列背后是用同一块铁片连接的,这样我们可以使用面包板更加快速地将旋钮和UNO主控板连接起来。具体的连接方式为,中间的线连A0端口,两侧分别接5V和GND端口,如图3所示。

我们将旋钮旋转到GND接线的一侧,重启主控板的电源,此时会看到主板上的L指示灯开始闪烁,这就是免打扰闹钟开始运行时程序的执行效果。稍稍旋向5V一侧,我们便能够看到指示灯不再闪烁,这表示系统已经进入闹钟提醒模式,这时连接串口监视器可以得知几分钟以后LED开始闪烁,如图4所示,系统显示8分钟后LED开始闪烁。

我们将旋钮旋转到不同的位置,就可看到定时提醒功能的效用,如将旋钮旋动到5V的时候,我们可以看到旋钮会在480分钟也就是8小时之后开始闪烁。这样我们就完成了闹钟原型的制作,接下来我们需要将其改装为一个真正可以使用的闹钟。

改装:完成免打扰闹钟的制作

首先,我们来规范一下电路图的连接图,如图5所示。

按照图5连接电路,裁剪3段6cm宽、80cm长的布条,在中间的布条上用绕线器接线,接着前后各覆盖一层布条,让导线和LED都被包裹在布条里,然后用缝纫机或者针线封口,就形成了如图6所示的眼罩。需要特别强调的是,在制作眼罩的过程中,需要注意测量眼睛的瞳距以适应不同用户的需求。

其次,给旋钮设计一个操控面板,旋转旋钮到不同的位置(如图7),然后结合串口反馈的数值,记录闹钟的设置结果,标记在纸盒上,形成操作面板。

这样,我们就完成了定时提醒免打扰闹钟的设计和制作,图8是闹钟的使用效果,利用眼前的闪烁的红光可以有效地叫醒熟睡中的用户。

如果需要改进这个闹钟,可以在路上添加一个蜂鸣器,这样除了闪光之外,还有一个声音提醒功能确保有效叫醒。如图9所示,这是创客项目中常常使用的用模拟电路来达到数字电路效果的做法。

玩转:使用系统计时器

从程序的角度来看,这个项目一开始期望做一个8小时的闹钟,如图10所示,但效果并不理想。

后来,我们发现原来是程序有些偏差,那就是延时效果始终是错误的,这时我们用串口监视器查看变量item的数值发现其竟然出现了负数,这是为什么呢?原来主要的错误在于变量的类型,整数型变量的数值变化范围是-32768~32768,而需要换算的范围的最大值28800000却超出这个范围很多倍;从而导致数据出现错误,如图11所示。

因此,我们对这个程序进行了改进,主要有两个关键点:一是建立变量time表示等待时间,但是time的单位是秒而不是毫秒,这样其最大值缩小了1000倍,变为28800,就不再超出数据范围了;二是用系统运行时间/1000的结果与设置的闹钟时间相比较,然后判断是否执行闹醒程序,这样程序在执行的过程中不断地显示串口反馈出的设定好的闹醒时间,可便于对旋钮进行标定,如图12所示。

此外,还要对部分旋钮在旋动到0的时候偶尔出现的数据漂移现象进行修正,让A0数值小于10的时候,time的数值始终设定为0。我们通过不断地解决算法方面的一些问题,既学习了数据结构方面的知识,又提高了解决问题的能力。

分享:基于产品的学习

至此,一个可以用来售卖的创客DIY套装就完成了。我们之前曾经描述过这样一种观点:一个已经下载好程序的主控板的价格和一个没有任何程序的主控板的价格是不同的,因为在下载程序的过程中,程序设计者的知识产权价值得到了体现。而在家庭创客空间孵化课程的淘宝店上,则允许用户自己出版DIY套件,只需要使用相应的元器件设计出一个DIY产品,像这个免打扰闹钟一样,淘宝店主就会将其制作称为一个DIY套件并且像正规出版社一样向作者支付知识产权的费用,如图13所示。

这样做就避免了学生不知道分享一个创客作品以后能够有哪些具体的收益的问题发生。我们将创客教育中通过一个模块可重用的产品的设计的过程来体现算法思维、设计思维、建模思维、产品思维即创客思维提升过程的学习方式称为基于产品的学习。在这一学习方式中,学生不再只是被动地做一个东西,而是很有可能成为一个新的流行单品的设计者。这个过程,打破了课堂的限制,突破了学校的围墙,学生的收获将是真实的社会和整个人生。

本案例的分享视频将会在以下公众号中陆续登载。

上一篇:《用递归法解决问题》教学设计 下一篇:教师的眼界决定教学实施的水平