计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法 第2版
作者 : 陈以农 陈文智 韩德强 著
出版日期 : 2017-07-19
ISBN : 978-7-111-57444-6
适用人群 : 高等院校理工科相关专业学生
定价 : 39.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 234
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书以培养学生对计算机科学与工程专业的兴趣为宗旨,以培养问题解决能力为目标,从具体到抽象,将计算机科学的基本原理和动手实践有机结合,通过图形化的编程语言、机器人实验、手机应用和web开发等工具及案例,使学生了解基本的程序设计、计算机原理、软件工程等计算机的基本知识,并把整门课组织成了一个完整的工程项目。适合高校理工科相关专业教学使用。

图书特色

与一般的计算机导论教材不同,本书强调原理与工程实践的充分融合。每一章分为原理和实践两部分,学生在学完该章的基本原理之后,就要以团队合作方式进行动手实践。实践项目基于ASU VIPLE可视化编程环境和英特尔、乐高等多种机器人硬件开发平台。学生要通过组建团队、开会、撰写PPT对问题进行定义和研究,然后再通过设计、模拟、实验、测试完成一个机器人的设计。课程最终通过机器人比赛的方式进行验收,大大提高了学生参与的积极性。目前,这门课程已经成为多所国际著名大学的学术互认课程,并获得了教育部-英特尔、教育部-谷歌等国家级产学合作项目的支持,浙江大学、浙江大学城市学院、厦门大学、华南理工大学等高校开设了本课程,对学生的后继专业课程学习产生了积极的影响。
本书特色
内容丰富有趣,从具体到抽象,简单易学,却具有挑战性。
以培养学生的兴趣为主导,培养问题解决能力为目标。
以理论为基础,系统化为规范,实际问题为对象。
每周一章,从问题到答案,概念清晰,实验步骤详尽。
以系统化的工程项目开发过程为指导,以人性化团队合作为框架解决每一个工程问题。
机器人竞赛与最终课程设计项目纵贯全书,使每周实验前后呼应。
以最新图形化编程语言为工具,App开发简单而实用。
涵盖大量App实例,从机器人App到手机App和Web App。
教辅资源丰富,包含讲义、测验、习题答案、代码等。

作者简介
陈以农(Yinong Chen),1993年获德国卡尔斯鲁厄理工大学(KIT)博士学位。之后就职于法国科学院和南非金山大学。2001年加入美国亚利桑那州立大学。现任ASU计算、信息及决策系统工程学院机器人教育实验室主任,高级讲师,博士生导师,并兼任ASU巴雷特学院荣誉教职。在服务计算、云计算、大数据、物联网、嵌入式系统、机器人和计算机教育等领域发表了二百余篇学术论文。陈以农博士更致力于计算机教育学和教学方法论的研究,曾出版的教材包括《Service-Oriented Computing and Web Software Integration》《Introduction to Programming Languages: Programming in C, C++, Scheme, Prolog, C#, and SOA》《面向服务的计算和Web数据管理:从原理到开发》。陈以农博士主导开发的可视化物联网/机器人编程语言环境VIPLE被广泛应用于中学和大学基础程序设计语言教学中。
陈文智,浙江大学教授,博士生导师,浙江大学计算机科学与技术学院副院长。主要研究方向为计算机体系结构、计算机系统级软件、嵌入式系统及应用、计算机网络和安全。主持国家级科技项目十多项,发表学术论文数十篇,获得国家发明专利授权十多项,获得软件著作权二十多项,获得浙江省科技进步一等奖1项。多门本科生、研究生和博士生骨干课程的主讲老师,承担多门国家级精品课程和省部级精品课程,出版国家级规划教材或重点教材多部,主持国家级、省部级教学改革项目多项。
韩德强,高级工程师,研究生导师,现担任北京工业大学信息学部计算机学院实验中心主任,长期从事计算机硬件、嵌入式系统、物联网方面的教学和研发等工作。从事教学工作前,在企业从事过12年的X86工控机主板开发、控制工程研发,是国内最早从事嵌入式产品研发的工程技术人员。作为项目负责人承担多项教育部为企业共建项目,并组织、实施过数十种嵌入式产品的开发及控制工程项目的研发。与Intel、Microsoft、TI和Xilinx等国际知名企业有着深入合作关系。发表论文数十篇,获国家专利、软件著作权二十余项。曾获“北京优秀青年工程师”荣誉称号,多次获微软全球最有价值专家(MVP)称号。

图书前言

计算机工业一直引导着世界工业的发展,也是其他行业前进的动力源。计算机科学和计算机工程专业是计算机工业以及相关产业发展的源泉,也一直是全世界最有价值的专业之一。然而,2000 年的网络泡沫使计算机工业受到重创,也使计算机科学及相关专业的学位价值第一次受到质疑。计算机科学和计算机工程专业的生源也受到挑战,甚至出现了一场世界范围内的计算机科学生源危机。然而,2000年的网络泡沫的影响是短暂的,计算机工业很快恢复并创造出更高的价值。例如,亚马逊的市值在2000 年从其峰值107 美元/ 股一度跌到7美元/ 股。今天,亚马逊的市值已经远远超过2000 年的107 美元/ 股的峰值,并发展成为一家云计算服务的主要提供商。Google更是从一家网络公司发展成为世界最大的公司之一,其业务包含互联网、云计算、移动计算、智能手表、汽车等行业。
然而,计算机工业的恢复并没有消除计算机专业的生源危机。以美国亚利桑那州立大学(ASU)为例。2002 年前,ASU 每年有200 名新生进入计算机科学专业。到2004 年,就只有100 名新生入学。美国其他大学的情况也与之类似。2008 年,美国计算机协会(ACM)发布的计算机科学教学大纲报告(http://www.acm.org/ education/curricula/ComputerScience2008.pdf)正式定义2000 年之后计算机科学进入生源危机,必须采取有效措施来解决这一危机。ACM 在长达108 页的报告中用了一整章来阐述这一危机的解决方案。
ACM 的报告指出,网络泡沫的影响只是计算机科学专业进入生源危机的导火索,致使计算机科学生源持续危机的真正原因是陈旧的教学方法和内容。计算机科学专业课程,特别是计算机入门课程的教学方法和内容必须使学生感兴趣,想挑战,还要能激发学生的创造性。ACM 报告建议从三方面来改进教学方法和内容。
第一,应用领域。计算机科学的教学内容必须更紧密地与应用相结合。
第二,课程设置。计算机科学的教学必须增加学生感兴趣的课程,例如,游戏编程、多媒体计算、机器人、移动计算。
第三,教学方法。教学过程必须生动有趣,以激发学生的学习兴趣,听课的同时必须动手实践,内容有挑战性但必须基于学生的接受能力,教学必须与就业机会相结合。
在ACM 大纲的指导下,很多大学开始在计算机的课程中增加学生感兴趣的内容。机器人的引入最为广泛。
为什么基于机器人的计算机科学入门课程没有在10 年、20 年或30 年前发生呢?有多方面的原因:
第一,计算机科学专业的生源一直很好,计算机教育主要注重内容和系统化,没有太多考虑学生的兴趣。
第二,机器人硬件价格高,无法用于大班课程。
第三,机器人涉及硬件和软件,编程复杂,不宜作为入门课程的内容。
近10 年来,这几方面都发生了根本的变化。计算机科学专业的生源在2000 年后受到挑战。机器人硬件价格大幅下降,特别是面向服务的软件技术、云计算和可视化编程技术使机器人的编程应用在大学一年级甚至高中教学中成为可能。计算机教育专家和计算机工程师携手合作,开发了多种可视化的教育编程平台,使没有计算机知识和编程基础的高中生和大学低年级的学生能够很快学会计算机应用编程。例如,美国MIT开发的Scratch以及卡内基·梅隆大学开发的Alice动画和编程平台能让学生把他们的故事变成电影和游戏。MIT的App Inventor能让学生很快学会手机App编程。
乐高的NXT 2.0和EV3机器人编程平台采取了轨道式积木编程模式,简单易学,适合中小学的兴趣教学。然而,NXT 2.0和EV3只能用于编程乐高机器人,而乐高机器人在中国价格昂贵,限制了它的广泛应用。
Intel最新开发的物联网服务编排层(IoT Services Orchestration Layer)在Linux操作系统上用可视化的语言编程物联网设备,可以读写连接于物联网控制板上的设备。
微软的机器人开发工作室(MRDS)的VPL(Visual Programming Language,可视化程序设计语言)可用于编程和控制乐高NXT机器人和多种机器人,包括iRobot、Fischertechnik、LEGO Mindstorms NXT、Parallax robots和微软的仿真机器人等。MRDS VPL可以用于编程从简单到复杂的各种应用,广泛用于高中和大学教学中。从2006年发布至今,MRDS VPL建立了一个巨大的用户社区。遗憾的是,在微软的重构过程中,MRDS VPL项目被终止。尽管微软继续支持MRDS VPL的免费下载,但MRDS VPL不再支持新的机器人平台,例如,MRDS VPL不支持取代乐高NXT的EV3机器人。
为了让MRDS VPL的用户社区能够继续他们的机器人程序开发,基于对工作流和可视化语言多年的研究和开发,亚利桑那州立大学(ASU)于2015年发布了ASU VIPLE机器人开发平台,该平台由陈以农博士领导的物联网及机器人教育实验室开发。陈以农博士于2003年和2005年受微软资助,参与了MRDS VPL的早期研究。从2006年微软发布起,ASU一直使用MRDS VPL作为计算机导论课实验工具。当微软终止MRDS VPL项目后,ASU物联网及机器人教育实验室以MRDS VPL功能和编程模式为设计说明,自主开发了VIPLE平台。VIPLE有以下特点:
继承了MRDS VPL的属性和编程模式,具有MRDS VPL编程经历的教师和学生可以直接使用VIPLE。VPL的教学资料也能为VIPLE平台所用。
扩展了MRDS VPL支持的机器人平台,例如,VIPLE可以编程乐高的EV3机器人。使用MRDS VPL编程乐高NXT机器人的学校可以直接升级到EV3。
在VIPLE程序与机器人之间采用了面向服务的标准通信接口JSON和开源的机器人中间件,可让通用机器人平台接入。
开发了以Linux为操作系统的VIPLE中间件并以Intel Edison的机器人作为默认平台和套件。VIPLE中间件已经移植到其他机器人平台。Galileo和Edison的机器人价格不到乐高EV3的一半,从而可使基于VIPLE和Intel机器人的教学能够推广到更多学校。
除了MRDS VPL的机器人编程功能外,VIPLE还支持通用的服务计算。VIPLE支持C#源代码模块的插入,也可以调用Web服务来完成VIPLE库程序中没有的功能。
ASU VIPLE支持设计思维和使用可视化编程。开发者只需绘制应用程序的流程图(规格设计)而无须编写文本代码。开发环境中的编译工具能够把流程图直接转换成可执行的程序,从而使软件开发变得更容易、更快速。整个软件的开发过程就是一个简单的拖放过程,即把代表服务的模块拖放到流程图的设计平面,然后用连线把它们连接起来。这个简单的过程可以使没有程序设计经验的人在几分钟内创建自己的机器人应用程序。经过一个学期的学习和动手实践后,学生可以编出较为复杂的智能程序,使机器人能探索未知迷宫并走出迷宫。
ASU VIPLE可用作机器人导论、计算机导论、通信导论或工程导论等课程的实验工具。
下面通过几个程序案例来展示VIPLE编程的简单性和实用性,特别是与计算机导论的相关性和对计算机导论课程实验的支持。
案例1:ASU VIPLE实现的计数器
该计数器程序从0计到10,并用语音输出服务读出所生成的数字:The number is 0,1,2,3,4,5,6,7,8,9,10。

案例2:车库门遥控器
下图的有限状态机描述了一个单键遥控器。当车库门处于关闭状态时,按下遥控键将使车库门开启。当车库门处于开启状态时,按下遥控键将使车库门关闭。当车库门处于开启或关闭过程中时,按下遥控键将使车库门停止运动,再按下遥控键将使车库门继续向之前的方向运行。
 
上图的有限状态机可用下图的ASU VIPLE程序实现。所使用的单键是控制键Ctrl。

案例3:遥控Intel机器人
以下VIPLE程序可以实现用计算机键盘(方向键)来遥控Intel机器人的移动,空格键是停止移动。

案例4:迷宫机器人编程
以下程序展示了迷宫机器人编程过程。该机器人具有一个测距传感器,根据前方、左方和右方的距离来决定下一步的走向。

与通常的介绍原理的教材不同,本书是一本介绍原理并实现原理的教材。学懂一个原理后,学生还必须把该原理应用到实践中。比如,当学懂了运算器的工作原理后,学生必须用VPL 编写一个运算器,并测试实现的运算器能否正确完成运算任务。当设计了一个迷宫漫游算法后,学生必须把该算法编程到机器人中,测试机器人能否在迷宫中不迷路。
所以,我们的教材不但必须保证原理的正确,还必须保证正确的原理能被学生在给定的时间内实现。为此,我们必须验证每一个实验和每一个练习的正确性和时间要求。编写这样的教材和讲授这样的课程,会花费更多的精力和时间,但是我们坚信这样的教材和这样的课程是学生想要学的,是学生能学透和记住的,这样才能培养出真正有知识和能力的学生。正是这样的教学理念,使我们走到一起,联手编写了本书。
本教材的第1版于2013年出版,本教材的第2版在第1版的基础上做了重大的改进。首先,主要的编程软件从微软的MRDS VPL更新到ASU VIPLE (Visual IoT/Robotics Programming Language Environment)。支持的机器人平台也从乐高增加到多个其他平台,包括Intel Edison和Galileo平台、ARM pcDuino平台、TI的平台。VIPLE还有三个内建仿真平台:Unity模拟器平台、Web 2D模拟器平台和Web 3D模拟器平台。ASU VIPLE可以在中文和英文菜单之间随时切换。
由于工作量巨大,还有许多老师和学生参与了编写和校验工作,在此表示衷心的感谢。本教材基于自主开发的软件平台,许多学生参与了开发工作。 Garrett Drown开发了第1版的eRobotics的可视化编程语言;Calvin Cheng为VIPLE的早期开发提供帮助,并在EV3 API的开发上做出了贡献;Gennaro De Luca负责VIPLE的主要开发工作;Tara De Vries对VIPLE开发中的服务集成做出了贡献;Megan Plachecki、John Robertson和Sami Mian在JSON的接口设计、Edison机器人的中间件实现以及机器人的硬件实现方面做出了贡献;Matthew De Rosa开发了第1版VIPLE Unity模拟器;Yufeng Ouyang 和Kaiyi Huang等开发了第2版的Unity模拟器;Adam Lew、Joshua Owens、Ankit Patel、Harshil Patel、Peter Tueller和Spencer Rodewald在Web 2D模拟器开发中做出了贡献; Alexandra Porter、David Orellana、Matthew Miller 开发了Web 3D 模拟器。
如何开设一门受学生欢迎的计算机入门课程是一个值得持续探索的课题,我们也在进一步的尝试和不断完善中。因此,本书中难免有疏漏和不当之处,欢迎各位同行和读者批评指正。

作者
2017.6

上架指导

计算机\基础

封底文字

与一般讲解原理的课程不太一样,基于机器人的计算机科学导论课程分为原理和实验两部分。这样学生在学完一个原理之后,就要动手实践这个原理。该课程的实验部分主要基于微软的机器人开发环境MRDS、VIPLE可视化编程语言。学生通过团队合作完成实验内容。该课程还有一个配套的课程设计项目,学生要和参与实际工程项目一样,通过自己组织团队、开会、撰写PPT、对问题进行定义和研究,然后再通过设计、模拟、实验、测试完成整个课程设计。课程设计最终通过机器人比赛的方式进行验收,大大提高了学生参与的积极性。目前这门课程已经成为多所国际著名大学的学术互认课程,并获得了教育部与Intel的认可和支持,被列入了教育部新课程大纲。

本书特色:
● 内容丰富有趣,从具体到抽象,简单易学,却具有挑战。
● 以培养学生的兴趣为主导,培养问题解决能力为目标。
● 以理论为基础,系统化为规范,实际问题为对象。
● 每周一章,从问题到答案,概念清晰,实验步骤详尽。
● 以系统化的工程项目开发过程为指导,以人性化团队合作为框架解决每一个工程问题。
● 机器人竞赛与最终课程设计项目纵贯全程,使每周实验前后呼应。
● 以最新图形化编程语言为工具,App开发简单而实用。
● 涵盖大量App实例,从机器人App到手机App和Web App。
● 教辅资源丰富,包含讲义、测验、习题答案、代码等。

作者简介

陈以农 陈文智 韩德强 著:
陈以农(Yinong Chen)1993年获德国卡尔斯鲁厄理工大学(KIT)博士学位。之后就职于法国科学院和南非金山大学。2001加入美国亚利桑那州立大学。现任ASU计算、信息及决策系统工程学院机器人教育实验室主任,高级讲师,博士生导师,并兼任ASU巴雷特学院荣誉教职。在服务计算、云计算,大数据、物联网、嵌入式系统、机器人和计算机教育等领域发表了二百余篇学术论文。陈以农博士更致力于计算机教育学和教学方法论的研究,近期出版的教材包括《Service-Oriented Computing and Web Software Integration》《Introduction to Programming Languages: Programming in C, C++, Scheme, Prolog, C#, and SOA》《面向服务的计算和Web数据管理 — 从原理到开发》。陈以农博士主导开发可视化物联网/机器人编程语言环境VIPLE被广泛应用于中学和大学基础程序设计语言教学中。陈文智,浙江大学计算机学院教授,博士生导师。主要研究方向:计算机体系结构、计算机系统级软件、嵌入式系统及应用、计算机网络和安全。主持国家级科技项目10多项,发表学术论文数十篇,获得国家发明专利授权10多项,获得软件著作权20多项。获得浙江省科技进步一等奖1项。主讲多门本科生、研究生和博士生骨干课程的主讲老师,承担国家级精品课程、省部级精品课程多门,出版国家级规划教材或重点教材多部,主持国家级省部级教学改革项目多项。 韩德强:高级工程师,研究生导师,现担任北京工业大学信息学部计算机学院实验中心主任,长期从事计算机硬件、嵌入式系统、物联网方面的教学、科研、产品开发等工作。从事教学工作前,在企业从事过12年的X86工控机主板开发、控制工程研发,是国内最早从事嵌入式产品研发的工程技术人员。作为项目负责人承担多项教育部——企业共建项目,并组织、实施过数十种嵌入式产品的开发及控制工程项目的研发。与Intel、Microsoft、TI和Xilinx等国际知名企业有着深入合作关系。发表论文数十篇,获国家专利、软件著作权20余项。曾获“北京优秀青年工程师”荣誉称号,多次获微软全球最有价值专家(MVP)称号。

推荐序

四年前,我曾为本教材的第1版写过序。自第1版出版以来,本教材相关的课程已经在美国亚利桑那州立大学、浙江大学、浙江大学城市学院、厦门大学、华南理工大学、重庆大学、青岛理工大学、河南理工大学、山东财经大学、宁夏师范学院等高校开设并获得了成功。而且,该课程分别获Intel中国和Google中国支持,在多所学校(包括北京工业大学、浙江大学、宁夏师范学院)举行了大学教师、中学教师和中学生的培训班。很高兴看到本书所取得的成绩!在本书第2版即将付梓之际,我也非常高兴有机会为这本书再次作序。
与第1版相比,第2版全面更新和深化了内容。不仅在书名上有所变化——从计算机扩展到工程,内容上也从机器人延伸到IoT,而且,采用了亚利桑那州立大学自主开发的可视化物联网/机器人编程语言环境(VIPLE)和汉化版软件。硬件平台也从乐高扩展到Intel、ARM和TI的平台。这些更新可望使机器人编程在更多的大学和中学得以推广。
对任何一门学科,其入门教学都非常重要,需要精心设计教学方法。特别是计算机与工程的入门课程,如工程导引和第一门程序设计语言,更需要理论与实践结合,概念与应用挂钩,动脑同时也动手。然而,这个想法虽然普通,但要将其付诸实践却很难,特别是如何把实践和应用放到计算机科学的入门课中就更难。这样一门入门课要让首次接触计算机和程序设计概念的学生能“看见”和“摸到”每个概念是什么,如何运用,应该怎么做。
开设这样一门计算机入门课的难度是多方面的。它必须解决如何在有限的课时内,老师能把概念讲清楚,学生还能动手验证概念的问题。老师不仅要会讲,还必须能手把手地帮助毫无基础的学生在规定的实验课中完成实验。学生不仅要学,要做,而且还要自愿花更多的时间去做得比要求的更好。相应实验设备的选择和维护也将增加开设这样一门课的难度。
无疑,开发和讲授这样一门课将比按传统的方式讲授一门计算机导引或工程导引课程更具挑战性。从国家发展的层面看,计算机产业是最活跃和最具创新的行业,输送合格和足够的毕业生是我们的任务。从教学管理的角度看,随着教育改革的深化,学生可以根据自己的兴趣和爱好来选择专业,也可以在学习期间转换专业。因此,计算机与工程入门课的设计和讲授对于学生了解计算机及相关的工程专业,并对这些专业产生兴趣,为以后的专业课程学习打好基础,就尤为重要。
本书的作者为解决这一问题提供了一种有效方案。他们把基本的计算机与工程原理和程序设计的概念用于机器人的设计和编程中。软件工程的最新成果、可视化编程语言和模块化机器人的应用,是这一解决方案的关键。它使学生能在更高的设计层次上来表达他们的逻辑和思维。尽管增加了动手实验、机器人的构造、编程和比赛,本教材仍然系统地覆盖了计算机导引的主要内容,包括计算机的部件和工作原理、逻辑门的应用、存储器和寄存器结构、算术逻辑单元的设计,以及外围设备的使用。在编程方面,从数据、变量、算法到各种控制结构均有覆盖。从总体结构和教学方法论的角度,我认为本教材最重要的贡献是把整门课的内容组织成了一个完整的工程项目:需求分析、建模、设计、模拟、实现、测试和验收。学生从团队建设开始,定义项目的目标和要求。为了达到定义的项目目标和要求,学生开始学习所需的知识。作为机器人编程的准备,他们需要首先用编程来模拟逻辑门和算术逻辑单元的设计和实现,然后,学习有限状态机模型,并用这一模型来描述并实现一个自动售货机。在准备好需要的知识后,他们以最终的绕障碍机器人比赛为目标来定义要求,用有限状态机来建模,根据模型来设计算法,在机器人的三维模拟环境中测试模型和算法的正确性,测试通过后再将算法放到实际的机器人中进行现场测试。最后,在机器人比赛中验收整个项目。
我衷心希望本书能为计算机科学的教育开辟一条新路,为那些想开设这样一门课程却没有足够资源的学校和老师提供启发和帮助。也希望更多的计算机教材和课程能向理论与实践相结合的方向发展。
我一直很信仰明代大儒王阳明倡导的“知行合一”。作为教师,这是我们对学生的希望,但我们自身更应该在教学中率先垂范。

梅宏
2017年4月

图书目录

推荐序
前 言
教学建议
第1章 职业发展机会和团队建设 1
1.1 计算机科学和工程的课程体系及职业发展 1
1.1.1 计算机科学和工程的课程体系 1
1.1.2 计算机就业形势分析 2
1.1.3 计算机不同领域的职业机会 5
1.2 团队建设 6
1.2.1 合作模式 6
1.2.2 团队组建 6
第2章 机器人开发环境和VIPLE入门 7
2.1 工作流和可视化编程 7
2.2 VIPLE IoT/机器人开发环境 12
2.2.1 VIPLE的工程设计过程 12
2.2.2 VIPLE的活动和服务 13
2.3 VIPLE的使用 18
2.3.1 创建程序显示“Hello World” 19
2.3.2 最喜欢的电影 20
2.3.3 使用或并和If活动创建条件循环 21
2.3.4 使用While循环 24
2.3.5 使用全局变量创建一个活动 25
2.3.6 创建Counter活动 27
2.3.7 建立一个2-1多路选择器 28
第3章 逻辑设计与计算机组成 31
3.1 仿真——设计过程中的关键步骤 31
3.2 计算机系统 32
3.2.1 计算机系统的类型 32
3.2.2 计算机系统的组成 33
3.3 在VIPLE中创建计算机系统部件 39
3.3.1 创建逻辑与门 39
3.3.2 创建一个1位全加器 41
3.3.3 创建一个2-1多路选择器 42
3.3.4 创建一个4-1多路选择器 42
3.3.5 创建一个1位ALU 43
3.3.6 自动测试 44
第4章 事件驱动编程和有限状态机 46
4.1 引言 46
4.2 事件驱动编程 46
4.3 有限状态机 48
4.4 用ASU VIPLE来解决事件驱动问题 51
4.4.1 创建一个事件驱动计数器 52
4.4.2 实现一个自动售货机 52
4.4.3 用事件来实现自动售货机 52
4.4.4 车库门控制器 53
4.4.5 奇偶校验 54
4.4.6 并行计算 55
4.4.7 线控的模拟 55
第5章 模拟环境下的机器人以及迷宫导航 58
5.1 VIPLE机器服务 58
5.2 VIPLE支持的机器人平台 60
5.3 穿越迷宫的算法 62
5.4 使用有限状态机的迷宫导航算法 63
5.5 在VIPLE模拟器中实现自治迷宫导航算法 66
5.5.1 理解迷宫算法 66
5.5.2 学习沿墙算法 67
5.5.3 编程Web机器人使之绕右墙走 67
5.5.4 使用两距离局部最优算法遍历迷宫 68
5.5.5 理解Unity模拟器和VIPLE程序 68
5.5.6 实现VIPLE框图 69
5.5.7 实现两距离局部最优算法的活动 69
5.5.8 两距离局部最优算法的Main框图 70
5.5.9 Web 2D模拟器 71
5.5.10 配置VIPLE以使用Web模拟器 72
5.5.11 在Web模拟器中实现沿墙算法的Main框图 73
5.5.12 在Web模拟器中实现沿墙算法所涉及的活动 73
5.5.13 在Web模拟器中实现两距离局部最优算法的Main框图 75
5.5.14 在Web 2D模拟器中实现两距离局部最优算法所涉及的活动 76
5.5.15 Web 3D模拟器 76
第6章 机器人硬件组成 77
6.1 VIPLE计算与通信模型 77
6.2 机器人硬件总体结构 79
6.3 主控板 79
6.3.1 Intel Galileo开发板 80
6.3.2 Intel Edison模块 81
6.3.3 Arduino/Genuino 101 82
6.3.4 TI CC3200 LaunchPad 83
6.3.5 专用机器人主控模块 84
6.4 传感器模块 84
6.4.1 超声波传感器 85
6.4.2 红外传感器 85
6.4.3 光传感器/颜色传感器 86
6.5 舵机 87
6.6 组装伽利略机器人 90
6.7 爱迪生机器人硬件和软件的安装 97
6.7.1 爱迪生机器人的硬件安装 97
6.7.2 爱迪生机器人的软件安装 101
第7章 Intel机器人编程 109
7.1 采用沿墙算法的迷宫导航 109
7.1.1 沿墙迷宫导航(Main框图的第一部分) 109
7.1.2 沿墙迷宫导航(Main框图的第二部分) 110
7.1.3 Init活动 110
7.1.4 Left1和Right1活动 110
7.1.5 Right90和Left90活动 111
7.1.6 Backward和Forward活动 111
7.1.7 ResetState活动 112
7.2 采用局部最优算法的迷宫导航 112
7.2.1 用两距离算法解决迷宫问题 112
7.2.2 在VIPLE里控制Intel机器人 114
7.2.3 在VIPLE程序里实现活动 114
7.2.4 使用一个简化的有限状态机 115
7.3 使用事件驱动编程的迷宫导航 115
7.3.1 使用事件驱动编程的Left90活动 116
7.3.2 使用事件驱动编程的Left1和Backward活动 116
7.3.3 基于事件驱动活动的Main框图 116
7.4 使用光传感器实现基本相扑算法 117
第8章 乐高EV3机器人编程 118
8.1 准备知识 118
8.1.1 从EV3 Brick得到传感器读数 118
8.1.2 蓝牙连接 118
8.1.3 通过程序得到传感器读数 119
8.1.4 通过蓝牙或者Wi-Fi将机器人连接到VIPLE 119
8.2 远程控制EV3机器人 121
8.2.1 在VIPLE中通过连线驱动机器人 121
8.2.2 改进驱动体验 122
8.3 使用VIPLE的循迹和相扑机器人程序 122
8.3.1 安装一个颜色传感器 122
8.3.2 循迹 122
8.3.3 使用光传感器实现基本相扑算法 123
8.3.4 使用光传感器和接触传感器的相扑算法 124
8.4 使用VIPLE的EV3沿墙程序 124
8.4.1 沿墙迷宫导航(Main框图) 124
8.4.2 编写Init活动 125
8.4.3 编写Left1活动 126
8.4.4 编写Right90活动 126
8.4.5 编写Backward活动 126
8.4.6 编写ResetState活动 126
8.4.7 编写Forward活动 127
8.4.8 在沿墙算法里配置传感器 127
8.5 使用事件驱动编程的沿墙算法 127
8.5.1 使用事件驱动编程的Left90活动 128
8.5.2 基于事件驱动活动的Main框图 128
8.6 采用局部最优试探算法的迷宫导航 129
8.6.1 实现局部最优算法的Main框图 129
8.6.2 实现SensorRight90 130
第9章 机器人现场测试和机器人比赛准备 131
9.1 准备工作 131
9.2 实验作业 131
9.2.1 讨论和会议纪要 131
9.2.2 寻宝比赛 131
9.2.3 迷宫导航比赛的实践 132
9.2.4 相扑机器人比赛的实践 132
9.2.5 完成会议纪要 132
第10章 机器人比赛 133
10.1 寻宝 133
10.2 自治迷宫遍历 133
10.3 相扑机器人 134
第11章 服务计算与Web应用的开发 135
11.1 并行处理技术 135
11.2 文本语言编程的基本概念 136
11.3 面向服务的架构的基本概念 140
11.4 Visual Studio编程环境 144
11.5 实验内容 145
11.5.1 VIPLE中的并行和面向服务计算 145
11.5.2 开始使用Visual Studio开发环境和C#进行编程 146
11.5.3 创建你自己的Web浏览器 150
11.5.4 创建一个Web应用程序 151
11.5.5 创建一个在线自动售货机 154
11.5.6 使用加密/解密服务建立一个安全的应用程序 157
第12章 Android手机App的开发 161
12.1 预备知识 161
12.2 Android手机编程 162
12.2.1 Hello World 163
12.2.2 Magic 8 Ball 164
12.2.3 Paint Pic 165
12.2.4 摩尔泥游戏 165
12.2.5 股票报价 165
12.2.6 股票走势 165
12.2.7 射盘子游戏 167
12.2.8 射击多个盘子 170
12.2.9 打砖块游戏 172
12.2.10 使用App Inventor编程NXT Robot 177
12.2.11 猜数游戏 181
12.2.12 简单的侧滑板游戏 183
12.2.13 记忆游戏 186
第13章 演讲文稿设计 197
13.1 演讲前的准备 197
13.1.1 组织演讲稿的技术内容 197
13.1.2 演示幻灯片设计 198
13.1.3 用Excel求解模型和创建图表 199
13.1.4 演示幻灯片的评价和评分标准 200
13.2 演讲实践前的测验 200
13.3 演讲内容设计与实践 201
13.3.1 截屏和图片的编辑 201
13.3.2 插入视频 201
13.3.3 使用Excel求解模型和创建图表 202
13.3.4 复制和特殊粘贴 203
13.3.5 正式会议中的会议纪要和幻灯片设计 203
13.3.6 创建PPT幻灯片 204
13.3.7 幻灯片制作的分工 204
第14章 演讲和演讲评分 205
附录 机器人课程设计项目和比赛规则 206

教学资源推荐
作者: Ellis Horowitz Sartaj Sahni Susan Anderson-Freed
作者: [美]迈克尔 T. 古德里奇(Michael T. Goodrich) 罗伯托·塔马西亚(Roberto Tamassia) 著
作者: [美]罗德·斯蒂芬斯(Rod Stephens) 著
参考读物推荐
作者: [美]伊戈尔·卢布希斯(Igor Ljubuncic) 著
作者: 华诚科技 编著
作者: 恒盛杰资讯 编著
作者: 甘登岱