本帖最后由 湘里人 于 2024-12-25 15:16 编辑
k10官方Micropython固件支持lvgl图形库,但对中文显示支持不是很好,现分享制作中文字库和显示中文的方法。
LVGL介绍
LVGL(轻量级和多功能图形库)是一个免费的开源图形库,提供创建具有易于使用的图形元素、美观的视觉效果和低内存占用的嵌入式 GUI 所需的一切。
一、字库制作
在线字库制作工具:https://lvgl.io/tools/fontconverter
字库下载:思源宋体字库my_font_16.zip将字库文件上传到K10
二、代码
- from unihiker_k10 import screen
- import time, gc
- import lvgl as lv
- import fs_driver, math
-
- # 注册文件系统
- fs_drv = lv.fs_drv_t()
- fs_driver.fs_register(fs_drv, 'S')
-
- # 初始化屏幕
- screen.init(dir=2)
- scrn = lv.screen_active()
- scrn.set_style_bg_color(lv.color_hex(0x000000), 0)
-
- # 加载中文字体
- # 字体文件名为'my_font_16.bin',并且已经放置在ESP32的文件系统中
- # font_cn = lv.font_load('S:my_font_16.bin') #font_load不可用
- font_cn = lv.binfont_create("S:my_font_16.bin")
-
- if font_cn == None:
- print("字体加载失败")
- else:
- print("字体加载成功")
-
- label_title = lv.label(scrn)
- label_title.set_text("行空板K10是一款专为快速体验和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等人工智能项目。")
- label_title.set_width(230)
- label_title.align(lv.ALIGN.TOP_LEFT, 8, 60)
- label_title.set_style_text_font(font_cn, 0) # 设置中文字体
-
复制代码
|