1446|3

10

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第2期】+基于CircuitPython的中文显示 [复制链接]

  本帖最后由 手下败酱 于 2023-10-20 10:31 编辑

任务1:控制屏幕显示中文

          效果图

 

 

    任务功能对应的主要代码片段及说明

准备工作:  Adafruit ESP32-S3 TFT Feather  板子  拿到板子之后把下载到的包(adafruit-circuitpython-adafruit_feather_esp32s3_tft-en_US-8.2.6.uf2)拖到电脑显示的U盘里面

 

还需要有几个工具,因为要显示的中文字,在库里面没有哦,所以需要自己生成或者使用别人整理好的字库文件,当然使用自己喜欢的字体是多么美好的一件事情啦。  FontSmaller_2.0  FontSmaller 字体文件子集化工具   

 u8g2_fontmaker   

链接已隐藏,如需查看请登录或者注册

这两个就是我生成bdf的字库的工具了,使用方法也非常简单

在自己电脑路径找一下自己喜欢的字体 C:\Windows\Fonts  打开FontSmaller_2.0  直接选中喜欢的字体,再出入自己需要显示的字

  点击  OK 选择生成路径,这样字库就好了

再用u8g2_fontmaker转bdf一下就好了  具体用法去看一下reade me  就知道了 其实就是修改这个文件就行了,对了别忘记把刚刚转的字体文件放进 font 文件  

     

最后把生成的bdf文件拖进自己放字体的文件夹  听说把bdf转成pdf 加载速度会更快些 网站我也丢这里了

BDFtopCF字体转换器 (adafruit.github.io)

   以下为code.py 中的源代码说明

这段主要是导入相关的模块有板子自带的,也有存放在板子U盘中

#导入自带模块
import board
import displayio
#导入显示图片、显示位图字体模块等其他的
import adafruit_imageload
from adafruit_bitmap_font import bitmap_font

from adafruit_display_text.scrolling_label import ScrollingLabel

from adafruit_display_text import label
from adafruit_st7789 import ST7789

一些TFT屏幕的初始化,还有一些定义

# 使用固件自带的屏幕设备,不需要另行初始化屏幕参数
display = board.DISPLAY

# 创建本例程里的唯一图像组
group = displayio.Group()

# 加载字体并定义字体颜色为黑色
font = bitmap_font.load_font("/font/Jay_Chou-16.bdf")
nun_font = bitmap_font.load_font("/font/UPO-48.bdf")
color = 0xFFFFFF

这段主要是对label的处理,先把显示的内容存放,再调用label函数  第一个函数是字体  第二个是显示的文本  第三个是显示的颜色  第四个是显示的背景颜色,最后一个是最大宽度,在设置一下ScrollingLabel函数实现滚动   最后显示图像数组,最后在主循环中循环滚动

############################显示##########################################
date = label.Label(font, text="       晴天 \n  – 周杰伦 (Jay Chou)", color=color)
date.x = 10
date.y = 10
group.append(date)

text1 = "\n 故事的小黄花\n 从出生那年就飘着\n 童年的荡秋千\n 随记忆一直晃到现在\n Re So So Si Do Si La\n So La Si Si Si Si La Si La So\n 吹着前奏望着天空\n 我想起花瓣试着掉落\n "
text_area = label.Label(font, text=text1, color=0x0000FF, background_color=0xFFAA00,max_characters=20)
#max_characters 显示的长度  animate_time 滚动的速度
text_area =ScrollingLabel(font,text=text1, max_characters=80, animate_time=0.26)

text_area.x = 10
text_area.y = 68
group.append(text_area)
###############################################################################
# 显示修改后的图像组
display.show(group)

#循环
while True:
        text_area.update()

这里是整个工程的文件

任务1_中文显示.rar (78.6 KB, 下载次数: 9)

这是效果是视频

VID_20231019_175652

 

 

最新回复

为什么我按UP主的方式来,提示以下错误呢?'RE' 不是内部或外部命令,也不是可运行的程序或批处理文件。'font' 不是内部或外部命令,也不是可运行的程序或批处理文件。'E' 不是内部或外部命令,也不是可运行的程序或批处理文件。'e' 不是内部或外部命令,也不是可运行的程序或批处理文件。Try to generate bdf/-.bdf ......otf2bdf: invalid point size '0pt'.  详情 回复 发表于 2024-5-25 23:22
点赞 关注
 
 

回复
举报

7035

帖子

11

TA的资源

版主

沙发
 
非常优秀的帖子呀,可以入选优秀的作品了。

点评

谢谢,夸奖  详情 回复 发表于 2023-10-21 15:03
 
 
 

回复

10

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
lugl4313820 发表于 2023-10-21 11:56 非常优秀的帖子呀,可以入选优秀的作品了。

谢谢,夸奖

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 

为什么我按UP主的方式来,提示以下错误呢?


'RE' 不是内部或外部命令,也不是可运行的程序


或批处理文件。


'font' 不是内部或外部命令,也不是可运行的程序


或批处理文件。


'E' 不是内部或外部命令,也不是可运行的程序


或批处理文件。


'e' 不是内部或外部命令,也不是可运行的程序


或批处理文件。


Try to generate bdf/-.bdf ......


otf2bdf: invalid point size '0pt'.


 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表