基于MSP430单片机循迹小车课程设计报告.docx
《基于MSP430单片机循迹小车课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于MSP430单片机循迹小车课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。
![基于MSP430单片机循迹小车课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-10/13/c6bb2379-6b51-434c-90a5-3476908b2a2d/c6bb2379-6b51-434c-90a5-3476908b2a2d1.gif)
基于MSP430单片机循迹小车课程设计报告
课程设计报告
课程名称嵌入式系统原理与设计
课题名称智能循迹小车
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