自动循迹小车课程设计.docx

上传人:b****6 文档编号:7607941 上传时间:2023-05-11 格式:DOCX 页数:14 大小:1.38MB
下载 相关 举报
自动循迹小车课程设计.docx_第1页
第1页 / 共14页
自动循迹小车课程设计.docx_第2页
第2页 / 共14页
自动循迹小车课程设计.docx_第3页
第3页 / 共14页
自动循迹小车课程设计.docx_第4页
第4页 / 共14页
自动循迹小车课程设计.docx_第5页
第5页 / 共14页
自动循迹小车课程设计.docx_第6页
第6页 / 共14页
自动循迹小车课程设计.docx_第7页
第7页 / 共14页
自动循迹小车课程设计.docx_第8页
第8页 / 共14页
自动循迹小车课程设计.docx_第9页
第9页 / 共14页
自动循迹小车课程设计.docx_第10页
第10页 / 共14页
自动循迹小车课程设计.docx_第11页
第11页 / 共14页
自动循迹小车课程设计.docx_第12页
第12页 / 共14页
自动循迹小车课程设计.docx_第13页
第13页 / 共14页
自动循迹小车课程设计.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

自动循迹小车课程设计.docx

《自动循迹小车课程设计.docx》由会员分享,可在线阅读,更多相关《自动循迹小车课程设计.docx(14页珍藏版)》请在冰点文库上搜索。

自动循迹小车课程设计.docx

自动循迹小车课程设计

 

自动循迹小车课程设计

课程报告

 

课程名称:

嵌入式系统与应用

项目名称:

自动循迹小车

院系:

理学院

专业:

自动化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方案设计及选型1

2.1总体方案选择1

2.2车型选型1

2.3器件选型2

3系统电路设计2

3.1循迹模块接口电路设计2

3.2电机驱动模块接口电路设计3

3.3电源设计4

3.4STM32小系统5

4系统软件设计6

4.1主程序设计6

4.2功能函数设计6

5系统测试6

6结束语7

参考文献8

附录一:

系统总体电路图9

附录二:

部分程序10

附录三:

作品实物图11

 

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

}

……

}

}

附录三:

作品实物图

 

指导教师评阅意见

指导教师评阅意见:

 

成绩评定:

李楠:

陈廷:

左天康:

指导教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2