基于STM32的智能电动小车设计

2019-12-23 09:28彭聪彭琛聂超凡
电脑知识与技术 2019年31期

彭聪 彭琛 聂超凡

摘要:本文设计的电动车采用简单普遍的人工智能技术,本课题实现的功能是电动车在规定的时间内完成从跷跷板的起始端出发,行驶到跷跷板中心点附近,并且在中心点附近找到平衡位置停留几秒,然后从平衡点出发到跷跷板末端停留几秒钟,再从末端倒退回起始端。根据以上的要求采用STM32F103RCT6作为小车的检测和控制核心,通过12V电池及降压模块,以L298N来驱动减速电机,电机驱动采用PWM计数,方便对小车车轮正传和反转的控制。小车通过红外对管来进行寻迹行驶和检测黑带来保证在跷跷板上直线行走。用MPU6050角度传感器作平衡检测,来检测跷跷板的倾斜度,再把相应信号传给STM32F103RCT6去控制车轮的转速以及方向使电动车运行到使跷跷板达到平衡的位置,从而达到调节平衡的目的。同时,小车在跷跷板行驶过程中,通过LCD显示屏实时行驶时间以及在跷跷板的首末端和平衡处给出相应的指示,便于人机交流。

關键词:STM32;MPU6050;红外传感;减速电机;LCD显示

中图分类号:TP3 文献标识码:A

文章编号:1009-3044(2019)31-0197-03

1概述

在现在这个发展迅速的科技信息时代,科技中的智能化很快地融入到了人们的日常生活当中,车子的智能化也不离其外。智能小车的技术得到了普遍的应用,可用到安全监测、排除险情及智能家居等领域。军事上,在车上装备摄像机、安全激光测距仪和卫星全球定位仪等设备,通过光缆操纵,完成侦察和监视敌情、情报收集、目标搜索和自主巡逻等任务。在家庭中,可以用智能小车进行家具、远程控制家中的家用电器,控制室温等等。对这种小车的研究,将为未来环境探测术上的有力支持。

2系统硬件设计

如图1所示,小车以STM32F103RCT6为控制芯片,通过发送PWM波给驱动电路,从而控制电机带动车轮的正转反转,在跷跷板上通过PID调节进行红外循迹和平衡检测,在运行的过程中通过LCDl602显示屏实时显示开始小车行驶时间。

在板子两边贴两个接近跷跷板宽度的长条黑线作为电动车出发的起点和终点标志,小车从起点出发后,在30秒内到达中心点附近,通过角度传感器传输到ARM的信号,来判断跷跷板的倾斜角度,经过PID算法的调节,找出倾斜角为0的位置,小车在中心点附近来回行驶,在60秒内找到平衡点,并且在平衡点处停止5秒。之后,在30秒内继续向前行驶到终点处,并且停止5秒。5秒后,通过控制车轮的反转,在1分钟内倒退回到起始点,在整个行驶过程中,电动车始终在跷跷板上,并且分阶段实时显示电动车行驶所用时间。

2.1电源供电模块

如图4所示,12V的航模电池给为降压模块和驱动电路的输入电源,驱动模块输出的5v可给单片机供电,降压模块输出的5v可作为5v降3.3V模块的输人,同时可给循迹模块和显示模块5V供电。降压模块输出的3.3V供电给平衡模块。

为了确保控制小车电路的稳定运行,设计一个辅助电源用来提供稳定的+12V、+5V、+3.3V,实则为一个降压模块。辅助电源电路用到了LM2576-5和LMlll7-3.3这两种性能较高的降压稳压器,分别用来12V转5v和5V转3.3V。

2.2 L298N电机驱动

L298N作为专用驱动集成电路,在本课题中该驱动模块是用来驱动直流电机。12V输人给电机驱动供电则5v输出给开发板供电。STM32通过PB6、PB7、PB8、PB9这4个引脚连接到该模块的逻辑信号输入端口输出两对PWM波进行控制占空比,同时驱动模块的马达输出口连接需要驱动的直流电机,从而达到控制车轮的正反转以及速度的目的。

2.3 LCDl602液晶显示屏

设计了LCDl602的外围电路,V0为液晶显示器对比度调整端,连接了一个5K的可调变阻器进行对显示器对比度的调节,来调节显示字符的清晰度。STM32的PC8-PCI5这8个端口连接D0-D7进行数据传输,PC0控制使能端E,PCI控制寄存器选择端Rs,PC2控制读写选择端。每完成一个阶段性的任务就把时间刷新一遍,从而达到实时分段显示小车行驶过程中的所有时间。

2.4 TCRT500L红外传感器

本课题在实物制作中采用了5路循迹传感器模块,最中间的红外对管用来检测黑线,两边的红外之间的距离大于跷跷板上黑线的宽度。将红外的三个输出口连接到STM32的PAl-PA4端口,将检测到的高低电平输入给ARM,从而控制电机的转速和车轮的转向,将跷跷板上面的黑线对应好最中间的红外对管,在代码中通过位置式PID调节使智能小车沿着黑线行走。

2.5 MPU6050角度传感器

小车在跷跷板上要找到平衡位置,则需要一款角度传感器,在实物制作中选择了GY-52 MPU6050三轴陀螺仪模块。把角度传感器的数值传进单片机,经过单片机滤波,转化为角度判断跷跷板的倾斜角度,该模块具有体积小、精度高、采集速度快和操作代码简单等特点。

首先设置好PID的三个系数值,再获取采样值后,将其与期望值进行对比,计算出偏差值和控制量,输出控制量给被控对象,本课题当中的被控对象包括有五个红外对管的循迹模块和MPU6050的平衡模块,从而实现小车沿着黑线直走以及找到跷跷板的平衡点。

3调试

本文对于电动车最重要的要求就是稳定性要好,刚开始调试寻迹黑线时,小车在黑线附近摆动的幅度较大,极其不稳定,后来通过PID参数的调节,控制了电机的转速,才使得小车在检测的黑线的过程中较为稳定的直线运行。平衡方面的调试也是如此,当小车到平衡点附近,小车来回摆动的幅度和频率也很快,经过调试,在快到中心点时,进行了减速控制,从而使小车稳定的到达中心点。设起始点为A点,中点为B点,终点为C点。

4总结

通过本次设计我体会到了硬件和软件之间的密不可分,小车硬件结构的选取也十分重要,比如电机和车轮的选取,最让我深刻的体会是硬件的稳定性对后期的调试相当重要,首先引脚之间的连接我都是用杜邦线,这种情况很容易松动,对调试的影响很大。还需要反过来继续处理硬件情况,这极大影响了做本课题的进度。同时,通过这次研究也对STM32的软件、硬件系统有了初步的理解和掌握,但软件方面在直流电机的调速和精确控制上还不是很灵活,以后应该加强学习。