使用 Java 给 NXT 编程

准备

lejos

leJOS_NXJ_0.9.1beta-3.tar.gz download

安装依赖

1
sudo dnf install libusb-devel bluecove bluez-libs-devel ant

编译 libjlibnxt

1
2
3
cd leJOS_NXJ_0.9.1beta-3  
cd build
ant

刷固件

连接nxt,运行lsusb,出现

Bus 001 Device 059: ID 0694:0002 Lego Group Mindstorms NXT
说明连接成功。

1
2

cd bin
sudo ./nxjflashg

根据提示完成固件刷写。

调整udev

由于普通用户没有usb写入权限,故每次下载程序或刷新固件都需要root权限。创建一个udev配置,使普通用户也有权限操作nxt.

1
2
cd build/libnxt  
cat udev-rules.txt

其实lejos 已经给写好了,我们只需要修改一部分:

Lego NXT brick in normal mode

SUBSYSTEM==”usb”, DRIVER==”usb”, ATTRS{idVendor}==”0694”, ATTRS{idProduct}==”0002”, GROUP=”lego”, MODE=”0660”

SUBSYSTEM==”usb”, DRIVER==”usb”, ATTRS{idVendor}==”03eb”, ATTRS{idProduct}==”6124”, GROUP=”lego”, MODE=”0660”

GROUP中的lego修改为你的username.

生效udev

1
2
sudo cp ./udev-rules.txt /etc/udev/rules.d/lego.rules  
sudo udevadm control --reload-rules

其他udevadm指令

link

编写程序

HelloWorld.java

1
2
3
4
5
6
7
8
import lejos.nxt.Button;  

public class HelloWorld {
public static void main (String\[\] args) {
System.out.println("Hello World");
Button.waitForAnyPress();
}
}
1
2
3
nxjc HelloWorld.java  
nxjlink -o HelloWorld.nxj HelloWorld
nxjupload -r HelloWorld.nxj \# -u 使用usb -r 下载后运行

more

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×