自动循迹小车课程设计.docx
《自动循迹小车课程设计.docx》由会员分享,可在线阅读,更多相关《自动循迹小车课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
![自动循迹小车课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/17/ad960f2e-a15f-44d8-94aa-e2f0e7ffe889/ad960f2e-a15f-44d8-94aa-e2f0e7ffe8891.gif)
自动循迹小车课程设计
课程报告
课程名称:
嵌入式系统与应用
项目名称:
自动循迹小车
院系:
理学院
专业:
自动化1401
学号:
xxxxxxxxxxxxxxxxxxxxx
姓名:
xxxxxxxx
指导导师:
xxxxxxxx
2017年05月23日
西京学院理学院制
摘要
本次课程设计主要完成基于STM32F103微处理器的智能小车控制系统的系统设计。
此智能小车系统的组成主要包括STM32F103控制器、电机驱动电路、红外探测电路。
本次试验采用STM32F103微处理器为核心芯片,利用PWM技术对速度进行控制,循迹模块进行黑白检测,其他外围扩展电路实现系统整体功能。
实现了智能小车能够自动跟踪地面上的黑色轨迹的任务。
关键字:
STM32;红外探测;PWM;电机控制
Abstract
ThiscoursedesignmainlycompletesthesystemdesignofintelligentcarcontrolsystembasedonSTM32F103microprocessor.ThecompositionofthisintelligentcarsystemmainlyincludesSTM32F103controller,motordrivecircuit,infrareddetectioncircuit.ThistestusesSTM32F103microprocessorasthecorechip,theuseofPWMtechnologytocontrolthespeed,trackingmoduleforblackandwhitedetection,otherperipheralexpansioncircuittoachievetheoverallfunctionofthesystem.Toachievethesmartcarcanautomaticallytracktheblacktrackonthegroundtask.
Keywords:
STM32;infrareddetection;PWM;motorcontrol
1设计任务要求
本设计通过对轨迹跟踪问题的分析,制作了一辆能够自动跟踪地面上的黑色轨迹的智能小车。
(1)设计搭建小车结构框架,两驱或四驱不限,机械转向灵活。
(2)设计选型电源、电机、传感器、STM32控制器板等电路模块,完成方案设计和电路图绘制。
(3)设计功能函数和软件流程图。
2方案设计及选型
2.1总体方案选择
基于对小车循迹准确性以及速度的综合考虑,我们最终选择的系统框图如图2-1所示:
图2-1总体方案框图
2.2车型选型
基于在循迹小车设计报告的实际完成情况,我们考虑到小车调试频繁的问题、电池使用时间长短以及小车的灵活性,我么们选择了由俩个电机与一个万向轮组成的俩驱小车。
车架使用市面上的合成简易车架。
2.3器件选型
(1)循迹模块选型
方案一:
采用红外对管对黑带进行高频率扫描,并将扫描结果串行输出,用斯密特触发器对波形整形后,将数据送入STM32进行分析判断。
优点:
节省系统消耗的功率,节约STM32的I/O,硬件电路的接线变得简洁。
缺点:
信息处理速度相对于并行输出慢,相邻红外会产生干扰。
方案二:
采用多路反射型的光电传感器TCRT5000对地面进行检测,将所采集到的信息并行输入比较器比较后,再将数据送入STM32处理。
优点:
信息处理速度快,相邻传感器不会相互干扰,操作方便,结构简单。
缺点:
占用STM32的I/O较多,连线相对繁琐。
方案选择:
考虑到小车对信息的采集速度及检测的准确性,我们最终选用了方案二。
(2)驱动及电机选择
①驱动选择:
由于L298N驱动有以下优点:
a.可实现电机正反转;
b.启动性能好,启动转矩大;
c.可同时驱动两台直流电机;
所以我们最终选择了L298N驱动。
②电机选择:
直流减速电机转速平稳,速度快,功耗低,又因为本设计是用电池供电,所以我们最终选择了6V的直流减速电机作为小车的驱动电机。
3系统电路设计
3.1循迹模块接口电路设计
小车在白色地面行驶时,红外发射管发出的红外信号被反射,接收管接收到信号后,输出端为低电平。
红外传感器的三个输出端口分别与控制模块的PA4-PA6依次相连,而当红外信号遇到黑色导轨时,红外信号被吸收,接收管不能接收到信号,输出端为高电平。
单片机通过采集每个红外接收管的输出信号,便可以检测出所处位置,从而控制小车的转向。
我们采用的传感器为红外避障模块传感器,它是采用高发射功率红外光电二极管和高度灵敏光电晶体管组成。
红外避障传感器的发射管和接收管是一起封装在矩形塑料壳中,为了使检测更加准确,我们用了红外避障传感器检测黑线,其中一只放在黑线上方其余2只对称分布在黑线的两侧。
循迹模块实物如图3-1所示:
图3-1红外避障模块传感器实物图
图3-2循迹模块原理图
3.2电机驱动模块接口电路设计
对于小车车轮的两个直流电机,我们采用了一片电机驱动芯片L298N对其进行驱动。
STM32为芯片提供驱动信号,传至PWM控制各个电机的转速,从而调整小车的前进速度和转向。
其实物模块如图3-2所示。
其中左前电机:
PB12(方向)+PA8(PWM),右前电机:
PB13(方向)+PA9(PWM)。
图3-3电机驱动实物模块图
图3-4电机驱动模块原理图
3.3电源设计
本设计中采用的是6V电池供电,因为主控芯片以及其余模块均采用的3.3V供电,直流减速电机采用6V供电,传感器采用5V供电,其实物图如3-3所示。
图3-5电源模块实物图
3.4STM32小系统
本设计采用了一片STM32单片机为控制核心。
通过循迹模块、驱动模块的应用,实现了小车转速调节、自动循迹的任务。
其原理图如图3-4所示:
图3-6主控制模块原理图
4系统软件设计
4.1主程序设计
当开机时,系统复位,然后进入自动运行状态。
使小车沿黑线行进,并且在小车偏离轨道后自动调整走向使之返回预定路线。
该模块的具体设计流程框图如图4-1所示。
图4-1系统软件设计框图
4.2功能函数设计
(1)方向判断由if..elseif函数书写;
(2)用定时器来生成PWM的占空比;
(3)定时器初始化函数Tim1_Init();
5系统测试
(1)测试仪器:
示波器,电源,万用表。
测试方法:
采用模拟电路由前端到后段,数字电路先仿真再试测,先逐个模块测试再整体调试的办法。
(2)循迹模块测试
连接好电路,调好灵敏度,然后用万用表分别测量光电传感器接收端的输出电压值,其值如表5-1所示:
表5-1光电传感器输出电压测量
光电传感器编号
1
2
3
4
光电传感器接收端电压(V)
白线(V)
4.83
4.81
4.83
4.87
黑线(V)
0.42
0.43
0.45
0.45
(3)占空比与小车运行速度测试
表5-2占空比与小车运行速度对应表
占空比
前进速度(cm/s)
后退(cm/s)
20%
0
0
50%
30.5
30.3
70%
36.7
36.5
100%
45.9
45.7
6结束语
首先谢谢老师对我门的指导,谢谢同学给我们的帮助。
在以后的学习工作中,我们一定会将今天所学习到的知识应用于生产实践中。
当然,该小车还存在着一些缺陷,比如:
功耗较大、外型不够美观等。
导致我们的小车出现那好多问题。
总之,我们的设计还有很大的提升空间。
本次设计我们无论是在硬件还是软件上的能力都有很大的提高,比如,接线端口有误,没有检查仔细是我们的进程有了延误。
这使我们经历了一个设计从方案提出到确定,到最后的调试出实物,看到效果。
在这个过程中收获巨大。
通过竞赛,我们提高了自学能力以及团队协作能力,并进一步提高了对本专业的兴趣。
本次竞赛对自己的信心也有很大提高,在以后的学习中,我们会再接再厉。
参考文献
[1]刘军,张洋.原子教你玩STM32[M].北京:
北京航空航天大学出版社,2013-05-01
[2]李亚巨,樊东.基于stm32f103zet6的智能小车的制作[J].电子制作,2013-11
[3]李婕.基于STM32的智能小车的制无线视频监控智能小车设计[D].兰州:
兰州理工大学出版社,2014-4
[4]刘火良,杨森.电子与嵌入式系统设计丛书.机械工业出版社,2017-2
[5]蒋建春,曾素华.嵌入式系统原理及应用.高等教育出版社,2014-01-01
[6]刘彦文.基于ARM的嵌入式系统原理及应用,清华大学出版社,2017-02-01
[7]谭会生.ARM嵌入式系统原理及应用开发,西安电子科技大学出版社,2017-02-01
附录一:
系统总体电路图
附录二:
部分程序
intmain(void)
{
BSP_Init();//系统初始化
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
SysTick_Config(72000);//1ms延时,72000/72000000Hz=1ms
Tim1_Init();//定时器初始化函数,设定PWM频率5kHz
while
(1)
{
if(LeftSensor()==0&&MidSensor()==1&&RightSensor()==0)//只有中间光电在黑线上
{
Motor1234(80,80,80,80);
//Motor1234(duty1,duty2,duty3,duty4);//前进8s
}
elseif(LeftSensor()==0&&MidSensor()==0&&RightSensor()==0)
{
Motor1234(80,80,80,80);
//Motor1234(duty1,duty2,duty3,duty4);//前进8s
}
elseif(LeftSensor()==1&&MidSensor()==0&&RightSensor()==0)//左边遇见黑线
{
Motor1234(-100,100,-100,100);
//Motor1234(-duty1,duty2,-duty3,duty4);//前进8s
}
elseif(LeftSensor()==0&&MidSensor()==0&&RightSensor()==1)//右边遇见黑线
{
Motor1234(100,-100,100,-100);
//Motor1234(duty1,-duty2,duty3,-duty4);//前进8s
}
elseif(LeftSensor()==1&&MidSensor()==1&&RightSensor()==1)//遇见黑线
{
Motor1234(80,80,80,80);
//Motor1234(duty1,duty2,duty3,duty4);//前进8s
}
……
}
}
附录三:
作品实物图
指导教师评阅意见
指导教师评阅意见:
成绩评定:
李楠:
陈廷:
左天康:
指导教师签字:
年月日