打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LeJOS NXJ 简介
userphoto

2009.11.17

关注
今天开始,利用一些制作机器人的空闲时间来翻译一下LeJOS NXJ的入门。(LeJOS NXJ是LeJOS的NXT版本)
我会同时在自己的BLOG和这里发布,希望能给大家带来帮助。如有更新,以BLOG上的内容为最新。
翻译中必然有一些胡言乱语或者不知所云之处,还请各位在BLOG上留言或者在此回帖予以更正或提出建议。

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://programus.blogbus.com/logs/48493001.html


英文原文: http://lejos.sourceforge.net/nxt/nxj/tutorial/Preliminaries/Intro.htm

什么是LeJOS NXJ?


LeJOS NXJ是运行于LEGO MINDSTORMS NXT ®之上的Java编程环境。它让你可以使用Java语言来编写乐高(LEGO)机器人。
它主要由以下部分组成:
  • 一个包含Java虚拟机的NXT固件系统(firmware)。可以替代标准的NXT固 件。
  • 一套对LeJOS NXJ编程接口(API)的实现类库——classes.jar
  • 一个连接器:可以将用户编写 的Java程序与classes.jar类库连接为能够在NXT上 运行的二进制文件。
  • 一套运行在PC上的工具。它们可以帮助你刷新NXT固件、上传程序、调试以及其他各种附加功能。
  • 一 套PC API。利用这套API,你可以使用Java流(stream)来实现PC和NXJ程序的通信,其中包括通过蓝牙、USB以及LEGO Communication Protocol(LCP)进行的通信。
  • 一些例子程序。

由于LeJOS与NXT的标准固件并不互相兼容,所以必须将新的LeJOSNXJ固件刷入NXT才可以让Java编程成为可能。而这将替换掉NXT标准固件,并删除掉原有固件所安装的全部文件。不过你随时可以使用LEGO提供的软件还原标准固件,
LeJOS是建立在sourceforge之上的一个开源项目。它起源自TinyVM项目——一个在LEGOMindstormsRCX系统上的Java虚拟机项目。

LeJOS的RCX版本早已在LEGO Mindstorms RoboticInventionsSystems的人群中被证明具有很高的人气,各个版本的下载总数已达到大约200,000次。TinyVM和LeJOS的RCX版本的原作者是JoseSolorzano。

NXT的出现,让LeJOS开发团队有了大幅度扩展LeJOS的机会。

LeJOS NXJ的优点

比起使用NXT-G或者其他NXT编程环境,使用LeJOSNXJ有很多优点。比如:
  • 使用了符合业界标准的Java语言(译注:符合标准意味着更高的兼容性和可维护性)
  • 支持面向 对象编程(译注:面向对象思想特别适合机器人的编程,可以考虑单独开专题介绍)
  • 是一个众人拾柴火焰高的开源项目
  • 使你 可以自己选择一个专业的集成开发环境,例如Eclipse或者Netbeans(译注:用过的人都说这俩工具真的很强大)
  • 有针对 Eclipse和Netbeans的插件(译注:与开发环境结合地更加完美)
  • 拥有Java的跨平台性——支持Windows、 Linux以及Mac OS X等
  • 比NXT-G更快
  • 全面支持蓝牙、USB、I2C以及RS485协议(译注:我不知 道RS485是什么)
  • 提供了更加精确的马达控制(译注:这是真的!至少比NXC的方法易懂易用)
  • 支持Java 1.6语言特性
  • 拥有高级的导航支 持
  • 支持定位算法,例如Monte Carlo Localization(MCL)
  • 支持其他机器人学概率算法,例如 卡尔曼滤波(Kalman filters)
  • 提供了行为(Behavior)类以及行为编程架构,使得编写复杂机器人变得更加简单(译 注:详情请看指南最后一章)
  • 支持众多第三方传感器
  • 支持通过蓝牙或者USB的日志远程输出,即在PC上输出调试日志, 并可通过System.out或者System.err来输出。(译注:这一特性真的很有用!)
  • 支持从PC对LeJOS NXJ程序的远程监控和追踪
  • 提供了浮点数的数学、三角及其他数学公式
  • 支持JME液晶显示器用户接口,比如一些绘图功 能
  • 支持多线程
  • 支持listener和event(事件监听机制)
  • 支持安全内存管理和垃圾回收
  • 支 持基于蓝牙、USB以及RS485的标准Java输入输出流
  • 可通过标准java.io类来操作NXT的Flash文件系统
  • 支 持数据日志以及日志的远程捕捉
  • 声音支持,可以播放8-bit的wav文件
  • 提供了一大票例子程序可供参考
  • 支 持从PC上远程运行大部分API
  • 拥有一个网站论坛,可以帮助你解决各种疑难杂症、共享大家的伟大想法甚至直接与开发团队沟通(译注:目 录里提到的有意见你就提,就可以到那里提)
  • 通过TCP/IP实现了对远程机器人(telerobotics)的支持(译注:这句不确定,请高手支招)
  • 支持NXT之间的蓝牙和 RS485通信
  • 支持与其它设备的蓝牙通信,比如GPS接收器
  • 支持GPS设备,并支持 javax.microedition.location API
  • 支持使用蓝牙SPP(Serial Port Profile)的蓝牙键盘
  • 通过第三方适配器——例如Mindsensors NRLink——支持与RCX间的双向通信
  • 支 持servo motor和Power Function (PF) motor(译注:专业名词太多,偷懒不译了,其实也不会翻译)
  • 提 供与LEGO Communications Protocal(LCP)的兼容能力,所以很多可以与标准LEGO固件协同工作的工具也可以与LeJOS协同工作
  • 有一个简单易用的菜 单系统
  • 广泛用于大学以及各种教育机构
  • 支持简单的计算机视觉应用
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
怎样在 Lego Mindstorms NXT 上安装运行 Java 程序_ToyRobo...
乐高and机器人——一个伟大的组合
[leJOS] 準備開機用 SD記憶卡 – 用 Java 程式控制樂高EV3機器人 CAVEDU教育團隊技術部落格 | CAVEDU教育團隊技術部落格
甲骨文:有史以来最伟大的25个Java应用程序
在网上看到很多人用乐高制作各种各样的东西,有那么容易 DIY 吗?
《乐高EV3机器人搭建与编程》
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服