【得捷电子Follow me第2期】+任务1:控制屏幕显示中文
[复制链接]
本帖最后由 施小杰 于 2023-11-3 11:13 编辑
项目介绍:通过学习Adafruit ESP32-S3 TFT Feather 开发板,完成对屏幕的控制,并且能显示中文。
在开始进行任务之前,需要从下面链接下载对应版本的库,由于使用CircuitPython 8,所以选择推荐的8.x版本包即可。链接是https://circuitpython.org/libraries,一个文件夹是 lib 包,另一个文件夹是示例包。
进一步发现,如果要显示中文,需要合适的中文字库,参考网络资料以及前辈们的参考设计,发现如下字库可以使用:
将其下载,这里我选择的是wenquanyi_10pt.pcf到CIRCUITPY磁盘中
然后添加adafruit_bitmap_font 和adafruit_display_text 2个库到lib文件,如下所示
加入了支持的库后,接下来就是编写代码了:
首先根据Circuitpython的语法 添加好库
然后就是将初始化的参数设置好,我这里显示中文字体后,在循环里面不断的翻转LED
代码如下:
import board
import digitalio
import time
import displayio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
display = board.DISPLAY
board.DISPLAY.brightness = 0.5 #亮度
board.DISPLAY.rotation = 0
str_disp_0 = "欢迎参加Flow Me\n这是第二期"
font = bitmap_font.load_font("lib\wenquanyi_10pt.pcf")
color = 0xFFFFFF #字体颜色
text_group = displayio.Group()
text_area = label.Label(font, text=str_disp_0, color=color)
text_area.x = 20 #显示的X轴
text_area.y = 20 #显示的Y轴
#启动屏幕显示
text_group.append(text_area)
display.show(text_group)
while True:
if(led.value == True):
led.value = False
else:
led.value = True
time.sleep(2)
实验现象如下:
100ab1d1e10b8e845f614a6f05d84e0e
心得体会:首先感谢得捷电子举办的此次活动,本人目前还是在校学生,只是简单的会点32。也是这次活动接触到CircuitPython,真的比较方便,跟着教程实现也比较简单。
|