单片机设计:基于stm32智能语音识别蓝牙音响(ld3320语音识别模块+mp3模块+喇叭+点阵屏+OLED+蓝牙+手机app)

一、主要功能:

1.手机app播放内存卡的音乐、同时点阵屏随音乐进行跳动

2.0LED、手机app显示当前音量以及当前状态

3.手机app远程调节音量阈值,可以切换上一首、下一首,音乐播放结束后自动下一首

4.语音模块通过识别人的声音来控制蓝牙音响的状态(上一首,下一首,暂停,播放,音量加,音量减)

当然也可以添加其他功能~

定制可赠送资料:

1.实物

2.源码以及手机app

3.原理图

4.售后线上服务(代码讲解)

二、实物图:

三、部分源码:

主函数部分:

while (1)
  {
        

        key = RX;//手机按键值
        MP3(key);
         
        if(flag_song==1)//按键的值不等于1  1即为暂停(点阵屏)
        {
            for(i=1;i<9;i++)
            {
                num = rand()%10;//随机值
                MAX7219_WRITE(i,disp1[num][0]);
            } 
            HAL_Delay(200);        
        }
        if(led_flag==1)
        {
            HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
            HAL_Delay(1000);
            HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
            led_flag = 0;
        }

        
    
        
  }

语音识别部分:

void USART3_IRQHandler(void)
{
    if(__HAL_UART_GET_FLAG(&huart3, UART_FLAG_IDLE) != RESET)  // 空闲中断标记被置位
    {
        __HAL_UART_CLEAR_IDLEFLAG(&huart3);  // 清楚中断标记
        HAL_UART_DMAStop(&huart3);           // 停止DMA接收
        UART_RX_STA3 = UART_RX_LEN3 - __HAL_DMA_GET_COUNTER(huart3.hdmarx);  // 总数据量减去未接收到的数据量为已经接收到的数据量
        UART_RX_BUF3[UART_RX_STA3] = 0;  // 添加结束符
        UART_RX_STA3 |= 0X8000;         // 标记接收结束
        
//        if(strcmp((char *)UART_RX_BUF3,"1111")==0){RX=2;led_flag=1;HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}//播放
//        if(strcmp((char *)UART_RX_BUF3,"2222")==0){RX=1;led_flag=1;HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}//暂停
//        if(strcmp((char *)UART_RX_BUF3,"3333")==0){RX=4;led_flag=1;HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}//上一首
//        if(strcmp((char *)UART_RX_BUF3,"4444")==0){RX=3;led_flag=1;HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}//下一首
//        if(strcmp((char *)UART_RX_BUF3,"5555")==0){RX=5;led_flag=1;HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}//音量加
//        if(strcmp((char *)UART_RX_BUF3,"6666")==0){RX=6;led_flag=1;HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}//音量减
        if(strcmp((char *)UART_RX_BUF3,"1111")==0){RX=2;led_flag=1;}//播放
        if(strcmp((char *)UART_RX_BUF3,"2222")==0){RX=1;led_flag=1;}//暂停
        if(strcmp((char *)UART_RX_BUF3,"3333")==0){RX=4;led_flag=1;}//上一首
        if(strcmp((char *)UART_RX_BUF3,"4444")==0){RX=3;led_flag=1;}//下一首
        if(strcmp((char *)UART_RX_BUF3,"5555")==0){RX=5;led_flag=1;}//音量加
        if(strcmp((char *)UART_RX_BUF3,"6666")==0){RX=6;led_flag=1;}//音量减
        UART_RX_STA3=0;
        
        HAL_UART_Receive_DMA(&huart3, UART_RX_BUF3, UART_RX_LEN3);  // 重新启动DMA接收
        
    }
    
    HAL_UART_IRQHandler(&huart3);
}

四、原理图:

        以下是整个工程各个模块的原理图:

 

五、更多:

如果想要更加详细的了解整个工程的话可以去b站看这个视频演示,下面为视频链接:

单片机设计:基于stm32智能语音识别蓝牙音响(ld3320语音识别模块+mp3模块+喇叭+点阵屏+OLED+蓝牙+手机app)_哔哩哔哩_bilibili

给个免费的三连哦!!!

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐