77范文网 - 专业文章范例文档资料分享平台

小车设计 - 图文(7)

来源:网络收集 时间:2020-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于STM32的智能小车的设计

第5章 系统软件设计

在本次设计中,硬件是整个系统稳定工作的保障。除了系统硬件设计外,大量的工作就是如何根据每个具体对象的实际需要设计应用程序。单片机应用系统是由硬件和软件共同完成一定任务的,只有两者紧密的结合协调一致才能组成高性能的应用系统,在设计过程中要相互适应,相互配合,达到最高性价比。

5.1 端口初始化模块

端口的初始化函数主要是对电机的控制端口、舵机的控制端口和传感器接口进行初始化,本设计中共涉及到的I/O分别是:PE0~PE6为前排7个灰度传感器的接口,设置为上拉输入;PG0~PG6为后排7个灰度传感器的接口,为上拉输入;PB10和PB11是控制左右电机转动方向的接口,设置为通用推挽输出;PA2和PA3分别是控制左右电机转速的接口,设置为复用推挽输出;PE7和 PG7分别为左侧、右侧腰间灰度传感器的接口,设置为上拉输入;PE8和PG8分别为前红外避障传感器和后红外避障传感器的接口,设置为上拉输入;PE9为碰撞开关的的接口,设置为上拉输入,PB12为语音模块的接口,设置为通用推挽输出;PB6、PB7、PB8、PB9、PA6、PA7、PB0、PB1分别为上身8个舵机的接口,设置为复用推挽输出。具体程序见附录。

5.2 电机控制模块

5.2.1 转速控制

本设计通过改变PWM的占空比来调节直流电机的转速。PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。在一个脉冲周期内,高电平所占的时间越长,即占空比越大,则电机的转速越快;高电平所占的时间越短,即占空比越小,电机的转速越慢,通过改变一个周期内的高电平时间即可控制电机的转速。

本设计中通过控制STM32F103ZET6单片机的通用定时器TIM5来生成控制电机的PWM,因为通用定时器TIM5有四个通道可以生成PWM,本设计中采用TIM5的2个通道CH3(PA2)和CH4(PA3)生成可变占空比的PWM,从而可以实现PA2口和PA3口输出不同占空比的脉冲波形。具体程序见附录。 5.2.2 转向控制

电机转向的控制是通过给电机驱动的控制转向的端口赋高低电平即可实现电机的正反转。将电机驱动上的转向控制端口与STM32F103ZET6单片机的PB10、PB11相连,则只需对单片机的PB10、PB11输出不同的值到驱动端口,即可控制电机的转向。

24

具体程序见附录。

5.3 直线循迹模块

5.3.1 循迹原理

直线循迹函数主要是利用传感器探测白色引导条,通过灰度传感器的返回值判断当前小车相对于白线的位置,通过改变PWM的占空比,利用速度差对小车不同程度的位置校正。以前进循迹为例,给前排传感器从左到右编号为1号、2号、3号、4号、5号、6号、7号,当4号传感器检测到白线时,说明小车此时的位置刚好在白线上,两侧电机给相同较大的速度;当3号传感器检测到白线时,说明此时小车相对于白线右偏了,需要对小车位置进行校正,给两侧电机差速度,左侧电机速度相对于右侧电机速度稍微小点,当2号传感器检测到白线时,说明此时小车相对于白线右偏的更多了,所以给两侧电机更大的差速度来校正小车的位置;当1号传感器检测到白线时,说明此时小车已经快冲出轨道了,所以使左侧的电机不动,右侧的电机以较大的速度转动,使得小车能够到正常的轨道上。左偏的情况同理可分析,具体程序见附录。 5.3.2 循迹流图

直线循迹流程图如图5.1所示:

开始是前进还是后退?前进后退电机正转电机反转左速度大左偏正中间的传感器是否在白线上?不偏右偏右速度大两侧速度相同结束

图5.1 直线循迹流程图

25

基于STM32的智能小车的设计

5.4 路口处理模块

5.4.1 路口减速

当小车接近十字路口或交叉路口时,只有使小车速度减慢,然后拐弯,才能使小车能够顺利的拐过去,不至于因为速度过快冲出去,所以路口减速对整个控制也很重要。实现方法是,以右转路口为例,当前排右侧最边上一个灰度传感器检测到之前,使小车全速前进,然后当前排右侧最边上一个灰度传感器检测到而右侧腰间灰度传感器没有检测到时,小车减速前进,直到右侧腰间灰度传感器检测到,使小车停下,然后右转。左侧路口减速实现方法类似,路口减速流程图如图5.2所示,具体程序见附录。

开始全速直线循迹N最边上的传感器检测到?Y减速直线循迹N腰间传感器检测到?Y停止结束

图5.2 路口减速流程图

5.4.2 路口拐弯

拐弯分为左拐弯和右拐弯。左拐弯只需左侧电机反转,右侧电机正转;右拐弯只需左侧电机正转,右侧电机反转。拐弯的方法有两种,一种是传感器检测法,此方法是使用传感器检测,拐弯较准,对任何场地都适用,不需要修改参数,但是受外界干扰较大;另一种方法是延时法,此方法对不同的场地需要修改不同延时时间,较为麻

26

烦,但是其几乎不受外界干扰,与传感器检测法比较更加稳定。

(1)传感器检测法

以左拐弯为例,当前排左侧最边上一个灰度传感器没有检测到,使左侧电机反转,右侧电机正转,当前排正中间的灰度传感器没有检测到时,使其继续左转,直到正中间的灰度传感器检测到,使小车停下,这样就完成了一次左拐弯。右拐弯的原理与左拐弯相似,当前排右侧最边上一个灰度传感器没有检测到,使左侧电机正转,右侧电机反转,当前排正中间的灰度传感器没有检测到时,使其继续右转,直到正中间的灰度传感器检测到,使小车停下,这样就完成了一次右拐弯。具体程序见附录。

传感器检测法拐弯流程图如图5.3所示:

开始最边上传感器是否检测到?YN左转左转还是右转?右转左侧反转右侧正转左侧正转右侧反转中间传感器是否打在白线上?NY结束

图5.3 传感器检测法拐弯流程图

(2)延时法

所谓的延时法就是利用延时使小车拐弯,以左拐弯为例,当小车执行完路口减速模块,使左侧电机反转,右侧电机正转,然后使其保持这个左转状态,延时一段时间,然后使其停下,看它是否转正,通过不断测试,可确定出转正的具体时间。用延时法右拐弯原理类似,,当小车执行完路口减速模块,使左侧电机正转,右侧电机反转,然后使其保持这个右转状态,延时一段时间,然后使其停下,看其是否转正,通过不断

27

基于STM32的智能小车的设计

测试,可确定出转正的具体时间。由于不同场地的摩擦力不同,所以小车拐弯所需的时间也不同,在各个场地必须测试,但是其稳定程度高于传感器检测法。而且,对于非九十度的路口拐弯,由于路口白线太多,对于传感器的影响很大,用传感器检测法会导致程序跑飞,而延时法不会受路口白线的影响,是这种非九十度路口拐弯的最好选择。

5.4.3 路口忽略

所谓的路口忽略,就是指当小车行驶到某些路口时,既不需要小车减速,也不需要拐弯,就按照先前的状态全速行驶。这里实现方法比较简单,即只需传感器检测不到时全速行驶,传感器检测到了同样是全速行驶即可。在路口忽略函数中,带了三个参数,第一个参数用来表示是前进还是后退时忽略路口,第二个参数用来表示是选择前排或者后排检测还是用腰间检测,第三个参数用来表示是用左侧的传感器还是用右侧的传感器进行检测。具体程序见附录。

5.5 碰撞景点模块

5.5.1 碰撞景点

当小车行驶到靠近景点,红外传感器检测不到时,使小车全速直线循迹,当红外传感器检测到时,使小车减速行驶,然后触碰开关碰撞景点,与触碰开关相连的端口电平值被拉低,传递给控制器,控制器马上返回给驱动一个信号,使小车返回,同时给语音模块一个信号,使其播报语音,然后继续循迹下一个景点。 5.5.2 举起手臂

当小车靠近景点时,小车上身的手臂必须举起去触碰景点,所以软件设计时,当红外传感器检测到时,小车减速前进并举起手臂,当小车碰撞到景点后返回,红外传感器检测不到时,使手臂放下,继续寻找下一个景点。 5.5.3 语音播报

将语音芯片设置为最简单的PWM输出模式,直接驱动扬声器,将要播报的语音放在不同的地址里,编译下载后,只需下降沿触发即可,下降沿触发一次,播报一个地址的语音,每一次触发地址下移一个,直到语音结束。初始化时,将控制语音模块的端口PB12设置为高电平,在碰撞开关触发后,再设置为低电平,这样就产生了一个下降沿,从而触发了语音芯片,进行播报语音。具体程序见附录。

5.6 舵机控制模块

舵机在本设计中的应用体现在小车的上身,小车上身由8个舵机构成,各舵机之

28

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库小车设计 - 图文(7)在线全文阅读。

小车设计 - 图文(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1006064.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: