[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
版大您好
感謝您提供解決方法,我會再去試試看的
您辛苦了 ^^
版主回覆:(03/14/2013 07:16:15 PM)
沒問題啦
順便練練功,你如果那裏有問題或者有成功都麻煩回報讓我知道一下~~thx
我今天晚上又更新了一次,這次程式碼優化了不少
版型的配置code也換成比較正規的做法,所以現在應該是大部分的機種版型都不會亂跑了
一樣參照本文的github!
版主您好
目前您的multi-color-lamp和NTL_Bluetooth_Car這兩個在手機上跑都是ok了,可以抓到Arduino板子上的藍芽,但是拖曳了一下multi-color-lamp這個程式裡的綠色拉桿車不會動耶,我在想是不是我的車體的板子部份上面沒有插什麼東西,能否提供一下Ardunio車體部份電路的插法.
感謝您
版主回覆:(08/12/2012 06:46:33 PM)
我arduino程式裡面前半段有說要怎麼接喔~
你可以依照自己的電路去做更改,因為我的馬達板跟你的不一定一樣
版主您好
NTL_Bluetooth_Car這邊已經可以讓車子動了,一開始忘記自己的車子是ABBcar,摸了好久才發現Arduino程式部份和硬體部份跟版大的有些許差別.
終於可以繼續再往前學習了.
感謝版主分享的寶貴心得與教學指導.
版主回覆:(08/13/2012 07:41:38 AM)
OK,有遇到困難無法解決再一起研究~
版主您好
跟您請教一下
您圖中左邊的
gen[Generate Java Files]
要怎麼用出來
研究了好久還是不會~"~
版主回覆:(10/14/2012 04:35:24 PM)
哦…那是SDK自動產生的關聯檔
不需要自己新增也沒有必要更動
你可能要先去熟悉一下ECLIPSE SDK操作還有專案建立等基礎知識喔
版主您好:
妳的建議我有去做了
只是身邊的人都沒有人碰過這個軟體
對我來說這樣有點困難..
請問有哪些網站的教學比較能快速進入狀況的嘛?
因為我們的離專題交件日有點趕了…
麻煩您了>"<||
版主回覆:(11/09/2012 03:20:49 PM)
直接買書看或者直接問google…
不瞞你說
我從JAVA完全不會寫,只有C/C++/C#的經驗,靠著GOOGLE學習還有書本的輔助
就把JAVA練起來了
大概1個月你就能摸熟ANDROID開發的初期流程了
板大您好:
想請問您幾個問題,因小弟是想利用兩個藍芽模組和兩個arduino互通,但是我不太清楚藍芽的作動方式,譬如說,如果我讓輸出一高態訊號(5V)給1號藍芽的RX是否2號藍芽的TX就會收到高態嗎??
還是藍芽互通有什麼專有的訊號格式??
請大大解惑
感激不盡
版主回覆:(11/21/2012 11:57:15 AM)
BT沒有特別的使用方式喔
他一樣是採用Serial 232的標準規格再傳送東西~
所以依賴Serial的指令,跟用電腦連Arduino傳送Serial Command是一模一樣的格式
只是變成用藍芽而已喔
並不是送高態就收高態
你還是要定義字串傳送過去,另一端在撰寫相對應的字串處理動作
謝謝版大這麼快回
想再請問,如要從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
版主, 不知道為什麼當我做完project-clean之後R.java就消失了t^t
#8的問題解決了
不過, 我做到
"工具列點"專案"->"清除"
之後請"重開eclipse",在debug run一次,done :)"之前就run到programme 神奇
版主回覆:(12/05/2012 06:38:09 AM)
哦…這沒問題阿@@..
R.java本來就是系統產生的
IDE會負責一些TEMP FILE,你CLEAN PROJECT自然會刪除一些建置的暫存檔,不影響
問題己決 再次感謝
版主回覆:(04/10/2013 05:41:07 AM)
沒問題 ^_^
版主您好,非常感謝您提供的方法!!
小弟目前正在和同學設計用Android系統手機的加速規透過藍芽控制Arduino車子
加速規的部分以撰寫的差不多,想請問您的程式中那些部分是涉及藍芽控制的
小弟為Eclipse新手,還請多包涵~
版主回覆:(01/02/2014 04:53:06 PM)
我source code已經提供了,裏頭有註解…需要自己努力讀一下~
對不起 版主請問一下 我使用 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是扮演與上層跟下層藍芽傳輸的腳色
必須也要安裝設定好,再用我的程式去連~
還有再請問一下 我設定NTL_BLUETOOH CAR 這個程式做set MAC add.時 該怎麼從
手機/平板上判斷已連上藍芽裝置呢…
版主回覆:(01/15/2014 06:46:07 PM)
目前這隻程式只有單向傳送,如果你要雙向也可以
再arduino上面寫如果收到來自外部的資料,就再回傳
手機/平板就可以依照傳送後,有沒有收到相關的回傳資料做判斷是否有連上藍芽裝置
以上是設計的邏輯,寫成程式也不難。
你好!! 感謝你的範例程式~~
但是我發現面板轉向時amarino會自動斷線!!是什麼原因呢??
還有想問版主大大有沒有android接收arduino訊號的範例呢?><?
版主回覆:(01/15/2014 06:47:48 PM)
你好,因為android轉向時會重新啟動activity
我已經好久沒寫android了,如果你能用新的方式依照著個邏輯去改寫程式就可以解決
或者你可以google:"android activity 重啟"
會有方式可以避免重啟。
另外我這邊沒有android接收arduino訊號的程式…
收到!! 謝謝版主大大~~