原理:
利用LD3320模块控制购物车的运动。 小车驱动模块为L298N,语音模块采用LD3320。 LD3320核心是51单片机,通过串口将识别出的状态发送给STM32,利用STM32控制小车的运动。
实验现象:
)1)语音“前进”,购物车前进
)2)语音“后退”,购物车后退;
)3)语音“停止”,购物车停止;
)4)语音为“左转”,购物车为左转
)5)语音“右转”,购物车右转;
)语音“跳舞”,推车跳舞。
视频演示
33559 www.bilibili.com/video/b v1h 7411 m7x 9
源程序下载地址
LD3320语音程序和STM32购物车控制程序
硬件连接图
LD3320部分程序:
关键字程序:
uint8 LD_AsrAddFixed () { uint8 k,flag; uint8 nAsrAddLength; #define DATE_A 11 /*数组二维数值*/#define DATE_B 20 /*数组一维数值*/uint8codes recog [ date _ a ] [ date _ b ]={ ' xiaolololon 运行程序:
voiduser_Handle(uint8dat ) if )0==dat ) { G0_flag=ENABLE; LED=0; }elseif(enable==G0_flag ) { G0_flag=DISABLE; LED=1; switch(dat ) case code _ 1:/* forward */uartsendbyte (0x 01 ); printcom(1catgorn ); 黑; case code _ 2:/* backword */uartsendbyte (0x 02 ); printcom(2catbackrn ); 黑; case code _ :/* stop */uartsendbyte (0x 03; printcom(3catstoprn ); 黑; case code _ 4:/* left */uartsendbyte (0x 04; printcom(4catleftrn ); 黑; case code _ 5:/* right */uartsendbyte (0x 05 ); printcom(5catrightrn ); 黑; case code _ 6:/* dance */uartsendbyte (0x 06 ); printcom(6catdancern ); 黑; case code _ 7:/* turnon */uartsendbyte (0x 07 ); printcom(7turnonrn ); 黑; case code _ 8:/* turn off */uartsendbyte (0x 08 ); printcom(8turnoffrn ); 黑; default :/* text . */break; } } else { PrintCom ('请说一级密码rn ); /*Text.*/}http://www.Sina.com/
# include ' sys.h ' # include ' delay.h ' # include ' usart.h ' # include ' led.h ' # include ' motor.h # include ' u8 get=0; HAL_Init (; 初始化//Hal库STM32_clock_init(RCC_PLL_mul9 ); //设定时钟,输入72mDelay_init(72; //初始化延迟函数LED_Init (; 初始化LED MOTOR_Init (初始化//初始化电机端口UART _ init (9600 ) ); URT3_init(9600; 湿润的甜瓜3 _ PWM _ init (899,0 led0=0; while(1) if(usarT3_rx_sta0x8000 ) { len=USART3_RX_STA0x3fff; get=USART3_RX_BUF[0]; printf(rnrncodeis%drn ',get ); sitch(get ) case 1: dir forward ) 480; } break; case2:{dirback(480; } break; case 3: {Stop (; } break; case 4: { left (480,0 ); } break; case 5: { right (0,480 ); } break; case 6: { left (480,0 ); right(0,480; 前锋(480; left (480,0; right(0,480; } break; 默认: { led0=1; LED1=1; }break; } Hal _ UART _ transmit (UART3_ handler,(uint8_t* ) USART3_RX_BUF,len,1000 ); while(_Hal_Uart_get_flag ) Uart3_Handler,UART_FLAG_TC )!=SET; USART3_RX_STA=0; } } } STM32主程序: