序 当我刚刚接触乐高机器人的时候,马上就被它深深吸引住了。原因很简单,它能动,听指挥,是一个优秀的创作平台。
按照网路上的草稿,我很快就制作出了几个机器人的模型。但是如何处理机器人的核心部分:控制程式,却一时没有头绪。如何让机器人像人类一样「思考」呢?为了达到这个目的,我先后尝试了多种程式语言,直到使用过LeJOS之后,我终于发现,这正是我想要的。LeJOS 源自于Java 语言,它很强大,同时又十分小巧,可以提供给乐高同好无限的创作空间。对于像笔者这样从事软体开发工作多年的人来讲,只要经过简单的学习马上就可以上手开发程式。而对于程式设计知识了解不多的读者,则有了一个学习Java 程式设计的好机会!只要几行程式,就可以指挥机器人动起来,这种「学以致用」的方式一定会触发你的学习热情!同时,LeJOS 又在乐高机器人和真正的工业机器人之间架起了一座桥樑,为你的未来提供更多的选择方向。下面,开始我们的学习之路吧!
本书的内容主要分为以下几个部分:
第一、二章,从乐高的基础知识讲起,先带领大家全面认识乐高机器人NXT8547。
第三、四章,介绍乐高的程式设计环境。乐高公司提供了NXT-G 语言来为乐高机器人设计程式。这是一种图形化的程式语言,使用者透过拖放图形达到撰写程式的目的,而不用直接撰写程式。这样的程式设计方式虽然直观,但是遇到过于复杂的逻辑,仅依靠图形总会感到难以清楚表达自己的想法。本书介绍的是目前极为流行的一种程式语言:Java。Java 有一个专用于乐高NXT 开发的工具套件,就是前面提到的LeJOS。本书的主要内容就是向读者介绍Java 和LeJOS 的程式设计方法。
第五章说明的是程式设计的基础知识。如果读者以前学习过一种程式语言,例如C 或VB,那么这一章的内容学习起来会十分轻松。没有基础的读者也不用担心,本书使用Java 作为载体,简单明快的说明了型态、变数、循环叙述这些概念,这些知识用作乐高机器人开发已经足够了。
第六、七章说明乐高机器人程式设计。本书本着循序渐进的原则,依次说明了萤幕输出、马达控制、感测器程式设计等几部分内容。并对每个物件的操作方法一一说明。结合书中例题,力求做到内容详实、使用案例准确、深入浅出、易学好用。
第八章向读者介绍了程式设计中较为进阶的技巧:执行绪和监听。运用多执行绪知识,乐高机器人可以在捕捉外界实体量变化的同时及时作出回馈。这部分内容可以使简单的程式更加精简,同时也是开发复杂程式必不可少的知识。
第九章是对前面各章节知识的综合运用。透过5 个小实例,笔者带领大家一边思考一边动手,分析程式设计想法,整理基础知识,最后完成程式的撰写。
第十、十一章的内容是网路通讯和远端控制。乐高机器人的连接方式有USB 和蓝牙两种,远端控制分为PC 控制机器人,机器人控制机器人和手机控制机器人。现在Android 智慧型手机的使用已经十分普遍,本书利用Android 手机上的重力感应器撰写了一个控制程式,遥控乐高小车作出前进,后退等动作。
第十二章作为扩充阅读,主要向读者介绍LeJOS 提供的图形化工具的使用方法。此外,初学程式设计的同学,经常会遇到语法知识已经掌握了几分,但是撰写程式却不知从何入手这个难题。在12-5 节会告诉读者如何检视LeJOS 提供的范例程式,认真阅读之后会对你有所帮助。
因为本人所学有限,书中难免存在疏漏和错误。欢迎读者朋友批评和指正,我将十分感谢并及时发佈勘误资讯。我的电子邮件是:wxh1907@sina.com。在本公司官网www.topteam.cc 可以下载到本书的全部程式。
最后,对正在阅读的您表示由衷的感谢!希望本书能给您带来快乐和收获!
魏晓晖