【毕业论文】基于单片机控制的行走机器人设计.pdf_第1页
【毕业论文】基于单片机控制的行走机器人设计.pdf_第2页
【毕业论文】基于单片机控制的行走机器人设计.pdf_第3页
【毕业论文】基于单片机控制的行走机器人设计.pdf_第4页
【毕业论文】基于单片机控制的行走机器人设计.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机控制的行走机器人的设计 i 摘摘 要要 行走机器人是机器人中的一种 本文对行走机器人的硬件系统 软件及程序 设计等相关技术进行了研究 设计了一个以at89s52单片机为核心 采用红外反射 式传感器作为其视觉系统 直流电机为执行机构的行走机器人 本文首先概要地介绍了机器人的发展历程和国内外的现状 尤其着重介绍了 机器人在我国的发展状况 之后对行走机器人的定义及发展做了相关的说明 详 细介绍了行走机器人的运动控制系统的硬件电路的设计与实现 其中包括 at89s52 单片机内部资源 如何选择电机的驱动芯片 直流电机驱动芯片 lg9110 的详细说明 机器人基本行走的控制原理 红外发射 接收模块的原理及编程等 关键词 行走机器人 红外避障传感器 单片机 基于单片机控制的行走机器人的设计 ii abstract walking robot is one kind of robot this paper introduces the design and execution of walking robot using the reflected infrared sensor as the visual system and dc motors as execution framework the at89s52 single chip microcomputer is used for the control core in this system and the two ways pwm direct current electromotor for the motive force or power system this paper introduces the mechanism hardware system program control of the wheel robot this paper introduces the development of robot in the world especially talking about its development in china then this paper also talks what s a walking robot and its development the emphasis of this paper is the design of the movement control system and hardware circuit including the driver chip the introduction of lg9110 the rotation of the motor the infrared ray and the program design of these keyword walking robot ir evading obstacle sensors single chip microcomputer 基于单片机控制的行走机器人的设计 iii 目目 录录 第一章 前言 1 1 1 机器人发展的背景及意义 1 1 2 行走机器人的定义 4 1 3 课题研究的内容及意义 4 1 4 单片机系统的概述 5 1 5 行走机器人的结构 7 第二章 硬件电路设计 9 2 1 单片机 9 2 2 机器人的硬件连接 12 2 3 直流电机及驱动电路 13 2 4 传感器的设计 14 2 5 显示器 lcd 16 第三章 软件设计 19 3 1 keil 51 的使用 19 3 2 编程器 gf2110 的使用 19 3 3 程序的设计 20 3 4 拓展程序尾随小车 21 第四章 程序调试 25 4 1 基本程序测试 25 基于单片机控制的行走机器人的设计 iv 4 2 设定路径行走测试 27 4 3 避障行走测试 30 第五章 总结与展望 34 5 1 总结 34 5 2 展望 34 参考文献 36 致 谢 37 声 明 38 基于单片机控制的行走机器人的设计 1 第一章 前 言 1 1 机器人发展的背景及意义 机器人作为人类最重要的发明之一 随着现代科技的迅猛发展 现在已经广 泛应用于人类社会的各个领域 在制造业中诞生的工业机器人是继动力机 计算 机之后而出现的全面延伸人的体力和智力的新一代生产工具 机器人的应用是一 个国家工业自动化水平的重要标志 机器人有三个发展阶段 一种是第一代机器人 也叫示教再现型机器人 它 是通过一个计算机 来控制一个多自由度的一个机械 通过示教存储程序和信息 工作时把信息读取出来 然后发出指令 这样的话机器人可以重复的根据人当时 示教的结果 再现出这种动作 比方说汽车的点焊机器人 它只要把这个点焊的 过程示教完以后 它总是重复这样一种工作 它对于外界的环境没有感知 这个 力操作力的大小 这个工件存在不存在 焊的好与坏 它并不知道 那么实际上 这种从第一代机器人 也就存在它这种缺陷 因此 在 20 世纪 70 年代后期 人 们开始研究第二代机器人 叫带感觉的机器人 这种带感觉的机器人是类似人在 某种功能的感觉 比如说力觉 触觉 滑觉 视觉 听觉和人进行相类比 有了 各种各样的感觉 比方说在机器人抓一个物体的时候 它实际上力的大小能感觉 出来 它能够通过视觉 能够去感受和识别它的形状 大小 颜色 抓一个鸡蛋 它能通过一个触觉 知道它的力的大小和滑动的情况 第三代机器人 也是机器人学中一个理想的所追求的最高级的阶段 叫智能 机器人 那么只要告诉它做什么 不用告诉它怎么去做 它就能完成运动 感知 思维和人机通讯的这种功能和机能 那么这个目前的发展还是相对的只是在局部 有这种智能的概念和含义 但真正完整意义的这种智能机器人实际上并没有存 在 而只是随着我们不断的科学技术的发展 智能的概念越来越丰富 它内涵越 来越宽 本次实验的论文的研究对象就是第三代机器人 从三代机器人发展过程中 从另一个方面 对机器人从应用的角度进行了分 类 比如说工业机器人 它包括点焊 弧焊 喷漆 搬运 码垛 在工业现场中 工作的这种机器人 可以统称为工业机器人 那么从不同的应用中 到水下去作 业的叫水下机器人 到空间作业的叫空间机器人 同时又存在农业 林业 牧业 对医疗机器人叫医用机器人 还包括娱乐机器人 建筑和居室上用的机器人 所 以从应用分类 它包括从行业 应用角度 也可以进行这样简单的分类 我国机器人学研究起步较晚 但进步较快 已经在工业机器人 特种机器人 基于单片机控制的行走机器人的设计 2 和智能机器人各个方面区的了明显的成就 为我国机器人学的发展打下了坚实的 基础 我国工业机器人起步于20世纪70年代初 经过20多年的发展 大致可分为 三个阶段 70年代的萌芽期 80年代的开发期 90年代的实用化期 在第一台机 械手出现后20年 我国于1972年开始研制工业机器人 由上海起 接着天津 吉 林 哈尔滨 广州 昆明等十几个研究单位和院校分别开发了固定程序 结合式 液压伺服型同用机器人 并开始了机构学 包括步行机构 计算机控制和应用 技术的研究 这些机器人大约有1 3用于生产 在应用方面 在第二汽车厂建立的我国第一条采用国产机器人的生产线 东 风系列驾驶室多品种混流机器人喷涂生产线 该线由7台国产pj系列喷涂机器人 和pm系列喷涂机器人和周边设备构成 已运行十年 完成喷涂20万辆东风系列 驾驶室的生产任务 成为国产机器人应用的一个窗口 此外 还建立了几个弧焊 和点焊机器人工作站 与此同时 还研制了几种scara型装配机器人样机 并进 行了试验应用 在基础技术研究方面 解剖了国外10余种先进的机型 并进行了机构学 控 制编程 驱动传动方式 检测等基础理论与技术的系统研究 开发出具有国际先 进水平的测量系统 编制了我国工业机器人标准体系和12项国标 行标 为了跟踪国外高技术 80年代在国家高技术计划中 安排了智能机器人的研 究开发 包括水下无缆机器人 高功能装配机器人 dd驱动 和各类特种机器 人 进行了智能机器人体系结构 机构控制 人工智能机器视觉 高性能传感器 及新材料的应用研究已取得一批成果 这些技术的实用化将加速我国第二代机器 人的发展 经过80年代尤其是后50年的努力 吸引了160多个单位从事机器人及 其相关技术的研究力量 形成了京津 东北 华东 华南等机器人技术地区和十 几家优势单位 培养了一支2000多人的工业机器人设计 研制 应用队伍 造就 了一批机器人专家 使我国的工业机器人技术发展基本上可以立足于国内 90 年代初期 我国主要开发下列机器人及其相关技术 1 喷涂机器人 根据用户多方面的需求 开发了交流伺服离线编程机器人 喷涂机器人 顶喷 侧喷 仿形喷 小型马达器等系列产品 但还未达到产品的 定型 从需求出发开发了汽车喷涂生产线 马达 箱体 陶瓷等生产线的机器人 应用工程 共完成 20 条生产线及工作站 2 焊接机器人 进行了新机构的探索和焊缝跟踪 工装 变位机等的研究 近几年汽车行业和工程机械行业大量引进点焊 弧焊机器人 提出了许多应用工 程和维修技术问题需要解决 3 搬运机器人 根据用户需求 一些单位开发了码垛换力机器人 已在多条 基于单片机控制的行走机器人的设计 3 生产线上应用 4 装配机器人及视觉 力觉等传感器技术得到高技术计划的支持 研制了 高档样机 开始了应用工程 在 90 年代中期 国家已选择以焊接机器人的工程应用为重点进行开发研究 从而迅速掌握焊接机器人应用工程成套开发技术 关键设备制造 工程配套 现 场运行等技术 即以机器人焊接工艺为龙头 开展焊装线总体设计 线体总控及 多机通讯 新型焊接机器人用焊接电源 送丝机构 焊缝跟踪系统 机电精度 控制技术等开发及完善化 以及几条焊装生产线的全套应用及其可靠性作为主攻 目标 90 年代后期是实现国产机器人的商品化 为产业化奠定基础的时期 国内 一些机器人专家认为 应继续开发和完善喷涂 点焊 弧焊 搬运等机器人系统 应用成套技术 完成交钥匙工程 在掌握机器人开发技术和应用技术的基础上 进一步开拓市场 扩大应用领域 从汽车制造业逐渐扩展到其他制造业并渗透到 非制造业领域 开发第二代工业机器人及各类适合我国国情的经济型机器人以满 足不同行业多层次的需求 开展机器人柔性装配系统的研究 充分发挥工业机器 人在 cims 计算机集成制造系统 中的核心技术作用 在此过程中 嫁接国外 技术 促进国际合作 促使我国工业机器人得到进一步发展 为 21 世纪机器人 产业奠定更坚实的基础 近年来虽然我国的机器人自动化技术也取得了长足的发展 但是与世界发达 国家相比 还有一定的差距 如可靠性低于国外产品 由于我国机器人应用工程 起步较晚 应用领域窄 生产线系统技术与国外比有差距 以前我国从事机器人 研发和应用工程的单位相对较少 工业机器人的拥有量远远不能满足需求量 长 期大量依靠从国外引进 近年来这一现状有所缓解 现在中国有许多机器人研究 所和机器人公司 他们主要自己研发或代理国外其他公司的机器人 2005 年以 来我国各个大学基本都有自己的机器人实验室 同时国内也有各种机器人比赛 这也一定程度上促进了中国机器人产业的发展 世界首富比尔盖茨曾说过现在的机器人产业就像三十年代的 pc 机一样 将 来一定有很好的发展前途 韩国一位科学家预测在十年后韩国将家家都有机器 人 由此可见机器人是一个很有前途的行业 1 2 行走机器人的定义 以轮子作为移动机构 能够实现自主行驶的机器人 我们称之为行走机器人 行走机器人也叫做智能小车 行走机器人具有机器人的基本特征 易于再编 程 如果将常规的机器人操作手与挂在多用车或者牵引车的起重机进行比较 可 基于单片机控制的行走机器人的设计 4 发现两者非常相似 它们都具有许多连杆 这些连杆通过关节依次连接 这些关 节由驱动器驱动 在上述两个系统中 操作机的 手 都能在空中运动并可以运 动到工作空间的任何位置 它们都能承载一定的负载 并都用一个中央控制器控 制驱动器 然而 它们一个称为机器人 另一个称为操作机 也就是起重机 两者最根本的不同是起重机是由人来控制驱动器 而机器人操作手是由计算机编 程控制 正是通过这一点可以区别一台设备到底是简单的操作机还是机器人 通 常机器人设计成由计算机或类似装置来控制 机器人的动作受计算机监控的控制 器所控制 该控制器本身也运行某种类型的程序 因此 如果程序改变了 机器 人的动作会相应改变 我们希望一台设备能够灵活地完成各种不同的工作而无需 重新设计硬件装置 当然在能力范围以内 简单的操作机 或者说起重机 除 非一直由操作人员操作 否则无法做到这一点 目前各国关于机器人的定义都各不相同 在美国标准中 只有易于再编程的 装置才认为是机器人 因此 手动装置 比如一个多自由度的需要操作员来驱动 的装置 或固定顺序机器人 例如有些装置由强制启停控制驱动器 其顺序是固 定的并且很难更改 都不认为是机器人 行走机器人 同遥控小车不同 后者需 要操作员来控制其转向 启停和进退 比较先进的遥控车还能控制其速度 常见 的模型小车 都属于这类遥控车 行走机器人 则可以通过计算机编程来实现其 对行驶方向 启停以及速度的控制 无需人工干预 操作员可以通过修改行走机 器人的计算机程序来改变它的行驶方式 因此 行走机器人具有再编程的特性 是机器人的一种 1 1 3 课题研究的内容和意义 1 3 1 研究的内容 本文主要研究行走机器人以下方面的内容 1 行走机器人机械结构的了解 车轮采用玩具小车的车轮 行走机器人的 车架通过螺钉与电路板进行固定 2 行走机器人运动系统的硬件设计 硬件电路设计包括到单片机最小系统 的设计 电机驱动电路的设计及红外避障系统的电路设计 3 行走机器人的关键技术 通过编程使行走机器人能够自动避障 跟踪 设定路径行走等功能 并通过 lcd 显示器显示机器人的状态 1 3 2 研究的意义 本课题所研究行走机器人所用的控制芯片是 at89s52 单片机 本课题的研 究有助于我们对机器人的了解 对 21 世界重要技术机器人的应用和开发有很好 基于单片机控制的行走机器人的设计 5 的认识 同时也将大学所学知识有更好的理解和回顾 更培养了我们各方面的能 力 如行走机器人的研究将有助于智能车辆的研究 智能车辆驾驶任务的自动完 成将给人类社会的进步带来巨大的影响 例如能切实提高道路网络的利用率 降 低车辆的燃油消耗量 尤其是在改进道路交通安全等方面提供了新的解决途径 1 4 单片机系统概述 1 4 11 4 1 单片机控制系统的特点 所谓单片机 single chip microcomputer 是指在一个集成芯片中 集成有微处 理器 cpu 存储器 ram 和rom 基本的i o 接口以及定时 计数部件 即 在一个芯片上实现一台微型计算机的基本功能 如果是简单控制对象 只需利这 样的单片机作为控制核心 不需要增加别的外部设备和扩展某些i o 接口就能实 现 对于较复杂的系统 单片机的应用和i 用接口扩展也很方便 这样的系统归 纳起来有以下特点 1 由于系统规模较小 其本身不具有自我开发能力 需借助专用的开发工 具进行系统的开发和调试 使得实际应用系统简单实用 成本低 效益好 2 系统配置以满足对象的控制要求为出发点 使得系统具有较高的性能价 格比 3 应用系统通常将程序驻留在rom 中 无需软硬磁盘作软件载体 使系统 不易受到干扰 可靠性高 使用方便 4 应用系统所用存储器芯片可选用eprom e prom otp 芯片或利用掩 膜形式生产 便于成批开发和应用 许多单片机如68 系列和80c51 系列 开发 芯和应用芯片相互配套 使应用系统成本大大降低 5 由于系统小巧玲珑 控制 功强 体积小 便于安装于被控设备之内 大大推动了机电一体化产品的开发 加数控机床 机器人 洗衣机 电冰箱 电饭锅等都是典型的机电一体化设备和 产品 1 4 2 单片机技术的发展状况 单片机的出现是随着微型计算机及其 cpu 芯片在智能测控系统中的应用 而发展起来的 从时间上来讲 可从8 位单片机芯片出现开始 大致可归纳为三 个阶段 第一阶段 初级阶段 1976 1978 年 该阶段是以较简单的8 位低档单片 机为主 其主要代表芯片为intel 公司的mcs 8048 该芯片内主要集成有8 位 cpu 并行i o 接口 8 位定时 计数器 寻址范围最大4kb 不带有串行口 基于单片机控制的行走机器人的设计 6 第二阶段 普及阶段 1978 年以后 该阶段仍以8 位机为主 主要增加了 串行口 多级中断处理系统 16 位定时 计数器 除片内ram rom 容量加 大外 片外寻址可达64kb 有的片内还常有a d d a 转换通道 这阶段单片 机以intel 公司的mcs 5l 系列 motorola 公司的6801 系列和zilog 公司的z8 系 列为代表 上述机型由于功能强 使用方便 目前大都仍在应用 第三阶段 1982 年以后 推出了高性能的16 位单片机 该单片机不但性能 更加提高 而且主频增加 运算速度加快 更加适用于快速度 高精度 快响应 的应用场合 其主要代表为intel 公司的mcs 96 系列等 目前开发推出单片机 的公司很多 各种高性能单片机芯片市场也异常活跃 新技术的不断采用 更加 使单片机的种类 性能以及应用领域不断扩大和提高 如atmel 公司开发的 89c51 芯片 片内含有4kb e prom 又如89c5lfa 芯片 片内有8kb eprom89c51fb 片内含1616kb e prom 使得其可储存的程序量大大增加 其控制能力也大大增强 尤其在片外扩展ram 采用e prom 芯片 使应用系 统的控制性能和可靠性大大提高 基于单片机控制的行走机器人的设计 7 1 4 3 本论文单片机的选择 选择单片机的型号为at89s52 图1 4 3单片机at89s52引脚i o定义图 1 5 机器人结构 1 5 1 设计综述 本次论文是以实验室欧鹏机器人实验箱为对象进行的研究 1 5 2 行走机器人车体 行走机器人的车架长约 17 cm 后端宽约 10cm 前端宽 8cm 车架距电路板的 距离为 3 7cm 此行走机器人共有二个轮 作为驱动轮 在车架上打若干个孔作 为固定电路板和固定车轮 驱动轮通过扎带固定到车架上 基于单片机控制的行走机器人的设计 8 1 5 3 车轮 此行走机器人共有二车轮 车轮实物如下图所示 图 1 5 3 车轮 1 5 4 电源 行走机器人的电源由四节 1 5v 的干电池组成 电源直接给单片机和驱动模 块供电 电池放在电池盒中 由一开关控制 当开关打到 on 挡时 指示灯亮 表明电源正作 基于单片机控制的行走机器人的设计 9 第二章 硬件电路的设计 2 2 1 1 单片机 at89s52 at89s52 2 2 1 1 1 1 at89s52主要功能列举如下 主要性能 1 与mcs 51单片机产品兼容 2 1000次擦写周期八个中断源 3 全静态操作 0hz 33hz 4 8k字节在系统可编程flash存储器 5 32个可编程i o口线 6 八个中断源 7 全双工uart串行通道 8 三个16位定时器 计数器 9 低功耗空闲和掉电模式 10 掉电后中断可唤醒 11 看门狗定时器 12 双数据指针 2 2 1 2 1 2 at89s52at89s52各引脚功能介绍 vcc 电源 gnd 地 p0 口 p0口是一个8位漏极开路的双向i o口 作为输出口 每位能驱动8 个ttl逻辑电平 对p0端口写 1 时 引脚用作高阻抗输入 当访问外部程序 和数据存储器时 p0口也被作为低8位地址 数据复用 在这种模式下 p0具有内部上拉flash编 程时 p0口也用来接收指令字节 在程序校验时 输出指令字节 程序校验时 需要外部上拉电阻 基于单片机控制的行走机器人的设计 10 p1 口 p1 口是一个具有内部上拉电阻的8 位双向i o 口 p1 输出缓冲驱 动4 个ttl 逻辑电平 对p1 端口写 1 时 内部上拉电阻把端口拉高 此时 可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 iil 此外 p1 0和p1 2分别作定时器 计数器2的外部计数输入 p1 0 t2 和时器 计数器2的触发输入 p1 1 t2ex 具体如下表所示 在flash编程和校验时 p1 口接收低8位地址字节 p2 口 p2 口是一个具有内部上拉电阻的8 位双向i o 口 p2 输出缓冲器 能驱动4 个ttl 逻辑电平 对p2 端口写 1 时 内部上拉电阻把端口拉高 此 时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原 因 将输出电流 iil 在访问外部程序存储器或用16位地址读取外部数据存 储器 例如执行movx dptr 时 p2 口送出高八位地址 在这种应用中 p2 口使用很强的内部上拉发送1 在使用8位地址 如movx ri 访问外部数 据存储器时 p2口输出p2锁存器的内容 在flash编程和校验时 p2口也接收高8 位地址字节和一些控制信号 p3 口 p3 口是一个具有内部上拉电阻的8 位双向i o 口 p2 输出缓冲器 能驱动4 个ttl 逻辑电平 对p3 端口写 1 时 内部上拉电阻把端口拉高 此 时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原 因 将输出电流 iil p3口亦作为at89s52特殊功能 第二功能 使用 如下 表所示 在flash编程和校验时 p3口也接收一些控制信号 rst 复位输入 晶振工作时 rst脚持续2个机器周期高电平将使单片机复 位 看门狗计时完成后 rst 脚输出96个晶振周期的高电平 特殊寄存器 auxr 地址8eh 上的disrto位可以使此功能无效 disrto默认状态下 复位 高电平有效 ale prog 地址锁存控制信号 ale 是访问外部程序存储器时 锁存低 8 位地址的输出脉冲 在flash编程时 此引脚 prog 也用作编程输入脉冲 在一般情况下 ale 以晶振六分之一的固定频率输出脉冲 可用来作为外 部定时器或时钟使用 然而 特别强调 在每次访问外部数据存储器时 ale 脉冲将会跳过 如果需要 通过将地址为 8eh 的 sfr 的第 0 位置 1 ale 操 作将无效 这一位置 1 ale 仅在执行 movx 或 movc 指令时有效 否则 ale 将被微弱拉高 这个 ale 使能标志位 地址为 8eh 的 sfr 的第 0 位 的 设置对微控制器处于外部执行模式下无效 psen 外部程序存储器选通信号 psen 是外部程序存储器选通信号 基于单片机控制的行走机器人的设计 11 at89s52从外部程序存储器执行外部代码时 psen在每个机器周期被激活两次 而在访问外部数据存储器时 psen将不被激活 ea vpp 访问外部程序存储器控制信号 为使能从0000h 到ffffh的外部程 序存储器读取指令 ea必须接gnd 为了执行内部程序指令 ea应该接vcc 在flash编程期间 ea也接收12伏vpp电压 寄存器 寄存器t2con 和t2mod 包含定时器2 的控制位和状态位 寄存 器对rcap2h和rcap2l是定时器2的捕捉 自动重载寄存器 中断寄存器 各中断允许位在ie寄存器中 六个中断源的两个优先级也可在 ie中设置 定时器0 和定时器1 在at89s52 中 定时器0 和定时器1 的操作 与at89c51 和at89c52 一样 定时器2 定时器2是一个16位定时 计数器 它既可以做定时器 又可以做事 件计数器 其工作方式由特殊寄存器t2con中的c t2位选择 定时器2有三种工作 模式 捕捉方式 自动重载 向下或向上计数 和波特率发生器 定时器2有2 个8位寄存器 th2和tl2 在定时工作方式中 每个机器周期 tl2 寄存器都会 加1 由于一个机器周期由12 个晶振周期构成 因此 计数频率就是晶振频率的 1 12 中断 at89s52 有6个中断源 两个外部中断 int0 和int1 三个定时中 断 定时器0 1 2 和一个串行中断 这些中断如图10所示每个中断源都可以 通过置位或清除特殊寄存器ie 中的相关中断允许控制位分别使得中断源有效或 无效 ie还包括一个中断允许总控制位ea 它能一次禁止所有中断 如表3 3所 示 ie 6位是不可用的 对于at89s52 ie 5位也是不能用的 用户软件不应给 这些位写1 它们为at89系列新产品预留 定时器2可以被寄存器t2con中的tf2 和exf2的或逻辑触发 程序进入中断服务后 这些标志位都可以由硬件清0 实 际上 中断服务程序必须判定是否是tf2 或exf2激活中断 标志位也必须由软 件清0 定时器0和定时器1标志位tf0 和tf1在计数溢出的那个周期的s5p2被置位 它们的值一直到下一个周期被电路捕捉下来 然而 定时器2 的标志位tf2 在 计数溢出的那个周期的s2p2被置位 在同一个周期被电路捕捉下来 xtal1 振荡器反相放大器和内部时钟发生电路的输入端 xtal2 振荡器反相放大器的输出端 晶振特性 at89s52 单片机有一个用于构成内部振荡器的反相放大器 xtal1 和xtal2 分别是放大器的输入 输出端 石英晶体和陶瓷谐振器都可 基于单片机控制的行走机器人的设计 12 以用来一起构成自激振荡器 从外部时钟源驱动器件的话 xtal2 可以不接 而从xtal1 接入 如图3 3 所示 由于外部时钟信号经过二分频触发后作为外 部时钟电路输入的 所以对外部时钟信号的占空比没有其它要求 最长低电平持 续时间和最少高电平持续时间等还是要符合要求的 2 2 2 2 2 机器人的硬件安装 2 2 1 2 2 1 机器人的车身安装 本次课题车身的零配件采用欧鹏机器人实验箱的配套器械 组成的小车如 图所示 图2 2 1 机器人车身 2 2 2 2 2 2 串口的连接 机器人教学板通过串口电缆连接到 pc 机 或笔记本电脑 上以便与用户交 互 如果计算机有串行接口 直接使用串口连接电缆 2 2 3 2 2 3 isp 下载线的连接 机器人程序通过连接到 pc 机或者笔记本电脑的并口上的 isp 下载线来下载 到教学板上的单片机内 2 2 42 2 4 电池的安装 本教材使用的机器人采用五号碱性电池给机器人电机和教学板供电 在继 续下面的任务前 请先检查机器人底部电池盒内是否已经装好电池 并是否有 正常的电压输出 如果没有 请更换新的电池 更换过程中 确保每颗电池都 按照塑 料盒子里面标记的电池极性 和 方向装入 基于单片机控制的行走机器人的设计 13 2 3 直流电机及驱动模块 2 3 1 直流电机介绍 直流电机现在有广泛的应用 它可以精确地控制旋转速度或转矩 直流电 机是通过两个磁场的互作用产生旋转 定子通过永磁体或受激励电磁铁产生一个 固定磁场 转子由一系列电磁体构成 当电流通过其中一个绕组时会产生一个磁 场 对有刷直流电机而言 转子上的换向器和定子的电刷在电机旋转时为每个绕 组供给电能 通电转子绕组与定子磁体有相反极性 因而相互吸引 使转子转动 至与定子磁场对准的位置 当转子到达对准位置时 电刷通过换向器为下一组绕 组供电 从而使转子维持旋转运动 电机起到一个低通滤波器作用 将 pwm 信号转换为有效直流电平 电机 的转速与电机两端的电压成比例 而电机两端的电压与控制波形的占空比成正 比 因此电机的速度与占空比成比例 占空比越大 电机转得越快 当占空比 1时 电机转速最大 我们通过控制占空比来控制行走机器人的速度 我们通 过单片机给驱动芯片输入一定频率的pwm信号来控制电机的转速 3 2 3 22 3 2 电机驱动模块简介 直流电机驱动电路使用最广泛的就是h型全桥式电路 这种驱动电路可以很 方便实现直流电机的四象限运行 分别对应正转 正转制动 反转 反转制动 现在市面上有许多集成有桥式电路的电机专用驱动芯片 如l298 lmd18200 lg9110等 性能比较稳定可靠 在此行走机器人的设计过程中我们选用了 lg9110作为电机的驱动芯片 2 3 32 3 3 驱动芯片lg9110介绍 特点 1 低静态工作电流 2 宽电源电压范围 2 5v 12v 3 每通道具有800ma 连续电流输出能力 4 较低的饱和压降 5 ttl cmos 输出电平兼容 可直接连cpu 6 输出内置钳位二极管 适用于感性负载 7 控制和驱动集成于单片ic 之中 8 具备管脚高压保护功能 基于单片机控制的行走机器人的设计 14 2 3 4 2 3 4 驱动模块原理 使用两块lg9110芯片对直流电机进行驱动 给每块芯片的6 7管脚分别不 同的电平既可以实现对电机正反转的控制 一高一低为正转 一低一高为反转 两管脚同时为高电平或低电平电机不转 在此基础上就可以实现行走机器人完成 各种方向的运动 2 42 4 传感器的设计 2 42 4 1 1 传感器的选择 传感器的种类主要有光电传感器 超声波传感器 红外传感器等 相对于其 它传感器红外传感器具有价格低 体积小 性能稳定 检测范围可调 应用简单 等特点 所以此次设计设计中我们选择红外传感器 用红外发射二极管和tl0038 芯片组成红外发射和接收模块 在本次研究中应用于探测障碍物 从而让机器人 在行走过程中做出正确的判断 以避开障碍物继续前进 2 42 4 2 2 红外传感器的原理 不接触探测物体并不需要任何就像机器视觉那样复杂的东西 许多机器人使 用雷达 radar 或者声纳 sonar 一个更简单的系统是使用红外光来照 射机器人的路线 然后确定何时有光线从目标反射回来 由于红外远程控制技术 的发展 红外线发射器和探测器已经很普及并且价格便宜 我们在行走机器人上 建立的红外物体探测系统在许多方面就像汽车的前灯 当汽车前灯的射出的光从 障碍物体反射回来时 你的眼睛发现障碍物体 然后你的大脑处理这些信息 并 据此控制你的身体引导汽车 行走机器人使用红外线两极管led作为前灯 他们 发射红外光 在一些情况下 红外线从物体反射从机器人前进的方向折回 行走 机器人的眼睛是红外检测器 红外检测器发出信号来表明它们是否检测到从物体 反射回的红外线 行走机器人的大脑 at89s52单片机据此做出判断 通过编程 使单片机at89s52的管脚输出38khz的方波信号 经红外发射管之后变成红外线 信号 tl0038是集红外线信号接收放大为一体的接收器 其中心接收频率为 38khz 输出为ttl电平 平时输出高电平 当接收到红外信号之后输出变成低 电平 4 基于单片机控制的行走机器人的设计 15 图2 4 2 用红外光探测障碍物 2 42 4 3 3 搭建ir发射和探测器对 本设计中 搭建红外线发射和检测器对 元件清单 1 两个红外检测器 1 两个ir led 3 四个470 电阻 4 两个9013三极管 搭建红外线前灯 电路板的每个角安装一个ir组 ir led和检测器 1 断开主板和伺服系统的电源 2 建立电路 基于单片机控制的行走机器人的设计 16 2 4 42 4 4 原理图 图2 4 4 左侧和右侧ir组原理图 2 2 5 5 lcd显示器 2 5 1 2 5 1 认识lcd显示器 lcd1602有八个数据引脚 d0 d7 与at89s52相连 用于接收指令和数据 at89s52通过rs rw和e这三个端口控制lcd模块 表4 4 1为lcd的引脚说明 编编 号号 符符 号号 引脚说明引脚说明 编编 号号 符符 号号 引脚说明引脚说明 1 gnd 电源地 9 d2 双向数据口 2 vcc 电源正极 10 d3 双向数据口 3 v0 对比度调节 11 d4 双向数据口 4 rs 数据 命令选择 12 d5 双向数据口 5 r w 读 写选择 13 d6 双向数据口 6 e 模块使能端 14 d7 双向数据口 7 d0 双向数据口 15 bla 背光源正极 8 d1 双向数据口 16 blk 背光源地 图2 5 1 lcd显示器引脚说明 基于单片机控制的行走机器人的设计 17 vo 直接接地 对比度最高 rs mcu 写入数据或者指令选择端 mcu 要写入指令时 使 rs 为低电平 mcu 要写入数据时 使 rs 为高电平 r w 读写控制端 r w 为高电平时 读取数据 r w 为低电平时 写入数 据 e lcd 模块使能信号控制端 写数据时 需要下降沿触发模块 d0 d7 8 位数据总线 三态双向 该模块也可以只使用 4 位数据线 d4 d7 接口传送数据 bla 需要背光时 bla 串接一个限流电阻接 vcc blk 接地 blk 背光地端 2 5 2 2 5 2 lcd 控制器接口说明 在 lcd 时序图中 在将 e 置高电平前 先设置好 rs 和 r w 信号 在 e 下 降沿到来之前 准备好写入的命令字或数据 只需在适当的地方加上延时 就可 以满足要求了 读状态 输入 rs l rw h e h 输出 db0 db7 状态字 写指令 输入 rs l rw l e 下降沿脉冲 db0 db7 指令码 输出 无 读数据 输入 rs h rw h e h 输出 db0 db7 数据 写数据 输入 rs h rw l e 下降沿脉冲 db0 db7 数据 输出 无 2 5 3 2 5 3 编写 lcd 模块驱动程序 通过编写程序来驱动 lcd 显示器 并显示你的机器人所要显示的字符或字 符串 这样你就可以不需要调试终端的帮助而显示字符或者字符串 元件清单 基于单片机控制的行走机器人的设计 18 1 1602lcd 显示器 2 跳线 线路连接 图2 5 3 lcd模块于mcu连接图 基于单片机控制的行走机器人的设计 19 第三章 软件设计 3 3 1 1 keil c51的使用 keil c51编译器为8051微控制器的软件开发提供了c语言环境 同时保留了汇 编代码高效 快速的特点 c51编译器的功能不断增强 使我们可以更加贴近cpu 本身 及其它的衍生产品 c51已被完全集成到uvision2的集成开发环境中 这个集 成开发环境包含 编译器 汇编器 实时操作系统 项目管理器 调试器 uvision2 ide 可为它们提供单一而灵活的开发环境 在此次行走机器人的设计中我们选择keil c51对汇编程序进行调试和编译 5 3 3 1 1 1 1 新建工程 在进入keil c51之后我们要先建立一个工程文件 点击project之后点击new project即可新建一个工程 3 3 1 2 1 2 新建文件 新建工程之后要在keil c51中新建 asm文件 3 3 1 3 1 3 添加文件到工程 建立完工程文件和 asm文件之后 要将新建的 asm文件添加到工程 3 3 1 4 1 4 对文件进行编译 文件添加到工程之后就可以对文件进行编译 如果编译正确就会在所建工程 中自动生成 hex的文件 如果编译有错误就会有相应的提醒 单击 即可进行编 译 3 3 2 2 编程器gf2110的使用 在此次设计中我们使用编程器gf2110进行下载程序 所使用的软件也是 gf2110 我们通过使用它将程序下载到单片机芯片 3 3 2 1 2 1 选择下载的芯片 在进入软件之后首先要选择单片机芯片 使用的是atmel 公司的at89s52单 片机 基于单片机控制的行走机器人的设计 20 3 3 2 2 2 2 读入文件 选择好芯片之后就要将在keil c51工程文件中产生的 hex文件读到芯片中 3 3 2 3 2 3 将程序写入芯片 读入到文件之后点击 即可进行自动编程 点击确定按钮即可将程序下载到 芯片 3 3 3 3 程序的设计 3 3 3 1 3 1 行走机器人前进 后退 左转 右转控制 单片机控制引脚的高电平持续时间决定了伺服电机旋转的速度和方向 for 循环的参数控制了发送给电机的脉冲数量 由于每个脉冲的时间是相同的 因 而for循环的参数也控制了伺服电机运行的时间 6 左侧电机逆时针旋转 右侧电机顺时针旋转 因此两个轮子转向机器人的 前端 使机器人向前运动 后退 左转 右转也同理 下面程序可以对机器人 前进行走的控制有很好的理解 include include int main void int counter uart init printf program running n for counter 1 counter 65 counter 运行3秒 p1 1 1 delay nus 1700 p1 1 0 p1 0 1 delay nus 1300 p1 0 0 delay nms 20 基于单片机控制的行走机器人的设计 21 while 1 3 2 3 行走机器人避障流程 在程序开始时调用前进子程序 机器人进行前进展示 这是通过单片机不断 地发射频率为38khz的脉冲 红外接收电路接收到之后会发生电平的变化 接收 模块tl0038输出为ttl电平 平时输出为高电平 当收到码信号之后输出低电平 这是根据左右红外接收器的电平变化来判断是左边还是右边出现障碍物 如果是 左边出现障碍物则行走机器人右转 反之如果右边出现障碍物之后机器人左转 探测障碍物很重要的一点是在机器人撞到它之前给机器人留有绕开它的空 间 如果前方有障碍物 机器人会使用脉冲命令避开 然后探测 如果物体还在 再使用另一个脉冲来避开它 机器人能持续使用电机驱动脉冲和探测 直到它绕 开障碍物 然后它会继续发向前行走的脉冲 3 4 3 4 拓展程序 尾随小车的功能 3 4 1 3 4 1 尾随小车的介绍 让一个机器人跟随另一个机器人行走 跟随的机器人也叫尾随车 尾随车要 正常工作必须知道距离引导车有多远 如果尾随车落在后面 它必须能察觉并加 速 如果尾随车距离引导车太近 它也要能察觉并减速 如果当前距离正好合适 它会等待直到测量距离变远或变近 距离仅仅是由机器人和其它自动化机器需要控制一种数值之一 当一个机器 被设计用来自动维持某一数值 比如距离 压力或液位等 它一般都包含一个控 制系统 这些系统有时由传感器和阀门组成 或者由传感器和电机组成 在机器 人里面 由传感器和连续旋转电机组成 还必须有某些处理器可以接受传感器的 测量结果并把它们转化为机械运动 必须对处理器编程来基于传感器的输入做出 决定 从而控制机械输出 闭环控制是一种常用的维持控制目标数据的方法 它很好地帮助机器人保持 与一个物体之间的距离 闭环控制算法类型多种多样 最常用的有滞后 比例 积分以及微分控制 所有这些控制方法都将在 过程控制 教材中详细介绍 7 3 4 2 3 4 2 对尾随车编程 1 输入 保存并运行程序followingrobot c 2 把大小为8 5 11英寸的纸片置于机器人的前面 就像障碍物墙 3 机器人应该维持它和纸片之间的距离为预定的距离 基于单片机控制的行走机器人的设计 22 4 尝试轻轻旋转一下纸片 机器人应该跟随之旋转 5 尝试用纸片引导机器人四处运动 机器人应该跟随它 6 移动纸片距离机器人特别近时 机器人应该后退 远离纸片 include define leftir p1 2 define rightir p3 5 define leftlaunch p1 3 define rightlaunch p3 6 define kpl 70 define kpr 70 define setpoint 2 define centerpulse 1500 unsigned int time int leftdistance rightdistance int delaycount distanceleft distanceright irdetectleft irdetectright unsigned int frequency 5 29370 31230 33050 35700 38460 void timer init void ie 0 x82 tmod 0x01 void freqout unsigned int freq time 256 50000 freq th0 0xff tl0 time tr0 1 delay nus 800 tr0 0 void timer0 interrupt void interrupt 1 leftlaunch leftlaunch rightlaunch rightlaunch 基于单片机控制的行走机器人的设计 23 th0 0xff tl0 time void get lr distances unsigned char count leftdistance 0 rightdistance 0 for count 0 count 5 count freqout frequency count irdetectright rightir irdetectleft leftir if irdetectleft 1 leftdistance if irdetectright 1 rightdistance void send pulse unsigned int pulseleft unsigned int pulseright p1 1 1 delay nus pulseleft p1 1 0 p1 0 1 delay nus pulseright p1 0 0 delay nms 18 int main void unsigned int pulseleft pulseright uart init timer init while 1 基于单片机控制的行走机器人的设计 24 get lr distances pulseleft setpoint leftdistance kpl centerpulse pulseright setpoint rightdistance kpr centerpulse send pulse pulseleft pulseright 基于单片机控制的行走机器人的设计 25 第四章 程序调试 4 1 小车行走的基本程序测试 4 1 1 向前 向后 左转 右转程序测试 单片机控制引脚的高电平持续时间决定了伺服电机旋转的速度和方向 for 循环的参数控制了发送给电机的脉冲数量 由于每个脉冲的时间是相同的 因 而for循环的参数也控制了伺服电机运行的时间 左侧电机逆时针旋转 右侧电机顺时针旋转 因此两个轮子转向机器人的 前端 使机器人向前运动 后退 左转 右转也同理 图4 1 1 行走机器人基本动作原理图 include include int main void 基于单片机控制的行走机器人的设计 26 int counter uart init printf program running n for counter 1 counter 65 counter 向前 p1 1 1 delay nus 1700 p1 1 0 p1 0 1 delay nus 1300 p1 0 0 delay nms 20 for counter 1 counter 26 counter 向左转 p1 1 1 d

温馨提示

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

评论

0/150

提交评论