【得捷电子Follow me第2期】任务1:控制屏幕显示中文
[复制链接]
本帖最后由 Tristan_C 于 2023-8-29 22:24 编辑
经过开发环境的硬件和软件的搭建,发现Circuit Python的开发还是非常方便的,有比较友好的开发语言,友好的开发工具,以及友好且非常好用的各种外设库。
Flow me第二期的第一个任务是控制屏幕显示中文,也就是完成屏幕的控制,并且能显示中文。
在开始进行任务之前,需要从下面链接下载对应版本的库
https://circuitpython.org/libraries
本次使用的是8.X版本的,因此下载该版本的Bundle即可。
在Bundle中查找,可以找到屏幕显示相关的3各demo,前后两个为最基础的功能demo,均可参考。
以display_text_simpletest.py为例,其代码内容为
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import board
import terminalio
from adafruit_display_text import bitmap_label
text = "Hello world"
text_area = bitmap_label.Label(terminalio.FONT, text=text)
text_area.x = 10
text_area.y = 10
board.DISPLAY.show(text_area)
while True:
pass
将其拷贝到代码Mu Edit中,保存,显示屏可显示Hello World
进一步发现,如果要显示中文,需要合适的中文字库,参考网络资料以及前辈们的参考设计,发现如下字库可以使用:
将其下载,并拷贝wenquanyi_9pt.pcf到CIRCUITPY磁盘中
另外,还需要拷贝如下的两个库到lib文件中。
接下来就是更改代码,首先是添加两个库
然后进行变量的初始化,并启动显示
接下去在主循环中,每2秒更新显示内容
循环显示效果如下:
完整代码:
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
print("Hello CuicuitPython")
display = board.DISPLAY
board.DISPLAY.brightness = 0.5
board.DISPLAY.rotation = 0
str_disp_0 = "欢迎参加Flow Me\n这是第二期"
str_disp_1 = "这是任务1:\n控制屏幕显示中文"
str_disp_2 = "看到中文表示任务完成"
str_disp_3 = "重新开始显示……"
font = bitmap_font.load_font("lib\wenquanyi_9pt.pcf")
color = 0xFFFFFF
text_change = 0
text_group = displayio.Group()
text_area = label.Label(font, text=str_disp_0, color=color)
text_area.x = 2
text_area.y = 10
#启动屏幕显示
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)
text_change += 1
if (text_change==1):
text_area.text=str_disp_1
elif (text_change==2):
text_area.text=str_disp_2
elif (text_change==3):
text_area.text=str_disp_3
text_change = 0
|