【《单片机语音舵机机器人系统的软件设计及系统调试分析案例》1300字】_第1页
【《单片机语音舵机机器人系统的软件设计及系统调试分析案例》1300字】_第2页
【《单片机语音舵机机器人系统的软件设计及系统调试分析案例》1300字】_第3页
【《单片机语音舵机机器人系统的软件设计及系统调试分析案例》1300字】_第4页
【《单片机语音舵机机器人系统的软件设计及系统调试分析案例》1300字】_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

单片机语音舵机机器人系统的软件设计及系统调试分析案例目录TOC\o"1-3"\h\u116821.1主函数 138831.2语音识别函数 2302551.3舵机驱动函数 3217532系统调试 664092.1硬件测试 660812.2软件调试 61系统的软件设计1.1主函数主函数的设计思路,如图4-1:系统初始化,包括调用定时器中断初始化函数,系统部分标志位和输入引脚的初始化;短暂延时开机;读取语音命令;进入while循环;在while循环内调用舵机驱动函数。4-1主函数流程图1.2语音识别函数(1)芯片复位芯片47引脚(RSTB*)发送低电平,然后需要选择芯片CS进行拉低-拉高操作来激活内部DSP。程序如下:voidLD_reset(){RSTB=1;delay(1);RSTB=0;delay(1);RSTB=1;delay(1);CSB=0;delay(1);CSB=1;delay(1);}芯片初始化一般在程序的开始进行。(2)语音识别语音识别函数如下:uint8RunASR(){uint8i=0;uint8asrflag=0;for(i=0;i<5;i++){LD_Init_ASR();delay(100);if(LD_AsrAddFixed()==0){LD_reset();delay(100);continue;}delay(10);if(LD_AsrRun()==0){LD_reset();delay(100);continue;}asrflag=1;break;}returnasrflag;}1.3舵机驱动函数语音模块将识别后的语音指令通过串口发送给MCU,MUC解析后调用相应的动作函数,舵机驱动的原理是调节PWM输出的占空比。#include"duoji.h"voidPWM_Init(u16arr,u16psc){GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;//定义定时器脉宽调制结构体RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化GPIOBTIM_TimeBaseStructure.TIM_Period=arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseStructure.TIM_ClockDivision=0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OC2Init(TIM3,&TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);TIM_Cmd(TIM3,ENABLE);使能TIM3}intmain(void){ delay_init(); PWM_Init(199,7199); while(1) {delay_ms(1000); TIM_SetCompare2(TIM3,5);delay_ms(1000); TIM_SetCompare2(TIM3,25);}}2系统调试2.1硬件测试一种印刷电路板的制造方法,包括拉制印刷电路板、印刷电路板、预处理覆铜板、移动电路板和腐蚀电路板。电工、电路板钻孔、电路板加工。在印刷电路板制造完成后,可通过焊接将组件插入电路板中。由于24路舵机驱动板的集成度较高,因此在调试过程中没有太多的麻烦。关于硬件实物的测试主要是关于舵机驱动板能不能正常工作,在给驱动板通上电之后,电源指示灯显示正常,机器能正常启动,之后对单片机进行烧录程序,通过添加程序可以测试驱动板的功能,其中需要对语音识别和舵机驱动等功能进行测试,首先是通过总线通讯接口连接语音模块,总线接口连接总线舵机,设置较为简单的指令,驱动板接收到指令后能够正常执行,驱动舵机旋转相应的角度。图5-1硬件测试图图5-2硬件测试图2.2软件调试软件调试阶段需要用到Keil软件。软件调试的第一步还是编写程序,本课题完全用单片机语言来编程,先对每个部分逐次编程,程序编写完之后就可以下载到实物中。一般编程不可能一次性就成功,所以需要多次不断的测试、不断的修改,直至实现需要的功能。无论是在调试的时候或最终调试完成之后,都要用下载器将程序下载到芯片中。就这样反复的调试修改,直到将每个部分都调通。Keil这个软件可以完成程序的编写和在线调试,但是编写程序的过程中有一个缺点,就是格式问题。因此编写程序,可以选择在VisualC++软件上进行编辑,它的好处是换行的时候自动对齐,编写和检查程序的时候比较清晰,语法上也会减少错误。程序编辑在file.c文件中,在Keil中建立工程文件,添加编辑完整的程序文件,进行编译。编译的过程中可能会出现各种各样的错误,格式、语法、公式等,一步一步排查这些错误,不理解的地方可

温馨提示

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

评论

0/150

提交评论