2008-04-21

用JAVA控制NXT(iCommand奮鬥記)

接到網友的留言,提到無法使用JAVA與藍芽控制NXT

雖然我從來不曾使用JAVA,卻也硬著頭皮挑戰,

安裝Eclipse, iCommand, RXTX

經過三天三夜的奮鬥,終於成功讓NXT的A馬達轉動,

也執行了iCommand裡面的一些範例。

不過試驗何致億老師的範例程式卻無法成功,需要修改一些地方。

(我沒有何老師的書,網友提供的RUNPC雜誌範例下載http://www.runpc.com.tw/download/200801/R168P216.txt

大概是因為我使用icommand 0.7,何老師的範例是iCommand0.5,

我覺得最關鍵的還是需要將iCommand.jar, bluecove.jar, RXTXcomm.jar等三個檔案複製到jre目錄下的lib, ext

請參考www.juanantonio.info/p_research/robotics/p_lejos/docs/icommand0.5.pdf

(雖然是0.5的說明,但是圖文並茂,非常詳細)

還有iCommand 0.6, 0.7的readme.txt

也謝謝
Erin's Blog的吧庫碰碰車的JAVA程式











4 則留言:

  1. 原來在這留言就可以喔..
    想當初我也卡在java搞不定
    有時稿定了後 重灌電腦再試又失敗
    整整也是奮鬥好久 才僑好的
    看著icommand 的說明檔在上官網發問 補足一點點小漏洞就可了..
    [版主回覆05/05/2008 22:17:38]恭喜您成功。

    也歡迎您分享您的經驗!

    回覆刪除
  2. 日系瘋~*阿慶*~6:45 下午

    請問一下老師
    我照著您說的方法去做
    初步的編譯已經成功
    但是到了要下載的時候卻出現錯誤
    an error occurred: Class icommand.nxtcomm.NXTCommand (file icommand/nxtcomm/NXTCommand.class) not found in CLASSPATH .;C:\LEGPtools\lejos_nxj\lib\classes.jar
    上面的意思是沒有找到classes.jar嗎?  可是我在用的時候已經有把它匯入我的專案內了,不知道老師有沒有過相同的問題呢?

    [版主回覆10/19/2008 09:24:33]這種錯誤好像應該是在編譯時期出現。我沒有遇過這種錯誤,JAVA對我來說也是個謎@_@

    是無法在CLASSPATH找到Class icommand.nxtcomm.NXTCommand (file icommand/nxtcomm/NXTCommand.class)

    我不知道發生的原因,我曾經試了好幾次,發現不論如何設定PATH,最好將iCommand.jar, bluecove.jar, RXTXcomm.jar等三個檔案複製到SDK目錄下的jre/lib/ext

    這樣編譯器才能找到這些程式庫。

    祝你成功!

    回覆刪除
  3. 焦糖寶寶10:03 下午

    請問一下iCommand.jar, bluecove.jar, RXTXcomm.jar
    這三個東西要去哪邊下載呢.....?
     
    [版主回覆04/19/2009 00:45:41]還是按照說明就會有指示喔!

    回覆刪除
  4. 焦糖寶寶10:52 下午

    不好意思我找到了下面三個東西
    然後在pc執行btsend 發生了以下錯誤
    C:\lejos_nxj\samples\BTSend>java BTSend CHEN HAO 00:16:53:08:1F:20
    Exception in thread "main" java.lang.NoClassDefFoundError: lejos/pc/comm/NXTComm
    Exception
    Caused by: java.lang.ClassNotFoundException: lejos.pc.comm.NXTCommException
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    Could not find the main class: BTSend.  Program will exit.
    要怎麼解決阿
    [版主回覆04/19/2009 00:45:03]找到了就好。

    我沒有執行過這個程式,剛才花了一些時間測試,是正常的。

    我想問題還是出在你的環境設定,特別是編譯的路徑,所以找不到 lejos/pc/comm/NXTComm

    我是根據http://lejos.sourceforge.net/nxt/nxj/tutorial/Preliminaries/GettingStartedWindows.htm#4設定的。

    請再確實設定一次,或是按照上面的網頁說明自動安裝,使用Eclipse直接執行程式。

    (我還沒用過命令列編譯程式)

    祝你成功!

    回覆刪除

探奇歡迎大家留言討論!謝謝分享你的意見。