亲手制作一个能听从自己命令的机器人,是很多人儿时的梦想。可这个梦想实现起来却很难,要学会编写程序,要学会制作复杂的机械结构,还要有能力把各种各样原始材料、传感器、舵机组装到一起。于是,很多人的这个梦想渐渐地离自己越来越远,被遗忘在角落里。
一、何为乐高机器人
也许你看完这个图片会说,这也不是机器人呀。好吧,俗话说的好并不是长得像人一样的机器才叫机器人,就像不是只有电脑才叫计算机一样。乐高机器人,是对乐高Mindstorns(头脑风暴)系列的一个通俗称法,要认识乐高机器人,不得不先说一下乐高这个品牌。
乐高公司和麻省理工学院最早在1988年开始合作研发“智慧型可编程化积木”,1998年正式在纽伦堡、伦敦和纽约玩具展中推出Mindstorms和Robotics Ivention System产品(通常被称为RCX)。同年乐高公司开始发行机器人系列玩具,分别在1998年推出RCX 1.0版本机器人,在1999年推出RCX 1.5版本机器人,在2000年推出RCX 2.0版本,2006年乐高公司推出了NXT蓝牙机器人,并在2009年将蓝牙机器人升级为NXT 2.0版本。
图:乐高RCX机器人
到目前为止,乐高共推出了包括传感器、零件补充包、机器人套装在内的各种Mindstorns(头脑风暴)系列产品60个。其中大部分机器人套装均已停产,玩具版的NXT 2.0机器人8547、教育版NXT 2.0机器人9797、教育版机器人零件补充包9695和适用于NXT 2.0机器人的各种传感器仍然在产、在售。
以下是深受乐高迷们喜爱的几个机器人套装:
二、常见的乐高机器人套装
目前乐高公司在产在售并且较容易买到的机器人套装有Mindstorms系列的8547(俗称玩具版)、教育系列的9797(俗称教育版)和零件包9695。先来看看8547和9797的区别
1.玩具版8547
图:玩具版8547
8547包括一个主机,3个马达,2个触碰传感器,一个颜色传感器,一个超声波传感器,600多个积木,光盘,7根传感器数据线和1根usb线。自带NXT-G 2.0 玩具版软件,提供四个机器人的搭建图纸和程序。
2.教育版9797
图:教育版9797
9797包含一个主机、3个马达,2个触碰传感器,一个光电传感器,一个声音传感器,一个超声波传感器,470多个积木,一个塑料盒,一个锂电池,3根nxt转rcx的线,3个led,7根传感器数据线和1根usb线。无软件提供,需另行购买。
3.零件包9695
9695是乐高机器人的零件补充包,没有电子元件,含有817个零件,可以作为8547或9797的零件补充。
就目前来看,9797和8547的主机是一样的,二者的区别就在于传感器种类和数量以及积木种类和数量的区别,软件不管是教育版还是玩具版本都是通用的。根据本人多年玩机器人的经验,入门之初,建议大家选择8547,性价比高、可玩性高,一拿到手就可以按照搭建图做出很酷的机器人,令人兴致大增
我们简单的了解了一下乐高机器人,本文中将以目前市面中最常见的NXT2.0版机器人为例,向您详细介绍乐高机器人的入门知识,从硬件、软件和零件配备三个方面一起来学习如何玩转乐高机器人。
一般来说能自动执行工作的机器装置都被称作机器人。机器人有控制中心——能接受人类的工作指令、存储程序、指挥机器人的动作;有各种各样的传感器——能够感知周围环境的变化;有运动部件(马达)——能够带动机械结构做出各种动作;也有其他的输出设备,如屏幕、喇叭和LED等,可以用来表达机器人的情感;还有组成机械结构的各种零件。乐高机器人虽然号称为玩具,但构成一个机器人的种种元素却一样也不少。
一、乐高机器人的大脑 — 控制单元与传感器
蓝牙机器人硬件是由NXT控制器、伺服电机、传感器等组成。NXT控制器就像人的大脑,伺服电机好比人的肌肉,提供动力,传感器就像人的五官,采集外界环境的数据,然后反馈回大脑进行处理。
1.NXT控制器
图:NXT控制器
32位ARM7主处理器,主频:48MHZ ;8位AVR协处理器,主频:9MHZ;具有蓝牙无线通讯功能,能同时可以与3个带有蓝牙功能的设备通讯,如:另一部NXT控制器、手机、电脑等。连接传输速率每秒1MB字节,最少传输距离10米,通过增加发射功率可达到100米;4个输入端口;3个输出端口;100x64象素黑白显示屏;带扬声器;使用6节AA电池或锂电池板。所有的传感器要连接在NXT控制器上才可以使用,乐高机器人最核心的部分
2.NXT伺服电机
内置角度传感器可以测量速度和距离,使你能准确的控制电机转动精度,可以精确到1度以内
3.NXT传感器
看起来飞天遁地无所不能的乐高机器人,很多的功能都是通过多种多样的NXT传感器来实现的。
二、控制乐高机器人语言 — 编程软件
对于有编程基础、甚至从事软件工作的人来说,关心的是能否使用自己熟悉的编程语言给乐高机器人编程;而对于没有任何编程基础的人来说,关心的却是哪一种编程语言最简单易懂、可以很快掌握。
从这一角度看,我们不得不佩服乐高公司在开发机器人这一产品时的深思熟虑,在编程软件方面,乐高机器人完全可以满足上述两类人群的需求。
1.RoboLab
Robolab是一种直观易学的图形化程序编辑环境,是乐高公司与美国国家仪器公司(NI)、美国塔夫斯大学(TUFTS)共同合作,在LabVIEW基础上开发的机器人控制软件。编写程序就像设计流程图一样,简单易学,很快就可以上手。
2.NXT-G
NXT-G是由乐高公司和NI合作用LabVIEW为乐高机器人开发的图形化编程软件,简称G语言。最大的特色就是以图形化编程来组织程序,程序的展现出的形式就是具有逻辑结构的框图。因为其编程方法简单易学,又可以编出极其复杂的程序(乐高公司称c语言、Java语言编出的程序,NXT-G都可以编出),NXT-G语言已成为“TIOBE世界编程语言排行榜2011年榜单”的第15名。乐高公司为这种编程语言开发的软件称为“LEGO MINDSTROMS NXT 编程(programming)”
3.Microsoft Robotics Studio (MSRS)
这是微软开发的可在不同机器人上编程的软件平台。其中可以实现对NXT和RCX2.0的编程与开发。MSRS包括一个可视化编程环境, 能模拟机器人仿真运行。熟悉这个软件的人可以很快学会控制乐高机器人
4.RobotC
卡内基梅隆大学最新开发的一款基于标准C语言的编程环境,支持对NXT,RCX的编程。界面简单,易于操作,适用于熟悉C语言编程的机器人爱好者。
5.Bricx Command Center (BricxCC)
一款由个人开发的集成化开发环境(IDE)。通过使用NQC,NBC和NXC语言可以对NXT和RCX进行编程,因为该软件是免费开源的,是目前使用c语言的乐高爱好者最为常用的编程软件。
至此乐高机器人的攻略就全部结束了,乐高机器人的复杂程度绝对是超乎想象的,仅以此文抛砖引玉,更多的知识和乐趣,还要在不断的创造中去寻找,祝大家玩的愉快。