1
1
# micropython-easydisplay
2
- 适用于 micropython 的简易显示库(自用,顺便开源,测试图是自己画的)
2
+ - 适用于 ` Micropython ` 的:高通用性,多功能,纯 ` Micropython ` 实现的显示库
3
+ - 自用,顺便开源,希望能够推动 ` Micropython ` 生态的发展
3
4
4
- ` pbm ` 格式的图像转换工具会在过一段时间放进来,在此之前,您可以使用库中源码注释中的方法通过 ` python ` 将图片转换为 ` pbm ` 格式,您可以通过使用 windows 的 画图 将图片转换为 ` 24-bit ` 的 ` bmp ` 格式,或者使用 ` Image2Lcd ` 这款软件将图片转换为 ` 24-bit ` 的 ` bmp ` 格式(水平扫描,包含图像头数据,灰度二十四位)
5
-
6
- ### 公告
7
- 我正在尝试对这个项目进行2.0版本的重构,预计10月底发布...
8
- 是的,1.X的版本对 ST7789 等高分辨率的功屏幕可能不友好,预计更新内容如下:
9
- - 运行效率提升
10
- - 新增 ST7789 驱动
11
- - 支持新的高效率图片数据格式
12
- - 修复单色PBM图片无法正常显示的BUG(刚好当时测试没覆盖...)
13
- - 同时提供源码和预编译的二进制格式(.mpy)以兼容低内存开发板
14
- - 部分屏幕支持非 framebuffer 模式,以兼容低内存的开发板(但是功能受限)
15
5
16
6
### 显示效果
7
+ 以下为 ` 1.1 ` 版本的显示效果,` 2.0 ` 版本存在字体文件缺陷,正在修复,请留意最新的字体文件版本...
17
8
![ font_display] ( https://user-images.githubusercontent.com/96659329/217912388-32b67ae0-c586-426a-8409-15d66626af67.jpg )
18
9
![ bmp_color_display] ( https://user-images.githubusercontent.com/96659329/217912256-576ae657-9355-4384-a8b3-1430f295f700.jpg )
19
10
![ pbm_display] ( https://user-images.githubusercontent.com/96659329/217912280-92b902f8-b177-4b37-bc25-84ffdb13978b.jpg )
20
11
21
12
22
- ### 适用范围
23
- - 基于一些开源项目,对适用于 ` MicroPython ` 的一些常用的显示功能进行了整合和封装,采用 ` Framebuf ` 缓冲区的驱动才能够使用
24
-
25
- - 可通过导入字库支持中文显示,支持 ` P4 ` /` P6 ` 格式的 ` PBM ` 图片显示在黑白或彩色屏幕
26
-
27
- - 已通过测试的屏幕:` SSD1306 ` ,` ST7735 ` ,已通过测试的开发板:` ESP32C3 `
28
-
29
- - 支持 24位彩色 BMP 图片显示在黑白或彩色屏幕
30
-
31
- - 还可以反转需要显示的图片的颜色
32
-
33
-
34
- ### 特别说明
35
- 一般情况下 ` ESP32C3 ` 开发版配一套 ` 16px ` 的字体就够了,真的没有必要传那么多到板子上面...
36
-
13
+ ### 项目特点
14
+ - 可以通过导入 ` bmf ` 字体文件,显示非 ` ASCII ` 字符,比如:中文 和 特殊符号
15
+ - 支持 ` P4 ` /` P6 ` 格式的 ` PBM ` 图片显示,以及 ` 24-bit ` 的 ` BMP ` 图片显示
16
+ - 初始化时可以设置默认参数,调用函数时更简洁,同时调用指定函数时,本次调用可覆盖默认参数
17
+ - 兼容大多数 ` MicroPython ` 官方和非官方版本,纯 ` MicroPython ` 原生实现,不需要进行固件编译,同时尽可能保持了高效率
18
+ - 支持多种屏幕的多种工作模式 ` SSD1306 ` ,` ST7735 ` ,` ST7789 ` ,支持低内存开发板驱动高分辨率屏幕(如 ` ESP32C3 ` 驱动 ` 240*240 ` ` ST7789 ` )
37
19
38
20
### 使用方法
39
- 嗯,你们先看示例代码或者库源码吧...
40
-
41
- 详细的文档最近忙着没空写呢,至少我注释齐全的(无法理解的部分除外)...
42
-
21
+ - 详见源码注释
43
22
44
23
### 示例代码
45
-
46
24
``` python
47
- # 这是一个使用示例
25
+ # 这是一个使用示例 This is an example of usage
48
26
import time
49
27
import framebuf
50
- from drivers import st7735
51
28
from machine import SPI , Pin
29
+ from drivers import st7735_buf
52
30
from libs.easydisplay import EasyDisplay
53
31
54
- spi = SPI( 1 , baudrate = 20000000 , polarity = 0 , phase = 0 , sck = Pin( 1 ), mosi = Pin( 0 ))
55
- dp = st7735.ST7735( width = 160 , height = 128 , spi = spi, cs = Pin(19 ), dc = Pin(18 ), rst = Pin( 3 ), rot = 1 )
56
- ed = EasyDisplay( display = dp, font_file = " /fonts/harmonyos_sans/harmonyos16.bmf " , show = True , font_color = 0x FFFF ,
57
- clear = True ,
58
- img_format = framebuf.RGB565 , img_color = 0x FFFF )
32
+ # ESP32C3 & ST7735
33
+ spi = SPI( 1 , baudrate = 20000000 , polarity = 0 , phase = 0 , sck = Pin(19 ), mosi = Pin(18 ))
34
+ dp = st7735_buf.ST7735( width = 160 , height = 128 , spi = spi, cs = 0 , dc = 1 , rst = 11 , rotation = 1 )
35
+ ed = EasyDisplay( display = dp, font = " /text_lite_16px_2311-1.v3.bmf " , show = True , color = 0x FFFF , clear = True ,
36
+ color_type = framebuf.RGB565 , text_half_char = False )
59
37
60
38
ed.bmp(" /img/test.bmp" , 0 , 0 )
61
39
time.sleep(3 )
62
- ed.pbm(" /img/test.pbm" , 0 , 0 , format = framebuf.MONO_HLSB )
40
+ ed.pbm(" /img/test.pbm" , 0 , 0 , color_type = framebuf.MONO_HLSB )
63
41
time.sleep(3 )
64
- ed.text(" 测试一下 \n Test \n テスト " , 0 , 0 )
42
+ ed.text(" 你好,世界! \n Hello World! \n こんにちは、世界! " , 0 , 0 )
65
43
66
44
# 更多高级使用方式详见源码注释:/libs/easydisplay.py
67
45
```
68
46
69
47
### 特别致谢
70
- 基于以下项目整合或二次开发,如需深入了解,请务必阅读 :
48
+ 参考项目 :
71
49
72
50
中文显示:[ https://github.com/AntonVanke/MicroPython-Chinese-Font ] ( https://github.com/AntonVanke/MicroPython-Chinese-Font )
73
51
@@ -84,17 +62,11 @@ PBM文件转换:[https://blog.csdn.net/jd3096/article/details/121319042](https
84
62
灰度化、二值化:[ https://blog.csdn.net/li_wen01/article/details/72867057 ] ( https://blog.csdn.net/li_wen01/article/details/72867057 )
85
63
86
64
87
- ### 字体
88
- 使用 Mi Sans(小米),HarmonyOS Sans(鸿蒙),Smiley Sans(得意黑),Source Han Sans(思源)等商用字体的 ttf 格式进行生成的 bmf 格式
89
-
90
- 原始字体集来自:[ https://github.com/AntonVanke/MicroPython-Chinese-Font/blob/master/text.txt ] ( https://github.com/AntonVanke/MicroPython-Chinese-Font/blob/master/text.txt )
91
-
92
- 补充字体集来自:[ https://github.com/shinchanZ/-3500-/blob/master/3500 ] ( https://github.com/shinchanZ/-3500-/blob/master/3500 )
93
-
94
- 现在的字体文件能够显示日文啦!現在のフォントファイルは日本語を表示できるようになりました。
95
-
96
-
97
65
### 其他
98
66
感谢各位大佬对开源做出的贡献!
99
67
100
68
交流QQ群:[ 748103265] ( https://jq.qq.com/?_wv=1027&k=I74bKifU )
69
+
70
+ # TODO 2311
71
+ - 修复 ` Lite ` 字符集缺少空格的问题
72
+ - 更换更合适的字体,以优化英文显示
0 commit comments