跳转至

制作第一个demo

本文档以三色灯demo作为示例,为新用户讲解制作第一个语音产品demo的方法;

本文档适用于购买了CI-B02GS01S、CI-B02GS01S、CI-B03CS01S、CI-B02CS01S这四款芯片以及配套底板的用户学习使用;

若您还没有样品,请点击 ☞样品购买,购买您的开发板;

1、硬件接线

用户拿到开发板后,三色led灯亮灭需要将PWM3,PWM4,PWM5这三个引脚与它们旁边的led引脚短接,如下图所示:

引脚

开发板默认使用串口一升级,用户使用时,请连接TX0与RX0;

供电方式默认为5V供电,用户可以选择使用USB供电,也可选择用串口工具的5V供电;

2、模型制作

模型制作根据 ☞模型制作 内容进行修改,定制用户demo的命令词;

3、语音合成

语音合成根据 ☞语音合成 内容进行修改,定制用户demo的播报音

4、代码修改

在SDK内,用户实现三色灯demo需要修改如下代码,SDK中所有的应用可以通过IAR IDE开发软件编译以及使用,版本为8.30.1,用户可以自行联系IAR公司或其经销商采购该软件并使用。

代码修改完成后,用户需要对代码进行编译操作;

三色灯管脚配置宏:

路径: ..\components\led\color_light_control.c

#define COLOR_LIGHT_R_PWM_PIN_NAME PWM5_PAD
#define COLOR_LIGHT_R_PWM_PIN_PORT GPIO2
#define COLOR_LIGHT_R_PWM_PIN_BASE HAL_GPIO3_BASE
#define COLOR_LIGHT_R_PWM_PIN_NUMBER gpio_pin_4
#define COLOR_LIGHT_R_PWM_FUNCTION SECOND_FUNCTION
#define COLOR_LIGHT_R_PWM_NAME PWM5

#define COLOR_LIGHT_G_PWM_PIN_NAME PWM4_PAD
#define COLOR_LIGHT_G_PWM_PIN_PORT GPIO2
#define COLOR_LIGHT_G_PWM_PIN_BASE HAL_GPIO3_BASE
#define COLOR_LIGHT_G_PWM_PIN_NUMBER gpio_pin_3
#define COLOR_LIGHT_G_PWM_FUNCTION SECOND_FUNCTION
#define COLOR_LIGHT_G_PWM_NAME PWM4

#define COLOR_LIGHT_B_PWM_PIN_NAME PWM3_PAD
#define COLOR_LIGHT_B_PWM_PIN_PORT GPIO2
#define COLOR_LIGHT_B_PWM_PIN_BASE HAL_GPIO3_BASE
#define COLOR_LIGHT_B_PWM_PIN_NUMBER gpio_pin_2
#define COLOR_LIGHT_B_PWM_FUNCTION SECOND_FUNCTION
#define COLOR_LIGHT_B_PWM_NAME PWM3

三色灯初始化

路径: ..\sample\internal\sample_1102\src\user_msg_deal.c

#include "color_light_control.h"

#define COLOR_LIGHT_OFF 0,0,0
#define COLOR_LIGHT_ON 1.0,1.0,1.0
#define NVDATA_ID_LIGHT                 0x50000005 /*'LIGHT INFO'*/
#define LIGHT_BRIGHTNESS_MAX              1.0
#define LIGHT_BRIGHTNESS_MIN              0.1
#define LIGHT_BRIGHTNESS_MID              0.6
#define LIGHT_BRIGHTNESS_STEP             0.1
#define LIGHT_BRIGHTNESS_DEFAULT          0.6

color_light_info_t light_info;      /* 三色灯状态信息 */
xTimerHandle light_timer = NULL;    /* 三色灯定时器 */
/**
 * @三色灯初始化
 *
 */
void light_init()
{
  color_light_init();
  color_light_control(COLOR_LIGHT_OFF);
  color_light_set_level(0.0);  
  light_info.v = LIGHT_BRIGHTNESS_DEFAULT;
  light_info.s = 1;
}
初始化调用

路径: ..\sample\internal\sample_1102\src\user_msg_deal.c

/**
 * @brief 用户初始化
 *
 */
void userapp_initial(void)
{
    /*三色灯初始化*/
    light_init();

    #if CPU_RATE_PRINT
    init_timer3_getresource();
    #endif

    #if MSG_COM_USE_UART_EN
    vmup_communicate_init();
    #endif

    #if MSG_USE_I2C_EN
    i2c_communicate_init();
    #endif

#if IIS1_ENABLE == 0
    //IIS1引脚配置为gpio
    Scu_SetDeviceGate(HAL_GPIO3_BASE,ENABLE);
    Scu_SetIOReuse(I2S1_LRCLK_PAD, FIRST_FUNCTION);
    Scu_SetIOReuse(I2S1_SDO_PAD, FIRST_FUNCTION);
    Scu_SetIOReuse(I2S1_SCLK_PAD, FIRST_FUNCTION);
#endif

}

三色灯应用任务处理(下述代码,为通过命令词ID控制三色灯的函数代码,用户需要修改对应的命令词ID(cmd_id))

路径: ..\sample\internal\sample_1102\src\user_msg_deal.c

uint32_t deal_asr_msg_by_cmd_id(sys_msg_asr_data_t *asr_msg, cmd_handle_t cmd_handle, uint16_t cmd_id)
{
    uint32_t ret = 1;
    int select_index = -1;
    switch(cmd_id)
    {
        case 2://“红色模式”
        {
            light_info.h = 0;
            color_light_set_color(light_info.h,light_info.s);
            break;
        }
        case 3://“绿色模式”
        {    
            light_info.h = 120;
            color_light_set_color(light_info.h,light_info.s);
            break;
        }
        case 4://“蓝色模式”
        {
            light_info.h = 240;
            color_light_set_color(light_info.h,light_info.s);
            break;
        }
        case 5://"关闭灯光"
        {
            color_light_control(COLOR_LIGHT_OFF);
            break;
        }
        case 6://"打开灯光"
        {
            color_light_control(COLOR_LIGHT_ON);
            break;
        }
        default:
            ret = 0;
            break;
    }

    if (ret && select_index >= -1)
    {
        #if PLAY_OTHER_CMD_EN
        pause_voice_in();
        prompt_play_by_cmd_handle(cmd_handle, select_index, default_play_done_callback,true);
        #endif
    }

    return ret;
}

5、固件打包

第一步:打开“合成分区bin文件.bat”。

分区合成

第二步:如下图所示,合并分区时会提示选择音频格式,新手用户请选择“adpcm”,选择完成后,按回车键,待加载完成后,该界面会自动关闭。

播报

第三步:打开“打包升级.bat”。

打包工具

第四步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第五步)。

芯片选型

第五步:确认好芯片型号后,点击“固件打包”按钮,进入升级界面。

固件打包选项

第六步:固件升级信息填写:

  • 在版本信息区填写软硬件相关信息。

  • 选择或填写各分区bin文件路径。

  • 点击“刷新地址”,点击“打包固件”。

  • 如果弹窗提示地址冲突,调整各分区大小,重新执行上一步。

升级界面

  • 弹窗提示“固件已生成”表示打包成功。如下图所示:

成功

6、固件烧录

第一步:打开“打包升级.bat”。

打包工具

第二步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第三步)。

芯片选型

第三步:确认好芯片型号后,点击“固件升级”按钮,进入升级界面。

固件升级按键

第四步:固件升级

  • 选择或填写固件路径。

  • 勾选待升级的设备所连接的串口。

  • 其他选择:强制更新所有分区,鉴权文件,加密。

  • 待升级模块切换到升级模式(短接PG、EN两个引脚)。

  • 重启待升级设备,开始升级。

  • 等待升级完成,如果顺利的话,升级成功后,设备会自动引导进固件代码,如果有上电播报音话,能听到上电播报。

升级操作