【《基于STM32单片机以及C语言的智能垃圾分类系统设计》11000字】_第1页
【《基于STM32单片机以及C语言的智能垃圾分类系统设计》11000字】_第2页
【《基于STM32单片机以及C语言的智能垃圾分类系统设计》11000字】_第3页
【《基于STM32单片机以及C语言的智能垃圾分类系统设计》11000字】_第4页
【《基于STM32单片机以及C语言的智能垃圾分类系统设计》11000字】_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录程序实现如下:语音模块程序主函数voidmain(void){uint8idatanAsrRes;uint8i=0;P1M0=0xFF;P1M1=0x00;SRD1=SRD2=SRD3=SRD4=0;Led_test();MCU_init();LD_Reset();UartIni();/*串口初始化*/nAsrStatus=LD_ASR_NONE; // 初始状态:没有在作ASRwhile(1){switch(nAsrStatus){caseLD_ASR_RUNING:caseLD_ASR_ERROR:break;caseLD_ASR_NONE:{nAsrStatus=LD_ASR_RUNING;if(RunASR()==0) /* 启动一次ASR识别流程:ASR初始化,ASR添加关键词语,启动ASR运算*/{nAsrStatus=LD_ASR_ERROR;}break;}caseLD_ASR_FOUNDOK:/* 一次ASR识别流程结束,去取ASR识别结果*/{nAsrRes=LD_GetResult(); /*获取结果*/User_handle(nAsrRes);//用户执行函数nAsrStatus=LD_ASR_NONE;break;}caseLD_ASR_FOUNDZERO:default:{nAsrStatus=LD_ASR_NONE;break;}}//switch}//while}用户执行函数void User_handle(uint8dat){if(0==dat){G0_flag=ENABLE; UARTSendByte(0x55); //PrintCom("请说出垃圾类型\r\n");LED=0;}elseif(ENABLE==G0_flag){G0_flag=DISABLE;LED=1; switch(dat){ caseCODE_1: UARTSendByte(0x01); break; caseCODE_2: UARTSendByte(0x02); break; caseCODE_3: UARTSendByte(0x03); break; caseCODE_4: UARTSendByte(0x04); break; default: UARTSendByte(0x05); break; }}else{PrintCom("请说出一级口令\r\n");/*text*/}}2.核心模块程序intmain(void){ //初始化舵机控制io端口 STEERING_GPIO_Config(); //配置语音识别模块usart VIOCE_REC_USART_Config(); //配置语音播放模块usart DFPLAYER_USART_Config(); /*基本定时器TIMx,x[6,7]定时配置*/ BASIC_TIM_Config(); DFPlayer_SetVolume(30); //开机语音问好 DFPlayer_Play(VOICE_RECEIVE_CMD_1);while(1){ //识别到语音命令&所有舵机已经没有待执行的命令 if(voice_receive_status!=VOICE_RECEIVE_CMD_WAIT&&steering_cmd_status==STEERING_CMD_WAIT){ //播放相应语音 DFPlayer_Play(voice_receive_status); DelayMs(1000); if(voice_receive_status!=VOICE_RECEIVE_CMD_1){ steering_cmd_status=STEERING_CMD_OPEN; if(voice_receive_status==VOICE_RECEIVE_CMD_2_RECYCLABLE){ steering_cmd_target=STEERING_TARGET_RECYCLABLE; }elseif(voice_receive_status==VOICE_RECEIVE_CMD_2_KITCHEN){ steering_cmd_target=STEERING_TARGET_KITCHEN; }elseif(voice_receive_status==VOICE_RECEIVE_CMD_2_HARMFUL){ steering_cmd_target=STEERING_TARGET_HARMFUL; }elseif(voice_receive_status==VOICE_RECEIVE_CMD_2_OTHER){ steering_cmd_target=STEERING_TARGET_OTHER; } } //清除语音识别状态位 voice_receive_status=VOICE_RECEIVE_CMD_WAIT; } //有指令等待被执行 if(steering_cmd_status!=STEERING_CMD_WAIT){ //开启垃圾桶 tim6_half_ms=0; uint16_tall_half_ms=0; while(steering_cmd_status==STEERING_CMD_OPEN){ if(tim6_half_ms<STEERING_PWM_HI_TIME){ SteeringToON(); }else{ SteeringToOFF(); //一个pwm周期 if(tim6_half_ms>=STEERING_PWM_PERIOD){ tim6_half_ms=0; all_half_ms+=STEERING_PWM_PERIOD; } } //开启保持 if(all_half_ms==STEERING_OPEN_KEEP_TIME){ steering_cmd_status=STEERING_CMD_CLOSE; } } //关闭垃圾桶 steering_cmd_status=STEERING_CMD_CLOSE; tim6_half_ms=0; all_half_ms=0; while(steering_cmd_status==STEERING_CMD_CLOSE){ if(tim6_half_ms<STEERING_PWM_LO_TIME){ SteeringToON(); }else{ SteeringToOFF(); //一个pwm if(tim6_half_ms>=STEERING_PWM_PERIOD){ tim6_half_ms=0; all_half_ms+=STEERING_PWM_PERIOD; } } //关闭保持 if(all_half_ms==STEERING_CLOSE_KEEP_TIME){ steering_cmd_target=STEERING_TARGET_NULL; steering_cmd_status=STEERING_CMD_WAIT; } } } }}voidSteeringToON(void){ if(steering_cmd_target==STEERING_TARGET_RECYCLABLE){ RECYCLABLE_ON; }elseif(steering_cmd_target==STEERING_TARGET_KITCHEN){ KITCHEN_ON; }elseif(steering_cmd_target==STEERING_TARGET_HARMFUL){ HARMFUL_ON; }elseif(steering_cmd_target==STEERING_TARGET_OTHER){ OTHER_ON; }}voidSteeringToOFF(void){ if(steering_cmd_target==STEERING_TARGET_RECYCLABLE){ RECYCLABLE_OFF; }elseif(steering_cmd_target==STEERING_TARGET_KITCHEN){ KITCHEN_OFF }elseif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论