中文乐高

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 7765|回复: 23

【原创】【iRobot的机器人编程笔记】(一)前言

  [复制链接]
发表于 2013-5-6 11:50:35 | 显示全部楼层 |阅读模式
本帖最后由 iRobot 于 2013-6-17 19:58 编辑

    周末看了晓周和其他几位老师关于FLL的帖子,深受震撼。回忆一下自己像他们那么大的时候,会用键盘打个汉字就是很了不起的事情了。更何况是自己制作机器人这样的壮举。真可谓是人才辈出,有这样的小同学们真是令人欣慰,少年强则国一定强!

        我接触乐高NXT比较晚,也就2个月前才第一次知道了这个东东。中间因为没有空闲时间,一直未进行深入的研究。直到上周赶上五一长假,突然发现有时间了,于是毫不犹豫的上X宝,下单,付款,等待,收货!终于见到NXT了,呵呵。

        因为之前也在论坛上了解了一下NXT编程的基础知识,一些技术贴也翻看了一下,对于乐高编程是有一定了解的。但是总体感觉一是内容较少,不够丰富,二是讲解不够细致,让人感觉上手不是那么容易。毕竟我看到论坛上还有许多年龄不大的朋友,可能基础会稍弱一些。所以我决定将自己学习的过程记录下来,作为一个系列教程,对机器人编程进行一个由浅至深的讲解,希望能够帮助到热爱NXT,热爱机器人的朋友们。教程面向的是不具备编程基础的人,当然有一定编程知识的朋友也可以温故知新。要注意,教程基本不涉及机械结构。因本人学识有限,文中不当之处还望高人指正,若能起到抛砖引玉的作用,那就万分欣慰了。

        系列教程本着深入浅出的原则,尽量用易懂的语言描述编程过程,保证让你快速上手。但是有一点,必须有一定的毅力才能有所收获。如果抱着三天打鱼两天筛网的态度,那是很难学到东西的。

        感谢中文乐高的几位版主,你们的帖子带我走进乐高大门。

       目录(浅色字体为预期)(最新内容请查阅置顶帖总目录

下面是正文!

第一篇:前言
1.      选用什么语言

        语言的选择很重要。一门强大的编程语言,是学习的基础。根据我的了解,主要的NXT编程语言有
  • NXT-G(推荐)
  • LeJOS(推荐)
  • Microsoft® Robotics Studio (MSRS)(关注)
  • RobotC

       我来分析一下上述语言。如果不考虑将来的发展,只是用于NXT编程,那么NXT-G就是最佳选择。尤其是内置的快速编程功能更是方便上手。但是如果抛开NXT,那么NXT-G马上成为最不推荐的。这种编程方式太另类,不具备通用性,没有进一步深造的潜力。况且图形化的编程界面开发效率不高(因人而异),无法做出复杂的业务逻辑。所以本教程就不涉及NXT-G的相关内容了。需要学习的朋友可以看糖总管的“【NXT-G中文使用帮助】总目录(完整)”,写的很详细。

        而其他三种语言都具备通用性,LeJOS基于java,RobotC基于C语言(伪),Microsoft® Robotics Studio (MSRS)基于C#,VIsual Programming Language和微软的CLR2.0。这其中LeJOS是开发首选,原因有三点。

  • 以Sun的Java语言为基础,基本上就是原版的Java语言,而Java的开发环境是免费的。
  • Java是一门面向对象的语言,本身具有其优越性,又具有跨平台的特性,不仅可以在NXT上运行,更可以做智能手机和PC的应用。
  • 丰富的代码资源。当然NXT-G也有。但是这个代码资源并不是指NXT上所跑的程序,而是范指智能设备和PC上的资源。你也不希望自己的程序一辈子只跑在NXT上吧。

       Microsoft® Robotics Studio (MSRS)是次选。微软的强大就不多说了,而且微软的开发环境是最优秀的。我这么说可能一些高人会反对,这个问题仁者见仁智者见智,争论也不是一两天了。不过我坚持自己的观点。举个例子,在Visual Studio中书写一个if else语句需要敲击键盘三次就可完成,但是在Eclipse中要敲击20次以上。(我承认Eclipse用的并不熟)。但是关于Microsoft® Robotics Studio (MSRS)的教程我看到少之又少,我也只能在官网和几位网友的博客上了解一二。本系列教程我想前半部分用LeJOS,后半部分用Microsoft® Robotics Studio (MSRS)。(顺便一提,一般带上Studio的都是集成开发环境,并不是一门语言,MSRS的语法是C#,但是开发环境是一个叫Visual Programming Language的东西,Visua Studio辅助开发。)
        RobotC也是一个不错的选择,毕竟C语言的群体应该是最大的。但是它先天有些不足,我也精力有限,这个系列教程就不提它了。有兴趣的朋友可以到相关板块,糖总管有详细的讲解。

2.       选用什么开发环境(编译器,IDE

        上面说的是语言,语言就好比中文,英文,日文,开发环境就是写语言的环境,好比有些人用Word,还有些喜欢用记事本。选择起来很简单,LeJOS选用Eclipse,Microsoft® Robotics Studio (MSRS)选用Visual Programming Language和Visual Studio。后面一课就是搭建开发环境。

3.       课程包括的内容

  • NXT上LeJOS的开发
  • 安卓手机开发
  • 使用安卓手机控制NXT
  • PC,安卓手机,NXT之间的互相通信,控制
        暂时是这4个大块内容,细分还有许多,例如如何使用手机上的传感器和摄像头,使用wifi,GPS等。

4.       研究方向

        对于NXT的编程包括数据采集,运算,反馈三个环节。我的思路是:

  • 除去已有的NXT距离,光线传感器等之外,其他传感器全部使用手机或PC上的。例如陀螺仪,磁场,气压计,GPS等。(单片机过硬的人想法可能会正好跟我相反,呵呵)
  • 将所有的运算集中在手机或电脑上完成。将来还可能包括语音控制或图像识别等。
  • 所有的物理输出(马达,电机)全部由NXT控制,视频输出由NXT,手机,PC共同完成。
5.       课时

        我是希望能每周更新一课内容,当然只是希望,只是希望,呵呵。

        好了,前言部分讲完了。稍后正式进入课程《搭建LeJOS开发环境》。

        下面是我早上编写的一个NXT记事本,还有一个图片浏览器忘记拍照了。这些东西可以用LeJOS写出来,并且编写方法一目了然,即使从没有见过NXT的人也可以坐在一起讨论编程方法。这就是LeJOS的优势。

P1130879.JPG

P1130887.JPG


另附本人作品4枚。
【iRobot原创】【No.1】利用手机传感器打造指南车
http://bbs.cmnxt.com/thread-11068-1-1.html

【iRobot原创】【No.2】蓝牙+语音控制NXT小车
http://bbs.cmnxt.com/thread-11087-1-1.html

【iRobot原创】【No.3】电子+机械=拉霸 这个够炫吗
http://bbs.cmnxt.com/thread-11097-1-1.html

【iRobot原创】【No.4】光波塔 烽火传讯 强悍不需解释
http://bbs.cmnxt.com/thread-11139-1-1.html








如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 11:58:50 | 显示全部楼层
搬个沙发,好好学习,谢谢了。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2013-5-6 12:04:10 | 显示全部楼层
zhlego 发表于 2013-5-6 11:58
搬个沙发,好好学习,谢谢了。

我发完帖子,就死机了。等我重启完已经发现有同学坐在沙发上了。。。真速度。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 13:44:27 | 显示全部楼层
沙发没抢到,就做沙发扶手上。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 13:49:49 | 显示全部楼层
这么好的帖子一定要排队好好学习!没有JAVA基础的人飘过。。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 14:43:51 | 显示全部楼层
飘过
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 14:46:51 | 显示全部楼层
先占个位置
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 16:14:03 | 显示全部楼层
就是地板我也想做个靠前点的位置。认真听……
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 17:05:36 | 显示全部楼层
经楼主一开导,看来我又是放弃ROBOT C了!其实ROBOT C在NXT的开发方面还是很强的,就是软件有试用期,烦不胜烦!
LeJOS是基于JAVA的,跨平台优势比什么面向对象更实在!
LABVIEW是图形化的G语言,经过我试着自学,到现在还没有完全搞明白里面的一堆函数和控件,光看教学视频就看了有十多个课时的,买书又花了不少银子,觉得个LABVIEW够费的,反而没有C来得直接;
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-6 22:02:41 | 显示全部楼层
学习了  好贴
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-7 18:48:29 | 显示全部楼层
MSRS是独立的开发环境,不是Visual Studio
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
 楼主| 发表于 2013-5-7 19:43:32 | 显示全部楼层
ntwuhui 发表于 2013-5-7 18:48
MSRS是独立的开发环境,不是Visual Studio

呵呵  谢谢指正
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-7 21:28:32 | 显示全部楼层
楼主  东西呢
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-8 08:59:05 | 显示全部楼层
厉害
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-5-8 21:04:17 | 显示全部楼层
iRobot 发表于 2013-5-7 19:43
呵呵  谢谢指正

客气了!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|中文乐高 ( 桂ICP备11003955号-1 )

GMT+8, 2018-5-26 16:12 , Processed in 0.095804 second(s), 25 queries .

快速回复 返回顶部 返回列表