重现步骤
我想在LCD上显示各颜色阈值,所以一开始使用draw_string函数进行编写代码,但是会出现Deprecated function, please use draw_string_advanced.Deprecated function, please use draw_string_advanced.Deprecated function, please use draw_string_advanced.Deprecated function, please use draw_string_advanced这样的问题,但是LCD上能显示文本,也就是能运行,如果我不用更新版本的硬件,想问一下,这个对实际功能会有什么影响吗;当我把draw_string函数换为draw_string_advanced函数时,出现了
find sensor gc2093_csi2, type 24, output 1920x1080@60
buffer pool : 4
sensor(0), mode 0, buffer_num 4, buffer_size 0
异常: function missing 3 required positional arguments
MPY: soft reboot
MicroPython v1.2 on 2024-11-28; k230_canmv_lckfb with K230
这样的问题,我的代码是
text_color = (255, 255, 255) # 白色文字
line_height = 40
y_pos = 10
src_img.draw_string_advanced(
x=10, # 必须为整数
y=y_pos, # 必须为整数
s="Text", # 字符串内容
color=(255,255,255), # 颜色元组
scale=1, # 缩放比例
mono_space=False # 是否等宽字体
)
# 显示颜色阈值
src_img.draw_string_advanced(10, y_pos, f"Color: {color_threshold}", text_color, 2, False)
y_pos += line_height
src_img.draw_string_advanced(10, y_pos, f"Yellow: {yellow_threshold}", (255, 255, 0), 2, False)
y_pos += line_height
src_img.draw_string_advanced(10, y_pos, f"Red: {red_threshold}", (255, 0, 0), 2, False)
y_pos += line_height
src_img.draw_string_advanced(10, y_pos, f"Green: {green_threshold}", (0, 255, 0), 2, False)
y_pos += line_height * 2
想问一下为什么会有这样的问题,其他位置都没变,是哪里有问题呢,是sensor类构造函数少传参数了吗,但是我其他位置都没变而且之前没报错,关于sensor我的代码是
SENSOR_ID = 2
BUFFER_NUM = 4
BUFFER_SIZE = 1920 * 1080 * 2
# 显示模式选择:可以是 "VIRT"、"LCD" 或 "HDMI"
DISPLAY_MODE = "LCD"
# 根据模式设置显示宽高
if DISPLAY_MODE == "VIRT":
# 虚拟显示器模式
DISPLAY_WIDTH = ALIGN_UP(1920, 16)
DISPLAY_HEIGHT = 1080
elif DISPLAY_MODE == "LCD":
# 3.1寸屏幕模式
DISPLAY_WIDTH = 800
DISPLAY_HEIGHT = 480
elif DISPLAY_MODE == "HDMI":
# HDMI扩展板模式
DISPLAY_WIDTH = 1920
DISPLAY_HEIGHT = 1080
else:
raise ValueError("未知的 DISPLAY_MODE,请选择 'VIRT', 'LCD' 或 'HDMI'")
# 初始化串口通讯
uart = UART(1, 115200) # 使用UART1,波特率115200
sensor = Sensor(
id=SENSOR_ID,
width=1920,
height=1080,
chn=CAM_CHN_ID_0,
buffer_num=BUFFER_NUM,
buffer_size=BUFFER_SIZE,
pixformat=Sensor.RGB565
)
try:
# 构造一个具有默认配置的摄像头对象
# sensor = Sensor(id=sensor_id, width=1920, height=1080)
# 重置摄像头sensor
sensor.reset()
# 无需进行镜像和翻转
# 设置不要水平镜像
sensor.set_hmirror(False)
# 设置不要垂直翻转
sensor.set_vflip(False)
sensor.set_framesize(width=picture_width, height=picture_height, chn=CAM_CHN_ID_0)
# 设置通道0的输出像素格式为RGB565,要注意有些案例只支持GRAYSCALE格式
sensor.set_pixformat(Sensor.RGB565, chn=CAM_CHN_ID_0)
# 根据模式初始化显示器
if DISPLAY_MODE == "VIRT":
Display.init(Display.VIRT, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, fps=60)
elif DISPLAY_MODE == "LCD":
Display.init(Display.ST7701, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, to_ide=True)
elif DISPLAY_MODE == "HDMI":
Display.init(Display.LT9611, width=DISPLAY_WIDTH, height=DISPLAY_HEIGHT, to_ide=True)
# 初始化媒体管理器
MediaManager.init()
# 启动传感器
sensor.run()
fps = time.clock()
求大佬解答问题原因以及如何修改代码
期待结果和实际结果
软硬件版本信息
错误日志
尝试解决过程
补充材料