Java与乐高机器人

Java与乐高机器人"

作者:郑剑春、魏晓晖
ISBN:9787302357452
定价:¥76
字数:千字
页数:
出版时间:2014.06.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

    乐高机器人是乐高公司推出的一款新产品,它包括一套用于搭建物理结构的零件库和一个控制行为动作的大脑。通过在计算机上编写程序并上传至机器人的大脑,就可以打造一个实现某项功能的智能机器人。

    本书介绍的是一门操控乐高机器人的语言——leJOS。它源自于软件界大名鼎鼎的Java语言,并对机器人控制部分进行了封装和优化。本书从Java编程的基础知识讲起,循序渐进地介绍了数据类型、变量、运算符、循环语句等内容。在此基础上,进一步介绍了机器人编程需要用到的各类知识,如LCD类、Motor类、传感器类等。对这些类中的方法、属性等进行了详细的讲解,并将Java编程的基础知识运用到相关示例中。在本书的后半部分,重点介绍了多线程、通信、智能手机开发等高级知识。掌握了上面这些内容,也就掌握了leJOS编程的核心。建议读者在阅读时,边阅读边实践,逐章逐节地掌握每个知识点,在实践中灵活运用,以加深理解。

    本书适合机器人爱好者和编程爱好者阅读。已经投入到智能机器人比赛项目中的青少年及指导教师可以以本书作为参考,学习使用Java语言为机器人设计控制程序。

前言

当我刚刚接触乐高机器人的时候,马上就被它深深地吸引住了。原因很简单,它能动,听指挥,是一个优秀的创作平台。

按照网络上的图纸,我很快就制作出了几个机器人的模型。但是如何处理机器人的核心部分——控制程序,却一时没有头绪。如何让机器人像人类一样“思考”呢?为了达到这个目的,我先后尝试了多种编程语言,直到使用leJOS之后,终于发现,这正是我想要的。leJOS是基于标准的Java语言,它很强大,同时又十分小巧,可以提供给乐高爱好者无限的创作空间。对于像我这样从事软件开发工作多年的人来讲,只要经过简单的学习,马上就可以上手开发程序。而对于编程知识了解不多的读者,现在有了一个学习Java编程的好机会。只要几行代码,就可以指挥机器人动起来,这种“学以致用”的方式会极大地激发读者的学习热情。同时,leJOS又在乐高机器人和真正的工业机器人之间架起了一座桥梁,为读者的未来提供了更多的选择方向。下面,就开始踏上我们的学习之路吧!

本书的内容主要分为以下几个部分。

第1、2章,从乐高的基础知识讲起,先带领大家全面认识乐高机器人NXT 8547。

第3、4章,介绍乐高的编程环境。乐高公司提供了NXTG语言来为乐高机器人设计程序。这是一门图形化的编程语言,用户通过拖放图形达到编写程序的目的,而不用直接书写代码。这样的编程方式虽然直观,但是遇到过于复杂的逻辑,仅仅依靠图形总会感到难以表达清楚自己的思路。本书介绍的是现今软件行业极为流行的一门编程语言——Java。它是最近十几年开始兴起的一门面向对象的编程语言。Java有一个专用于乐高NXT开发的工具包,就是前面提到的leJOS。本书的主要内容就是向读者介绍Java和leJOS的编程方法。

第5章讲述的是编程的基础知识。如果本书的读者以前学习过一门编程语言,如C或VB,那么学习这一章的内容会十分轻松。没有基础的读者也不用担心,本书使用Java作为载体,简单、明快地讲解了类型、变量、循环语句这些概念,这些知识用作乐高机器人开发已经足够了。

第6、7章讲解乐高机器人程序设计。本书本着循序渐进的原则,依次讲解了屏幕输出、电动机控制、传感器编程等几部分内容,并对每个对象的操作方法一一阐述。结合书中例题,力求做到内容翔实、用例准确、深入浅出、易学易用。

第8章向读者介绍了编程中较为高级的技巧——线程与监听。运用多线程知识,  Java与乐高机器人〖2〗〖2〗 〖1〗 

乐高机器人可以在捕获外界物理量变化的同时及时做出反馈。这部分内容可以使简单的程序更加精炼,同时也是开发复杂程序必不可少的知识。

第9章是对前面各章节知识的一个综合运用。通过5个小例子,带领大家一边思考一边动手,分析编程思路,梳理知识点,最终完成代码的编写。

第10、11章的内容涉及远程控制和智能手机。乐高机器人的连接方式有USB和蓝牙两种,远程控制分为PC控制机器人、机器人控制机器人和手机控制机器人。 现在安卓智能手机的使用已经十分普遍,本书利用安卓手机上的重力感应器编写了一个控制程序,遥控乐高小车做出前进、后退等动作。

第12章作为扩展阅读,主要向读者介绍leJOS提供的图形化工具的使用方法。此外,初学编程的读者,经常会遇到语法知识已经掌握了几分,但却不知从何入手编写程序这个难题。在12.5节告诉读者如何查看leJOS提供的示例代码,认真阅读之后会有所帮助。

因为本人所学有限,书中难免存在疏漏和不足,欢迎读者朋友批评指正,我将十分感谢并及时发布勘误信息。我的邮箱是: wxh1907@sina.com。在我的博客http://blog.sina.com.cn/u/1014509487可以下载到本书的全部代码。

崔世杰、张巍、李梦军、刘玉田、李甫成、赵亮等老师参加了本书部分章节的编写工作,并在技术与材料上提供了支持,在此向他们表示衷心的感谢同。最后,对正在阅读本书的读者表示由衷的感谢!希望本书能给您带来快乐和收获!

魏晓晖2013年11月10日

目录

第1章认识乐高机器人1

1.1乐高简介1

1.1.1乐高公司简介1

1.1.2乐高机器人系列3

1.2乐高零件6

1.2.1基本尺寸6

1.2.2种类7

1.3乐高机器人搭建12

1.3.1结构与功能12

1.3.2结构与载重14

1.4小结14

第2章LEGO Mindstorms NXT15

2.1NXT主机15

2.2输出系统16

2.3传感器17

2.4其他输入/输出装置21

2.4.1按钮21

2.4.2蓝牙和数据线22

2.5小结23

第3章初识leJOS24

3.1leJOS概述24

3.2安装leJOS25

3.2.1安装驱动程序25

3.2.2安装Java JDK27

3.2.3安装leJOS32

3.2.4更新固件37

3.3leJOS系统介绍40  Java与乐高机器人〖2〗〖2〗 〖1〗 3.3.1菜单40

3.3.2工具和文档45

3.4小结46

第4章使用Eclipse开发leJOS47

4.1Eclipse概述47

4.2安装Eclipse47

4.2.1下载47

4.2.2运行47

4.2.3安装NXT插件51

4.3Eclipse开发环境介绍54

4.3.1界面54

4.3.2菜单54

4.4第一个程序: HelloNXT60

4.4.1新建、编译和运行60

4.4.2读懂leJOS程序65

4.5小结68

第5章编程的基础知识69

5.1数据类型69

5.1.1基本数据类型69

5.1.2类型转换70

5.2变量71

5.2.1定义变量71

5.2.2变量的作用域72

5.3数组和字符串73

5.3.1声明数组73

5.3.2使用数组74

5.3.3length属性75

5.3.4二维数组75

5.3.5字符串77

5.4运算符81

5.4.1算术运算符81

5.4.2连接运算符82

5.4.3赋值运算符82

5.4.4关系运算符83

5.4.5逻辑运算符83

5.5条件语句85

5.5.1if语句85

5.5.2switch语句86

5.6循环语句88

5.6.1for语句88

5.6.2while语句90

5.6.3do while语句91

5.7面向对象92

5.7.1类93

5.7.2方法94

5.7.3属性96

5.7.4对象97

5.8小结98

第6章机器人编程99

6.1屏幕显示99

6.1.1print方法99

6.1.2LCD类103

6.1.3Graphics类111

6.2声音输出124

6.3电动机控制130

6.4按钮140

6.5数学计算145

6.6小结147

第7章传感器编程148

7.1触碰传感器148

7.2颜色传感器151

7.3距离传感器157

7.4角度传感器160

7.5小结161

第8章线程与监听162

8.1线程162

8.1.1线程概述162

8.1.2生命周期和优先级163

8.1.3编写多线程程序164

8.2监听168

8.2.1监听概述168

8.2.2为按钮添加监听器169

8.3小结173

第9章综合实验174

9.1单光感巡线车174

9.2自动避障车181

9.3防跌落小车187

9.4测距仪193

9.5环境光检测仪199

9.6小结204

第10章通信与远程控制205

10.1通信方式简介205

10.1.1USB205

10.1.2蓝牙205

10.2机器人与PC通信206

10.2.1建立USB连接206

10.2.2PC端发送消息206

10.2.3NXT端接收消息210

10.2.4PC远程控制机器人212

10.2.5双向通信220

10.3机器人与机器人通信229

10.3.1建立蓝牙连接229

10.3.2远程控制机器人230

10.4小结236

第11章机器人与智能手机237

11.1基础知识237

11.2手机端程序238

11.2.1搭建Android开发环境238

11.2.2新建Android程序243

11.2.3运行Android程序250

11.3NXT端程序252

11.4小结253

第12章扩展阅读254

12.1更新固件254

12.2图像转换257

12.3数据处理258

12.3.1数据记录258

12.3.2数据查看259

12.4文件管理260

12.5查看示例程序262

12.6设置环境变量264

12.7小结267

参考文献268

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个