工程实践与科技创新Ⅳ-E
课程报告
2019 年 5 月 4 日
2
目 录
1 任务描述与硬件介绍 ............................................................................................................ 3
1.1 课程任务描述 ................................................................................................................. 3
1.2 硬件介绍 ......................................................................................................................... 3
2
小组分工和日程安排 ............................................................................................................ 4
2.1 小组分工 ......................................................................................................................... 4
2.2 日程安排 ......................................................................................................................... 4
3
任务一:小车巡线 ................................................................................................................ 5
3.1 巡线环境和基本策略 ..................................................................................................... 5
3.2 巡线逻辑和算法设计 ..................................................................................................... 5
3.3 巡线测试效果 ................................................................................................................. 6
3.4 讨论与改进 ..................................................................................................................... 6
4
任务二:小车走迷宫 ............................................................................................................ 7
4.1 迷宫环境介绍 ................................................................................................................. 7
4.2 迷宫任务的基本策略和算法设计 ................................................................................. 8
4.2.1 沿左墙直行(state1) .......................................................................................... 8
4.2.2 沿墙左转(state2) ............................................................................................ 8
4.2.3 碰撞后右转(state3) .......................................................................................... 9
4.3 走迷宫测试效果 ............................................................................................................. 9
4.4 讨论与改进 ................................................................................................................... 11
4.4.1 沿左墙直行 ............................................................................................................ 11
4.4.2 沿墙左转 ................................................................................................................ 11
4.4.3 碰撞后右转 ............................................................................................................ 11
5
拓展任务:蓝牙控制小车行进 .......................................................................................... 12
5.1 模块选择与蓝牙介绍 ................................................................................................... 12
5.1.1 通讯原理 ................................................................................................................ 12
5.1.2 模块参数 .............................................................................................................. 12
5.2 代码实现 ....................................................................................................................... 12
5.3 分析与思考 ................................................................................................................... 13
致谢 .......................................................................................................................................... 14
个人总结 .................................................................................................................................. 14
3
1 任务描述与硬件介绍
1.1 课程任务描述
工程实践与科技创新Ⅳ-E(以下简称“本课程”)的基本任务是实现基于 PSoC4 的智能
小车开发。我们需要使用 PSoC4 机器人控制实验平台,利用其上的 AD、IO、PWM、UART 等通
用接口,以及碰撞传感器、红外测距传感器、巡线传感器、编码器、电动机等元器件,实现
两个老师指定的任务和一个自选任务。两个必选任务分别为机器人巡线和机器人走迷宫,自
选任务可以在现有接口的基础上自行设计开发。为了完成这些任务,我们需要通过 C 语言进
行程序设计,并灵活应用相关的控制理论达到相关任务目标。
机器人巡线任务,就是让机器人小车沿着浅色地面上粘贴的黑色胶带行走,黑色胶带组
成一个封闭的路径,小车需要沿着这个路径逆时针或顺时针行走一圈。机器人小车通过向地
板投射三束光源并接收反射光的强度判断黑色胶带相对机器人小车中轴的位置,以此达到反
馈控制的目的。
机器人走迷宫任务实际上可以简化为机器人沿墙行走,因为对于任何一个迷宫,我们都
可以通过始终沿着左墙和右墙走出迷宫,我们在实现本课程任务时,即使用了这种方法,并
令小车沿着左墙行进。小车沿墙可以通过测量侧面离墙的距离进行反馈控制。当前方需要左
转时,小车会测量到左侧墙面距离突然增大;而前方需要右转时,小车会使用前方的碰撞传
感器判断前方有墙,小车即右转。任务的具体实现将会在后面具体介绍。
有关自选任务,我们通过分析小车端口,最终决定使用蓝牙芯片,通过 PSoC4 上的 UART
端口对小车进行控制。在手机端,我们使用蓝牙端口给小车发送一定的信息,小车收到信息
后进行对应的动作。
以上介绍了我们在本课程中需要完成的所有任务,我们将会在第三章中具体介绍任务细
节和实现方式。
1.2 硬件介绍
本小节中将会介绍我们使用的具体硬件性能。包括小车运动学构造、碰撞传感器、红外
距离传感器、光敏传感器和直流电机。
本课程中的小车采用差动驱动的方式,在小车的前方安装有两个独立驱动的主动轮,后
方中央安装有一个无动力的90°瑞典轮(全向轮),小车的转弯和直行需要通过控制两个轮子
的差速实现。在小车上载有 PSoC4 机器人控制平台,它具有 AD、IO、PWM、UART 等通用接口,
可以将不同的传感器接在平台上,在板上进行数据处理并输出执行器控制信号。
4
碰撞传感器实际上是一个位置开关传感器,它由一个开关和一个较长的金属弹片组成。
小车碰撞到前方的墙面时,墙面压迫金属弹片,而金属弹片进一步压迫开关,开关压下后输
出碰撞信号。离开墙面后开关被释放,碰撞信号即消失。
红外距离传感器基于三角测量的原理,是一个有源传感器。首先传感器发射一束略微倾
斜的红外光束,被测物体反射后被 CCD 检测器探测到。测量横向偏差即可测算得到被测物体
的大致距离。我们使用红外传感器测量小车侧面到墙的距离,以此达到控制小车沿墙行走的
反馈控制。
光敏传感器也是一个有源传感器,传感器发射一束白光并接收反射回来的光线强度判断
背景的颜色深浅,这可以用来判断巡线时黑色胶带的位置。
直流电机是通过板载的 PWM 端口输出信号进行控制的,而 PWM 值是通过各种传感器进
行反馈控制计算得到的,电机接收到不同的 PWM 值之后就会以不同转速和方向旋转。
2 小组分工和日程安排
2.1 小组分工
由于本课程中任务之间的关联相对较弱,我们决定将五个成员分为两组,先分别完成两
个必选任务,然后共同完成自选任务和报告撰写等收尾工作。
小组分工如表 1 所示。
表 1 本课程中的小组成员分工
任务 参与小组成员
机器人小车巡线 黄科力、徐盟欣
机器人小车走迷宫 严威豪、赵寅杰、刘启明
自选模块(蓝牙控制小车行进) 小组全体成员
视频、PPT、报告撰写与制作 小组全体成员
整个过程中,小组所有成员分工明确、尽心尽力,为任务的按时完成都付出了很多,没
有出现消极参与的情况。
2.2 日程安排
我们小组主要任务的进度如表 2 所示,我们花费了大量时间完成必选任务,并且在第八
周之前完成了自选任务的开发。
表 2 任务进度安排
周数 2 3 4 5 6 7 8 9~10
5
设备检查和代码环境安装
机器人小车巡线
机器人小车走迷宫
自选模块开发
报告撰写、PPT 和视频制作
3 任务一:小车巡线
3.1 巡线环境和基本策略
巡线所采用的地图是一个带有若干急转弯的闭合路径。沿着给定的路径巡线,难点是如
何在急转弯时将偏差控制在很小的范围内,否则一旦小车偏出轨迹,就可能导致巡线传感器
无法检测到车道,从而让小车失去控制或产生振荡。另外,找到一个让两轮转速相同的 PWM
值,从而让小车严格直行也很重要,否则小车不断偏离指定的方向,这不仅增加控制难度,
也会使小车变得不稳定。
针对以上问题,我们首先通过反复的参数调整,找到一个让小车基本直行的 PWM 值 。随
后利用小车底部三个光线传感器返回的数据判断路径中心黑线的位置,从而判断两个差动轮
的旋转速度。在这个过程中,我们需要反复调整,使得小车转弯效果流畅自然。
3.2 巡线逻辑和算法设计
巡线部分的任务主要分为两大步骤:位置识别和运动控制。以下分别介绍。
位置识别方面,我们是利用小车前方三个光线传感器的返回值判断小车相对车道线的位
置。假设三个传感器的返回值从左到右依次为 L、M、R,传感器判断为黑线的颜色阈值为 P
(初始默认为 1000)。 若小车位置偏左,则L > P,M < P(或M > P), R < P;若小车位置
偏右,则L < P,M < P(或M > P), R > P;若小车位于十字路口,则L < P,M < P,R < P。
各情况如图 1 所示,其中蓝色为传感器测试点,黑色为赛道。
图 1 巡线控制逻辑示意
根据传感器测得的小车位置信息,我们再对小车进行运动控制。考虑极端情况,当小车