Skip to content

Commit fc0df59

Browse files
author
funnygeeker
committed
2.0 beta update
1 parent 693d0ca commit fc0df59

36 files changed

+2786
-616
lines changed

README.md

Lines changed: 24 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,51 @@
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
4826
import time
4927
import framebuf
50-
from drivers import st7735
5128
from machine import SPI, Pin
29+
from drivers import st7735_buf
5230
from 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=0xFFFF,
57-
clear=True,
58-
img_format=framebuf.RGB565, img_color=0xFFFF)
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=0xFFFF, clear=True,
36+
color_type=framebuf.RGB565, text_half_char=False)
5937

6038
ed.bmp("/img/test.bmp", 0, 0)
6139
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)
6341
time.sleep(3)
64-
ed.text("测试一下\nTest\nテスト", 0, 0)
42+
ed.text("你好,世界!\nHello 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+
- 更换更合适的字体,以优化英文显示

drivers/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## 屏幕驱动(Chinese)
2+
3+
### 说明
4+
- 文件名含有 `buf` 的驱动是使用 `Framebuffer` 的帧缓冲区驱动,具有较高的效率和丰富的功能,
5+
在开发板内存充足的情况下请尽量选择该驱动
6+
7+
8+
- 文件名含有 `spi` 的驱动是使用 `SPI` 对屏幕进行直接驱动,配合 `micropython-easydisplay` 使用时效率略低,
9+
但是对内存不足以使用 `Framebuffer` 的开发板非常友好
10+
11+
12+
- 部分驱动可能存在一些错误,如果您遇到了错误并修复了 `BUG`,别忘记提交 `Pull Request` 来向项目提交您的更改建议。
13+
14+
15+
## Screen Drivers
16+
17+
### Description
18+
- Drivers with filenames containing `buf` are `Framebuffer` drivers, which have higher efficiency and richer features. Please choose these drivers when there is sufficient memory available on the development board.
19+
20+
21+
- Drivers with filenames containing `spi` are SPI drivers used for direct driving of the screen. When used with `micropython-easydisplay`, they have slightly lower efficiency but are very friendly for development boards with insufficient memory to use `Framebuffer`.
22+
23+
24+
- Some drivers may have some errors. If you encounter an error and fix a bug, don't forget to submit a pull request to contribute your suggested changes to the project.
File renamed without changes.

drivers/st7735.py

Lines changed: 0 additions & 147 deletions
This file was deleted.

0 commit comments

Comments
 (0)