--毕业设计3--陈亚文(5)

2019-06-17 11:54

基于stm32的智能小车设计

图2.18 超声波时序图

我们根据时序图,可以编写相应的程序代码。为了防止发射信号对回向信号的影响,我们的测量周期不易过小。并且由于HC-SR04的感应角度不大于15°,所以测距时,为了防止发射信号丢失,我们要求被测物体的面积不应小于0.5平方米,否则可能导致测量结果不准确。

舵机在避障模块的主要作用前面已经提到,本节主要讲解舵机的工作特性。舵机的实物图如图2.19所示:

图2.19 舵机实物图

舵机的工作工作原理是stm32微处理器发出数据给舵机,舵机内部有一个基准电路,它会产生周期为20ms,宽度为1.5ms的基准信号,它将微处理器传输的直流偏置电压与电位器的电压数据进行比较,获得电压差输出。经由电路板上的IC 判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回反馈信号。舵机的转动角度与stm32所提供的PWM信号相关。标准信号PWM周期为20ms,理论上来讲脉宽为1~2ms,实际我们的脉宽为0.5~2.5ms,脉宽与所转的角度一一对应。角度与脉宽的对应图如图2.20所示:

- 20 -

基于stm32的智能小车设计

图2.20 舵机角度与脉宽对应图

2.3.2 HC-SR04模块硬件电路设计 超声波模块硬件原理图如下图所示:

图2.21 超声波硬件原理图

HC-SR04模块主要由发射器、接收器和部分电路组成。在此试验中,我们只需简单了解电路的设计,对于其基本原理可以不用过多涉猎,我们只需明白它们的工作原理,并且能够简单运用即可。 2.3.3 HC-SR04模块程序设计

根据硬件电路的设计,我们对避障子程序进行设计,程序流程图如图2.22所示:

- 21 -

基于stm32的智能小车设计

开始系统初始化前进否前方是否有障碍是舵机左转否小车左转小车左方是否有障碍是舵机右转否小车右方是否有障碍小车右转小车后转避障子程序结束 图2.22 避障程序流程图

避障模块在程序设计中,我们的工作主要是: 1、控制超声波的扫描周期

2、采集超声波发射到接受的高电平持续时间t

3、对采集的高电平持续时间t进行处理,判断前方是否有障碍 下面我们就详细介绍我们是怎么通过软件设计来完成这几个步骤的: 1、控制超声波的扫描周期

根据表2-2,我们采用的是TIM2来控制超声波的扫描周期。首先我们把TIM2设置为定时器中断模式,代码格式为void TIM2_Int_Init(u16 arr,u16 psc); 由于配置定时器中断模式十分简单,我们就不在详细介绍,其详细代码见附录4.定时器TIM2的中断周期计算公式为T=((arr+1)*(psc+1))/Tclk。Tclk为系统周期,一般为72Mhz.我们在中断服务程序中控制超声波的发射,我们采用PC7作为触发信号,根据超声波时序图,我们需要在中断程序中给PC7一个持续10ms的高电平,中断服务程序如下:

- 22 -

基于stm32的智能小车设计

void TIM2_IRQHandler(void) //TIM2中断 {

if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)

{

TIM_ClearITPendingBit(TIM2, TIM_IT_Update ); GPIO_SetBits(GPIOC,GPIO_Pin_7); delay_ms(10);

GPIO_ResetBits(GPIOC,GPIO_Pin_7);

} }

2、采集超声波发射到接受的持续时间t

在本节试验中,我们使用了通用定时器TIM5的输入捕获功能,输入捕获模式具有测量频率或者测量脉冲的宽度的功能。我们开启TIM5通道CH1(定时器5)的输入捕获模式,采集ECHO端口的高电平持续时间。配置定时器5代码格式为: void TIM5_Cap_Init(u16 arr,u16 psc){?}

下面我们就详细讲解一下,如何开启并使用通用定时器的输入捕获功能。 输入捕获的原理,简单的讲就是通过检测TIM5(定时器)通道CH1的边沿信号,当边沿信号发生变化时,当前寄存器的值TIM1_CNT存放到通道的捕获/比较寄存器(TIM5_CCR1)里面。我们的实验就是采集捕获/比较寄存器(TIM5_CCR1)中的值并进行处理,完成相应的动作。为了使TIM5通道CH1具有捕获功能,我们需要用到TIM5_PSC、TIM5_ARR、捕获/比较模式寄存器(TIM5_CCMR1)、捕获/比较使能寄存器(TIM5_CCER)、捕获/比较寄存器(TIM5_CCR1)、DMA/中断使能寄存器(TIM5_DIER)、控制寄存器(TIM5_CR1)。我们下面就简单介绍下下这几个寄存器。

TIM5_PSC、TIM5_ARR、TIM5_CCR1这3个寄存器用法与前节中相同,我们就不在赘述,而在本实验中,捕获/比较寄存器TIM5_CCMR1非常重要,该寄存器的各位描述如下图所示:

- 23 -

基于stm32的智能小车设计

图2.23 TIMx_CCMR1各位描述

我们使用的是TIM5捕获/比较通道CH1,所以图中只介绍[7:0]位。本次试验我们设置CC1S[1:0]=01,IC1PSC[1:0]=00,IC1F[3:0]=0000。

接着我们再来看看捕获/比较使能寄存器TIMx_CCER,本节用到了CC1E和CC1P两位,描述如下图所示:

图2.24 TIMx_CCER最低两位描述

- 24 -


--毕业设计3--陈亚文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青运会赛会志愿者通用知识模拟试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: