Mixly开源项目设计21:提醒眼罩

2018-01-16 12:35吴俊杰
中国信息技术教育 2018年1期
关键词:眼罩端口闹钟

吴俊杰

这个项目源自于我的一个亲身经历,我常常坐飞机,因为路途疲惫,所以在飞机上常常希望能够睡一会儿,因此就制作了一个能够在飞机上使用的眼罩闹钟,它有半小时叫醒和8小时叫醒两种模式。然而,伴随着项目的深入,又有了一个新的需求,即当使用者戴着眼罩睡觉时,如何能够以比较方便的方式叫醒使用者,又显得不那么突兀,于是就有了这样的一个提醒眼罩的设计。

电路连接

提醒眼罩有一个输入和两个输出,输入为一个按钮,输出为两个红色的LED灯,在眼罩的安装环节,这两个LED分别放在左眼和右眼的位置,以闪烁的方式提醒他人。

伴随着实验的深入,我们使用的主控板由原来的只有两个端口,拓展到本实验的四个端口,如图1所示,分别是GV23端口、GV56端口、GVA1A2端口和GVA3A4端口。与之前的规则一样,对于一般的三针传感器,有效的端口号为2、5、A1和A3。

按钮传感器在眼罩的旁边,按下以后,LED由原来的熄灭状态变为闪烁。接着,如图2所示,将按钮传感器接到GV23端口上,将两个红色LED接在GVA1A2端口和GVA3A4端口上。

按下按钮后(如上页图3),我们发现两个LED开始同步闪烁,直到切断电源才能够停止,而人眼则会感受到这种闪烁信号,进而起到提醒作用。

情境呈现

我们可以将积木做成一个类似眼镜的样子,眼镜腿的部位可以很好地卡住头部(如上页图4),如果头比较小,可以改变形状,让它可以更好地模拟眼罩的工作效果(如上页图5)。

然后用透明胶带固定主控板,接下来将两个LED固定在眼睛的位置,LED垂下来方便别人在叫醒正在睡觉的人的时候使用,并将电池固定在一侧(如上页图6),佩戴的效果如上页图7所示。

原理揭秘

用按钮控制一个LED的闪烁,常见的处理方法是,当按钮按下端口2的数值为高,逻辑值为真。使用一个“如果”结构,当按钮按下的时候,A1端口和A2端口接入的LED都开始闪烁(如图8)。但是,由于按钮传感器自身的特点,手按下的时候,输出电压为高,逻辑值为真。当松开后,按钮会自动弹起,输出电压为低(GND),逻辑值为假。所以按住不放的时候,我们能够看到LED闪烁,但是手一旦松開,LED就熄灭了。我们希望按一下松手后,LED也能够自动闪烁,但是目前的程序还不能够达到这个效果。为了解决这个问题,我们需要引入一个变量来表示按钮“是否曾经被按下过”,如图9所示。

设定变量item,并且将它的初始值设定为0,当按键被按下的瞬间通过一个“如果”程序,变量item的数值被改变为1,并且长期保持这个状态,此时我们就可以通过变量item的数值是否为1来判断是否该启动LED闪动的效果了。

成果拓展

按钮是一种状态不能够保持的传感器,所以我们使用了变量来解决这个问题,但是如果我们将按钮换成旋钮,就可以解决这个问题,此时采取第一个程序就可以实现闹钟闪烁的效果了。之前的闹钟程序就是采用旋钮控制程序是半小时叫醒还是8小时的时候叫醒,为了不让测试这个程序的学生等待太久,图10中采用了10秒叫醒和60秒叫醒两种闹钟模式,不妨试一试,看看具体的效果如何。endprint

猜你喜欢
眼罩端口闹钟
多彩创意闹钟
蒸汽眼罩可以戴一夜吗
一种端口故障的解决方案
眼罩
天然闹钟
创意眼罩
狐狸眼罩
有闹钟
为程序或设备在路由器上打开端口
会躲人的“狂奔”闹钟