11# micropython-easydisplay
2- 适用于 micropython 的简易显示库(自用,顺便开源,测试图是自己画的)
2+ - 适用于 ` Micropython ` 的:高通用性,多功能,纯 ` Micropython ` 实现的显示库
3+ - 自用,顺便开源,希望能够推动 ` Micropython ` 生态的发展
34
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 模式,以兼容低内存的开发板(但是功能受限)
155
166### 显示效果
7+ 以下为 ` 1.1 ` 版本的显示效果,` 2.0 ` 版本存在字体文件缺陷,正在修复,请留意最新的字体文件版本...
178![ font_display] ( https://user-images.githubusercontent.com/96659329/217912388-32b67ae0-c586-426a-8409-15d66626af67.jpg )
189![ bmp_color_display] ( https://user-images.githubusercontent.com/96659329/217912256-576ae657-9355-4384-a8b3-1430f295f700.jpg )
1910![ pbm_display] ( https://user-images.githubusercontent.com/96659329/217912280-92b902f8-b177-4b37-bc25-84ffdb13978b.jpg )
2011
2112
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 ` )
3719
3820### 使用方法
39- 嗯,你们先看示例代码或者库源码吧...
40-
41- 详细的文档最近忙着没空写呢,至少我注释齐全的(无法理解的部分除外)...
42-
21+ - 详见源码注释
4322
4423### 示例代码
45-
4624``` python
47- # 这是一个使用示例
25+ # 这是一个使用示例 This is an example of usage
4826import time
4927import framebuf
50- from drivers import st7735
5128from machine import SPI , Pin
29+ from drivers import st7735_buf
5230from libs.easydisplay import EasyDisplay
5331
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 )
5937
6038ed.bmp(" /img/test.bmp" , 0 , 0 )
6139time.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 )
6341time.sleep(3 )
64- ed.text(" 测试一下 \n Test \n テスト " , 0 , 0 )
42+ ed.text(" 你好,世界! \n Hello World! \n こんにちは、世界! " , 0 , 0 )
6543
6644# 更多高级使用方式详见源码注释:/libs/easydisplay.py
6745```
6846
6947### 特别致谢
70- 基于以下项目整合或二次开发,如需深入了解,请务必阅读 :
48+ 参考项目 :
7149
7250中文显示:[ https://github.com/AntonVanke/MicroPython-Chinese-Font ] ( https://github.com/AntonVanke/MicroPython-Chinese-Font )
7351
@@ -84,17 +62,11 @@ PBM文件转换:[https://blog.csdn.net/jd3096/article/details/121319042](https
8462灰度化、二值化:[ https://blog.csdn.net/li_wen01/article/details/72867057 ] ( https://blog.csdn.net/li_wen01/article/details/72867057 )
8563
8664
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-
9765### 其他
9866感谢各位大佬对开源做出的贡献!
9967
10068交流QQ群:[ 748103265] ( https://jq.qq.com/?_wv=1027&k=I74bKifU )
69+
70+ # TODO 2311
71+ - 修复 ` Lite ` 字符集缺少空格的问题
72+ - 更换更合适的字体,以优化英文显示
0 commit comments