606|2

21

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

得捷电子 Follow me 第2期任务提交——控制屏幕显示中文 [复制链接]

 

得捷电子 Follow me 第2期任务提交——控制屏幕显示中文

因为要显示中文,所以字库文件是必不可少的 目前固件只能识别到bdf和pcf格式的字库,需要将ttf格式的字库转换为pcf格式的,这里需要用到一个字库转换工具otf2bdf,根据直播中老师的介绍讲解以及其他坛友分享的经验,找到了这个字典文件大小刚好很适合本次开发将会在文尾进行上传

通过下面的代码可以在屏幕上显示字库上的所有中文文字

首先是导入包 此处用到board displayio adafruit_display_text adafruit_bitmap_font 包

可以通过vscode的快捷键直接添加 具体步骤如下

按下键盘ctrl+shift+p在弹出的对话框输入 如下

便可以得到Circuitpython插件提供的自动安装包服务

导包代码如下

import board

import displayio

from adafruit_display_text import label, wrap_text_to_lines

from adafruit_bitmap_font import bitmap_font

然后定义一条中文字符串信息 并且加载字库信息 显示中文字体颜色等 代码如下

dis_str = "我是一条中文信息"

font = bitmap_font.load_font("wenquanyi_10pt.pcf")

color = 0x00FFFF

然后根据屏幕旋转角度确定每行能显示的字符数量

def screen_dispstr(str):

if board.DISPLAY.rotation % 180 == 0:

char_num = 23 # 横屏

else:

char_num = 13 # 竖屏

strbuf = ""

for i in range(len(str) / char_num):

strbuf = strbuf + str[i * char_num:(i + 1) * char_num] + "\n"

return strbuf

初始化显示屏

display = board.DISPLAY

board.DISPLAY.brightness = 0.35

board.DISPLAY.rotation = 0

实现显示中文字符

text_group = displayio.Group()

text_area = label.Label(font, text=screen_dispstr(dis_str), color=color)

text_area.x = 2

text_area.y = 6

text_area.line_spacing = 0.8

text_area.scale = 1

text_group.append(text_area)

display.show(text_group)

让程序循环 保持屏幕输出

while True:

pass

最后我们来看一下,完成效果。

 

 

通过下载学习老师提供的代码后学会了如何显示一张图片

image, palette = adafruit_imageload.load(

"images/ysqd.bmp", bitmap=displayio.Bitmap, palette=displayio.Palette

)

tile_grid = displayio.TileGrid(image, pixel_shader=palette)

group = displayio.Group()

group.append(tile_grid)

board.DISPLAY.show(group)

通过调用image中palette这个方法可以实现在屏幕上显示一张图片 本次学习还发现了老师藏的彩蛋怎么是 原神启动!


字典文件如下: wenquanyi_10pt.pcf (2.18 MB, 下载次数: 4)

最新回复

这个原神图片显示的还是挺清晰的!   详情 回复 发表于 2023-10-24 18:54
点赞 关注
 
 

回复
举报

7175

帖子

2

TA的资源

版主

沙发
 

这个原神图片显示的还是挺清晰的!

点评

哈哈是的! 这块屏幕分辨率虽然有点低 但是颜色很全!  详情 回复 发表于 2023-10-24 19:32
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
wangerxian 发表于 2023-10-24 18:54 这个原神图片显示的还是挺清晰的!

哈哈是的! 这块屏幕分辨率虽然有点低 但是颜色很全!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表