X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
DigiKey得捷技术专区
[作品提交] 【得捷电子Follow me第2期】你好, 世界!
Vaintory
2023-10-24 21:53
楼主
# 【得捷电子Follow me第2期】你好, 世界! > 任务1:控制屏幕显示中文 > 使用器件:Adafruit ESP32-S3 TFT Feather开发板 [TOCM] ## 烧写CircuitPython固件 1. [下载固件](https://circuitpython.org/board/adafruit_feather_esp32s3_tft/),注意需要下载ENGLISH版本,CHINESE版本显示的是拼音
1. 开发板上电后,1s内按下两次Reset键,即可进入UF2固件烧写模式
点击上图查看Gif动图
1. 此时电脑上会出现一个名为xx的新磁盘,将UF2固件拖入,等待即可完成安装 ## 使用VSCode进行CircuitPython开发 1. 在VSCode应用商店中安装CircuitPython扩展
1. 在工作区中添加CIRCUITPY磁盘,其中的`code.py`文件就是我们需要编写的主文件 > There are four options: code.txt, code.py, main.txt and main.py. CircuitPython looks for those files, in that order, and then runs the first one it finds. While code.py is the recommended name for your code file, it is important to know that the other options exist. 可以将`code.py`重命名为`main.py`,这样VSCode就不会发出`WARNING` 1. 在右下角选择正确的开发板型号和端口号(不同电脑不一样) 1. 使用命令行 1. 三个快捷键 `Ctrl+C` 在任意情况下输入,中断当前运行的程序 `Ctrl+D` 在空行的情况下输入,软重启开发板环境 `Ctrl+E` 在空行的情况下输入,进入粘贴模式,粘贴后`Ctrl+D`运行 1. Hello World 这个命令行与普通的Python命令行相同,输入`print("hello world")`并回车,即可得到相应语句的输出
## 使用FontForge制作中文字体文件 内置的terminal字体并不包含中文字库,我们需要手动将`.otf`或`.ttf`字体文件制作成能被直接使用的`.bdf`或`.pcf`格式。 1. 在软件中打开字体源文件 1. 打开 Element - Font Info,将General选项卡下的Has Vertical Metrics取消勾选 1. 打开 Element - Bitmap Strikes Available,设置导出字体的像素高度(根据实际需求,设置合适的高度即可)。需要注意的是,随着字体高度的增加,导出的字体文件体积也随之增大 1. 选择 Encoding - Compact (hide unused glyphs),这一步可以删除未使用的编码,精简字体文件(在进行这一步之前,也可以删除无用的字符编码,只留下需要的字符/字符集) 1. 将设置好的字体导出为`.bdf`格式 1. 使用[网页bdf转pcf工具](https://honestqiao.gitee.io/web_bdf2pcf/),进一步减小字体文件的体积 ## 屏幕显示中文字体 CircuitPython中显示被分为了3个层级: 1. `TileGrid` 区块 1. `Group` TileGrid或显示元素的集合 1. `Display` 显示屏对象 我们希望在屏幕上显示内容时,也要按照这3个层级定义变量: 1. 要显示的文字被视为一个**区块**或**元素**: ```python text = "你好, 我是V!" text_area = label.Label(font=font, text=text, color=0Xfefae0, x=32, y=65) ``` 1. 将**区块**或**元素**添加到`Group`中: ```python text_group = displayio.Group(scale=1, x=0, y=0) text_group.append(text_area) ``` 1. 屏幕对象在`board`模块中被定义,可以直接使用一行代码定义: ```python display = board.DISPLAY ``` 在屏幕对象上显示`Group`: ```python display.show(text_group) ``` 再配合使用中文字体文件的代码: ```python font_file = "fonts/FZSKBXK-25.pcf" # 存放中文字体的路径 font = bitmap_font.load_font(font_file) ``` 就可以在屏幕上显示中文了!
点击上图查看Gif动图
# 附件 ## 完整代码 ```python import board import displayio from adafruit_display_text import label from adafruit_bitmap_font import bitmap_font # 1. 屏幕基础配置 display = board.DISPLAY # 2. 使用字体 font_file = "fonts/FZSKBXK-25.pcf" font = bitmap_font.load_font(font_file) text_group = displayio.Group(scale=1, x=0, y=0) text = "你好, 我是V!" text_area = label.Label(font=font, text=text, color=0Xfefae0, x=32, y=65) text_group.append(text_area) display.show(text_group) while True: pass ``` ## [视频链接](http://training.eeworld.com.cn/video/38036)
补充内容 (2023-11-1 01:40):
代码下载链接:
http://download.eeworld.com.cn/detail/Vaintory/629767
本帖最后由 Vaintory 于 2023-10-24 21:54 编辑
点赞
回复评论
暂无评论,赶紧抢沙发吧
最新活动
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
随便看看
再次迷茫了
强烈推荐一本数字信号处理的入门好书
Reggia-Spencer移相器相移机理研究
C2000初级问题请教
在哪可以买到microsoft windows internals(英文版)?
python3,贪吃蛇
寻大虾合作开发机顶盒
循迹小车,PWM
iar环境下,uCosII在stm32下的运行机理是怎样的?
在公司看个书怎么就违法了!!!(吐槽完了,封贴吧)
PCB设计技巧百问
DSP/BIOS HWI设置为Dispatch的作用
大家使用lpc2132注意的一点
LM3S811 + VPC3+S 震撼Profibus DP方案
8位单片机与以太网控制器RTL8029接口的VHDL设计
【TI荐课】#[高精度实验室] 接口 : 3 Ethernet#
关于51学习板USB不能控制供电 和 不停执行
请问NAND FLAHS/NOR FLASH,PSRAM方面的文档
3000语音信号处理
TI机器人系统学习套件(TI-RSLK)
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复