前言
当我刚刚接触乐高机器人的时候,马上就被它深深地吸引住了。原因很简单,它能动,听指挥,是一个优秀的创作平台。
按照网络上的图纸,我很快就制作出了几个机器人的模型。但是如何处理机器人的核心部分——控制程序,却一时没有头绪。如何让机器人像人类一样“思考”呢?为了达到这个目的,我先后尝试了多种编程语言,直到使用leJOS之后,终于发现,这正是我想要的。leJOS是基于标准的Java语言,它很强大,同时又十分小巧,可以提供给乐高爱好者无限的创作空间。对于像我这样从事软件开发工作多年的人来讲,只要经过简单的学习,马上就可以上手开发程序。而对于编程知识了解不多的读者,现在有了一个学习Java编程的好机会。只要几行代码,就可以指挥机器人动起来,这种“学以致用”的方式会极大地激发读者的学习热情。同时,leJOS又在乐高机器人和真正的工业机器人之间架起了一座桥梁,为读者的未来提供了更多的选择方向。下面,就开始踏上我们的学习之路吧!
本书的内容主要分为以下几个部分。
第1、2章,从乐高的基础知识讲起,先带领大家全面认识乐高机器人NXT 8547。
第3、4章,介绍乐高的编程环境。乐高公司提供了NXTG语言来为乐高机器人设计程序。这是一门图形化的编程语言,用户通过拖放图形达到编写程序的目的,而不用直接书写代码。这样的编程方式虽然直观,但是遇到过于复杂的逻辑,仅仅依靠图形总会感到难以表达清楚自己的思路。本书介绍的是现今软件行业极为流行的一门编程语言——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日
