【《基于STC89C52RC单片机的智能小车控制系统设计》13000字(论文)】_第1页
【《基于STC89C52RC单片机的智能小车控制系统设计》13000字(论文)】_第2页
【《基于STC89C52RC单片机的智能小车控制系统设计》13000字(论文)】_第3页
【《基于STC89C52RC单片机的智能小车控制系统设计》13000字(论文)】_第4页
【《基于STC89C52RC单片机的智能小车控制系统设计》13000字(论文)】_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件程序软件总设计方案小车软件总方案从小车运动的角度出发,以小车直线显示为基本框架向其中添加其他功能,小车的左右转、检测黑线、检测障碍物,检测行进速度。图4-1软件总流程图软件程序设计部分将小车以信号的输入与输出分开设计,小车的检测功能即为输入信号部分,小车的运动控制即为输出信号部分。输出部分的软件设计舵机的方向控制舵机有三根引出线,分别是两根电源线,一根信号线。信号线用于控制舵机的方向。舵机的控制原理就是,当舵机接收到一个脉冲信号时,会对一个1.5ms的基准信号进行对比(当舵机接收到1.5ms宽度的脉冲信号时,舵机会转动到中间位置),大于或小于1.5ms的脉冲对应着舵机内电机的正反装,电机的正反装使得舵机向左或向后偏移。输入脉冲宽度对应舵机转动角度,当舵机转动到输入脉冲对应的指定角度的时候,电机就会关闭,舵机就会停止转动。本文使用的时180度角度的舵机,由于小车的构造,前轮转动不需要达到90度,所以在设计舵机转向的时候,需要使用到三种宽度的脉冲,1.0ms宽度对应舵机向左45度角转向,1.5ms对应舵机正向,2.0ms对应舵机向右45度转向。舵机的控制对脉冲的要求除了脉冲宽度,还要求至少需要长度是一段周期20ms的脉冲。所以程序上只需要设计三段脉冲控制舵机的转向即可,当智能小车需要转向的时候给舵机指定脉冲信号。脉冲的调制由单片机程序完成。PWM脉冲的调制需要用到单片机的定时器0。使用定时器0,首先要进行初始化设置。因为调制的脉冲宽度为1.5±0.5ms,所以初值的设置至少为0.5ms。程序中设定的初值为500μs=0.5ms。对应舵机信号需求,要求周期20ms,所以需要进40次(20ms÷0.5ms=40),设置一个“count”变量用于计数。每个周期根据状况需要设设置一个变量“pulse”用来控制脉冲宽度。“PWM1”是信号发射引脚,“PWM1”初值为1,为第一个脉冲拉高电平。直流电机的调速直流电机的调速也是使用单片机的定时器。直流电机的调速主要是需要调制脉冲的占空比,所以与舵机脉冲信号共用定时器0。其中设置变量“count1”用于为PWM调速计数,设置“trigger”用于脉冲高电平宽度。“PWM2”信号发射脚。该程序生成的脉冲时这样的:每当进入定时器一次,“count1”加一,当“count1”小于设置变量“trigger”时,输出“PWM2”为高电平;当“count1”加到与设置变量“trigger”相等的时候,输出“PWM2”为低电平。改变“trigger”从而改变脉冲高电平宽度,改变占空比,实现对速度的改变。将电机速度设置为4个档位。当“trigger”设置为1时为第0档,“PWM2”输出一直为低电平;当“trigger”设置为2时为第1档,“PWM2”输出一段占空比50%的信号,这是此方法最低速度;当“trigger”设置为4时为第2档,“PWM2”输出一段占空比75%的信号;当“trigger”设置为4以上时为第3档,此时电机全速运行。图4-1上拉电阻和舵机电路连接输入部分的软件设计黑线循迹和红外避障对两模块使用引脚进行定义其中引脚均是两模块的检测信号输出端,功能的实现还要求与舵机或是电机配合:Sbitoal(Obstacle_avoid_left) =P1^5;Sbitoar(Obstacle_avoid_right) =P1^6;//避障模块两引脚Sbitftl(Follow_trail_left) =P1^0;Sbitftm(Follow_trail_middle) =P1^1;SbitFtr(Follow_trail_right) =P1^2;//循迹模块三引脚循迹模块的程序根据硬件电路的设计,当反射式红外光电传感器检测黑线时,返回单片机低电平,反之高电平。当左右两边传感器返回低电平,中间返回高点平时,说明黑线是直线,需要小车直行。if(ftl==0&&ftm==1&&ftr==0)forword();当小车左边传感器返回低电平,中间右边返回高电平时,说明黑线对于小车中心线是向右偏的,此时小车需要向右转向。if(ftl==0&&ftm==1&&ftr==1)turn_right();当小车右边传感器返回低电平,左边和中间返回高电平时,说明黑线对于小车中线时向左偏的,此时小车需要向左转向。if(ftl==1&&ftm==1&&ftr==0)turn_right();至于小车的转向由舵机控制,控制方式已于4.2.1小节中说明,只需要对其应用,设置数据即可。避障程序设计需要与电机配合,只要两支传感器任一一支返回高电平,小车电机进入制动状态。单片机的P2^0和P2^1引脚与电机驱动L298N的IN1和IN2相连。制动状态根据3.5节中电路的设计,两引脚都输出低电平即可。红外遥控红外遥控信号输出端连接到单片机的P3^2端口,使用了单片机的外部中断0。SbitIs(Infrared_signal)=P1^7;使用外部中断0也需要对其进行初始化。EA=1;EX0=1;IT0=1;//打开外部中断并使外部中断处于下降沿触发。初始设置好了,对红外信号的操作首先需要单片机读取接收到的红外信号。由于使用红外一体头的缘故,所以单片机需要读取的信号即是红外发射端发射出的信号。首先信号组成部分的分析于3.4节中阐述过了。因为使用了NEC协议,引导码由9ms高电平组成,在引导码后有一段4.5ms的低电平空白码,之后数据由二进制码传输。二进制码中逻辑“1”是由0.56ms的高电平加上1.68ms的电平组成,逻辑“0”由0.56ms的高电平加上0.56ms的低电平组成。通过对比逻辑“1”和逻辑“0”我们可以得知,其组成都是由一段0.56ms的高电平加上一段不同长度的低电平组成,所以只需要判断在每段高电平之后的低电平长度就可以实现对逻辑的判断。根据每段信号有四组八位二进制数构成,对每一位进行逻辑判断。因为红外发射端的信号数据是从低位到高位发送的,所以在接收信号的时候需要把先接受到的信号放在低的位置。由上述对对接收的信号解析后,单片机对信号的接收过程如下:信号开始输入,当引导码结束下降沿的时候,触发外部中断0,然后对4.5ms低电平空白码判断,结束后开始将信号写入。在完成对信号的写入后还需要对信号进行判断。将第三组码和第四组码的反码进行对比,不同说明数据出错,不应该采用。测速测速部分需要的输入信号已经在前文中阐述过了,在软件部分需要做的是对测得信号进行处理。根据测速模块的设置,每当红外线通过光电码盘的光栅的时候,相当于发送一个脉冲给单片机。电机的转速可以由在规定时间内检测脉冲数量来实现。在程序中设定采样时间为一秒钟,设光电码盘旋转一周会产生x个脉冲,一秒钟单片机接收到y个脉冲,那么电机的转速算法就是: (4-1)所以在测速部分的软件实现需要使用到定时器和计数器。定时器与电机调速使用一个计时器即可,所以只需要对计数器1进行初始化。因为之前使用定时器0的时候对TMOD进行过设置,现在需要再加一个计数器,所以需要对TMOD进行重设。TMOD=0x51;//表示使用的是计数器1工作方式1。小车的行驶速度等于转速乘轮胎的周长,设小车轮胎半径为r,小车的速度为: (4-2)

调试方案本章主要将小车各功能模块进行调试设计,总流程可供需求进行改动,固不对总流程进行设计。对于小车调试方案的划分,根据小车的设计方案,将方案分为硬件部分的调试以及软件部分的调试。调试方案设计内容包括包括对小车硬件电路基本功能实现的调试,以及对搭载软件部分后对各个模块功能实现的单独调试。在测试方案设计时,默认设备、元件均为可正常使用,无损坏。硬件部分的调试硬件部分的调试方案主要为:在测试硬件电路实现的时,需要与小车车身安装同步进行。例如对小车的电机进行调试时,在使用电池直接对电机进行通电测试后,需要再将电池及电机装到小车上进行测试。图5-1硬件部分调试方案流程红外传感器部分红外传感器部分的调试依据硬件电路调试方案。先对红外电路实现进行测试,而红外电路的实现则需要先对红外发射电路进行测试。因为红外光不可见,所以通过测试红外发射管两极电位差来对红外发射电路是否正常工作进行判断。通过接通断开红外发发射当红外发射管两极电位约为1.2V时,认为红外发射管导通;当红外发射管两极电位约为0V时,认为红外发射管截止。图5-2红外发射管测试(仿真)红外发射端调试完成后,对红外接收端进行测试。因为测试时需要控制变量,将红外接收管用开关代替,默认红外发射管发送的红外线能被红外接收管接收到。在用开关代替红外接收管后,对红外接收电路输出端电压测量:开关闭合代替红外接收管导通,输出端检测到低电平;开关断开代替红外接收管截至,输出端检测到高电平。图5-3红外接收电路测试(仿真)红外发射电路和红外接收电路测试完后,对红外对管导通实现方式进行调试。调试内容一:红外对管阻挡的调试,该调试用于测速模块。调试方式首先需要将红外对管对齐,实现发射端通断电能改变接收端输出的高低电平,其次将测试完成的红外对管模块与光电码盘结合调试,实现光电码盘转动,红外接收端输出脉冲信号。调试内容二:红外对管反射的调试,该调试用于黑线循迹和红外避障模块。该方式的安装是将红外发射管和接收管同方向,并排安防,而且两管子安装时对中心线一定角度向内偏置。在两支管子间距固定时,两个管子偏移角度小,则反射面距离远;两管子偏移角度大,则反射面距离近。调试方式是固定两管间距,固定发射面的距离,使发射端一直发射红外线,通过调整两支管子偏移角度,当红外接收端收到信号(即输出低电平)时,固定角度,调试完成。对黑线循迹和红外避障模块来说,调试的区别在于调试时固定的反射面距离不同,所以这两各模块调试方式基本一致。电机与舵机的电路调试电机与舵机电路调试内容较为简单。电机驱动电路调试中,将IN1和IN2信号的输入用开关控制。在ENA端输入高电平,或者不变的PWM脉冲信号。通过IN1和IN2对应开关的信号实现对电机的正转,反转,制动。图5-3电机驱动测试(仿真)舵机的电路调试因为其转向需要PWM脉冲的调制,所以在硬件电路调试部分主要需要测试舵机信号输入端的高低电平是否符合舵机的要求。整体系统电源测试系统总电源测试方案为:步骤一,将各模块正常工作时所需电流进行测量,再计算总电流;或者将这个系统整合后,用稳压电源供电,测量工作电流。步骤二,与供电电源规格进行比对,看电源是否能满足系统的供电要求。由于使用电机的缘故,电源测试时还需要考虑电机空载和满载的时候。软件部分的调试软件部分的调试主要对软件中为实现各个模块功能,编写的子程序进行调试。其中对软件设计中较为复杂的两块进行调试——PWM的脉冲调制和红外遥控信号的接收。PWM脉冲调制部分PWM脉冲调制由软件实现,主要为电机的调速和舵机的改变方向服务。对于程序实现的观测,只需要单片机对应接口接示波器,观察脉冲形状和宽度是否与程序中设定的一致即可。图5-4PWM脉冲生成测量(仿真)PWM脉冲信号测试完成之后,需要通过对应接口对电机及舵机进行调速。对电机实现转速可调,对舵机实现方向可调。红外遥控信号红外遥控信号的接收调试需要和红外遥控器配合,其调试内容为通过程序识别出信号对应的按键的键码。在知道遥控键码的情况下,用收到某键码置位某一IO口的方式来实现直观检测程序是否正确,或者通过编译器EBUG来观测。

参考文献[1]马志德,杜世龙,周永帅,郭继成.多功能智能小车的设计与应用分析[J].科学技术创新,2020,(31):156-157.[2]于海斌.智能制造与机器人技术发展新趋势[N].人命日报,2015-08-02.[3]林杨挺.嫦娥四号讲述的月球“土壤”故事[J].自然杂志,2020,(06):433-440.[4]A.F.Rumsey,E.T.Powner.Longitudinalcontrolofautomatedvehiclesinguidedtransportationsystems[J].1974,121(11):1435-1440.[5]SepidehKaffash,AnTruongNguyen,JoeZhu.Bigdataalgorithmsandapplicationsinintelligenttransportationsystem:Areviewandbibliometricanalysis[J].2021,231[6]SihuaShao,AbdallahKhreishah.Harnessingretroreflectivetransportationinfrastructureforintelligentvehiclepositioning[J].2020,24[7]陈枫.无人驾驶时代正在到来[N].北京日报,2020-04-01.[8]王秀旭日,李川鹏,王耀福.多功能无人送餐车的设计研究[J].中国信息化,2020,(12):100-101.[9]严彦成,巩琪娟,马灿洪,等.智能小车的自适应轨迹控制系统设计[J],新型工业化,2020.(06):80-82+88.[10][1]兰吉昌.单片机C51完全学习手册[M].化学工业出版社,2009.[11]王云.51单片机C语言程序设计教程[M].人民邮电出版社,2018.[12]李柠,张殿富.基于单片机的智能小车速度控制[J].科技视界

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论