Page Title

第七课 感光小窗帘


2022-12-16 09:42:49


光是地球生命的来源,是人类生活的依据,更是人类认识外部世界的工具。在科技发达的今天,我们可以通过传感器来检测光,利用光帮助我们更好的生活。今天就让我们一起来欣赏光的魔法吧!


1、学习目标


l掌握OLED显示图片内容

l掌握动态显示图像;

l巩固复习图片取模的方法,并将取模的图片显示到OLED屏幕上

l学习光线传感器与它的编程方法;

l了解函数及它的使用。


2、认识光线传感器


光线传感器就是能够根据周围光亮明暗程度来调节屏幕明暗的装置掏出你的手机放在阳光下,屏幕会迅速变暗,这就是光线传感器的作用了。光线传感器在手机上就是前置摄像头旁边的那一个小点,可用来调节手机屏幕的亮度和键盘灯。

好搭掌控板载一个光线传感器,可以用来检测环境光的强度。

1.png


3、指令学习

表1.png


4、显示环境光强度值


编写如下程序:

6.png


光线传感器的返回值为0-4095,光线越强,数值越大。在常规环境中,光线传感器的返回值一般为0,可通过手机手电筒照射在传感器上感受数值的变化。


5、感光窗帘


光感窗帘的作用是模拟白天和黑夜的环境,光线较弱是为黑夜,拉上窗帘;光线强度较强时为白天,打开窗帘。当光线较强时,在好搭掌控屏幕上模拟窗帘打开的过程。下图为简易的窗帘闭合效果图。

7.png


打开画图软件调整窗帘图像大小,在画图工具栏中点击“重新调整大小”设置图片的像素,将“垂直”改为64水平改为128注意这里要根据实际图片比例进行设置,设置的图片大小可以小于128×64分辨率。设置完成后,将图片另存为BMP格式。

8.png


接着使用取模工具Image2Lcd对转换格式后的图片进行取模。选择参数,输出数据类型[C语言数组]、扫描模式[水平扫描]、输出灰度[单色]、宽高[128×64]勾选[颜色反转]可以适当调整亮度、对比度,直到图片显示清晰。然后点击保存,会提示你保存为一个.c”后缀的文件,给这个文件合适的命名即可。

9.png


用记事本程序打开保存的.c后缀的文件去掉红色标记的首尾两行。复制中间的16进制图像数据,这些数组就代表着图片的像素点。

然后开始编写程序,将这些16进制图像数据拷贝粘贴到绘制图像指令中,绘制窗帘看一下效果。

10.png


显示效果如下图所示:

14.jpg


窗帘显示效果没问题之后,我们接着编写2个函数,分别模拟打开窗帘和关闭窗帘的过程。

“打开窗帘”函数中,我们通过在屏幕中央填充矩形遮挡窗帘图案的形式,来模拟窗帘缓慢打开的效果。每隔0.2秒将矩形起点的x坐标减少1,将矩形的宽度增加2,产生矩形由中间向两边均匀变宽的效果,视觉上就类似于窗帘被打开了。

11.png


“关闭窗帘”函数的原理与“打开窗帘”函数类似,我们通过在屏幕中央填充矩形遮挡窗帘图案的形式,来模拟窗帘缓慢闭合的效果。每隔0.2秒将矩形起点的x坐标增加1,将矩形的宽度减少2,产生矩形由两边向中间均匀变窄的效果,视觉上就类似于窗帘被关闭了

12.png


最后在重复执行中添加窗帘打开和关闭的函数:当检测到光线值较大时,说明是白天,打开窗帘,否则说明天色比较晚,就关闭窗帘。

13.png


运行结果:光线较弱时如左图;光线较强时如右图,中间的白色矩形会从屏幕中央向两边均匀变宽。

14.jpg   15.jpg


完整程序如下图所示:

16.png


6、拓展与思考


① 尝试做一个光控灯,当环境光比较弱时,控制RGB LED灯亮,否则灯灭。

② 好搭掌控的显示屏可以作为一个电子书阅读器,就像Kindle一样。利用光线传感器我们可以做一个手势翻书器,手指每遮挡一次光线传感器,电子书就翻一页。赶紧编程试试吧!