单片机交流
直播中

陈燕

7年用户 1108经验值
私信 关注
[问答]

如何利用MSP430/MSP432去设计制作一个四轮电动小车?

如何利用MSP430/MSP432去设计制作一个四轮电动小车?
对基于MSP430/MSP432的四轮电动小车有哪些要求?
基于MSP430/MSP432的四轮电动小车是由哪些部分组成的?

回帖(1)

江松洁

2021-7-19 11:33:46
1.任务
利用TI的MSP430/MSP432平台,设计制作一个四轮电动小车。要求小车能沿着指定路线在坡道上自动循迹骑线行驶。小车必须独立运行,车外不能使用任何设备(包括电源)。小车(含电池)重量小于1.5kg,外形尺寸在地面投影不大于25cm×25cm。坡道用长、宽约1m的细木工板制作,允许板上有木质本色及自然木纹。木工板表面铺设画有1cm×1cm黑白间隔的纸条(以下简称为标记线)作为路线指示;标记线起始段为直线,平行于木板两边;标记线在坡顶转向90°,转弯半径20cm;标记线平行坡顶距离≥30cm,距坡顶距离≤20cm;标记线总长度为1m。停车标记为宽1cm长5cm的黑色线条,垂直于坡顶标记线。小车坡度角示意及行驶线路顶视图如图1所示。

2.要求
(1)坡度角θ=0°,电动小车能够沿标记线自动骑线行驶,在停车点停车;小车上标记点到停车标记中心线的垂直距离误差≤2cm。停车时立即发出声音提示。小车行驶过程中,其地面投影不得脱离标记线。
(2)在完成(1)的基础上,电动小车能够设定行驶时间,自动控制小车匀速通过1米长的线路,在停车点停车。行驶时间可在10s~20s间设定。误差绝对值≤1s。行驶过程中不得碾压、脱离标记线。时间误差每超过1s扣1分。
(3)坡度角θ=10°,完成要求(2)的动作。
(4)可任意指定坡度角θ在11°~30°,完成要求(2)的动作。
(5)在完成(4)后,尽量增加坡度角θ,完成要求(2)动作。
(6)其他。
设计报告:
[tr][/tr]项 目主要内容满分
方案论证比较与选择,方案描述
理论分析与计算系统相关参数设计
电路与程序设计系统组成,原理框图与各部分的电路图,系统软件与流程图
测试方案与测试结果测试结果完整性,测试结果分析
设计报告结构及规范性摘要,正文结构规范,图表的完整与准确性。
3.说明
(1)本题目必须使用指定的MSP430/MSP432平台。并将该平台置于显著位置便于评测。不得另外使用其它CPU控制芯片。
(2)不得采用履带小车及带刺轮胎。小车轮胎采用橡胶塑料等柔性材质,不得在其表面涂抹粘性物质等。行驶路面不得铺设除标记线外的任何材料。小车全程在木工板上行驶。
(3)小车设定模式后自动行驶,中途不得人工介入控制。在要求(2)~(5)的测试中,小车应匀速行驶。停顿、打滑、碾压标记线每次扣除2分。
(4)小车标记点:小车到达停车线的标记点自定,并在行驶前明确标记在车体上,以便测量。
(5)所有测试中,行驶过程时间超过30s、小车投影脱离标记线或停车误差超过2cm,均视为失败。
(6)要求(5)中最大角度的测试,θ由选手自己选定。
(7)每项测试过程允许测试两次,取最好成绩。坡度角可以用安卓手机上的“指南针”APP软件测量。
一、硬件设计
MSP430f149开发板作为电动小车的核心控制,对于小车的轮胎,我们选用的是橡胶轮胎,增大摩擦力,使小车爬坡能力更强,坡度更高的坡道也能稳定的行驶。对于小车在1cm×1cm黑白间隔的纸条上寻迹的问题,我们在车头设计了两排红外对管,每排4个,这样它可以更有效的沿着黑白纸条行驶,实现直行和转弯以及停止的功能。使用7针的OLED来显示小车行驶的路程、速度、时间等数据。使用低转速的编码电机,低转速的电机更稳定,爬坡力气更大利用msp430的PWM驱动,使用PID速度算法,编码电机的霍尔传感器可以时刻将速度反馈给msp430芯片,达到精确控制电机的效果。
系统设计框图:

(一)主控芯片选择
根据题目要求,可以选择MSP430单片机或MSP432单片机。对于控制系统的选择,通过与组员以及导师的探讨。
MSP430 : 1、经济: 16位MSP430微控制器(MCU)经济实惠。
2、功耗: MSP430 单片机可作为低功耗嵌入式设备使用,其静态电流可小于1微安。MSP430 系列单片机的 CPU 的最高频率为 25 MHz,但也可以降低频率以降低功耗。MSP430 有6种不同的低功耗模式,在不同的模式下可以禁用不需要的时钟或 CPU。此外,MSP430 还可在1微秒内被唤醒,这可使它在睡眠模式下可以维持更长的时间,让其平均功耗最小化。
3、外设: 内部振荡器、定时器、PWM、看门狗、UART、SPI、I²C、10/12/14/16/24 位 ADC,以及掉电复位电路等,外设非常齐全。
4、功能: MSP430 系列单片机采用矢量中断,支持十多个中断源,并可以任意嵌套。用中断请求将 CPU 唤醒只要 6us,通过合理编程,既以降低系统功耗,又可以对外部事件请求作出快速响应。
基于上述考虑,MSP430价格相对于MSP432便宜许多,而且完全可以实现该题目小车的所有功能。所有我们选择MSP430单片机。
(一)红外传感器设计
使用8路红外对管反馈给芯片小车的路线情况,控制小车准确的行驶在轨道上和停车功能,到达停车线时控制蜂鸣器发出声音。
集成式红外探头。可以采用集成断续式光电开关探测器,它具有集成度高、工作性能可靠的优点,只须调节探头上的一个旋钮即可以控制探头的灵敏度。此种探头还能有效地防止普通光源(如日光灯等)的干扰。
(二)电机选择
方案一:直流电机:起动和调速性能好,可以通过PWM调速,过载能力较强,受电磁干扰影响小;
方案二:编码电机:起动和调速性好,PWM调速,过载能力较强,受电磁场干扰小;自身带有编码器,可以通过PID反馈给控制器电机的运行状态。
基于上述考虑,为了提高时间、速度、以及停止位置的精度,所以我们采用方案二。
使用霍尔编码电机实时检测小车速度,使用PID负反馈调节速度保持上下坡速度也能保持匀速,控制小车在规定的时间内完成路线。
电机驱动采用298即可
(三)显示屏模块选择
方案一:采用LCD12864,尺寸做的比较大,可视角度低,工作温度范围较窄,工作寿命较短,重量比较大。
方案二:采用OLED,尺寸较小,可视角度好,工作温度范围比LCD12864宽一些,工作寿命长。
基于上述考虑,为了使小车外形更美观,达到题目要求的重量,所以我们使用OLED。
(四)电源选择
方案一:使用圆柱形充电电池组,这种电池容量比较小,电压低,占据空间大,重量较重,价格比较便宜。
方案二:使用12V聚合物锂电池,这种电池容量大,电压稳定,占据空间相对较小,重量相对较轻,价格相对较贵。
基于上述考虑,为了使小车的电压更加稳定,所以我使用12V聚合物锂电池。
二、理论分析与计算
2.1 供电系统分析:
失败例子,首先我们使用12V聚合物锂电池给两个电机驱动(L298N)供电,有L298N引出5V的电源输入到MSP430单片机,测了一段时间L298N被烧坏。后来经过一系列测试,最后发现,是因为单片机、OLED、以及8路红外的供电线路全都是L298N引出的5V电源,这样导致电机驱动模块(L298N)电流过载,被烧坏。
优化方案,使用12V聚合物锂电池给两个电机驱动(L298N)供电,将12V电源再分一路给降压模块(LM2596S)调节降压模块上的电位器,使降压模块的输出电压位5V,然后使用降压模块降下来的电压给单片机、8路红外、OLED等供电。经过反复测试,这样的供电系统没有任何问题。
2.2 PID计算速度

编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。编码器从输出数据类型上分,可以分为增量式编码器和绝对式编码器。
从编码器检测原理上来分,还可以分为光学式、磁式、感应式、电容式。常见的是光电编码器(光学式)和霍尔编码器(磁式)。
这里使用增量式输出的霍尔编码器。编码器有 AB 相输出,所以不仅可以测速,还可以辨别转向。根据上图的接线说明可以看到,我们只需给编码器电源5V 供电,在电机转动的时候即可通过 AB 相输出方波信号。编码器自带了上拉电阻,所以无需外部上拉,可以直接连接到单片机IO读取。

2.3 小车爬坡受力分析与计算
根据理想情况条件,忽略空气阻力。设小车的质量为m,重力加速度为g,系统的初始时刻t=0,与斜坡形成的角度为,在标记线的初始位置为坐标原点建立直角坐标系,水平方向为x轴方向。如下图所示:

三、电路与程序设计
(一)系统组成
组成电动小车的系统分为以下几个部分:
1)MSP430F149开发板
2)8路红外对管
3)两个电机驱动模块(L298N)
4)12V聚合物锂电池
5)降压模块(LM2596S)
6)4路编码电机
7)小车框架
(二)原理框图与各部分的电路图

(三)程序设计
由于代码过长只展示部分程序
/*------------------//项目:坡道行驶电动小车,寻迹小车//作者:化作尘//时间:2020年10月13日17点51分//版本:v1.0//邮箱:2809786963@qq.com//csdn: 化作尘//bilibili: 化作尘my--------------------*/#include “msp430.h”#include “car.c”#include “oled.h”#include “oled.c”#include “oledfont.h”#include “gpio.h”double X_1,X_2,X_3,X_4,V_1,V_2,V_3,V_4;//mm msdouble x1,x2,x3,x4,s1,s2,s3,s4;char flag=0;uchar data=0;int n=0;int va=15,vr=0;int time=10;int go = 0;#include “PID.h”void PIDOUT_qian();void PIDOUT_hou();void PIDOUT_zuo();void PIDOUT_you();void display();void UART_Init();void Send_Byte(unsigned char);void Print_Str(unsigned char*);void Set_temp(float ,float ,float, float);void PIDOUT_left();void PIDOUT_right();void Tim_init();void interrupt(void);void main(void){ Sysclk_init();//系统时钟初始化 Tim_init();//定时器捕获与pwm初始化 interrupt();//外部中断 初始化 OLED_Init();//初始化OLED IO_init();//电机初始化 P3DIR |= BIT5;//初始化蜂鸣器 P3OUT &= ~BIT5; OLED_Clear();//清屏函数 //OLED_ShowCHinese(0,0,0);//显示汉字 x y 第几个汉字 OLED_ShowString(4,4,“speed: ”);//速度 OLED_ShowString(4,6,“dista: ”);// //等待go按键按下 while(!go) { display();//oled显示 }va = 150/time; while(1) { display(); //显示 PID_calc();//PID计算 //自动循迹实现 if((vr == 0) || (vr == 50/time) || ((vr == -50/time) || (vr == 150/time)))//如果是左3个传感器 { PIDOUT_qian();//pwm输出 Set_temp(va-vr,va-vr,va+vr,va+vr);//设置速度 } else if(vr == -150/time)//如果是右传感器 { PIDOUT_zuo();//pwm输出 Set_temp(va-vr,va-vr,3,6);//设置速度 } if(go == 0)//中断发生停止信号 { P3OUT |= BIT5;delayms(600);//蜂鸣器 P3OUT &=~ BIT5;delayms(600); P3OUT |= BIT5;delayms(600); P3OUT &=~ BIT5;delayms(600); P3OUT |= BIT5;delayms(600); P3OUT &=~ BIT5;delayms(600); while(1);//停止 } }} 四、测试方案与测试结果
4.1测试条件及仪器
测试条件:检查多次,仿真电路和硬件电路与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:电动小车,木板。
4.2测试方案及结果分析
表5: 动力小车坡度测试
[tr][/tr]次数最大误差(cm)/(度)最小误差(cm)平均误差(cm)
0度10100.5
0~30度10201
40度10211.5
综上所述,对系统各部分进行校准和精密处理后,。系统精度和稳定性都有很大的提高。结合上述测试数据,系统完全符合要求,误差在允许范围内,实现全部功能,有些指标还很高精度。由此可以得出以下结论:本设计达到设计要求。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分