1、自动循迹小车课程设计152020年4月19日文档仅供参考,不当之处,请联系改正。课程报告课程名称:嵌入式系统与应用项目名称:自动循迹小车院 系:理学院专 业:自动化1401学 号:xxxxxxxxxxxxxxxxxxxxx姓 名:xxxxxxxx指导导师:xxxxxxxx 05月23日西京学院理学院制摘要本次课程设计主要完成基于STM32F103微处理器的智能小车控制系统的系统设计。此智能小车系统的组成主要包括STM32F103控制器、电机驱动电路、红外探测电路。本次试验采用STM32F103微处理器为核心芯片,利用PWM技术对速度进行控制,循迹模块进行黑白检测,其它外围扩展电路实现系统整体功
2、能。实现了智能小车能够自动跟踪地面上的黑色轨迹的任务。关键字:STM32;红外探测;PWM;电机控制AbstractThis 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 dete
3、ction 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 t
4、he black track on the ground task.Keywords:STM32;infrared detection;PWM;motor control目录1设计任务要求12方案设计及选型12.1 总体方案选择12.2 车型选型12.3 器件选型23系统电路设计23.1 循迹模块接口电路设计23.2 电机驱动模块接口电路设计33.3 电源设计43.4 STM32小系统54系统软件设计64.1 主程序设计64.2 功能函数设计65系统测试66结束语7参考文献8附录一:系统总体电路图9附录二:部分程序10附录三:作品实物图111设计任务要求 本设计经过对轨迹跟踪问题的分析,制作了
5、一辆能够自动跟踪地面上的黑色轨迹的智能小车。(1)设计搭建小车结构框架,两驱或四驱不限,机械转向灵活。(2)设计选型电源、电机、传感器、STM32控制器板等电路模块,完成方案设计和电路图绘制。(3)设计功能函数和软件流程图。2方案设计及选型2.1 总体方案选择 基于对小车循迹准确性以及速度的综合考虑,我们最终选择的系统框图如图2-1所示:图2-1 总体方案框图2.2 车型选型基于在循迹小车设计报告的实际完成情况,我们考虑到小车调试频繁的问题、电池使用时间长短以及小车的灵活性,我么们选择了由俩个电机与一个万向轮组成的俩驱小车。车架使用市面上的合成简易车架。2.3 器件选型(1)循迹模块选型方案一
6、:采用红外对管对黑带进行高频率扫描,并将扫描结果串行输出,用斯密特触发器对波形整形后,将数据送入STM32进行分析判断。优点:节省系统消耗的功率,节约STM32的I/O,硬件电路的接线变得简洁。缺点:信息处理速度相对于并行输出慢,相邻红外会产生干扰。方案二:采用多路反射型的光电传感器TCRT5000对地面进行检测,将所采集到的信息并行输入比较器比较后,再将数据送入STM32处理。优点:信息处理速度快,相邻传感器不会相互干扰,操作方便,结构简单。缺点:占用STM32的I/O较多,连线相对繁琐。方案选择:考虑到小车对信息的采集速度及检测的准确性,我们最终选用了方案二。(2)驱动及电机选择 驱动选择
7、:由于L298N驱动有以下优点: a.可实现电机正反转; b.启动性能好,启动转矩大; c.可同时驱动两台直流电机;因此我们最终选择了L298N驱动。 电机选择:直流减速电机转速平稳,速度快,功耗低,又因为本设计是用电池供电,因此我们最终选择了6V的直流减速电机作为小车的驱动电机。3系统电路设计3.1 循迹模块接口电路设计 小车在白色地面行驶时,红外发射管发出的红外信号被反射,接收管接收到信号后,输出端为低电平。红外传感器的三个输出端口分别与控制模块的PA4-PA6依次相连,而当红外信号遇到黑色导轨时,红外信号被吸收,接收管不能接收到信号,输出端为高电平。单片机经过采集每个红外接收管的输出信号
8、,便能够检测出所处位置,从而控制小车的转向。我们采用的传感器为红外避障模块传感器,它是采用高发射功率红外光电二极管和高度灵敏光电晶体管组成。红外避障传感器的发射管和接收管是一起封装在矩形塑料壳中,为了使检测更加准确,我们用了红外避障传感器检测黑线,其中一只放在黑线上方其余2只对称分布在黑线的两侧。循迹模块实物如图3-1所示:图3-1 红外避障模块传感器实物图图3-2 循迹模块原理图3.2 电机驱动模块接口电路设计 对于小车车轮的两个直流电机,我们采用了一片电机驱动芯片L298N对其进行驱动。STM32为芯片提供驱动信号,传至PWM控制各个电机的转速,从而调整小车的前进速度和转向。其实物模块如图
9、3-2所示。其中左前电机:PB12(方向)+PA8(PWM),右前电机:PB13(方向)+PA9(PWM)。图3-3 电机驱动实物模块图图3-4 电机驱动模块原理图3.3 电源设计本设计中采用的是6V电池供电,因为主控芯片以及其余模块均采用的3.3V供电,直流减速电机采用6V供电,传感器采用5V供电,其实物图如3-3所示。图3-5 电源模块实物图3.4 STM32小系统本设计采用了一片STM32单片机为控制核心。经过循迹模块、驱动模块的应用,实现了小车转速调节、自动循迹的任务。其原理图如图3-4所示:图3-6 主控制模块原理图4系统软件设计4.1 主程序设计当开机时,系统复位,然后进入自动运行
10、状态。使小车沿黑线行进,而且在小车偏离轨道后自动调整走向使之返回预定路线。该模块的具体设计流程框图如图4-1所示。图4-1 系统软件设计框图4.2 功能函数设计(1)方向判断由if.else if函数书写;(2)用定时器来生成PWM的占空比; (3)定时器初始化函数Tim1_Init();5系统测试(1)测试仪器:示波器,电源,万用表。测试方法:采用模拟电路由前端到后段,数字电路先仿真再试测,先逐个模块测试再整体调试的办法。(2)循迹模块测试连接好电路,调好灵敏度,然后用万用表分别测量光电传感器接收端的输出电压值,其值如表5-1所示: 表5-1 光电传感器输出电压测量光电传感器编号1234光电
11、传感器接收端电压(V)白线(V)4.834.81483487黑线(V)0.420.430.450.45(3)占空比与小车运行速度测试表5-2 占空比与小车运行速度对应表占空比前进速度(cm/s)后退(cm/s)20%0050%30.530.370%36.736.5100%45.945.76结束语首先谢谢老师对我门的指导,谢谢同学给我们的帮助。在以后的学习工作中,我们一定会将今天所学习到的知识应用于生产实践中。当然,该小车还存在着一些缺陷,比如:功耗较大、外型不够美观等。导致我们的小车出现那好多问题。总之,我们的设计还有很大的提升空间。本次设计我们无论是在硬件还是软件上的能力都有很大的提高,比如
12、,接线端口有误,没有检查仔细是我们的进程有了延误。这使我们经历了一个设计从方案提出到确定,到最后的调试出实物,看到效果。在这个过程中收获巨大。经过竞赛,我们提高了自学能力以及团队协作能力,并进一步提高了对本专业的兴趣。本次竞赛对自己的信心也有很大提高,在以后的学习中,我们会再接再厉。参考文献1 刘军,张洋.原子教你玩STM32M.北京:北京航空航天大学出版社, -05-012 李亚巨,樊东.基于stm32f103zet6的智能小车的制作J.电子制作, -113 李婕.基于STM32的智能小车的制无线视频监控智能小车设计D.兰州:兰州理工大学出版社, -44 刘火良,杨森.电子与嵌入式系统设计丛
13、书.机械工业出版社, -25 蒋建春,曾素华.嵌入式系统原理及应用.高等教育出版社, -01-01 6 刘彦文.基于ARM的嵌入式系统原理及应用,清华大学出版社, -02-017 谭会生.ARM嵌入式系统原理及应用开发,西安电子科技大学出版社, -02-01附录一:系统总体电路图 附录二:部分程序int main(void)BSP_Init();/系统初始化SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); SysTick_Config(7 ); /1ms延时,7 /7 000Hz=1msTim1_Init();/定时器初始化函数,设定PWM频率5
14、kHzwhile(1)if(LeftSensor()=0&MidSensor()=1&RightSensor()=0)/只有 中间光电 在黑线上 Motor1234(80,80,80,80);/Motor1234(duty1,duty2,duty3,duty4); /前进8selse if(LeftSensor()=0&MidSensor()=0&RightSensor()=0)Motor1234(80,80,80,80);/Motor1234(duty1,duty2,duty3,duty4); /前进8selse if(LeftSensor()=1&MidSensor()=0&RightSe
15、nsor()=0)/左边遇见黑线Motor1234(-100,100,-100,100);/Motor1234(-duty1,duty2,-duty3,duty4); /前进8selse if(LeftSensor()=0&MidSensor()=0&RightSensor()=1)/右边遇见黑线Motor1234(100,-100,100,-100);/Motor1234(duty1,-duty2,duty3,-duty4); /前进8selse if(LeftSensor()=1&MidSensor()=1&RightSensor()=1) /遇见黑线Motor1234(80,80,80,80);/Motor1234(duty1,duty2,duty3,duty4); /前进8s 附录三:作品实物图指导教师评阅意见指导教师评阅意见:成绩评定:李楠: 陈廷: 左天康: 指导教师签字: 年 月 日