[Arduino]_NTL_Bluetooth_Car 藍芽小車搖控介面debug篇

各位鄉親網友真是久等了

上次http://thkaw.pixnet.net/blog/post/89074541

這篇的程式,有第五位使用者回報bug的問題

 

因為先前回報數太少,加上最近重心轉移到c語言練功去:P

 

沒有繼續code Android,所以eclipse就沒開

想說應該是個案…,一直也沒去借手機來測(跪地

 

所以一直拖拖拖拖拖拖到昨天剛好有個IDEA要寫在ANDROID手機上

然後今天又看到有人回報,隨手測試了一下我自己的手機

 

“咦?!”

 

連我的Motorola Atrix也不能跑了,一樣是卡在網友回報的那一行

“Amarino.connect(this, DEVICE_ADDRESS);”

 

想說回來暖暖身先來解決這個問題,還好沒有很困難,GOOGLE一下就有答案了

 

其實這個問題出在ADT版本的問題,我撰寫這隻程式的時候(包括自行改版
ADT還在16版(或更早?…沒有注意到)

期間ADT有更新,所以在lib這個資料夾有所變動

 

從lib變成”libs”

不過這跟這隻程式有何關係?…我們的AmarinoLibrary_v0_55.jar是透過external JAVA 匯入

為甚麼為甚麼!!…沒有為甚麼,純粹是因為ADT17之後官方的規定是要把用到的jar放到專案底下的libs

 

所以我這隻程式連lib資料夾都沒有,因為當初的教學是透過外部匯入的

來一張圖參照一下新舊版本,不過我這張圖的ver2是已經修正完的(舊文章放的ver2是舊版的,還沒修正,底下會釋出修正版),早期的ver1沒有修正的結構對比

原先兩個版本的結構幾乎相同,因為三兄弟都沒有libs資料夾,都採用external 匯入

所以三個版本都會掉漆不是沒有原因的….

紅框是沒修正的

綠框是修正完的

 

看到這裡你有兩個選擇,直接拉到底抓我修正完的

另外就是自己動手修正~,我會用文字敘述跟一點圖片輔助來講如何修正

 

1.對專案名稱(例如NTL_Bluetooth_Car_Ver2)右鍵,新增一個資料夾,命名為”libs”

新增完畢後,將AmarinoLibrary_v0_55.jar複製到實際該libs的路徑底下,然後對套件遊覽器按f5刷新後

會看到libs底下會出現AmarinoLibrary_v0_55.jar

 

2.對專案名稱右鍵,選取內容->Java建構路徑->程式庫,把先前所有的東西刪除(沒意外的話這邊會有三項東西,分別是之前的AmarinoLibrary_v0_55.jar、Android x.x.x、Android Dependencies)

之後”新增JAV”(不是外部的喔要注意),然後導向剛剛libs底下的AmarinoLibrary_v0_55.jar,接著按同一個畫面的”新增程式庫”->選擇”Android Classpath Container”

下一步之後加入要修改的專案(NTL_Bluetooth_Car_Ver2),完成

 

做完成畫面如下

 

之後你compiler/debug仍然會錯誤,別慌

 

工具列點”專案”->”清除”

 

之後請”重開eclipse”,在debug run一次,done 🙂

 

如果還有怪怪的問題,麻煩再回報給我知道喔~~~:)

 

arduino的pde照樣沒變,維持之前的(或者新版本有加入在project底下的arduino資料夾裡)

 

以下提供我修正完的ver2_1放在github:

https://github.com/thkaw/edu.stu.cc.amarino.NTL_Bluetooth_Car

 

 

另外題外話一下,剛剛去用了一下github(上次用之後再也沒用過了:P)
發現推出了for windows的版本,無敵霹靂好用,指令神馬的都不用下了,按按按就好了,不過目前不支援有設定密碼的ssh,所以我果斷把ssh移除,直接透過https

 

 

 

高雄正在雷雨交加中,恐怖=…=

 

thx for:

https://groups.google.com/forum/#!topic/amarino-toolkit/x2j0nC2GeHU%5B1-25%5D

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

15 Comments

  1. 版大您好
    感謝您提供解決方法,我會再去試試看的
    您辛苦了 ^^
    版主回覆:(03/14/2013 07:16:15 PM)
    沒問題啦
    順便練練功,你如果那裏有問題或者有成功都麻煩回報讓我知道一下~~thx
    我今天晚上又更新了一次,這次程式碼優化了不少
    版型的配置code也換成比較正規的做法,所以現在應該是大部分的機種版型都不會亂跑了
    一樣參照本文的github!

  2. 版主您好
    目前您的multi-color-lamp和NTL_Bluetooth_Car這兩個在手機上跑都是ok了,可以抓到Arduino板子上的藍芽,但是拖曳了一下multi-color-lamp這個程式裡的綠色拉桿車不會動耶,我在想是不是我的車體的板子部份上面沒有插什麼東西,能否提供一下Ardunio車體部份電路的插法.
    感謝您
    版主回覆:(08/12/2012 06:46:33 PM)
    我arduino程式裡面前半段有說要怎麼接喔~
    你可以依照自己的電路去做更改,因為我的馬達板跟你的不一定一樣

  3. 版主您好
    NTL_Bluetooth_Car這邊已經可以讓車子動了,一開始忘記自己的車子是ABBcar,摸了好久才發現Arduino程式部份和硬體部份跟版大的有些許差別.
    終於可以繼續再往前學習了.
    感謝版主分享的寶貴心得與教學指導.
    版主回覆:(08/13/2012 07:41:38 AM)
    OK,有遇到困難無法解決再一起研究~

  4. 版主您好
    跟您請教一下
    您圖中左邊的
    gen[Generate Java Files]
    要怎麼用出來
    研究了好久還是不會~"~
    版主回覆:(10/14/2012 04:35:24 PM)
    哦…那是SDK自動產生的關聯檔
    不需要自己新增也沒有必要更動
    你可能要先去熟悉一下ECLIPSE SDK操作還有專案建立等基礎知識喔

  5. 版主您好:
    妳的建議我有去做了
    只是身邊的人都沒有人碰過這個軟體
    對我來說這樣有點困難..
    請問有哪些網站的教學比較能快速進入狀況的嘛?
    因為我們的離專題交件日有點趕了…
    麻煩您了>"<||
    版主回覆:(11/09/2012 03:20:49 PM)
    直接買書看或者直接問google…
    不瞞你說
    我從JAVA完全不會寫,只有C/C++/C#的經驗,靠著GOOGLE學習還有書本的輔助
    就把JAVA練起來了
    大概1個月你就能摸熟ANDROID開發的初期流程了

  6. 板大您好:
    想請問您幾個問題,因小弟是想利用兩個藍芽模組和兩個arduino互通,但是我不太清楚藍芽的作動方式,譬如說,如果我讓輸出一高態訊號(5V)給1號藍芽的RX是否2號藍芽的TX就會收到高態嗎??
    還是藍芽互通有什麼專有的訊號格式??
    請大大解惑
    感激不盡
    版主回覆:(11/21/2012 11:57:15 AM)
    BT沒有特別的使用方式喔
    他一樣是採用Serial 232的標準規格再傳送東西~
    所以依賴Serial的指令,跟用電腦連Arduino傳送Serial Command是一模一樣的格式
    只是變成用藍芽而已喔
    並不是送高態就收高態
    你還是要定義字串傳送過去,另一端在撰寫相對應的字串處理動作

  7. 謝謝版大這麼快回
    想再請問,如要從1號arduino傳送字串給1號藍牙再由2號藍牙接收後傳給2號arduino,
    以上的傳送流程是否是:1號arduino(tx). 接著1號藍牙的(rx) 2號藍牙的(tx) 接著2號藍牙的(Rx)。
    還有請問arduino的數位或類比腳位可以傳送字串嗎
    不知版大有沒有一些類似的程式碼可以教小弟一下
    抱歉一直拿這些簡單的問題來煩您><!
    版主回覆:(12/04/2012 12:03:36 PM)
    要注意如果要兩片arduino互通
    其中一片必須要是master(連別人)
    另一片是client(被連)
    所以BT有三種型式
    1.MASTER
    2.CLIENT
    3.可切換
    通常可以視用途而買,兩片client或者master是無法配對連線的
    你要先把MASTER跟CLIENT搭上線,基本上一端直接透過指令Serial搭配對應的Com port就能傳送資料了
    通常Uno只有一個com,所以預設就是透過那個傳送了
    其他(如mega adk等),就會有好幾組Serial,那就是用Serial1,Serial2..等對應指令去寫
    請參考:http://arduino.cc/en/Reference/serial

  8. 版主, 不知道為什麼當我做完project-clean之後R.java就消失了t^t

  9. #8的問題解決了
    不過, 我做到
    "工具列點"專案"->"清除"
    之後請"重開eclipse",在debug run一次,done :)"之前就run到programme 神奇
    版主回覆:(12/05/2012 06:38:09 AM)
    哦…這沒問題阿@@..
    R.java本來就是系統產生的
    IDE會負責一些TEMP FILE,你CLEAN PROJECT自然會刪除一些建置的暫存檔,不影響

  10. 問題己決 再次感謝
    版主回覆:(04/10/2013 05:41:07 AM)
    沒問題 ^_^

  11. 版主您好,非常感謝您提供的方法!!
    小弟目前正在和同學設計用Android系統手機的加速規透過藍芽控制Arduino車子
    加速規的部分以撰寫的差不多,想請問您的程式中那些部分是涉及藍芽控制的
    小弟為Eclipse新手,還請多包涵~
    版主回覆:(01/02/2014 04:53:06 PM)
    我source code已經提供了,裏頭有註解…需要自己努力讀一下~

  12. 對不起 版主請問一下 我使用 Amarino 對藍芽加上MEGA256 做測試如下http://www.amarino-toolkit.net/index.php/getting-started.html
    是OK的!! PIN13面的內建LED燈會閃爍 , 藍芽上面的燈號也是維持ON的狀態(沒有connected 時是閃爍的)。
    後來我想用NTL_bluetooh car 這個範例做測試 ,我先把Eclipse的藍芽MAC改成自己
    的藍芽MAC add. EX0PORT 成APP 丟入手機執行,在手機上我打上了自己的MAC add. 但是藍芽燈號不是呈現連線狀態 , 是我哪裡做錯了還是還有APP沒開
    打字到這邊我發現我有一個Amarino plugin 沒有打開 , 請問這個檔案有什麼功用阿
    版主回覆:(01/15/2014 06:45:11 PM)
    這隻程式是藉由Amarino去傳送的,所以Amarino是扮演與上層跟下層藍芽傳輸的腳色
    必須也要安裝設定好,再用我的程式去連~

  13. 還有再請問一下 我設定NTL_BLUETOOH CAR 這個程式做set MAC add.時 該怎麼從
    手機/平板上判斷已連上藍芽裝置呢…
    版主回覆:(01/15/2014 06:46:07 PM)
    目前這隻程式只有單向傳送,如果你要雙向也可以
    再arduino上面寫如果收到來自外部的資料,就再回傳
    手機/平板就可以依照傳送後,有沒有收到相關的回傳資料做判斷是否有連上藍芽裝置
    以上是設計的邏輯,寫成程式也不難。

  14. 你好!! 感謝你的範例程式~~
    但是我發現面板轉向時amarino會自動斷線!!是什麼原因呢??
    還有想問版主大大有沒有android接收arduino訊號的範例呢?><?
    版主回覆:(01/15/2014 06:47:48 PM)
    你好,因為android轉向時會重新啟動activity
    我已經好久沒寫android了,如果你能用新的方式依照著個邏輯去改寫程式就可以解決
    或者你可以google:"android activity 重啟"
    會有方式可以避免重啟。
    另外我這邊沒有android接收arduino訊號的程式…

  15. 收到!! 謝謝版主大大~~

Leave a comment

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料