课程报告
课程名称: 项目名称: 院 系: 专 业:
嵌入式系统与应用 自动循迹小车 理学院 自动化1401
学 号: xxxxxxxxxxxxxxxxxxxxx 姓 名: 指导导师:
xxxxxxxx xxxxxxxx
2017年05月23日 西京学院理学院制
摘要
本次课程设计主要完成基于STM32F103微处理器的智能小车控制系统的系统设计。此智能小车系统的组成主要包括STM32F103控制器、电机驱动电路、红外探测电路。本次试验采用STM32F103微处理器为核心芯片,利用PWM技术对速度进行控制,循迹模块进行黑白检测,其他外围扩展电路实现系统整体功能。实现了智能小车能够自动跟踪地面上的黑色轨迹的任务。
关键字:STM32;红外探测;PWM;电机控制
I
Abstract
This course design mainly completes the system design of intelligent car control system based on STM32F103 microprocessor. The composition of this intelligent car system mainly includes STM32F103 controller, motor drive circuit, infrared detection circuit. This test uses STM32F103 microprocessor as the core chip, the use of PWM technology to control the speed, tracking module for black and white detection, other peripheral expansion circuit to achieve the overall function of the system. To achieve the smart car can automatically track the black track on the ground task.
Keywords:STM32;infrared detection;PWM;motor control
II
目录
1设计任务要求 ........................................................... 1 2方案设计及选型 ......................................................... 1 2.1 总体方案选择 ........................................................ 1 2.2 车型选型 ............................................................ 1 2.3 器件选型 ............................................................ 2 3系统电路设计 ........................................................... 2 3.1 循迹模块接口电路设计 ................................................ 2 3.2 电机驱动模块接口电路设计 ............................................ 3 3.3 电源设计 ............................................................ 4 3.4 STM32小系统 ......................................................... 5 4系统软件设计 ........................................................... 6 4.1 主程序设计 .......................................................... 6 4.2 功能函数设计 ........................................................ 6 5系统测试 ............................................................... 6 6结束语 ................................................................. 7 参考文献 ................................................................ 8 附录一:系统总体电路图 .................................................. 9 附录二:部分程序 ....................................................... 10 附录三:作品实物图 ..................................................... 11
III
1设计任务要求
本设计通过对轨迹跟踪问题的分析,制作了一辆能够自动跟踪地面上的黑色轨迹的智能小车。
(1)设计搭建小车结构框架,两驱或四驱不限,机械转向灵活。
(2)设计选型电源、电机、传感器、STM32控制器板等电路模块,完成方案设计和电路图绘制。
(3)设计功能函数和软件流程图。
2方案设计及选型
2.1 总体方案选择
基于对小车循迹准确性以及速度的综合考虑,我们最终选择的系统框图如图2-1所示:
左侧电机三对红外发收对管信号处理STM32L298N右侧电机
图2-1 总体方案框图
2.2 车型选型
基于在循迹小车设计报告的实际完成情况,我们考虑到小车调试频繁的问题、电池使用时间长短以及小车的灵活性,我么们选择了由俩个电机与一个万向轮组成的俩驱小车。车架使用市面上的合成简易车架。
1
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
中,为了使检测更加准确,我们用了红外避障传感器检测黑线,其中一只放在黑线上方其余2只对称分布在黑线的两侧。循迹模块实物如图3-1所示:
图3-1 红外避障模块传感器实物图
图3-2 循迹模块原理图
3.2 电机驱动模块接口电路设计
对于小车车轮的两个直流电机,我们采用了一片电机驱动芯片L298N对其进行驱动。STM32为芯片提供驱动信号,传至PWM控制各个电机的转速,从而调整小车的前进
3
速度和转向。其实物模块如图3-2所示。其中左前电机:PB12(方向)+PA8(PWM),右前电机:PB13(方向)+PA9(PWM)。
图3-3 电机驱动实物模块图
图3-4 电机驱动模块原理图
3.3 电源设计
本设计中采用的是6V电池供电,因为主控芯片以及其余模块均采用的3.3V供电,直流减速电机采用6V供电,传感器采用5V供电,其实物图如3-3所示。
4
图3-5 电源模块实物图
3.4 STM32小系统
本设计采用了一片STM32单片机为控制核心。通过循迹模块、驱动模块的应用,实现了小车转速调节、自动循迹的任务。其原理图如图3-4所示:
图3-6 主控制模块原理图
5
4系统软件设计
4.1 主程序设计
当开机时,系统复位,然后进入自动运行状态。使小车沿黑线行进,并且在小车偏离轨道后自动调整走向使之返回预定路线。该模块的具体设计流程框图如图4-1所示。
开始读入模式状态黑线在中间吗?否是直行按循迹判断转向控制左右电机 图4-1 系统软件设计框图
4.2 功能函数设计
(1)方向判断由if..else if函数书写; (2)用定时器来生成PWM的占空比; (3)定时器初始化函数Tim1_Init();
5系统测试
(1)测试仪器:示波器,电源,万用表。
测试方法:采用模拟电路由前端到后段,数字电路先仿真再试测,先逐个模块测试再整体调试的办法。 (2)循迹模块测试
连接好电路,调好灵敏度,然后用万用表分别测量光电传感器接收端的输出电压值,其值如表5-1所示:
6
表5-1 光电传感器输出电压测量 光电传感器编号 光电传感器接白线(V) 1 4.83 0.42 2 4.81 0.43 3 4.83 0.45 4 4.87 0.45 收端电压(V) 黑线(V) (3)占空比与小车运行速度测试
表5-2 占空比与小车运行速度对应表 占空比 20% 50% 70% 100% 前进速度(cm/s) 0 30.5 36.7 45.9 后退(cm/s) 0 30.3 36.5 45.7 6结束语
首先谢谢老师对我门的指导,谢谢同学给我们的帮助。在以后的学习工作中,我们一定会将今天所学习到的知识应用于生产实践中。当然,该小车还存在着一些缺陷,比如:功耗较大、外型不够美观等。导致我们的小车出现那好多问题。总之,我们的设计还有很大的提升空间。本次设计我们无论是在硬件还是软件上的能力都有很大的提高,比如,接线端口有误,没有检查仔细是我们的进程有了延误。这使我们经历了一个设计从方案提出到确定,到最后的调试出实物,看到效果。在这个过程中收获巨大。通过竞赛,我们提高了自学能力以及团队协作能力,并进一步提高了对本专业的兴趣。本次竞赛对自己的信心也有很大提高,在以后的学习中,我们会再接再厉。
7
参考文献
[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
8
3.3VTCRT1TCRT2TCRT3TCRT500 TCRT500TCRT500 光电传感器GNDGNDVCCVCCVCCGND光电传感器PP2光电传感器 P 31 2 U1PB12PB13PB14PA15PA8PA9PA10571012611IN1IN2IN3IN4ENAENB31231 6VPA1PA2 PA3PA4VCCVSOUT1 2OUT23PA5 附录一:系统总体电路图 PA6电机驱动PA11115SENSASENSBGND OUT3PA7PB1OUT41314 8 L298前右电机 STM32 9
94U1前左电机
附录二:部分程序
int main(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 } else if(LeftSensor()==0&&MidSensor()==0&&RightSensor()==0) { Motor1234(80,80,80,80); //Motor1234(duty1,duty2,duty3,duty4); //前进8s } else if(LeftSensor()==1&&MidSensor()==0&&RightSensor()==0)//左边遇见黑线 { Motor1234(-100,100,-100,100); //Motor1234(-duty1,duty2,-duty3,duty4); //前进8s } else if(LeftSensor()==0&&MidSensor()==0&&RightSensor()==1)//右边遇见黑线 { Motor1234(100,-100,100,-100); //Motor1234(duty1,-duty2,duty3,-duty4); //前进8s } else if(LeftSensor()==1&&MidSensor()==1&&RightSensor()==1) //遇见黑线 { Motor1234(80,80,80,80); //Motor1234(duty1,duty2,duty3,duty4); //前进8s } ……
} }
10
附录三:作品实物图
11
指导教师评阅意见
指导教师评阅意见: 成绩评定: 李楠: 陈廷: 左天康: 指导教师签字: 年 月 日
12
因篇幅问题不能全部显示,请点此查看更多更全内容