在二次元圈子里有这样一句话
有屏幕的地方,就有Bad Apple
比如笔者最近入手了一个物联网开发板HaaS EDU K1,就萌发了在这些小的开发板上实现播放BadApple的想法。
说干就干!!!
本文将给大家展示下如何实现开发板的OLED播放BadApple,比如是基于Python轻应用。Python轻应用是阿里云IoT设备智能平台研发部推出的一个低代码的IoT开发框架,它包含了oled的驱动组件,也包含framebuf这类基础的绘图库。那接下来我就给介绍具体基于Python轻应用实现BasApple的播放。
先上效果
硬件连接
HaaS EDU K1自带一块OLED屏幕,使用HaaS EDU K1的用户无需关心硬件连接,在board.json中添加如下配置即可:
{
"version": "1.0.0",
"io": {
"oled_spi": {
"type": "SPI",
"port": 1,
"mode": "master",
"freq": 26000000
},
"oled_dc": {
"type": "GPIO",
"port": 28,
"dir": "output",
"pull": "pullup"
},
"oled_res": {
"type": "GPIO",
"port": 30,
"dir": "output",
"pull": "pullup"
},
},
"debugLevel": "ERROR",
"repl": "disable"
}
软件实现
要实现屏幕显示,肯定需要屏幕驱动模块,本案例中用到的是SH1106 OLED屏幕驱动。液晶屏驱动类提供一个显示器对象,此对象基于FrameBuf帧缓冲区类进行派生,可继承其绘画像素、线、矩形、文本的能力。也提供了绘制XBM图的能力。
其中draw_XBM()就是我们主要用到的方法。
SH1106.draw_XBM(x, y, w, h, bitmap)
在帧缓冲上的给定位置绘制XBM 位图