1、 论文编码 : TP39 C ap it al N or m al U n ive r sit y首都师范大学本科毕业设计论文 基于行为设计的移动机器人设计与实现 机器人机械设计模块 Design and Implementation of Mobile Robot Based on Behavior Design Robot Mechanical Solutions 论文作者 : 张倩颖 院 系 : 信息工程学院 专 业 : 计算机科学与技术 学 号 : 1111000055 指导老师 : 徐敏 完成日期 : 2015 年 4 月 25 日 首都师范大学本科毕业设计论文 I 摘要 本文简要介
2、绍了 基于行为设计的移动机器人设计与实现 -一种基于 Arduino 新型集成开发环境的超声波避障小车的工作原理 。其中 包括对小车的执行组件 、搭建结构、传感器 、 Arduino 单片机软件编程及试验结果的介绍。 本 方案 以 Arduino 单片机为控制核心 , 基于蝙蝠超声波测距的原理 ,利用超声波传感器 ,检测小车前方障碍物的距离 ,然后把数据传送给单片机。 当超声波检测到距离小车前方 25CM 有障碍物时单片机就发出指令让小车左转一定角度,然后停止行进 继续探测 .如果前方 25CM 没有障碍物则直行 ,否则继续左转一定角度。如此通过超声波不断的循环检测周边环境的情况进行自动避障。
3、 本系统在硬件设计方面,以 Arduino 单片机为控制核心,以超声波传感器检测前方障碍物,从而自动避障。在软件方面,利用 Arduino 语言进行编程,通过软件编程来控制小车运转。该系统在驱动方面采用 L298N 驱动 2 个直流电机带动小车运行。并且,用PWM 系统调速 ,控制小车前进的速度。实现小车根据外部环境 ,做出 前进、后退和转向 等 动作 ,从而 完成避障的功能, 本设计具有 有一定的实用价值。 关键词: Arduino 单片机;超声波传感器;避障 基于行为设计的移动机器人设计与实现 II ABSTRACT This paper describes the design of m
4、obile robot behavior-based design and implement - A new ultrasound-based integrated development environment Arduino obstacle avoidance car works. These include the implementation of car components, building structures, sensors, Arduino microcontroller software programming and test results presentati
5、on. The program to Arduino microcontroller core, based on the principle of ultrasonic distance measurement bats using ultrasonic sensors to detect obstacles in front from the car, and then transmits the data to the microcontroller. When the ultrasonic distance in front of the car detects obstacles 2
6、5CM SCM issued a directive to make the car turn left on an angle, then continue probing stop traveling. If there is no obstacle in front of the 25CM straight, turn left or continue certain angle. So the case of the ultrasonic continuous loop through the surrounding environment to automatically detec
7、t avoidance. The system hardware design to Arduino microcontroller core, with ultrasonic sensors detect obstacles in front, so that automatic obstacle avoidance. On the software side, the use of Arduino programming language to control the car running through software programming. The system uses the
8、 driver side L298N drive two DC motors drive the car running. And, with the PWM system speed, speed control car forward. Realize the car according to the external environment, made forward, backward, and steering movements, thus completing the obstacle avoidance function, the design has a certain pr
9、actical value. Key words: Arduino; ultrasonic sensors;obstacle avoidance 首都师范大学本科毕业设计论文 III 第一章 绪论 . 1 1.1 论文的选题背景 . 1 1.2 Arduino 单片机概述 . 2 1.3 Arduino 机 器人发展现状 . 3 1.4 Arduino 智能避障机器人研究意义和目的 . 4 1.5 项目主要研究内容 . 5 第二章 避障小车机器人的总体设计 . 6 2.1 设计原理与方法 . 6 2.2 硬件设计 . 6 2.3 软件设计 . 7 2.3.1 Arduino 语言 . 7 2.
10、3.2 Arduino IDE . 8 2.4 实验前期准备 . 10 第三章 硬件模块 . 12 3.1 各模块的的基本性能 . 12 3.1.1 单片机模块 . 12 3.1.2 电机、电机驱动模块 . 12 3.1.3 避障模块 . 14 3.1.4 电源模块 . 15 3.2 小车的基本搭建 . 15 3.3 连线 . 17 3.3.1 电机的连线 . 17 3.3.2 舵机的连线 . 18 3.3.3 超声波的连线 . 19 3.3.4 Arduino 超声波小车总体连线图: . 20 基于行为设计的移动机器人设计与实现 IV 第四章 软件模块 . 21 4.1 软件设计思路 . 2
11、1 4.2 电机前进模块 . 22 4.2 电机后退模块 . 22 4.3 电机停止工作模块 . 23 4.4 电机左转模块 . 23 4.5 电机右转模块 . 24 4.6 防卡死模块 . 25 第五章 实验及结果分析 . 26 5.1 预期目标 . 26 5.2 遇到的问题和解决方法 . 26 5.3 硬件的调试与整合 . 27 5.3.1 调试思路 . 27 5.3.2 调试超声波模块 . 27 5.3.3 电机调试 . 28 5.4 心得体会 . 28 第六章 设想与展望 . 30 参考文献 . 31 致谢 . 32 附录 . 33 超声波智能避障车程序( ARDUINO) . 33
12、首都师范大学本科毕业设计论文 1 第一章 绪论 1.1 论文的选题背景 随着现代计算机技术的不断发展和普及,机器人的发展已经遍及近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。小到智能玩具,大到机械、电子、冶金、交通、宇航、国防等各个领域。人们将计算机技术更加广阔的运用的人类生活中,制造能替代人劳动的机器一直是人类的梦想,并一直在为之努力。 在我们的生活里,有很多的机器人,如图 1.1 所示, 这两种机器人分别是扫地机器人 和灭火机器 人。他们在我们的生活中非常常见也很实用,他们的特点 就是无需人们的控制 ,能够自行运动完成他们的任务。那么 这就需 要一个非常必要的基础功能,那
13、就是能够感知并躲避前方的障碍物。 因此,在本次的设计中,我们将设计出一个能够避障 机器人 ,在具有这个基本功能的基础上,我们就可以为他附加更多的功能,赋予它更多的实用价值。选用 Arduino单片机作为控制核心,使用仿生超声波技术传感器进行避障的实现。 “智能 避障机器人 ”作为现代社会的新产物,也是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。 图 1.1 基于行为设计的移动机器人设计与实现 2 1.2 Arduino 单片机概述 Arduino,是一个基于开放原始码的软硬件平台,构建于开放原始码 simple I
14、/O 介面版,并且具有使用类似 Java, C 语言的 Processing/Wiring 开发环境。 它 包含两个主要的部分:硬件部分是可以用来做电路连接和 Arduino 电路板;另外一个则是 Arduino IDE,你的计算机中的程序开发环境。你只要在 IDE 中编写程序代码,将程序上传到Arduino 电路板后,程序便会告诉 Arduino 电路板要做些什么了。 Arduino 能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过 Arduino 的编程语言来编写程序,编译成二进制文件,收录进微控制器。对 Arduino 的编程是利
15、用 Arduino 编程语言 (基于 Wiring)和 Arduino 开发环境 (based on Processing)来实现的。基于 Arduino 的项目, 可以只包含 Arduino,也可以包含 Arduino 和其他一些在 PC 上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。可以自己动手制作,也可以购买成品套装 ;Arduino 所使用到的软件都可以免费下载 . 硬件参考设计 (CAD 文件 )也是遵循availableopen-source 协议 , 你可以非常自由地根据你自己的要求去修改他们 . Arduino 可以使用开发
16、完成的电子元件例如 Switch 或 sensors 或其他控制器、 LED、步进马达或其他输出装置。 Arduino 也可以独立运作成为一个可以跟软件沟通的接口,例如说: flash、 processing、 Max/MSP、 VVVV 或其他互动软件 。 Arduino 开发 IDE 接口基于开放源代码原,可以让您免费下载使用开发出更多令人惊艳的互动作品。 其主要特点如下: 1) 开放源代码的电路图设计,程序开发接口免费下载,也可依个人需求自己修改。 2) 使用低价格的微处理控制器 (AVR 系列控制器 ),可以采用 USB 接口供电,不需外接电源,也可以使用外部 9VDC 输入。 3)
17、Arduino 支持 ISP 在线烧,可以将新的 “bootloader”固件烧入 AVR 芯片。有了bootloader 之后,可以通过串口或者 USB to Rs232 线更新固件。 4) 可依据官方提供的 Eagle 格式 PCB 和 SCH 电路图简化 Arduino 模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接 (例如:红外线 ,超音波 ,热敏电阻 ,光敏电阻 ,伺服马达 ,等 ) 5)支持多种互动程序,如: Flash、 Max/Msp、 VVVV、 PD、 C、 Processing 等。 首都师范大学本科毕业设计论文 3 6)应用方面,利用 Ardu
18、ino,突破以往只能使用鼠标、键盘、 CCD 等输入的装 置的互动内容,可以更简单地达成单人或多人游戏互动。 我们 为什么要使用 Arduino?有很多的单片机和单片机平台都适合用做交互式系统的设计。例 如: Parallax Basic Stamp , Netmedia s BX-24 , Phidgets , MIT s Handyboard 和其它等等提供类似功能的。所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。 Arduino 同样也简化了同单片机工作的流程,但同其它系统相比 Arduino 在很多地方更具有优越性,特别适合老师,学生和一些业余爱
19、好者们使用:和其它平台相比, Arduino 板算是相当便宜了。最便宜的Arduino 版本可以自己动手制作,即使是组装好的成品,其价格也不会超过 200 元。 而且 Arduino 软件可以 跨平台 运行在 Windows, Macintosh OSX,和 Linux 操作系统。 而 大部分其它的单片机系统都只能运行在 Windows 上。 另外,它具有 简易的编程环境 。 初学者很容易就能学会使用 Arduino 编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的 使用 Processing 编程环境,所以如果学生学习过使用 Processing 编程环境
20、的话,那他们在使用 Arduino 开发环境的时候就会觉得很相似很熟悉。 软件开源并可扩展 Arduino 软件是开源的,对于有经验的程序员可以对其进行扩展。 Arduino 编程语言可以通过 C+库进行扩展,如果有人想去了解技术上的细节,可以跳过 Arduino 语言而直接使用 AVR C 编程语言(因为 Arduino 语言实际上是基于 AVR C 的)。类似的,如果你需要的话,你也可以直接往你的 Arduino 程序中添加 AVR-C 代码。 Arduino 基于 AVR 平台,对 AVR 库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度
21、,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用 AVR 代码编写精练,代码执行效率与代码体积都弱于 AVR 直接编译。 1.3 Arduino 机器人发展现状 我国 目前 的发展现状是 研制中的智能移动机器人智能水平并不高,只能说是智能移动机器人的初级阶段。智能移动机器人研究中当前的核心问题有两方面:一方面是,提高智能移动机器人的自主性,这是就智能移动机器人与人的关系而言,即希望智能基于行为设计的移动机器人设计与实现 4 移动机器人进一步独立于人,具有更为友善的人机界面。从长远来说,希望操作人员只要给出要完成的任务,而机器能自动形成完成该任务的步骤,并自动完成它。
22、另一方面是,提高智能移动机器人的适应性,提高智能移动机器人适应环境变化的能力,这是就智能移动机器人与环境的关系而言,希望加强它们之间的交互关系。 智能移动机器人涉及到许 多关键技术,这些技术关系到智能移动机器人的智能性的高低。这些关键技术主要有以下几个方面:多传感信息耦合技术,多传感器信息融合就是指综合来自多个传感器的感知数据 ,以产生更可靠、更准确或更全面的信息,经过融合的多传感器系统能够更加完善、精确地反映检测对象的特性 ,消除信息的不确定性 ,提高信息的可靠性;导航和定位技术,在自主移动机器人导航中,无论是局部实时避障还是全局规划,都需要精确知道机器人或障碍物的当前状态及位置,以完成导航
23、、避障及路径规划等任务;路径规划技术,最优路径规划就是依据某个或某些优化准则,在机器人工 作空间中找到一条从起始状态到目标状态、可以避开障碍物的最优路径;机器人视觉技术,机器人视觉系统的工作包括图像的获取、图像的处理和分析、输出和显示 ,核心任务是特征提取、图像分割和图像辨识;智能控制技术,智能控制方法提高了机器人的速度及精度;人机接口技术,人机接口技术是研究如何使人方便自然地与计算机交流。 在各国的智能移动机器人发展中,美国的智能移动机器人技术在国际上一直处于领先地位,其技术全面、先进,适应性也很强,性能可靠、功能全面、精确度高,其视觉、触觉等人工智能技术已在航天、汽车工业中广泛应用。日本由
24、于一 系列扶植政策,各类机器人包括智能移动机器人的发展迅速。欧洲各国在智能移动机器人的研究和应用方面在世界上处于公认的领先地位。中国起步较晚,而后进入了大力发展的时期,以期以机器人为媒介物推动整个制造业的改变,推动整个高技术产业的壮大 1.4 Arduino 智能避障机器人研究意义和目的 机器人的感觉传感器种类非常多,其中视觉传感器成为研制自动行走和驾驶机器人的重要部件。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。本设计以超声波作为 智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽
25、车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科首都师范大学本科毕业设计论文 5 技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。 本设计主要体现多功能小车的智能避障功能,本设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动 机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。 我们所设计的智能移
26、动机器人利用超声波能够在路面上顺利躲避障碍物,从而在导盲和辅助人类行动方面 也 有着重要意义。 1.5 项目主要研究内容 本设计题目为 基于行为设计的移动机器人设计与实现 是 以 Arduino 单片机为控制核心, 主要研究小车的避障功能。 利用超声波传感器检测道路上的障碍,然后把数据传送给单片机,当超声波检测到距离小车前方有障碍物时单片机就发出指令让小车左转一定角 度,然后停止运行继续探测 .如果前方没有障碍物就直走,否则继续左转一定角度。如此通过超声波不断的循环检测周边环境的情况进行自动避障。该功能的小车能够实现在无人操作的情况下在比较宽阔平坦的环境中避开障碍物。当机器人在行走过程中遇到前方障碍时 ,能够根据有效范围内的距离作出相应处理 ,由单片机软件发出转弯、直行、后退指令 ,避免机器与障碍物 相撞。