【基础使用】玩转掌控板4—显示图像(中)

论坛小助手, 创意当实现
帖子创建于2019年05月16日 基础使用 2972 次浏览 2 个赞 1 人关注

显示图像(上)https://www.labplus.cn/posts/5cd5153290f60f299b242ec4

显示图像(中)https://www.labplus.cn/posts/5cdcc41d94f896798cd0cfe4

显示图片(下)https://www.labplus.cn/posts/5ce4afc47f719d2556d12255

通过掌控板板载的OLED屏显示图片

上一节课程中,我们学会了怎样使用掌控板载OLED屏显示内置的pbm格式图像,在这一节课程,我们将学习如何使用掌控板的OLED屏显示我们自己制作的bmp格式的图片,并通过按键切换显示不同的图片。

学习目标

图片处理

贴士

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被按下”有很大的区别,如图:


图形化代码示例

最后,我们通过判断变量值的数值,使掌控板显示不同的图片


显示效果