【聆思CSK6语音大模型AI开发套件试用】增加对语音控制电梯功能的显示

本文介绍如何在聆思CSK6的AI开发板上使用LVGL库创建图形用户界面,包括添加控件如楼层显示标签,以及利用系统字体显示电梯层号。还提供了完整代码下载链接和演示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务简介

上一篇博文中,我们介绍了在聆思CSK6语音大模型AI开发套件的开发板实现对云平台返回的结果进行处理,我们已经通过日志文件看到了数据的正确接收和解析。今天对程序的用户界面进行优化,这样可以通过屏幕看到电梯的显示。

图形界面功能的实现

界面显示部分运行在一个独立的线程中,这部分代码是基于LVGL库实现的。

图形界面相关的代码在src\app_ui\demo_ui目录下。其中ui.c是核心代码。

添加LVGL控件

我们先定义一个全局变量:

lv_obj_t *ui_demo_layer_label = NULL;

然后在ui_demo_screen_init函数中添加如下代码:

        ui_demo_layer_label = lv_label_create(ui_demo_screen);
        lv_obj_set_width( ui_demo_layer_label, LV_SIZE_CONTENT);  /// 1
        lv_obj_set_height( ui_demo_layer_label, LV_SIZE_CONTENT);   /// 1
        lv_obj_set_x( ui_demo_layer_label, 10 );
        lv_obj_set_y( ui_demo_layer_label, 100 );
        lv_obj_set_align( ui_demo_layer_label, LV_ALIGN_TOP_LEFT );
        lv_label_set_text(ui_demo_layer_label, "Current Layer: 1");
        lv_obj_set_style_text_color(ui_demo_layer_label, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT );
        lv_obj_set_style_text_opa(ui_demo_layer_label, 255, LV_PART_MAIN| LV_STATE_DEFAULT);

添加显示楼层的函数

在ui.c中我们增加了ui_set_layer函数,该函数将解析到的电梯楼层数显示在layer_label上。

void ui_set_layer(int32_t id)
{
    char layer_text[50];
    snprintf(layer_text, sizeof(layer_text), "Current Layer: %d", id);
	k_mutex_lock(&lvgl_ui_mutex, K_FOREVER);
    lv_label_set_text(ui_demo_layer_label, layer_text);
	k_mutex_unlock(&lvgl_ui_mutex);
}

我们在consumer_thread线程中调用ui_set_layer函数即可完成显示更新。

系统字体的使用

在官方的例子中,所有的中文显示都是使用LVGL的字体生成工具转换生成得到的。保存在src\app_ui\demo_ui\fonts\screen_word.c中。不过该文件中并没有我们显示电梯层数所需要的文字。
我们采用一个简单的办法,就是利用系统字体输出"Current Layer字样"。要使用系统字体,需要修改prj.conf文件中修改如下:

CONFIG_LV_FONT_MONTSERRAT_32=y

完整代码下载

完整的代码参见:https://download.csdn.net/download/bit_mike/88959552

演示效果

下面是程序运行的演示效果图。
演示效果
下面是完整的演示视频。

【聆思CSK6语音大模型AI开发套件试用】语音控制电梯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值