显示图像(上)https://www.labplus.cn/posts/5cd5153290f60f299b242ec4
显示图像(中)https://www.labplus.cn/posts/5cdcc41d94f896798cd0cfe4
显示图片(下)https://www.labplus.cn/posts/5ce4afc47f719d2556d12255
通过掌控板板载的OLED屏显示图片
上一节课程中,我们学会了怎样使用掌控板载OLED屏显示内置的pbm格式图像,在这一节课程,我们将学习如何使用掌控板的OLED屏显示我们自己制作的bmp格式的图片,并通过按键切换显示不同的图片。
学习目标
- 使用“画图”工具将图片转换为128*64格式的bmp图片
- 学会图片取模的方法
- 学会将取模的图片显示到OLED屏幕上
- 了解变量及它的使用
图片处理
贴士
1 OLED屏幕只能显示颜色深度为1或者就是黑白模式的bmp格式,您可以使用Photoshop、“画图”或者其他图片显示软件进行转换。下面以“画图”工具为例。
2 转换好格式的图片需要使用取模工具对图片进行取模
3 转换的图片大小应该为128*24,也就是掌控板屏幕的大小。
4 所选的图片线条要分明,且颜色不能太过丰富,左图合格,右图不合格。
第一步
首先我们需要对图片进行转换,选择图片后右键点击,点击编辑打开画图工具,在画图工具栏中点击“重新调整大小”,在“保持纵横比”的条件下,设置图片的像素,将“垂直”改为64,“水平”改为128。
第二步
将图片保存为bmp格式。
第三步
接下来使用取模工具对转换格式后的图片进行取模。网上有PCtoLCD、lcd image converter等取模软件,可根据自己喜好自行选择。以下使用的是Img2Lcd工具 。
这里我们提供三张图片作为示例图片,您也可以按照贴士里提到的标准制作您自己喜欢的图片进行转换。
Img2Lcd工具下载:https://mpython.readthedocs.io/zh/master/_downloads/5e5ffffa77ef66c6a2d73d92ed8198a7/Image2Lcd.zip
步骤1.打开格式为bmp的图片
步骤2.选择参数,输出数据类型[C语言数组]、 扫描模式[水平扫描]、输出灰度[单色]、宽高[128*64],可以适当亮度、对比度,直到图片显示清晰。
步骤3.点击保存,打开保存的”.c”后缀的文件
第四步
将保存的文件用记事本程序打开,去掉红色标记的首尾两行。复制中间的16进制图像数据,这些数组就代表着图片的像素点。
第五步
将复制的16进制图像数据粘贴在下列指令的空格处。
描述:OLED绘制16进制数组图像。
将16进制数据转换成图像显示在oled屏幕的指定位置处。
尝试将程序搭建好,将图片显示出来。
显示效果
编写OLED显示高山流水图像的程序
流程分析:想要利用按键来切换图片,我们可以使用软件里的“变量”类的指令,通过创建一个变量Num,来代表按键按下的次数,按键每按动一次,变量便会加1,根据Num的数值来决定显示哪一张图片。
描述;创建一个变量
变量→创建变量→新建变量名为“Num”
描述;设置一个变量,使它等于输入的数值。
初始化变量的值,使它等于0.
贴士
变量取名时应注意以下规则;
1 变量名称可以由字母,数字,下划线组成如;abcd_1。
2 不能以数字开头,如1_abcd是错的。
3 变量名区分大小写,如Num和num代表不同变量。
计算按键次数
在程序中,我们可以利用板载的按键切换三张不同的图片,每当按键A被按下,设定的变量Num就会增加1,当变量达到4时,将变量重设定为0,重置按键次数。我们也可以加入一个手动重置的功能,当B键被按下,变量复原为0,手达达到重置按键次数的效果。
描述:当A按键按下时,中断之前的指令,执行下列指令。
“当A键被按下时执行”指令,会立即中断当前运行的指令,直接执行此条件里面的指令。
该指令与我们上节课程中使用的“按键A被按下”有很大的区别,如图:
图形化代码示例
最后,我们通过判断变量值的数值,使掌控板显示不同的图片
显示效果