• 收藏
  • 加入书签
添加成功
收藏成功
分享

基于 STC89C51 单片机的智能车软件设计研究

曲研 曹传剑 王磊 徐诚誉
  
锦绣·上旬
2023年6期
青岛职业技术学院 山东 青岛 266555

打开文本图片集

摘要:设计一款基于STC89C51单片机为控制器的智能循迹小车,本篇介绍了循迹的工作原理、单片机如何对小车进行控制,单片机的工作流程,程序的主要算法。通过检验证明,该设计可以按照路线进行行驶,设计过程较为通俗简单、易懂。

关键词:智能小车、循迹、单片机、直流电机

引言:

随着新时代科学技术的蓬勃发展,人们的生活中出现了各式各样的新型科技,例如餐厅中的送菜机器人,汽车的自动驾驶,这就对其系统对环境的识别能力做出重要的要求、本研究是对其对环境的基本识别能力进行调查、设计和研究。

1.1研究目的与研究意义

1.1.1研究目的

智能小车,也被称为轮式机器人,是用来替代人类无法安全工作的环境中的较为危险地工作。无人自动驾驶汽车、无人自动生产线、仓库,以及服务机器人等领域就是使用地此项技术。智能小车很适用于这种危险条件下运行,在这种危险条件下运行,需要通过各种完善的防护措施才能有效的保护自己,从而避免对人身产生危害。不过,通过智能小车就能够轻松的通过这种危险的场所,并且轻轻松松地进行维护,不需要像人类一样,全副武装地进入危险的环境。智能车辆自动驾驶任务将给人类社会发展带来巨大影响,比如能切实提高道路网络利用率、降低事故率、降低车辆油耗,尤其是在改善道路交通安全方面提供了一项新的处理路径。随着人类在不停探索、改造、认识自然中,人类的梦想一直是制造能代替人劳动的机器以减轻自己的压力。人类只需要简单的设定一个目标,他就可以在自动的运作,最后达到更加优于人类劳动而实现的目标。智能小车就是其中一个表现。智能小车作为将环境感知、自动行驶等功能合成于一体的综合系统。现在,随着各个企业的生产制造技术地改进、对智能化、自动化技术需求在源源不断地增加的大形势下智能汽车以及在此基础上进一步研究发展的二次技术,已经形成了智能化的汽车运输等系统及关键设备。当今世界上已经有更多的世界领先的发展中国家和发达国家,正在积极主动地从事智能汽车研究与发展的工作。

1.1.2研究意义

从理论转为实际应用,将避障以及循迹功能应用在汽车上,逐步实现自动驾驶。智能汽车是一种高新技术密集的汽车,是在网络大数据的环境下,将大部分车机互联,利用大数据技术等各个学科综合的最新成果,可以使汽车具有自动识别车辆行驶道路、自动识别交通信号灯、自动驾驶等先进的功能。随着控制技术等技术的升级,智能汽车在日常生活中的地位在逐步提升,在将来将会不断取代普通汽车的地位。如今,智能车已经在险情救援、现代物流等行业中有了广泛的应用。

1.2研究内容与研究方法

1.2.1研究内容

自动循迹小车以单片机STC89C51为控制器,在外围电路的设计上进行研究,以及对单片机程序的编写。主要内容为单片机通过传感器对路线的远近识别、单片机对L298N芯片的控制从而实现对直流电机的控制,最后实现小车的自动循迹功能。

1.2.2研究方法

资料收集法:通过各种市场及其企业的调研,明确智能小车在实际工作中的应用市场及用途。

搜集文献法:通过阅读国内外的相关图书,资料和文件,或者将国内外的相关课题成果进行对比参考,全面掌握所需材料。

仿真模拟法:通过使用Proteus 8 Professional软件进行原理图的绘制、程序的测试、系统的仿真。

2.1智能车循迹工作原理

基于STC89C51单片机的智能车的循迹是指基于STC89C51单片机的智能车可以在黑白背景板上沿着指定路线运行,探测轨迹的红外线侦察方式。在其四周放置了红外传感器,通过红外线对不同色彩的物质表面具有不同的反射功能。当红外线碰到白光时则漫反射性很强,接收器接收到的信息也较好;而一旦碰到黑色时则红外线大量被吸收,接收器接收到的信息也较弱[1]。设计一个循迹电路,使得红外照射在线路时该电路输出高电平,照射在背景时该电路输出低电平。单片机根据循迹电路的输出信号确定小车的行驶轨迹。

2.2硬件设计

小车的本体采用钢片制作,用单片机STC89C51作为主控芯片,使用锂电池作为电源,使用直流电机对车轮进行控制,用L298N作为小车直流电动机的驱动。整体流程如图1所示。

2.2.1主控芯片

主控部分采用STC89C51单片机,可以通过简易下载器由电脑将程序下载进单片机中。STC89C51单片机是对兼容英特尔8051指令系统的单片机的统称,4组8位共32个输入输出口。STC89C51可以使用Keil C51软件进行编写、编译,使用此单片机进行设计较为简易。

2.2.2电机及驱动

永磁式换向器直流电机是一种应用很广泛的一种电机,只要在它上面加适当电压就能转动。永磁式换向器直流电动机由滚珠轴承、机壳、永磁体、转子叠片、绕组线圈、换向器、散热扇叶、电刷及端盖、转轴等[2]组成,定子作用是产生磁场。

调节直流电机转速,最方便有效的方法是对电枢(即转子线圈)电压U进行控制。控制电压的方法有多种,目前广泛应用脉宽调制(PWM)技术来控制直流电机电枢的电压。所谓PWM控制技术,就是利用半导体器件的导通与关断,把直流电压变成电压脉冲序列,通过控制电压脉冲宽度或周期以达到变压的目的[3]。

L298N是采用专用驱动集成电路,是属于H桥集成电路,L298N与L293D的差别是功率得到了一定提升。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电动机、电磁阀等,特别是其输入端可与STC89C51单片机直接相连,使其更容易的受到控制。当驱使直流电动机时,可以直接控制电动机,并可以实现电动机正转与反转,实现此功能只需改变输入端的逻辑电平即可[4]。

采用L298N作为直流电机驱动器,用一个芯片驱动两个电动机带动车轮转动,可以在51单片机的控制下,使两个车轮进行不同的运动,实现前进、左转、右转以及停止。为了电路的稳定,加入了7805稳压芯片。如图二所示。

2.3软件设计

2.3.1软件总体思路

本小车的设计功能为,让小车自动沿线路轨道运行,最终以断电和无轨道结束。单片机检测轨道位置,通过L298N对电机进行控制,以用来保持小车沿轨道行驶。为了实现对电机控制,编写主函数来调动各个函数进行控制。

智能车的控制工作,主要分为以下四个阶段开展的。(1)路径信息采集。必须加强路径信息采集工作,对远距离路径信息的 采集工作、准确性把握,将会对后期工作的开展起到决定性影响;(2)数据分析。通过对输出电平高低情况,进而计算出智能车在路径中的偏离程度;(3)控制策略控制。智能车控制指令的确定,主要是基于引导线信息准确获取[5]。

2.3.2电机启动函数的编写:

void motor_run() //电机起动

{

P1=0x35;

delay_1ms(200);

P1=0x53;

delay_1ms(10);

}

通过P1口输出数据传送给L298N芯片的输入端,使L298N输出信号带动电机运转。通过赋不同的值来实现转向运动。

2.3.3主函数程序

switch(signal)

{

case 0xff: //无偏差

motor_run();

break;

case 0xfd: //1轮右偏

motor_left();

break;

case 0xef: //4轮左偏

motor_right();

break;

case 0xfb: //2轮右偏出轨

case 0xf9: //1、2轮右偏

motor_big_left();

break;

case 0xdf: //5左偏出轨

case 0xcf: //4、5轮左偏

motor_big_right();

break;

case 0xfe: //0最右偏出轨

case 0xfa:

motor_big_left();

break;

case 0xbf: //6最左偏出轨

case 0x9f:

motor_big_right();

break;

case 0x9a: //后四传感器压在黑线上

motor_back();

delay_1ms(200);

motor_stop();

default:

break;

}

通过switch、case结构,将P2口判断车身位置的数据进行判断,从而进行各个方向函数的调动

3.1测试完成情况

启动单片机,将单片机上电,红外模块对背景板的循迹线进行寻找。

当检测到向左或者向右微偏时,单片机会进行反方向的微调。

当检测到向左或者向右过偏时,单片机会进行反方向的大幅度调节,更为及时的将智能小车拉回预定的轨道。

当检测到小车沿线正确行驶时,两轮无速度差,正向前进。

4.1 结束语

对智能车外观的设计,车板的制作以及组装,电路的设计以及焊接,程序的编写与下载,通过仿真实现效果后,下载进入智能小车中,小车可以沿着线路进行运行。后续,可以对小车加以封装,使用亚克力板裁切组装,将小车包装起来,即可增加美观度,提高实用度。

企业生产技术不断提高,对自动化技术要求不断加深,智能车辆及以智能车辆为基础的产品不断增加,各种类型的智能车不断出现,简化了企业生产的流程,推动着中国科技的前进速度。

参考文献:

[1]柴锁柱.基于STC15F单片机的智能车设计[J].南京工业职业技术学院学报,2015,15(04):1-3.

[2]谢振宇,刘桂雄,谢佳娜.永磁直流电机换向偏转角优化选配技术[J].国外电子测量技术. 2022,41(07):139-144.

[3]郭志勇,王韦伟,曹路舟.单片机应用技术项目教程[M].北京:人民邮电出版社,2019.

[4]石从刚,宋剑英,陈萌.基于Proteus的Arduino可视化编程应用技术[M].北京:机械工业出版社,2020.

[5]陈伟全.基于红外光电传感器的智能小车控制算法设计分析[J].科技展望,2016,26(14):135-136.

[6]王树磊,赵景波,赵杰等.基于改进PilotNet的端到端无人车控制[J].重庆理工大学学报(自然科学),2022,36(06):41-47.

[7]俞志根,李天真童炳金.自动检测技术实训教程[M].北京:清华大学出版社,2004.

通讯作者:张晓琳

*本文暂不支持打印功能

monitor