乐高NXT机器人的编程软件的教学和实践
2014-05-30符蓉王向丰
符蓉 王向丰
[摘要]乐高机器人是一种把电机、传感器、齿轮、轮轴等电子产品、机械产品组合成的智能设备,它是一种能够用内置程序或外部无线电操作的教娱玩具。目前乐高机器人以套装的形式发售,过去乐高机器人出售过RCX套装,目前开发的乐高机器人NXT套装系列比RCX套装系列多出一个端口。
[关键词]乐高机器人 编程软件 教学实践
一、乐高NXT机器人的编程软件教学和实践的意义
如果说,机器人的硬件决定机器人能够“做什么”,那么机器人的软件程序决定它能“怎样做”。优秀的程序能够给予机器人丰富的指令,让机器人实现多样化的功能。
乐高机器人目前可用C语言、VB语言、JAVA语言编程,让乐高机器人完成各式各样的操作命令,可是这类的语言过于专业,如果不是专业的计算机工作人员,很难完成复杂的程序编辑。为了让编程过程变得可视化和简单化,乐高机器人以ROBOLAB图形化为思路,开发出G语言,它能用简单的方式完成动作循环、条件选择等程序编程,这些编程过程均有一套批处理化的专门的图标负责完成,编程人员只需要将编程模块组合并设定动作参数。丰富、简单、易用的G语言赋予了乐高机器人强大的生命力,乐高机器人的使用者和开发者若能学习好G语言,就能让乐器机器人发挥无穷的创意。
二、乐高NXT机器人的编程软件教学和实践的平台
1.引导学生熟悉操作环境
所谓的操作环境,就是指要完成编程和实现编程必须具有的工作平台,教师要引导学生了解到在开始编程以前,要先检查编程的工作平台是否齐备,以免在工作中发现无法顺利的完成编程过程。一台乐高NXT机器人的编程环境如下:
通过USB2.0,乐高NXT编程程序可与计算机PC端连接起来,程序员可在计算机中完成编程程序,然后导入乐高NXT机器人处理器中。
2.引导学生熟悉操作面板
学生要学会编程,首先就要熟悉操作面版,教师可以让学生理解到乐高的编程软件分为两种版本,一种是玩具版本,一种是教育版本,其区别在于玩具版本只有英语版,而教育版自带汉化版本,然而两者的功能却是一样的。学生只有熟悉了面板的分布,在编程的时候才能知道软件的功能应当如何使用。
(1)引导学生熟悉菜单分布 图1为G语言菜单界面,教师可以引导学生观察菜单界面分布的规律,让学生以最快的速度了解如果自己需要操作一个功能时,要在菜单哪个范围中寻找这项功能。
(2)引导学生熟悉编程模块
G语言与非图形化编程软件的区别为,非图形化编程软件需要编程人员自己编写每一条程序命令,使程序命令能够完成批处理化操作。而G语言的每一个模块都已自带有批处理命令,编程人员使用G语言编程时,只用把模块串联起来,即完成编程过程。教师要引导学生熟悉编程模块的使用方法,图2为G语言的编程模块与线程,两者结合起来使用,能够达到编程的目的。
(3)引导学生熟悉程序输入与输出
编写G语言除了要做模块设置以外,还要做参数设置,图3为参数设置的面板,要做参数设置就要用数据线和数据中心的功能,当学生做完模块编程,设置好参数以后,即完成编程过程。教师要引导学生学生学会用数据线把数据中心连接起来,开始调试程序。学生熟悉了面板操作,是学会用G语言编程的基础。
3.引导学生绘制程序流程图
所谓的流程图,是指用一套标准的图形符号,说出一套算法。如果学生在编程的时候,先用流程图整理自己算法,然后再用编程软件实现自己的算法,这个程序就容易编得简洁、有序、严谨,一旦学生的程序出现问题,学生可以对应着绘制的流程图检查编程中存在的问题。反之,如果学生不画流程图,一味只凭自己的感觉去编程,如果程序出现了问题,学生将很难找到到底是哪个编程环节出现问题,应该从哪个环节着手开始调试等。不管学习任何哪一门程序,学生都要学会绘制流程图,教师要引导学生重视绘制流程图的思想,让学生养成在编程以前先绘制流程图的习惯,然后依照流程图的算法开始编程。
三、乐高NXT机器人的编程软件教学和实践的方法
1.引导学生尝试简单的编程
教师引导学生学会G语言编程时,不应一开始就让学生编写复杂的程序,而是应该让学生先编写非常简单的程序,这是为了让学生熟悉G语言的操作。教师可以从以下的几个编程步骤让学生摸索G语言界面分布的规律,并且引导学生熟悉菜单、图标的操作:
第一步,引导学生熟悉运动操作的方式,让学生了解到如何让乐高NXT机器人作前近、后退、旋转、停止等运动。
第二步,引导学生摸索设置传感器的方法;
第三步,引导学生思考,如何能让乐高机器人做连续的运动或者做循环的运动。
其中有一堂课,我引导学生编写了一个让乐高NXT转弯的程序。学生初开始的时候,是以动作停止的方式作为缓停,可是学生在调试程序的时候发现有时乐高NXT走到特定的角度时,无法立即停止,而继续向前缓冲,这说明该程序有时不能准确的指挥机器人行动。学生又尝试第二种方法,即动作结束以后即停止,可是它虽然能准确停止,却易出现卡死的问题,这也会造成程序的不准确性。教师引导学生摸索一些简单的程序,是为了让学生在调试简单程序的过程中了解编程的方法、熟悉乐高NXT机器人的性能,使自己的编程与指挥机器人完成动作能真正的结合起来。
经过调试,学生的编程结果如图4:
2.给学生一个综合的学习目标
学生了解了简单的G语言编程原理,且能将编程与乐高NXT机器人的性能结合起来以后,教师可以给学生一些富有趣味性的任务,让学生尝试完成一些动作较复杂的、富有变化性的程序,让学生在编程的过程中能感受到乐高NXT机器人的强大性能。比如,教师可以给学生布置习题:
通过遥控器让乐高NXT机器人自动行走,如果遇到某个抓取目标,则自动抓取目标,送往某个特定地点。
教师通过这个题,可以让学生感受到操控乐高NXT机器人的趣味性,学生在编程的过程中能理解到这样的机器人既可以成为一个教娱玩具,然而如果给予丰富的程序,它还可以完成自动拆弹、搬运物体、搜救等功能,成为具有实用性能的机器设备。
3.让学生交流彼此的编程成果
如果学生能与更多的同好一起编程,学生会感受到更多编程的乐趣。教师可以引导学生应用信息技术,让学生把自己编写的程序发布到论坛上、博客上,与同好共同交流、彼此促进,通过这种方式,学生的编程能力能持续进步。
四、总结
乐高NXT机器人是一种既具教娱功能,又具实用功能的机器人,它具有广阔的市场前景,要为这种机器人注入更多的活力,就需要乐高NXT机器人的使用者和开发者为它编写各种程序。G语言是一种图形化的编程软件,教师要通过合理的教学和实践普及这种语言程序,使乐高NXT机器人的功能变得更丰富,更能满足人们的需求。
参考文献:
[1]谷子瑞.乐高NXT机器人无线技术设计[J].科协论坛,2010,(10).
[2]甘辰予,陈劲生.LEGO智能除冰機器人的设计[J].大众科技,2009,(10).
[3]张明.乐高机器人转弯问题的探讨[J].中国现代教育装备,2007,(05).