足球机器人毕业论文3-- 软件程序设计与调试 写于: 星期日 03 七月 @ 04:39:17 |
这部分包括了:第五章 软件程序设计,第六章 测试及设计总结 足球机器人毕业论文3-- 软件程序设计与调试 第五章 软件程序设计
5.1 AD转换器的读写控制模块
在数据收发周期开始时,由CS片选信号跳低和EOC跳高为标志,由外部入输的I/O CLOCK作为串行通信的同步时钟,该周期被这个时钟信号划分为10个小的时钟周期。在ADDRESS口上,前4个周期接收4位地址信号,通过这4位地址信号来选中11个模拟量输入口其中的一个;在DATA OUT口上,10个时钟周期输出10位AD转换的数字量结果。需要注意的是,该结果来自于上一个数据收发周期中所确定的那个模拟量输入口,而本周期所确定的模拟量输入口所读进的数字转换结果将在下一个读写周期输出。 5.1.2 AD转换器数据读取程序的编写 单片机的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.2 运动控制模块 ?直行程序:MOV P1,#50H ?轮心左转:MOV P1,#10 H 5.3 找球程序模块 1) 找球目的在于尽快地接近球,于是当球不在正前方时,每次调整方向后,调入一段短距离直行程序,在修正方向的同时,不断地向球靠近;当球在正前方时,调入一段长距离执行程序,缩短找球时间。 2) 由于AD转换以及传感器的误差的存在,即使球完全正对机器人,也不可能得到两个完全相等的电压数字量,于是在比较时应设一个阈值,当左右差值小于阈值时,认为正对足球,调用长直行;当差值大于阈值时,再进行左右大小判断,调用转弯程序。 3) 当进行阈值判断时,差值有可能得到负数,在此情况下应求其相反数。 4) 当球不在红外传感器可视范围,即传感器接收到的红外信号为零时,由于周围环境的影响和暗电流的存在,其输出电压不可能为零,而是约0.3 V左右。
在进攻程序之前的找球程序模块中,多次用到读取AD转换结果的程序READ,在该程序中,每执行一次,将读进4个传感器的转换结果,其中左灰度和右灰度的转换结果存放在04H和05H两个地址单元里。在判断正确前进方向时,03H和04H里存放着前一次的转换结果,先把它们转移到共工作寄存器R1,R2中,在读取当前的灰度转换结果,分别与前一次的结果进行比较,只要其中有一个值增大,就认定为前进方向错误,这时调用以车身中心为圆心的原地转动程序,当转过约180度后,读取当前灰度值保存,再调用一段短距离直行程序,再次比较灰度值变化趋势,直到左右两个灰度值都为减小,这时,机器人前进方向为正确进攻方向。 在大方向调正之后,许要调整机器人的前进角度,即使前进方向平行于边线,正对球门。这个动作左右两个灰度传感器转换结果之间的比较完成。先读取当前灰度值,左右两个结果进行比较,如果左灰度大于右灰度,说明前进方向偏左,调用原地转动程序向右偏转,调整后,再次读取,比较,直到左右相等为止,这时方向正对球门,调用长距离直行程序,开始进攻,把球攻入球门。 在两个灰度值大小比较时,与红外传感器有类似的问题需要注意:相减时出现负数时需要调整为相反数;判断相等时有传感器误差存在,需要设定阈值,差值小于阈值即认为相等。
5.5 碰撞避让程序模块 5.5.2中断控制设置
5.5.3 碰撞系统模块程序
持球传感器也一个红外接收管,不需要AD转换,只需要逻辑判断,当机器人持球时,该传感器从P3.6口输入一个高电平。整个程序运行过程中,通过查询方式来判断是否持球。当P3.6=0时,执行找球程序,当P3.6=1时,执行进攻程序。在整个程序中,中断开放,实现任何状态下的碰撞避让。 5.6.2整体程序流程图: 图5-5(点击放大)
第六章 测试及设计总结 6.1 足球机器人完成图
图6-1(点击放大): 足球机器人完成图
6.2.2 碰撞功能模块测试
6.2.3 方向判断功能模块测试
6.3 设计结论 6.3.1 本设计的优点及创新之处 6.3.2 本设计可改进的方面
6.5 配件表:
===================================================== 第一部分:足球机器人毕业论文1--总体设计 第三部分:足球机器人毕业论文3-- 软件程序设计 参加讨论: 我的毕业设计--足球机器人
|
共1条
1/1 1 跳转至页
足球机器人毕业论文3-- 软件程序设计与调试
只看楼主 1楼
关键词: 足球 机器人 毕业论文 软件 程序设计 调试 测试
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |