查看: 700|回复: 0

实用教程 | 离线语音VC系列二次开发,实现语音控制LED灯

[复制链接]
  • TA的每日心情
    开心
    2022-5-31 10:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2022-6-20 14:49:41 | 显示全部楼层 |阅读模式
    分享到:

    本文将从产品创建开始讲起,一步一步实现语音控制LED的功能。

    一、
    RGB品类产品生成

    在【灯具】品类选择【RGB灯】,【选择场景】里选择纯离线方案,【选择模组】可以根据自己实际的硬件选择,我这里选择VC-02。【填写产品信息】中的产品名称按需填写,语言选择中文即可。下拉到最底部,点击【保存】。

    微信图片_20220620135851.gif
    1.产品功能定义
           在语音SDK选项中,前端信号处理、Pin脚配置保持默认
    微信图片_20220620135913.png
    2.定义控制LED的唤醒词及回复语
    微信图片_20220620135924.png
    3.定义命令词及回复语
           在基础信息中
    • 行为:即action,用于代码内部识别,必填
    • 命令词:即语音命令词,需要给模组写入的指令,多个命令用 “ | ”隔开,必填
    • 回复语:即命令词对应的回复语,多个回复语用 “ | ”隔开,必填

    微信图片_20220620135933.png
    4. 添加控制
    在控制详情中添加命令词对应做的控制:

    微信图片_20220620140009.png
    在开发板中,默认引出了三个LED灯,对应的GPIO分别是:
    微信图片_20220620140015.png
    可以添加唤醒状态灯,例如:蓝色灯为唤醒状态灯、暖光灯为被命令词控制灯。
    微信图片_20220620140022.png
    5.完整的制作过程(包含SDK生成)
    二、
    SDK下载和固件下载
    微信图片_20220620140027.png
    SDK的生成需要时间,不用着急。
           如果不需要再外加功能,可以直接选择固件下载,可生成和定制功能一致的固件,之后烧录即可。
           如需外加别的功能,比如退出唤醒关闭蓝色灯。就下载SDK,修改源码实现功能。
    1.固件下载
           固件下载是通过远程服务器编译当前SDK后生成的固件,一般有四个固件,它们分别是:
    • uni_app_debug.bin: 调试版固件,有调试信息输出,需要用专门的调试器进行烧录
    • uni_app_debug_update.bin: 调试版的串口升级固件,可以使用UART进行烧录
    • uni_app_release.bin: 正式版固件,需要用专门的调试器进行烧录
    • uni_app_release_update.bin:正式版的串口升级固件,可以使用UART进行烧录

    微信图片_20220620140033.png
    2.SDK下载
           SDK下载的文件是压缩格式,推荐使用Linux系统进行解压,解压指令:

    tar -xzvf uni_hb_m_solution-xxxxx-xxxxxxxx.tar.gz 微信图片_20220620140039.png
    三、
    代码修改及编译
           我们需要在这个SDK中添加一个退出唤醒关闭蓝色LED灯的功能,所以需要看一下代码。我们定制的SDK的功能默认是在user/src/examples/hb_auto_gpio.c中,所使用的Demo是USER_DEMO_AUTO_GPIO :
    微信图片_20220620140046.png
    注册退出唤醒事件及其回调
           在源代码中。默认已经注册了唤醒事件的回调。并且在回调中点亮了蓝色LED灯(GPIO_A25高电平),需要添加的功能:退出唤醒时关闭蓝色LED灯,修改步骤:
    • 注册退出唤醒事件
    • 添加退出唤醒时间回调的功能


    1 //退出唤醒回调2 static void _goto_sleeping_cb(USER_EVENT_TYPE event, user_event_context_t* context)3 { 4 event_goto_sleeping_t* sleeping = NULL; 5 if (context) 6 { 7 sleeping = &context->goto_sleeping;8  user_gpio_set_value(GPIO_NUM_A25, 0); 9   user_player_reply_list_random(sleeping->reply_files);  10   }11 }121314 static void _register_event_callback(void) { 15 ....  16 //注册退出唤醒回调17 user_event_subscribe_event(USER_GOTO_SLEEPING, _goto_sleeping_cb);18 }
           为了方便烧录我们使用串口方式进行烧录,在路径uni_hb_m_solution/unione_lite_app_hb_m执行编译命令:

    ./build.sh update
    之后,使用串口升级即可验证功能。


    微信图片_20220620135955.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则



    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 07:23 , Processed in 0.109773 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.