单片机
返回首页

简单循迹小车的制作步骤

2021-07-15 来源:eefocus

简介: 采用MSP430F148单片机作为数据采集、处理、控制核心,系统的总体设计如图1所示,MSP430的开发平台为IAR Embedded Workbench EW430,它界面操作易上手。芯片内部JTAG对外的端口称为JIAG端口,该端口是一个双向串行端口。通过它可以控制MSP430进行在线仿真调试。


一、设计思路分析


前置的数据采集装置(眼睛)采集道路信息并送到单片机(大脑)进行分析,根据小车相对黑线的不同位置做出控制策略,再将处理信号后发出的命令输出给小车电机,分别控制小车的两个电机转向和转速,实现根据道路情况而直走、转弯、停车。



采用MSP430F148单片机作为数据采集、处理、控制核心,系统的总体设计如图1所示,MSP430的开发平台为IAR Embedded Workbench EW430,它界面操作易上手。芯片内部JTAG对外的端口称为JIAG端口,该端口是一个双向串行端口。通过它可以控制MSP430进行在线仿真调试。因此,将JTAG电路集成到CPU内就相当于将仿真器集成到了CPU内部,只需要一个接口电路,将JTAG信号传送到调试终端(PC机)就可以实现在线调试了。



二、硬件设计


系统的组成主要有小车、信号采集模块、核心控制模块、供电模块和驱动模块,以下将分别介绍。


1. 基础小车


市面上小车多种多样,如有两个电机的四驱小车:适合爬坡、走沙石路等,但是过弯容易卡死;后轮有两个电机的三轮小车,过弯灵活但是重心不稳;两个电机的四轮后驱小车,过弯灵活且稳定。


结合了前面两种车的优势,被我选用。


2. 信号采集模块


选择ST168光电对管来制作路面检测的传感器模块,见图2,当光电对管下方是深色的时候,由于深色吸收光线,接收管不受光照,因此不导通,A端输出电压为3.5V左右,被单片机识别为逻辑“1”,同理,白色的时候接收管导通,输出电压为0V左右,单片机识别为逻辑“0”。也可在信号输出前连接一个比较器以便获得更灵敏的输出。R1限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150Ω的电阻作为限流电阻,电源电压为5V,测试发现发射功率完全能满足检测需要。可变电阻R2可限制接收电路的电流,一方面保护光电对管;另一方面可调节检测电路的灵敏度。



3. 核心控制模块


为了使系统更容易设计和增加系统的稳定性,我们使用在电子器件市场上很方便购买的MSP430系列的最小系统板(见图3)。



4. 各模块供电方案


供电单元是9V直流电池组,根据各个模块对电压的不同需求通过稳压模块分别为其供电。单片机系统、各模块系统以及电机的工作电压不同,我们需要使电压满足各自的要求。


除单片机外其他模块的工作电压均为5V,可用REG1117-5(输入3.8~12V,输出5V)将9V电压降为5V为这些模块供电,MSP430系列单片机具有超低功耗特性,工作电压仅为3.3V,故需要一块REG1117-3.3(输入5V,输出3.3V)为其供电。两个稳压模块电路相同,只是稳压芯片不同,再参见REG1117典型电路便可确定如图4所示的稳压电路。

5. 电机驱动模块


采用常用的H 桥电机驱动芯片L 2 9 8 N 驱动小车电机, L 2 9 8 N 第9 脚为逻辑控制部分的电源(4.5~7V),第4脚为电机驱动电源(此系统中为9V,最大为46V),第5、7、10、12脚输入标准TTL逻辑电平,用来控制内部H桥的开和关,第6、11脚为使能控制端(我们将两个使能端都接高电平,直接通过PWM波控制电机。若为低电平,驱动桥路上的4个晶体管全部截止,电动机自由停止),第1、15脚用来连接电流检测电阻(见图5)。

通过单片机产生PWM波来调整直流电机电枢绕组两端的电压控制转速。脉冲宽度调制波由一列占空比不同的矩形脉冲构成, PWM波的占空比越大,输出电压越高,利用占空比的变化调整加在电机电枢绕组上的电压,改变电压随即改变电机电流,从而改变电机的转速。图中C1与C2,C3与C4分别并联后接地起滤波作用,防止在开机的时候产生的冲击电流损坏L298N。D1~D8是常用1N4007二极管,可防止电机中电感产生的反电势击穿L298N。根据L298N的输入输出关系,通过输入PWM信号可以控制电机的正反转,输入端IN1为PWM信号,输入端IN2为低电平,电机正转;输入端IN2为PWM信号,输入端IN1为低电平,电机反转。同理,IN3和IN4能共同控制另外一个电机。


三、软件设计


为便于描述,此处将四只光电对管左到右分别编号为1、2、3、4。分为两组置于车前,将黑色引导线“夹”在中间,内侧两个光电对管起主要的定位作用,优势在于外侧的两支管可以有效地解决小车由于惯性略微冲出轨道导致内侧的两支管子检测到白色而冲出去的危险。相比于其他用更多管子的方案,此方案简单有效,避免了很多复杂情况的产生(见图6)。

当小车入弯前(以右转为例),四支光电对管均检测到白色(直走),入弯时,3、4号管将检测到黑色,此时便调用“右转”函数,当四支管子重新检测到白色信号时,调用“直走”函数;当四支对管同时检测到黑色信号时,调用“停车”函数。


在此过程中,使用一个while(1)的死循环使单片机不停地对道路信息进行判断,并时刻纠正小车的前进方向。


转弯策略


变量定义:temp1~temp4为1~4号光电对管采集到的路面逻辑信息,见图7。

为了更好的实现转弯,防止小车在过急弯时冲出路径,设计了强弱不同的两重转弯策略,同样以右转为例:车刚入弯时,必然是3号管先检测到黑色,而其他三个管均检测到白色时,启动第一重转弯程序;当车转急弯或由于小车略微冲出轨迹使3号管检测到白色时,4号管会检测到黑色,此时将启动第二重转弯程序,此程序能将小车拉回到执行一重转弯程序的位置上。


直线行驶:用PWM对两个电机输出相同的占空比(350/512),使两轮速度相同。


第一重转弯策略(以右转为例):调整PWM使右轮停止转动,左轮全速(占空比512/512)转动。


第二重转弯策略:调整PWM使右轮反转(占空比300/512),左轮全速转动。


四、制作与调试


具体制作时,条件有限的读者可以根据前面给出的各模块电路图在面包板上分别进行焊接,将芯片的管脚和与其他模块的接口用排针引出。对各模块进行调试时可在各管脚上加需要的电压,测试其输出端的波形。有条件的读者可以将各个模块制作在一块PCB板上,可以大大简化小车的结构。


1.用万用表检查核心板的焊接情况,确保管脚的引出情况良好,无虚焊、短路。


2.调试供电模块,在输入端加上额定电压,测量输出端的电压是否合格。


3.调试电机驱动模块时,在5、7脚上加5V直流电压,电机能够正向转动,交换两极后能反转(在10、12脚上进行同样的操作)即调试通过。


4.调试信号采集模块,加上5V的直流电压,测试每一个光电对管在面对黑色(3V以上)和白色(0V)时A端的输出电压。ST168的检测距离很小,一般为8~15mm,因为8mm以下是它的检测盲区,而大于15mm则很容易受干扰。


笔者经过多次测试比较,发现把传感器安装在距离检测物表面10mm时,检测效果最好。将地面监测模块放置在离前轮5cm处效果比较理想。


5.用杜邦线将各模块的输入输出连接起来,形成一个完整的系统。


6.编写、下载程序。首先编写直走程序使小车能动起来,在此基础上再加入转弯功能,最后进行参数的调整。


7.小车的底盘一定要调平,保证小车始终都是“四脚着地”。电池组的位置将直接影响小车的重心位置,会对小车的转弯性能产生影响,放在靠后的位置效果较佳。检查车轮轴与轮胎的连接严实,以免小车打滑或意外转弯。


8.不同等级的电压一定要共地,注意5V或者9V电压千万不能给单片机供电,会直接将单片机烧坏!


直线行驶的时候占空比为350/512,这样可以避免速度过快小车由于惯性冲出了可识别路径,也可以使小车在转弯时有足够的速度不至于转不过去。当弯道比较平缓的时候第一重转弯策略能够满足过弯的需求,此时将一边车轮停转一边全速转动(占空比为1),使两边的车轮差生一个比较大的差速使小车转弯。当弯道比较急,仅仅依靠上述的策略小车可能转不过去而卡住,甚至冲出路径。此时使原本停转的那边车轮反转(占空比300/512,经实验得到的优化数据),就能够获得更大的差速,小车产生一个瞬间的摆动。如果小车的路径识别足够灵敏、转弯能力够好,读者可自行取消第二重转弯策略。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 单稳态控制电路设计与分析

  • 光控电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • 开关电源的基本组成及工作原理

  • MT3608构成3.7V转12V的升压电路图

    相关电子头条文章