因为学校的嵌入式大作业要求,看网上有些博主发布的一些语音垃圾桶,我想是否可以用这个最小的stm32芯片做个这种语音识别垃圾桶,下面是步骤和材料准备。
一,材料准备
1,一个stm32f103c8t6的芯片,以及一些套件
2,四个舵机,我用的是SG90的,能用就行
3,一个2a5v的大电流蓄电池,四个舵机需要供电
4,pca9685 16路舵机控制板
5,ld3320语音识别模块stc单片机,用作语音识别
6. syn6288语音合成模块
7.四个小垃圾桶,有没有无所谓了,可以用别的代替
二,安装与连接步骤
1,首先是我们用这个stc的语音识别模块,这个模块内部有stc单片机,所以烧录代码得给它单独烧录,烧录代码如下:
main.c
#include "config.h"
/************************************************************************************/
// nAsrStatus 用来在main主程序中表示程序运行的状态,不是LD3320芯片内部的状态寄存器
// LD_ASR_NONE: 表示没有在作ASR识别
// LD_ASR_RUNING: 表示LD3320正在作ASR识别中
// LD_ASR_FOUNDOK: 表示一次识别流程结束后,有一个识别结果
// LD_ASR_FOUNDZERO: 表示一次识别流程结束后,没有识别结果
// LD_ASR_ERROR: 表示一次识别流程中LD3320芯片内部出现不正确的状态
/***********************************************************************************/
uint8 idata nAsrStatus = 0;
void MCU_init();
void ProcessInt0(); //识别处理函数
void delay(unsigned long uldata);
void User_handle(uint8 dat);//用户执行操作函数
void Delay200ms();
void Led_test(void);//单片机工作指示
uint8_t G0_flag = DISABLE; //运行标志,ENABLE:运行。DISABLE:禁止运行
sbit LED = P4 ^ 2; //信号指示灯
int over_time;
sbit SRD1 = P1 ^ 7;
sbit SRD2 = P1 ^ 6;
sbit SRD3 = P1 ^ 5;
sbit SRD4 = P1 ^ 4;
/***********************************************************
* 名 称: void main(void)
* 功 能: 主函数 程序入口
* 入口参数:
* 出口参数:
* 说 明:
* 调用方法:
**********************************************************/
void main(void)
{
uint8 idata nAsrRes;
uint8 i = 0;
P1M0 = 0xFF;
P1M1 = 0x00;
SRD1 = SRD2 = SRD3 = SRD4 = 0;
Led_test();
MCU_init();