闹钟是人类的好帮手,它时时刻刻提醒人们珍惜时间,使人们有一个准确的时间观念:上学不会迟到,上班不会迟到,准确上床睡觉……今天就让我们一起来制作闹钟吧!
闹钟是带有闹时装置的钟,它既能指示时间,又能按人们预定的时刻发出音响信号或其他信号。
制作网络闹钟需要完成4个步骤:
1、网络授时;
2、绘制时钟;
3、闹钟设置;
4、当掌控板被摇晃时闹钟停止。
一、网络授时
首利用掌控板的WiFi模块,获取网络的实时时间。WiFi名称跟密码需要完全正确。通过网络授时来获取国际标准时间。北京时间属于东八区,该模块的时区和授时服务器默认是不用改动的。
☺小贴士
地理时区划分:
由于地球的自转运动,不同地区有不同的地方时间,为了解决时间混乱的问题,采取了划分时区的办法。规定英国为中时区(零时区)、东1-12区,西1-12区。每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5度,以东、西经180度为界。
二、绘制时钟
初始化时钟,然后使用一直重复执行语句,每读取一次时间,绘制出当前时间的时钟。而且每次读取时间前需要清空之前的显示内容,才能让时间不断替换更新。
三、闹钟设置
1、设定闹钟在本地时间为早上八点整时,发出音响并在OLED屏幕上显示出一个闹钟响的动图。
这个设定需要一个“如果……那么……”的逻辑判断来实现,即如果本地时间为八点整时,那么将发出音响并在OLED屏幕上显示出闹钟响的动图。
☺小贴士
在编写程序的过程中,可以先将本地时间设定为8秒,以便于观察效果,检验并完善程序。
但是计算机不能够直接识别我们现实生活中所看到的图片信息,为了让计算机能够“看”懂,我们需要把图片进行转化为计算机可识别的二进制或十六进制等。下面我们就来使用点阵取模工具把图片转化为十六进制:
Step1 进行图片处理,因为掌控板OLED屏幕屏宽为128像素,高为64像素,所以图片宽不能大于128,高不能大于64。调整完图片尺寸,将图片另存为.bmp格式。
Step2 使用取模工具对图片进行取模,以Img2Lcd工具为例。参数设置为:输出数据类型[C语言数组]、 扫描模式[水平扫描]、输出灰度[单色]、宽高[128*64],适当调整图片的亮度和对比度直至输出图片清晰。
☺小贴士
记录取模软件底部的信息,输出图像:(40,49),这个是十六进制图像的宽和高。
Step3 点击保存,生成.c文件,去掉代码的首尾两行,剩下的都是图片的像素点,将像素点粘贴到绘制图形模块的十六进制图像数据中即可。
2、在八点整的时候,闹钟响起,并且在OLED屏幕上显示出“闹钟晃动”的动图效果,实际上这个动图效果是由两幅图像数据逐幅读出并显示到屏幕上构成的一种最简单的动画。两幅闹钟图片的切换可以通过OLED显示清空和OLED显示生效两条语句实现。
☺小贴士
每次切换图片都需要清空OLED屏幕,但是记得要在上一幅图显示生效后再等待一段时间,这样才能确保两张图片的显示有足够的时间能被我们看到。
四、当掌控板被摇晃时闹钟停止
在预定的时间闹钟响起后,当掌控板被摇晃时关闭闹钟,即掌控板停止发出声音和不再显示“闹钟摇晃”的动图。使用“重复执行……直到……”循环语句,实现这个效果。当本地时间为八点整时,掌控板会一直发出声响并在屏幕上显示“闹钟摇晃”的动画效果,直到掌控板被摇晃为止。
※指令我先知
这个循环语句,表示重复执行命令,直到满足某种条件为止。
你知道怎么制作语音闹钟吗?语音闹钟可以将文本转换为声音,让闹钟自己“讲话”,赶紧挑战一下吧!