2012年8月31日 星期五

Linux 用 USB 跟 NXT 通訊

之前在「Linux 用藍牙跟 NXT 通訊的程式」透過藍牙跟 NXT 通,其實最直接是接 USB,一樣使用 NXT Communication Protocol。

網路上就有現成可執行的程式 -- t2n (Talk To NXT),下載,放好 udev 規則讓一般使用者有權限,便可使用:C++,使用 USB
wget  http://www-verimag.imag.fr/~raymond/edu/lego/t2n/t2n-0.4.tgz
tar xvf t2n-0.4.tgz
sudo cp t2n-0.4/udev/71-lego.rules /etc/udev/rules.d/
開啟 NXT,接上 USB,執行
./t2n-0.4/t2n -b -i -ls
就可以取到電池電壓、NXT 資訊、檔案列表,如下:
battery level = 7948mV
#### NXT INFOS ###############
protocol version=1.124 firmware version=1.28
NXT Name: NXT
Blutooth address: 16:53:17:7f:ffffffcf:00
Blutooth signal: 0
Free user flash: 77180
FILE:"Untitled-1.rxe" SIZE:4768
FILE:"Program.tmp" SIZE:13
FILE:"a.rpg" SIZE:13
FILE:"NVConfig.sys" SIZE:6
FILE:"DemoV2.rxe" SIZE:3996
FILE:"RPGReader.sys" SIZE:5908
FILE:"faceclosed.ric" SIZE:316
FILE:"faceopen.ric" SIZE:316
FILE:"Woops.rso" SIZE:2232
FILE:"! Startup.rso" SIZE:4084
FILE:"! Attention.rso" SIZE:881
FILE:"! Click.rso" SIZE:229
FILE:"Try-Color.rtm" SIZE:4346
FILE:"Try-Touch.rtm" SIZE:1238
FILE:"Try-Light.rtm" SIZE:684
FILE:"Try-Ultrasonic.rtm" SIZE:1208
FILE:"Try-Motor.rtm" SIZE:676
FILE:"Try-Sound.rtm" SIZE:638
FILE:"" SIZE:0
另外還可以上載、下載檔案,執行參數是:
  • -put <檔名> : 上載檔案
  • -get <檔名> : 下載檔案
t2n 是 GPL 版權,有原始碼讓你研究,是用 C/C++ 寫的。


另外列出一些網路上找到的其它程式,不過我沒試就是。

順便列一些 NXT USB 資訊


lsusb 輸出:
Bus 003 Device 006: ID 0694:0002 Lego Group Mindstorms NXT

sudo cat /sys/kernel/debug/usb/devices 輸出:
T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0694 ProdID=0002 Rev= 0.00
S:  SerialNumber=001653177FCF
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...