基于MSP430单片机循迹小车课程设计报告 精品.docx

上传人:b****3 文档编号:12743842 上传时间:2023-04-21 格式:DOCX 页数:25 大小:839.61KB
下载 相关 举报
基于MSP430单片机循迹小车课程设计报告 精品.docx_第1页
第1页 / 共25页
基于MSP430单片机循迹小车课程设计报告 精品.docx_第2页
第2页 / 共25页
基于MSP430单片机循迹小车课程设计报告 精品.docx_第3页
第3页 / 共25页
基于MSP430单片机循迹小车课程设计报告 精品.docx_第4页
第4页 / 共25页
基于MSP430单片机循迹小车课程设计报告 精品.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于MSP430单片机循迹小车课程设计报告 精品.docx

《基于MSP430单片机循迹小车课程设计报告 精品.docx》由会员分享,可在线阅读,更多相关《基于MSP430单片机循迹小车课程设计报告 精品.docx(25页珍藏版)》请在冰豆网上搜索。

基于MSP430单片机循迹小车课程设计报告 精品.docx

基于MSP430单片机循迹小车课程设计报告精品

 

课程设计报告

课程名称嵌入式系统原理与设计

课题名称智能循迹小车

专业通信工程

班级1101班

学号

姓名

指导老师

2014年1月5日

 

1.系统总设计

1.1功能说明

本课题是基于MSP430单片机循迹智能小车的设计与实现,小车系统以MSP430单片机为系统控制处理器,采用红外传感器对赛道进行道路检测,单片机根据检测到的信号的不同状态判断小车的当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车的控制。

1.2任务分配情况

参与此次项目制作的一共七人,分别是:

张振凤,冯志成,肖新加,戴小敏,杨小林,谢鹏华和张莹任务分配情况如表1所示:

表1任务分配情况

冯志成张莹

红外循迹模块

肖新加,代小敏,杨小林

电机驱动模块

张振凤谢鹏华

写程序,各接口的连接,数据的收集及小车的调试

1.3使用说明书

产品名称:

智能循迹小车

技术参数:

L298N基本参数:

类型:

半桥输入类型:

非反相输出数:

4

电流输出/同道:

2A电流峰值输出:

3A

工作温度:

-25~135°C器件型号:

L298N

产品的使用方法:

用六节干电池9V直流电压作为供电电源,接通电源,在有黑线的跑道上行走。

注意事项:

1、所用电源不能超过9V,以免电压过大,把电机烧坏。

2、小孩使用时,应在大人的陪同下使用,以免被小车的尖锐部分弄伤。

3、轻拿轻放,以免损坏小车器件。

4、长期不使用时,应把电池取出。

生产日期:

20xx年xx月xx日

2.硬件设计

此次项目中硬件部分的设计主要包含以下模块:

电源模块,红外循迹模块,电机驱动模块和MSP430f149单片机。

2.1电源模块

模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。

在本设计中,在本设计中,msp430单片机使用5V电源,电机使用5V电源。

用了6节1.5V的电池,为单片机和电机供电。

如图所示:

图1电源实物图

其红线接电机驱动模块上的VDD接口,绿线连接GND接口。

2.2红外循迹模块

采用光敏二极管作为光源探测模块的传感器,由于光敏二极管感光后,内阻有较大的变化,通过一定的电路转化为电压的变化。

其实物图为:

图2红外循迹模块实物图

图中的SSI至SS5分别连接单片机I/O接口的P3.0到P3.4。

分别控制五个光敏二极管,当没有检测到黑线,则指示灯不亮,则为高电平。

有检测到黑线,则指示灯亮,为低电平。

从而判断出小车是否能够循迹走。

2.2.1红外循迹模块原理图

采用比较器对5个二极管的输出电压进行比较,光敏二极管引起的电压变化送到比较器的反相端与基准信号进行比较,将结果输入到单片机执行判断。

基于的寻光电压比较电路:

二号管脚为基准电压输入端,将需要进行比较的电压输入到三号管脚,如果比基电压的值大,则一号管脚输出为高电平,反之为低电平。

其原理图为:

图4红外循迹模块原理图

在板子的下面有五个循迹传感器,其实图为:

图5循迹传感器

通过这五个传感器检测,没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通则T1接地=0,指示灯不亮,则为高电平。

有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),则T1=VCC,指示灯亮,为低电平。

2.2.2红外循迹模块构造

红外循迹模块由循迹传感器,触碰传感器,测距距离调节器组成,其元件清单如下表所示:

 

表2红外循迹模块元件清单

序号

名称

个数

作用

1

循迹传感器

5个

循迹作用

2

碰触传感器

1个

检查障碍物

3

测距距离调节器

1个

调节与地面的高度

 

SSI至SS5分别连接单片机I/O接口的P3.0到P3.4。

2.3电机驱动模块

电机驱动芯片L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。

是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。

L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。

IN1IN2IN3IN4脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。

也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。

其实物图为:

图6电机驱动模块实物图

2.3.1L298N原理图

图7L298N原理图

L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。

IN1IN2IN3IN4脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。

也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。

其L298N逻辑功能图为:

表3L298N的逻辑功能图

IN1(IN3)

IN2(IN4)

ENA

电机状态

0

1

1

正转

1

0

1

反转

0

0

0

停止

1

1

1

停止

 

其OUT1、OUT2和OUT3、OUT4之间分别接2个电动机,IN1IN2IN3IN4脚接输入控制电平,控制电机的正反转,P4.0~4.3分别连接IN1~IN4。

 

2.3.2L298N构造

电机驱动芯片L298N包括LED发光二极管、续流二极管、极性电容、稳压器、散热片、接线端子、L298N、一般电容等元件组成,其作用如下表所示:

表4L298N元件清单

序号

名称

个数

作用

1

LED发光二极管

4个

信号指示

2

续流二极管

8个

芯片续流保护

3

极性电容

2个

滤波作用

4

稳压器

1个

稳压输出

5

散热片

1个

驱动芯片散热

6

接线端子

3个

7

L298N

1个

电机驱动芯片

8

一般电容

2个

滤波作用

 

2.3.3直流电机驱动原理

(1)其内部采用H桥驱动电路,如图所示:

图8H桥驱动电路

H桥式电机驱动电路包括四个三极管和一个电机,其外形像大写字母H,故叫做H桥驱动电路。

要使电机M运转,必须使对角线上的一对三极管导通,其驱动原理示意图如图所示:

图9驱动原理示意图

H桥式电机驱动电路,利用PWM波对其转速。

(2)功能

对于单项的电机驱动,只要用一个大功率的三极管带动电机即可,当电机需要双向转动时,则需要四个三极管的’H’桥电路,如果需要调速,则需要三极管和场效应管等开关元件实现PWM波调速。

(3)性能

1.输出电流和电压的范围,它决定电路能驱动多大功率电机。

2.效率。

3.对控制输入端的影响。

4.对电源的影响。

5.可靠性。

2.4主控制模块

本项目的控制芯片均采用MSP430F149芯片,这是一款TI生产的以低功耗著称的16位单片机。

其在1MHz的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM保持模式下的最低功耗只有0.1μA。

座位显示屏最靠电力工作,采用这款芯片降低了功耗,增强了其使用的周期时间,节约了能源。

实物图如图所示:

图10MSP430F149单片机实物图

小车采用MSP430F149单片机作为控制芯片,系统硬件组成共包括九个模块,分别为MSP430F149单片机最小系统模块,4路A/D转换模块,D/A转换模块,键盘数码管显示模块,温度传感器模块,实时时钟模块,非易失性存储器模块,液晶显示模块,2路串口通信接口模块。

系统软件组成为各个功能模块程序设计,包括七个部分,分别为A/D转换程序,温度传感器显示当前环境中的温度,用液晶来显示实时时钟,通过串口向单片机发送字符,单片机又发回字符给电脑,D/A输出方波,非易失性存储器的读写。

图11MSP430F149单片机最小系统

MSP430系列单片机提供三个时钟信号以供给片内各部分电路使用,这三个时钟源分别是:

辅助时钟信号(ACLK),来自32.768kHz晶振或者另一个外接高频晶振,一般用于低速外设;主时钟信号(MCLK),CPU正常运行时使用的主时钟,一般由8MHz外接晶振提供;子系统时钟(SMCLK),主要用于高速外围模块。

在本实验中我们采用了主时钟信号(MCLK)。

图12msp430f149单片机的I/O引脚图

在单片机的I/O接口中,P1.2和P1.3连接两个PWM波的输出,P3.0~3.4分别连接红外循迹模块上的控制五个红外对管的五个引脚,P4.0~4.3分别连接IN1~IN4.

图13MSP430F149单片机原理图

将PWM波植入单片机中,然后通过单片机控制电机,PWM波控制速度,在转弯的时候,通过改变PWM波中的占空比而达到转弯,转弯有两种方案:

一种是一边不转,另一边转动而达到转弯的效果;另一方案则为一边转的快一边转的慢,从而达到转弯的效果。

3.软件设计

PWM

(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。

PWM可以应用在许多方面,比如:

电机调速、温度控制、压力控制等等。

在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。

通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。

也正因为如此,PWM又被称为“开关驱动装置”。

小车利用PWM波控制速度,在转弯的时候,通过改变PWM波中的占空比而达到转弯,转弯有两种方案:

一种是一边不转,另一边转动而达到转弯的效果;另一方案则为一边转的快一边转的慢,从而达到转弯的效果。

在本实验中,我们采用了第二个方案。

图14PWM波

在这我们用了模式7,复位/置位模式。

我们利用两个PWM波分别控制两个电机,利用PWM波中的占空比不同而达到转弯的效果。

其程序为:

voidInit_PWM(void)

{

TACTL=TASSEL1+MC0+TACLR;

//TimerA选择MCLK时钟,不分频,增计数模式,

CCTL1=OUTMOD2+OUTMOD1+OUTMOD0+CCIE;

P1DIR|=0X0C;

P1SEL|=0X0C;

//捕获,比较模块1选定为输出比较模式,输出模式7,禁止比较中断

CCTL2=OUTMOD2+OUTMOD1+OUTMOD0+CCIE;

//捕获,比较模块2选定为输出比较模式,输出模式7,禁止比较中断

CCR0=8000;

}

/*******设置PWM1的占空比*******/

voidSet_PWM1_Duty(ucharduty)

{

if((duty>=5)&&(duty<=95))//将占空比限制在5%~95%之间

{

CCR1=8000/100*duty;

}

else//否则将占空比强制设置为50%

{

CCR1=4000;

}

}

/*******设置PWM2的占空比*******/

voidSet_PWM2_Duty(ucharduty)

{

if((duty>=5)&&(duty<=95))//将占空比限制在5%~95%之间

{

CCR2=8000/100*duty;

}

else//否则将占空比强制设置为50%

{

CCR2=4000;

}

}

程序设计流程图为:

 

图15程序设计流程图

 

4.实验结果

循迹小车整体实物图如图所示:

图16循迹小车整体图

小车在直道行走图如图所示:

图17小车在直道上行走图

小车在弯道上行走图:

图18小车在弯道上行走图

5.调试过程

1在最开始的时候,最开始认为遇到黑线时为高电平,然后指示灯亮,而在实际走的时候就导致完全不按自己预想的走。

解决方法:

用万能表测试在黑线上时红外管两端的电压,测试为低电平。

2在跑弯道的时候,车不能按照预定的轨道走。

解决方法:

通过多次调试PWM波的占空比,从而使轮子的速度达到一定得速度,从而按照预定的路行驶。

3直接按照给的资料,IN1、IN2、IN3、IN4正转/翻转的条件,结果发现车子一个正转,一个反转。

解决方法:

通过改写程序,然后一一确定正转/反转的条件。

4红外对管不管遇到黑线还是没遇到,指示灯却一直亮着。

解决方法:

通过检测发现,这个红外对管坏了,然后只用了三个红外对管循路。

 

6.实验心得

基于这次长达两周的课程设计,对我们组来说是一个非常严峻的考验,成员都觉得一个字,难!

两个字,很难!

三个字,非常难!

对于我们来说,我们是一个初学者,而且上课的时候都是打酱油飘过。

不过总体来说还是有收获的,对于一个课题,组长分别把成员都安排了任务,每个人都有自己的任务,这样谁都不能依赖谁,只能靠自我学习完成任务。

在课设过程中也看到了组员之间的团结,也看到组员之间的着急,知道自己的在学习中的不足,碰到不懂的问题立马找同学或者老师解决。

在设计的过程中我们也不可避免的遇到了很多的问题。

尤其是在调试过程中,会因为某些原因出不来结果。

通过这次的课程设计,我们也发现了不少自己不会的知识,通过查询各方面资料,我们也进步了很多,有学会了很多上课时没掌握的东西,最后在调试结果出来后,我们更是无比的兴奋,无比的自豪。

总之,通过这次单片机应用项目设计,我们不仅对自己的知识有了更深的掌握和应用,更了解到团队精神的力量.在以后的学习和生活中受用终身。

作为通信工程专业的学生,单片机课程的学习是很有意义,并且至关重要的。

在大学前三年对基础知识以及通过对专业课的学习,我们掌握了很多理论知识,却很少有实践的机会,而这次硬件课设是对前面学习的一个很好的考察。

(张振凤)

学习msp430单片机已经有一个学期了,很高兴在最后的课设里自己能为小组出一份微薄之力,和他们一起完成这个能循迹的小车。

记得我们做小车断断续续做了一个多星期,这虽然说有点枯燥,但是和他们一起探讨而且有成果就是快乐。

在这里我首先要感谢我们的胡老师,感谢她一个学期认真的教我们430的单片机知识,我们小车课设用到了定时器A,用它产生两路PWM波去控制小车两个跑道带的跑动速度。

其次我得感谢我的那帮在实验室呆的同学,他们为我们成功做出小车提供了资料上的和代码问题上的帮助。

可以说小车代码很简单,但由于我们学习得有点浅,所以我在写有定时器的TA产生两路PWM波上有点力不从心,其他的用单片机上的引脚的定义提供数据上也有点生疏。

小车循迹部分我们也遇到可一些困难,我们在用小车红外检测的时候用手指代替黑色胶带去测反馈回来的电平,导致把引脚电平都搞反了。

总之,在这个过程中我们遇到了很多困难,我们小组成员各司其职,各尽所能,比较顺利的完成了。

在这个过程中我学到了很多,我觉得要成功我们就的团结,就得喜于问,就得多动手去探试,就得有一颗必成的心。

(谢鹏华)

这次的课程设计,组长安排大家每个人分配着不同的版块。

我和冯志诚一起负责红外管,负责红外管整个的部分,主要是红外管发光原理以及这个部分的代码等。

在这个课程设计的过程中,自己一直在和整个组员一起分析整个原理,设计以及组装。

对于自己而言,代码不是很熟悉,单片机的学习不是很到位,面对自己的学习,第一次发现自己学习的这么认真。

组长很认真,对我们的要求很高。

主要是自己负责自己的版块,自己去弄懂自己要负责的部分,组长只是在我们特别的没有思绪时,才会帮我们解决下问题。

经过这一次的学习,自己大概清楚知道一些关于电子控件等物件的运行的原理,面对以前一直认为特别神奇的物件,现在是比较清楚的了解那些小物件的东西。

学习后,自己真正的发现自己对于自己专业掌握的太少,自己开始对自己以后就业担忧。

面对自己在专业知识上的缺陷,自己现在必须对自己的未来负责,对自己的就业有个详细规划。

通过一次学习,让自己有了更深的感悟,这是自己认为最重要的一个学习感悟。

(张莹)

作为通信工程专业的学生,单片机课程的学习室很有意义,并且至关重要的。

在大学前几个学期对基础知识以及通过对专业课的学习,我们掌握了很多理论知识,却很少有实践的机会,而这次硬件课设是对前面学习的很好的考察,既考察了我们C语言的编程能力,硬件实践能力,快速学习能力,也考察了我的团队合作,发现以及解决问题的能力。

所以这次硬件课设给我们提供了一个很好的平台。

本次课设我负责电机驱动模块,电机驱动模块采用H桥式电动驱动电路。

该电路包括四个三极管和一个电机,要是电机运转,必须使对角线上的一对三极管导通,利用PWM波控制其转速。

H型电路保证了可以简单实现转速和方向的控制,稳定性也极强,是一种广泛应用的PWM调速技术。

通过这次课设我学到了很多,对单片机的应用有了更深刻的理解。

在动手实践的过程中,加深了对课本理论知识的理解,也认识到自己的不足,使我体会到实践的重要性,在学习一个新知识时,要不骄不躁,认真研究,相信自己,终究会取得成功。

(肖新家)

经过这次课设我深刻体会到了平时不好好学习就会重修的道理。

在这段课设的时间里,我也有很认真的问同学一些我不懂的东西。

在做小车的期间,我了解到小车需要PWM给它调节电机的转速,单片机的IO端分别给该模块的IN1到IN4高低电平来实现小车的前进或后退,把程序弄懂。

但在第一轮答辩的时候,胡老师问我那个电容叫什么,我却说成是电阻,这确实是我不对,我承认在这方面,不懂的很多,这也是我本不该犯的错误。

但是下来以后我又很认真的把上面的原件一一认识了一遍,了解他们各自的作用。

第二轮答辩的时候,胡老师问我L298电路原理图中那个二极管叫什么,我没有回答得出来,之后我了解到了它叫整流二极管,起到保护原件的作用。

第三轮答辩的时候,胡老师又问我L298内部的驱动原理是什么。

为此我更加深入的去了解了一下L298n,它内部含有两个H桥的高电压大电流全桥式驱动器,要使电机M运转,必须使H桥的对角线的一对三极管导通,完整的晶体管H桥驱动电路,PWM1,PWM2,为电机方向控制输入端,例如,PWM1=1,PWM2=0时正转,PWM1=0,PWM2=1时电机反转。

PWM1,PWM2同时也是电机调速的脉宽输入端;采用标准逻辑电平信号控制,与单片机的IO端直接相连接;

在这次课设的过程中胡老师的语言惊醒了我,我意识到作为学生就应该好好掌握科学文化知识,通俗的讲,就是要给自己一个,给关心我们的亲朋好友还有老师一个很好的交代。

这是我们的义务也是责任,要好好珍惜这一去不复返的大学时光。

在我们身边,很多同学都在追时间,分配自己的时间。

然而时间却在我玩游戏时从我的指尖悄悄的划过,我却很白痴一样在游戏中沾沾自喜。

过去的就让她像风一样过去吧人始终得向前

看,努力的过好明天。

不管怎样我还是谢谢我最敬爱的胡英胡老师,谢谢你的教导,谢谢。

(杨小林)

 

 

7.附录

#include

#defineucharunsignedchar

#defineuintunsignedint

voidInit_PWM(void)

{

TACTL=TASSEL1+MC0+TACLR;

//TimerA选择MCLK时钟,不分频,增计数模式,

CCTL1=OUTMOD2+OUTMOD1+OUTMOD0+CCIE;

P1DIR|=0X0C;

P1SEL|=0X0C;

//捕获,比较模块1选定为输出比较模式,输出模式7,禁止比较中断

CCTL2=OUTMOD2+OUTMOD1+OUTMOD0+CCIE;

//捕获,比较模块2选定为输出比较模式,输出模式7,禁止比较中断

CCR0=8000;

}

/*******设置PWM1的占空比*******/

voidSet_PWM1_Duty(ucharduty)

{

if((duty>=5)&&(duty<=95))//将占空比限制在5%~95%之间

{

CCR1=8000/100*duty;

}

else//否则将占空比强制设置为50%

{

CCR1=4000;

}

}

/*******设置PWM2的占空比*******/

voidSet_PWM2_Duty(ucharduty)

{

if((duty>=5)&&(duty<=95))//将占空比限制在5%~95%之间

{

CCR2=8000/100*duty;

}

else//否则将占空比强制设置为50%

{

CCR2=4000;

}

}

voidstop()

{

P4OUT=0X0f;

}

voidzhizou(charD)

{

if(D==1)

{

P4OUT=0X05;

Set_PWM1_Duty(50);

Set_PWM2_Duty(50);

}

if(D==2)

{

P4OUT=0X0a;

Set_PWM1_Duty(50);

Set_PWM2_Duty(50);

}

}

voidright(charL)

{

P4OUT=0X05;

if(L==1)

{

Set_PWM1_Duty(30);

Set_PWM2_Duty(70);

}

if(L==2)

{

Set_PWM1_Duty(30);

Set_PWM2_Duty(90);

}

}

voidleft(charR)

{

P4OUT=0X05;

if(R==1)

{

Set_PWM1_Duty(70);

Set_PWM2_Duty(30);

}

if(R==2)

{

Set_PWM1_Duty(90);

Set_PWM2_Duty(30);

}

}

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;

P3DIR&=~(BIT1+BIT2+BIT3);//选中P3.0~P3.4为采集信号输入端

P4DIR|=0X0F;//控制轮子转向

Init_PWM();

while

(1)

{

switch(P3IN&0X0E)

{

case0x0A:

zhizou

(1);break;

//case0x1c:

left

(2);break;

case0x02:

case0x06:

left

(1);break;

//case0x07:

right

(2);break;

case0x08:

case0x0c:

right

(1);break;

case0x00:

stop();break;

default:

zhizou

(1);break;

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1