这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 足球机器人毕业论文3-- 软件程序设计与调试

共1条 1/1 1 跳转至

足球机器人毕业论文3-- 软件程序设计与调试

工程师
2011-03-15 14:34:06     打赏
足球机器人毕业论文3-- 软件程序设计与调试
写于: 星期日 03 七月 @ 04:39:17
 
智能机器人开发这部分包括了:第五章 软件程序设计,第六章 测试及设计总结

足球机器人毕业论文3-- 软件程序设计与调试

第五章 软件程序设计


引言
在完成了硬件的设计之后,需要进行相应的软件设计,对机器人的控制的思想,是直接通过软件程序表达的。因此,软件设计是整个设计过程中最重要的部分之一,直接关系到机器人在赛场上的表现。本章先对程序运行的重要环节――AD转换器的读写控制进行了说明,再针对各个功能模块设计了相关软件,各模块间相互独立,可用于测试各个部件的运行状况。最后合成一个具有完整性能和多判断的比赛应用程序。

5.1 AD转换器的读写控制模块
5.1.1 TLC1543的时序分析
在本设计中所使用的AD转换器为TLC1543,它支持串行的地址/数据 输入输出,大大节省了单片机的I/O口数量,但是这种串行通行方式有着较为复杂的时序要求。深入理解它的时序图,是编写读写控制程序的前提。
时序图如下:


图5-1


由图可知,该芯片通过一个EOC(End of Conversion) 信号把时序划分为两个大的周期,当EOC输出高电平时,芯片开始从串口接收地址数据并发送转换结果;当EOC输出低电平时,芯片进入AD转换周期,直到转换完毕,EOC会再次跳高。

在数据收发周期开始时,由CS片选信号跳低和EOC跳高为标志,由外部入输的I/O CLOCK作为串行通信的同步时钟,该周期被这个时钟信号划分为10个小的时钟周期。在ADDRESS口上,前4个周期接收4位地址信号,通过这4位地址信号来选中11个模拟量输入口其中的一个;在DATA OUT口上,10个时钟周期输出10位AD转换的数字量结果。需要注意的是,该结果来自于上一个数据收发周期中所确定的那个模拟量输入口,而本周期所确定的模拟量输入口所读进的数字转换结果将在下一个读写周期输出。

5.1.2 AD转换器数据读取程序的编写
虽然89C4051上有自带的串行口,但是TLC1543的串行通信较为特殊,需要在同一时钟周期内有两个I/O口在同时输入和输出,并且51自带的串口同步时钟难于保证在1543应用上的同步,于是本程序采用了用普通I/O口模拟串口的方法。

单片机的P3.0口连接AD转换器的I/O CLOCK口,通过对P3.0口输出的信号进行翻转的方法来制造时钟信号。P3.4连接DATA OUT 口,用移位寄存器的方式接收串行数据。即用P3.0控制时钟,用标志位C作为数据和地址的传递媒体,把转换结果通过C传递到可进行位操作的地址空间20H,接收一位,左移一位,直到8位传递完毕。同样,用P3.1连接到ADDRESS口,把地址数据存入可进行位操作的21H地址空间,通过标志位C把地址传入ADDRESS,传送一位,右移一位,直到4位地址传完。在前4个周期,地址传送和结果接收同时进行,后四个周期,只进行数据接收,因1543共有10个周期,所以8个周期完成后让P3.0空翻转两次,完成数据地址的收发过程,进入AD转换的过程,这时等待EOC的跳高信号,意味着转换完成,进入下一个数据收发过程。

以上过程进行4个循环,分别读取左右红外和左右灰度4传感器的数据,分别存放在02H,03H,04H,05H四个地址单元中。

5.2 运动控制程序模块
5.2.1 程序原理
机器人在实际运用中,需要作出的动作有:前进、后退、左转和右转,其中,左右转可以根据需要分别有以车身中心为圆心转动和以车轮为圆心转动。其工作原理为,通过89C51的P1口向电机驱动芯片L298传送4位的控制信号,控制左右两个电机的正转反转,再调用一段延时程序,完成动作。

其中,两个轮子反向转动时,可实现以车身中心为圆心转弯,当一个轮转动时,可实现以车轮为圆心转弯。

5.2.2 运动控制模块
?延时程序:通过循环调用,执行空语句实现
DELAY: MOV R5,#04H ;延时1s
DLOOP6: MOV R7,#0FFH ;延时250ms
DLOOP5: MOV R6,#0FFH ;
DLOOP4: NOP ;
NOP ;
DJNZ R6,DLOOP4 ;
DJNZ R7,DLOOP5 ;
DJNZ R5,DLOOP6 ;
RET

?直行程序:MOV P1,#50H
ACALL DELAY
RET
?后退程序:MOV P1,#A0H
ACALL DELAY
RET

?轮心左转:MOV P1,#10 H
ACALL DELAY
RET
?轮心右转:MOV P1,#40H
ACALL DELAY
RET
?轴心左转:MOV P1,#90H
ACALL DELAY
RET
?轴心右转:MOV P1,#60H
ACALL DELAY
RET

5.3 找球程序模块
5.3.1编程思路
找球的过程是通过对左右两个红外传感器的电压数字量比较实现的。当球在左前方时,左红外传感器接收光量大于右红外,电压数字量也大于右红外,这时控制机器人向左转。右转情况相同。当球在正前方时,左右传感器电压数字量相等,此时控制机器人直行。当球在背后时,两个红外传感器没有光接收,此时以车身中心为圆心进行转动,直到搜索到球为止。
找球程序有以下几点值得注意。

1) 找球目的在于尽快地接近球,于是当球不在正前方时,每次调整方向后,调入一段短距离直行程序,在修正方向的同时,不断地向球靠近;当球在正前方时,调入一段长距离执行程序,缩短找球时间。

2) 由于AD转换以及传感器的误差的存在,即使球完全正对机器人,也不可能得到两个完全相等的电压数字量,于是在比较时应设一个阈值,当左右差值小于阈值时,认为正对足球,调用长直行;当差值大于阈值时,再进行左右大小判断,调用转弯程序。

3) 当进行阈值判断时,差值有可能得到负数,在此情况下应求其相反数。

4) 当球不在红外传感器可视范围,即传感器接收到的红外信号为零时,由于周围环境的影响和暗电流的存在,其输出电压不可能为零,而是约0.3 V左右。


5.3.2 找球程序流程图


图5-2


5.4 进攻程序模块
5.4.1编程思路

进攻方向的判断是根据对面灰度的增减比较来进行的。在接近白色的区域,对红外光的反射量大,光电判读器即灰度传感器的输出电压高,在接近黑色区域,输出电压则低。在此,默认从白到黑为进攻方向进行编程。
当机器人找到球并持球时,程序进入进攻模块。该模块大致分为两个步骤,首先判断前进的方向是否是进攻的方向,之后,再判断前进的方向是否平行于边线正对球门。

在进攻程序之前的找球程序模块中,多次用到读取AD转换结果的程序READ,在该程序中,每执行一次,将读进4个传感器的转换结果,其中左灰度和右灰度的转换结果存放在04H和05H两个地址单元里。在判断正确前进方向时,03H和04H里存放着前一次的转换结果,先把它们转移到共工作寄存器R1,R2中,在读取当前的灰度转换结果,分别与前一次的结果进行比较,只要其中有一个值增大,就认定为前进方向错误,这时调用以车身中心为圆心的原地转动程序,当转过约180度后,读取当前灰度值保存,再调用一段短距离直行程序,再次比较灰度值变化趋势,直到左右两个灰度值都为减小,这时,机器人前进方向为正确进攻方向。

在大方向调正之后,许要调整机器人的前进角度,即使前进方向平行于边线,正对球门。这个动作左右两个灰度传感器转换结果之间的比较完成。先读取当前灰度值,左右两个结果进行比较,如果左灰度大于右灰度,说明前进方向偏左,调用原地转动程序向右偏转,调整后,再次读取,比较,直到左右相等为止,这时方向正对球门,调用长距离直行程序,开始进攻,把球攻入球门。

在两个灰度值大小比较时,与红外传感器有类似的问题需要注意:相减时出现负数时需要调整为相反数;判断相等时有传感器误差存在,需要设定阈值,差值小于阈值即认为相等。


图5-3


5.4.2进攻程序模块流程图


图5-4

5.5 碰撞避让程序模块
5.5.1碰撞避让程序的硬件实现
本设计的碰撞避让系统,是通过51单片机的中断控制功能实现的。MCS-51系列单片机有5个中断源,可分为2个中断优先级。本碰撞避让系统所用到的中断源为 ,即外部中断0。其请求信号由P3.2输入请求信号有效电平由IT0和设置,一旦输入信号有效,则将TCON中的IE0标志位置1,可向CUP申请中断。

5.5.2中断控制设置
MCS-51系统中断控制由4个专用寄存器组成。

  • 中断请求标志TCON


其中IE0为外部中断零的申请标志位。当外部中断源有请求时,该位置1,其复位由触发方式来设置。IT0为外部中断触发方式设置位,IT0=0时,为电平触发方式,该方式下,CUP每个机器周期对外部中断源采样,如果为低电平,则进入中断。该方式中CUP响应中断后不能自动清除IE标志位,所以中断返回前,外部中断源引脚上的低电平必须撤销。IT0=1时为脉冲触发方式,即在两个相邻的机器周期内 上的电平发生由高到低的跳变即进入中断IE=1保持到CUP响应中断时,才由硬件清除,该方式下,中断源低电平需要至少保持一个机器周期。

  • 中断开放和屏蔽 IE


其中,EA为总中断允许位,EA=1时开放中断,EA=0时关断一切中断。EX0为外部中断0允许位,EX0=1时允许。

  • 中断优先级设定 IP


其中PX0为外部中断0优先级设定,PX0=1时,为高优先级。

5.5.3 碰撞系统模块程序
中断控制设置:
SETB IT0 ;选择触发方式为电平触发
MOV IE,#85H ;EA=1,EX0=1,开放外部中断0
MOV IP,#01H ;PX0=1,外部中断零设为高优先级
中断服务子程序
INTR0: MOV P1,#50H ;后退
ACALL DELAY01 ;
ACALL TURN ;调头
RETI ;中断返回


5.6 整体程序
5.6.1编程思想

以上所述的几大功能模块,都可以独立使用,分别完成不同的任务,而把它们联系到一块,则可以形成一个完整的程序,使机器人在赛场上完成整场比赛。而把他们联系在一起的桥梁则是前中提到的持球探测壁以及其上的持球传感器。

持球传感器也一个红外接收管,不需要AD转换,只需要逻辑判断,当机器人持球时,该传感器从P3.6口输入一个高电平。整个程序运行过程中,通过查询方式来判断是否持球。当P3.6=0时,执行找球程序,当P3.6=1时,执行进攻程序。在整个程序中,中断开放,实现任何状态下的碰撞避让。

5.6.2整体程序流程图:

图5-5(点击放大)

 

第六章 测试及设计总结

6.1 足球机器人完成图

 

图6-1(点击放大): 足球机器人完成图


6.2功能测试
6.2.1 找球功能模块测试

  • 测试条件:用一个高功率红外发光管模拟比赛用球,在室内日光灯光源下进行测试。
  • 测试软件:找球程序模块,差值阈值0.05V,无红外情况输出电压0.45V。转弯延时0.25秒,直行延时0.5秒。
  • 测试结果:机器人能在40CM距离左右发现球,在向球运动过程中,前半段由于基础电压小,差值小于阈值,直线前进;当靠近球时,电压增大,差值大于阈值,机器人左右调整方向,逐渐靠近小球。

6.2.2 碰撞功能模块测试

  • 测试条件:面向墙壁直行,模拟碰撞场地挡板。
  • 测试软件:装入直行程序,中断开放,中断服务程序为倒退延时1秒,原地转弯延时1秒。
  • 测试结果:机器人在直行碰撞墙壁后,顺利进入中断服务程序,倒退并调头,之后中断返回继续直行。

6.2.3 方向判断功能模块测试

  • 测试条件:用黑白两色纸模拟场地基板,室内日光灯光源。
  • 测试软件:方向判断程序模块。默认由白向黑进攻。在起点采样,直行到另一色地面再次采样,比较判断。
  • 测试结果:由白向黑行进时,机器人判断方向为正确进攻方向 ,继续前进;由黑向白行进时,机器人发现方向错误,掉头前进。

6.3 设计结论
本足球机器人系统,从市场调研,资料查找,构思设计,到制作调试完毕,历时3个多月,最终基本达到设计要求。

6.3.1 本设计的优点及创新之处
本设计利用简单的器件使机器人拥有了较为完善的功能,其开放的程序及模块化的编程方法,用户能够根据需要方便的编写输入不同的程序,使得机器人的性能可以不断的完善。同时,留有诸多的扩展接口(9个AD转换接口,5个中断源)给今后的功能扩展留下了广阔的空间。
由于使用常规元件,并自己动手制作,整个开发制作成本约300元,大大低于市场同类产品。
机器人的外形结构可以根据需要改变,并实现一定功能,本设计中的“持球探测臂”就是通过机器人的外形实现功能,大大简化了软件程序的算法,是本设计的创新之处。

6.3.2 本设计可改进的方面
本设计属于第一次尝试,许多功能还不够完善,结构也过于简单。在以下方面有待改进。

  1. 移动方式方面:目前所使用的2个驱动轮方式都只有两个自由度,还不能实现任意定位和定向。若4个轮子都具备独立驱动和转向能力,则可实现全方位的运动,大大增加其灵活性。
  2. 电机驱动方式方面:目前所使用的逻辑驱动,只能实现电机的方向控制,远远不能满足需要,因此,若能利用PWM等方式对电机进行调速,这样在比赛中将会有更大的主动权。
  3. AD转换方面:目前能使用的红外传感器只能实现简单地计算比较。精确的计算差值,必利用差值对转向进行精确的控制,这也是改进的方向之一。
  4. 传感器方面:本次设计只使用了光电和微动开关两种传感器,而传感器的种类是繁多的,如超声波测距传感器,数字指南针等等,在足球机器人上都能发挥很大的作用。

 


6.4 设计参数:

6.5 配件表:


参考文献

  1. 曹巧媛电子工业出版社,2002
  2. 黄鸿,陈杰高等教育出版社,2002
  3. 葛伟亮,贺力勤北京理工大学出版社,2001
  4. 张有顺中国计量出版社,1998
  5. 蔡自兴清华大学出版社,2001
  6. 刘进长,辛健成河南科学技术出版社,2000
  7. (美)麦克.布瑞德科学出版社,2004
  8. (日)船仓一郎科学出版社,2004
  9. (日)高桥友以,秋田纯一,渡边正人科学出版社,2004
  10. AT89C4051 Description, ATMEL公司提供芯片资料
  11. TLC1543 Description, TEXAS INSTRUMENTS公司提供芯片资料
  12. L298N Description,ST公司提供芯片资料

=====================================================

第一部分:足球机器人毕业论文1--总体设计

第二部分:足球机器人毕业论文2--动力驱动及硬件电路设计

第三部分:足球机器人毕业论文3-- 软件程序设计

参加讨论: 我的毕业设计--足球机器人

 




关键词: 足球     机器人     毕业论文     软件     程序设计     调试     测试    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]