温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
机器人
辅助
程序设计
CDIO 教学模式教学成果 卓越工程师培养计划教学成果 计 算 机 类 本 科 规 划 教 材 机器人辅助机器人辅助 C 程序设计程序设计 秦志强 刘建东 王淑鸿 编著 Publishing House of Electronics Industry 北京BEIJING 内 容 简 介 本书将教学机器人引入 C 程序设计课程,在整个课程学习过程中采用基于项目的学习方法,将 C 语言的各种表达式、语法、关键词、逻辑结构和数据类型等教学内容融入到一系列循序渐进的教学机器人制作和竞赛项目中,直接在项目应用和竞赛过程中学习 C 语言,实现了“做中学、学中赛、赛中会”的“做学赛”一体化学习,提升了 C 语言的学习效率和效果,最后通过归纳总结,获得整个 C 语言程序设计的系统知识和技能。本书的编写彻底突破了传统教学方法的局限,解决了 C 程序设计课程抽象、枯燥、难学和学习效果差的老大难问题。本书可作为“C 程序设计”课程的第一本学习教材或者教学参考书,也可以作为工程训练、编程类课程的实践教材和相应专业课程的实验配套教材,同时可以供广大希望从事嵌入式系统开发和 C 语言程序设计的个人自学使用。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 机器人辅助 C 程序设计/秦志强,刘建东,王淑鸿编著 北京:电子工业出版社,20138 ISBN 978-7-121-20510-1 机 秦 刘 王 C 语言-程序设计-高等学校-教材 TP312 中国版本图书馆 CIP 数据核字(2013)第 109752 号 策划编辑:章海涛 责任编辑:章海涛 特约编辑:何 雄 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871 092 1/16 印张:1375 字数:320 千字 印 次:2013 年 8 月第 1 次印刷 定 价:3000 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 zltspheicomcn,盗版侵权举报请发邮件至 dbqqpheicomcn。服务热线:(010)88258888。前 言 C 程序设计课程是当前大多数工程专业的第一门专业基础课程,几乎所有的工科学生都要学习 C 程序设计,以便为后续的专业课程学习打下基础。这门课程学不好,后续专业课程的学习也会大打折扣,影响整个专业课程的学习。目前的现状是,每年几千万的学生在学习C 程序设计,但是仍然满足不了社会对合格软件工程师的迫切需求。传统的 C 程序设计教材和 C 语言教学方法,基本上都是围绕科学计算和算法设计展开,教学的目标是建立知识体系。这种教学方法的教学效果越来越不能满足当今工程教育的需要,尤其是对于未来希望从事嵌入式系统设计或者自动化系统设计的学生和个人而言。学习 C 语言是为了用 C 语言编写程序去解决问题,这种程序编写能力只有从程序设计实践中才能迅速获得,理论的讲解过多,不仅对学习 C 程序设计无益,甚至还会让学生滋生厌烦情绪。当然,只单纯地编写程序也无法获得真正的能力,关键是如何从不断的程序设计实践中,归纳出共性程序设计知识和关键技能,建立起分析问题和解决问题的知识和技能模型,然后再将这些知识和技能重新应用到新的程序设计实践中去,才能达到学习的最终目的。这也是当今的大学生要在未来的实际工作(无论是在企业研发还是在高校做研究)中所必须采取的学习和工作方法。因此,如何从一进入大学开始,就学习和掌握这种自我学习和提高的方法,是高等工程教育改革的根本目标。本书的编写始终围绕典型的机器人制作项目展开,按照“任务实践-技能归纳-学习总结-项目再实践”的学习模式设计一系列循序渐进的学习实践项目,突破了传统的“课堂理论上机实验”的传统学习模式,同时引进各种教学竞赛项目代替传统的考试,激发学习兴趣,实现“做中学、学中赛、赛中会”,最终帮助学习者建立起应用 C 语言进行程序设计的知识和技能体系,并获得实际的程序设计技能。通过本书的学习实践掌握了单片机 C 语言的编程技能后,后续的单片机课程学习就变得相对简单快捷。与本书配套的单片机后续书籍将重点介绍如何利用单片机设计编写出更高效的程序,扩展更多的外设,并学习如何设计出自己的硬件系统。本书的内容从 2011 年起在北京石油化工学院信息学院一年级学生中试点教学,3 年的教学实践证明,利用单片机机器人辅助 C 程序设计课程教学,深受学生欢迎,而且能够提高学生应对未来专业实践课程的兴趣和信心。本书可作为 C 程序设计的入门学习用书,尤其适合希望学习嵌入式系统设计的工程师和爱好者使用。学习的过程必须配套相应的硬件器材方能达到最佳的学习效果。这些器材的清单在本书的附录里有详细的说明。编 者 2013 年 7 月 V 目 录 第一部分 基本技能学习和实践 第 1 讲 一种新的 C 语言学习方式 3 机器人与 C 语言学习平台 5 任务 1 获得软件 6 任务 2 安装软件 7 任务 3 硬件连接 7 任务 4 第一个程序 8 任务 5 做完实验关断电源 16 工程素质和技能归纳 16 科学精神的培养17 第 2 讲 最简单的 C 程序设计机器人做算术18 任务 1 整型数据的运算和结果显示18 任务 2 浮点型数据的运算 22 任务 3 字符型数据24 工程素质和技能归纳 26 科学精神的培养26 第 3 讲 循环程序设计让机器人动起来27 C51 单片机的输入/输出接口27 任务 1 单灯闪烁控制28 任务 2 机器人伺服电动机控制信号34 任务 3 计数并控制循环次数37 任务 4 用计算机来控制机器人的运动41 工程素质和技能归纳 44 科学精神的培养44 第 4 讲 函数与机器人运动控制45 任务 1 基本巡航动作45 任务 2 匀加速/减速运动50 任务 3 用函数调用简化运动程序53 任务 4 用数组进一步简化函数调用58 工程素质和技能归纳 60 科学精神的培养60 VI 第 5 讲 选择结构程序设计机器人的触觉导航61 任务 1 安装并测试机器人胡须62 任务 2 通过胡须导航67 任务 3 机器人进入死区后的人工智能决策72 任务 4 机器人行进过程中的碰撞保护程序77 工程素质和技能归纳 78 科学精神的培养79 第 6 讲 选择结构程序设计机器人红外导航 80 任务 1 搭建并测试 IR 发射和探测器对81 任务 2 探测和避开障碍物 85 任务 3 高性能的 IR 导航 90 任务 4 俯视的探测器93 工程素质和技能归纳 98 科学精神的培养99 第 7 讲 多分支结构程序设计机器人循线竞赛100 任务 1 QTI 传感器及其通信接口101 任务 2 安装 QTI 传感器到机器人前端 102 任务 3 编写 QTI 传感器的测试程序103 任务 4 设计算法实现机器人无接触传感器游中国106 任务 5 修改算法实现机器人游中国112 任务 6 用数组实现机器人游中国比赛116 任务 7 改进运动执行程序提升执行的可靠性 122 工程素质和技能归纳 128 科学精神的培养129 第二部分 综合实践案例 第 8 讲 教育机器人智能搬运比赛133 任务 1 给机器人安装循线传感器和搬运手爪 134 任务 2 根据比赛任务设计算法136 任务 3 定义运动数据结构体存储运动数据137 任务 4 将运动函数存成另外的文件包含进来 140 任务 5 循线运动函数的设计与实现145 任务 6 根据算法完成搬运子函数和主程序的编写150 工程素质和技能归纳 151 科学精神的培养151 VII 第 9 讲 机器人灭火比赛153 任务 1 确定完成比赛所需的传感器和灭火装置 155 任务 2 确定超声波传感器连接端口,编写测距函数157 任务 3 安装火焰传感器和灭火风扇,编写寻找火源和灭火程序159 任务 4 根据超声波测距信息编写导航程序160 任务 5 完成灭火主程序的编写170 工程素质和技能归纳 171 科学精神的培养171 第 10 讲 擂台机器人程序设计 172 任务 1 红外线擂台机器人的软件设计174 任务 2 优化红外线擂台机器人软件179 任务 3 超声波擂台机器人的软件设计182 任务 4 遥控擂台机器人的软件设计183 工程素质和技能归纳 192 科学精神的培养193 附录 A C 语言概要归纳194 附录 B C 语言中的关键字索引206 附录 C 无焊锡面包板 207 附录 D 中国教育机器人大赛简介210 附录 E 完成本书项目学习所需配件清单212 基本技能学习和实践 第 1 讲 一种新的 C 语言学习方式 第 2 讲 最简单的 C 程序设计机器人做算术 第 3 讲 循环程序设计让机器人动起来 第 4 讲 函数与机器人运动控制 第 5 讲 选择结构程序设计机器人的触觉导航 第 6 讲 选择结构程序设计机器人红外导航 第 7 讲 多分支结构程序设计机器人循线竞赛 第一部分 第 1 讲 一种新的 C 语言学习方式 学习背景 C 语言已经成为国内外广泛使用的一种计算机语言,几乎成为了工程学科的圣经,每个工程专业都将 C 语言作为必修的计算机课程。确实,C 语言功能强大、使用灵活方便、应用面广、目标程序执行效率高、移植性好,既有高级语言的优点,又有低级语言的功能,特别适合编写系统软件。然而,尽管以往的同学们都十分重视 C 语言的学习,并倾注了大量的学习时间,但学习效果却不尽人意。究其原因,可归结为以下几点:C 语言作为第一门计算机语言课程,牵涉的概念广,规则多,过于灵活,对初学编程的人而言确实很困难。教学方式不符合工程类课程的教学规律。C 语言是一门工程应用工具课程,最佳的学习方式是边做边学,放到项目中学。而以往的教学方式是课堂讲授为主,上机实验为辅,是一种典型的应试型教学方式,学习是为了去考取等级证书。以往的许多同学即使考取了各种等级证书,但是一到工作中面对具体问题,就无从下手,更谈不上灵活运用了。编程实践和项目训练课时不够,现有实践项目各自独立,没有系统性。即使实践编写了几十个小型项目,由于缺乏各种知识点的融会贯通项目,并不能真正掌握 C 语言的应用开发能力。一个学生只有能够自主编写上千行程序的系统软件,才算是真正基本掌握了 C 语言程序设计能力。大多数的课程和教材仍旧以各种数学算法编程为主,枯燥无味,没有挑战性和竞技性,提不起大家的学习兴趣,学习效果自然大打折扣。针对以上问题,本教材将单片机控制的机器人引入 C 语言学习课程,让同学们在给机器人的编程过程中学习 C 语言,边做边学,最后完成几个具有复杂功能的智能机器人,在课堂竞赛、校内竞赛和全国比赛项目使用这些智能机器人进行竞技和比赛,让 C 语言的学习变成一个快乐的体验和挑战过程,提升学习效率,达到事半功倍的效果。使用单片机作为机器人的控制平台和 C 语言学习平台有以下优点:单片机资源相对计算机(PC)较少,适合编写系统软件,能够迅速深入到 C 语言的各种核心概念和规则。现有单片机价格低廉,编程方便,能够与教学机器人和智能传感器迅速结合,有非常大的扩展性。能够迅速开发出各种有趣的程序。可以为后续学习单片机等嵌入式系统课程打下基础,实现无缝结合,迅速提升系统开发能力。机器人项目趣味性好,实战性强,能够吸引同学们的注意力,辅以竞技项目的刺激和挑战,可以大大提高学习的趣味性,学习效果自然倍增。机器人辅助 C 程序设计 4 单片机和微控制器 一台能够工作的计算机包括 CPU(Central Processing Unit,中央处理单元:进行运算、控制)、RAM(Random Access Memory,随机存储器:数据存储)、ROM(Read Only Memory,只读存储器:程序存储)、输入/输出设备(串行口、并行口等)。在个人计算机上,这些部分被分成若干块芯片或者插卡,安装在一个称为主板的印制线路板上。而在单片机中,这些部分全部被做