[Arduino]_NTL_Bluetooth_Car 藍芽小車搖控介面(2012/8/9 update)
=====================================================
8/9手機端程式修正,請先看這篇
如果有問題再看8/9這一篇!http://thkaw.pixnet.net/blog/post/92089951
=====================================================
其實這一支遙控程式在3月中的時候就已經寫了一個Prototype出來了
這一支程式比上次暫時更改multi color lamp手機端的程式好上很多,做成這樣才比較像是控制遙控車再用的~
只是剛好遇上Imagine Cup忙得不可開交,根本沒力氣上傳,另外一方面是我想要用一下Github來做一下版控
但之前的版控都是在本機端用了Tortoise SVN在自己做版控但這樣的缺點很麻煩,如果有太多的版號我還要一次丟一版上來
趁比賽結束,有點空閒,研究了一下Github,做了個Repositories,不過還不是很會設定…
但第一版本還算是上傳成功啦,有興趣的人可以玩一下(不會從Github抓檔案下來的就打屁屁吧)
操作介面就像上圖一樣,有個textbox可以輸入你要遙控的小車上的藍牙棒MAC(當然,amarino要先連線)
最下方的SliderBar是控制馬達出力的程度,我的車台跟上一篇文章http://thkaw.pixnet.net/blog/post/85537018
是差不多的,不過我把底盤換成圓形狀,履帶也變成輪子了…感覺廉價很多囧
硬體走線層面是完全沒變
arudion端程式部分大體沒變,不過有細微調整,所以arudion端的sketch也要重新燒~
變比較多的大概就是Android端的,幾乎是砍掉重練…
arduion的sketch:https://docs.google.com/open?id=0B3fyBbL11HpIeElnQU5jOTFaLXc
NTL_Bluetooth_Car for Android:https://github.com/thkaw/edu.stu.cc.amarino.NTL_Bluetooth_Car
因為現在版型的XAML語法還是用最古老android的版面配置下去寫的
所以…如果有按鈕或者物件跑到外面去,那就換一台手機或者自己改吧@@
下一版我在把物件利用新版的XAML語法配置正確…
不保證是什麼時候了才會生出來XD
請問Android端的app打開就異常終止,有什麼可能的錯誤嗎?
其實您上一個版本的我打開也是異常終止, 範例程式MultiColorLamp也是。
版主回覆:(03/02/2012 07:38:52 PM)
能給我一下錯誤訊息嗎
您是第三位回報這個問題給我的朋友
還有手機android版本!
謝謝!
07-12 10:52:01.033: E/AndroidRuntime(9884): FATAL EXCEPTION: main
07-12 10:52:01.033: E/AndroidRuntime(9884): java.lang.NoClassDefFoundError: at.abraxas.amarino.Amarino
07-12 10:52:01.033: E/AndroidRuntime(9884): at edu.mit.media.amarino.multicolorlamp.MultiColorLamp.onCreate(MultiColorLamp.java:56)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1722)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1784)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.app.ActivityThread.access$1500(ActivityThread.java:123)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.os.Handler.dispatchMessage(Handler.java:99)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.os.Looper.loop(Looper.java:130)
07-12 10:52:01.033: E/AndroidRuntime(9884): at android.app.ActivityThread.main(ActivityThread.java:3835)
07-12 10:52:01.033: E/AndroidRuntime(9884): at java.lang.reflect.Method.invokeNative(Native Method)
07-12 10:52:01.033: E/AndroidRuntime(9884): at java.lang.reflect.Method.invoke(Method.java:507)
07-12 10:52:01.033: E/AndroidRuntime(9884): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
07-12 10:52:01.033: E/AndroidRuntime(9884): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
07-12 10:52:01.033: E/AndroidRuntime(9884): at dalvik.system.NativeStart.main(Native Method)
Android版本是2.3.7
版主回覆:(07/09/2012 03:11:56 PM)
照理來說由MIT提供的Multicolorlamp應該大家照著做是起的來才對
如果你把
private static final String DEVICE_ADDRESS = "00:11:12:06:00:60"
給註解掉
Amarino.connect(this, DEVICE_ADDRESS);
這行直接塞入藍芽MAC字串呢?
你可以試看看上一篇那位網友連著PC DEBUG操作成功的
但這樣問題沒有根除…,我手邊只有一隻ANDROID DEVICE
改天有空還是去借一隻NEXUS S
請問
NTL_Bluetooth_Car for Android:https://github.com/thkaw/edu.stu.cc.amarino.NTL_Bluetooth_Car
是不是不需要R.java
版主回覆:(07/18/2012 10:26:56 AM)
那個是系統自己產生的喔
謝謝你上次的指導。
請問我可以如何把你的NTL_Bluetooth_Car for Android放到自己的口袋?
版主回覆:(04/06/2013 05:14:38 PM)
甚麼口袋XD?…
哈 我來自香港的 所以有時候言語表達沒那麼清晰。
"口袋"是指寫android programme的tool.
我將你的program放到我eclipse上是
1.打開你的programme的value>"strings.xml" & "main.xml" & "edu.stu.cc.amarino.NTL_Bluetooth_Car.NTL_Bluetooth_Car.java".
2. 只copy以上3份, 並paste到我的eclipse上
問題1. 這步驟是否正確??????? 🙂
之後我繼續以下3-10的步驟。
3. 放amarinolibaray入libs, 並F5.
4. 對專案名稱右鍵,選取內容->Java建構路徑->程式庫,把先前所有的東西刪除(只有兩項: Android 4.0.3, Android Dependencies)
5.之後"新增JAV",然後導向剛剛libs底下的AmarinoLibrary_v0_55.jar,接著按同一個畫面的"新增程式庫"->選擇"Android Classpath Container"
6.下一步之後加入要修改的專案(NTL_Bluetooth_Car_Ver2),完成
7.之後你compiler/debug仍然會錯誤,別慌
8.工具列點"專案"->"清除"
9.之後請"重開eclipse",在debug run一次,done 🙂
10.轉換成apk檔, 放到手機.
可是, 問題2又來了。 當我打開thkaw_moto_bt_ver1_2.ino, upload並用Tools>serial monitor(ctrl+shift+M), 又在ardmino app連接了bluetooth.
問題2: 用FLAG A sd 1個英文字或1個數字沒有任何反應 (哭~)
版主大大~~
版主回覆:(04/10/2013 07:32:24 PM)
你要不要先去http://thkaw.pixnet.net/blog/post/92089951
這一篇底下的github裏頭抓我包好的專案回來試看看呢
我下載了你的專案, 但不知如何放到Eclipse裹…t_t
版主回覆:(04/11/2013 05:13:24 PM)
這…你可能要看Eclipse匯入專案的方法XDD
這我就不補充了,google還蠻多開發工具教學文的
喔~好的
我好像成功匯入XP
我把android 的’F’, ‘B’, ‘L’, ‘R’, ‘S’ 改了’1′,’2′,’3′,’4′,’0′
測試則用了自己自己寫的ARDUINO code, 收到的是經過ASCII轉換的數字,即’30’, 31, 32, 33
一定要傳送ascii的嗎? 謝謝
版主回覆:(04/13/2013 02:08:39 PM)
arduino可以把ascii轉回char(沒記錯的話有這個函數),你可以去arduino官方網站找到相關函數~~~
謝謝, 努力尋找中..
不好意思啊
這麼夜還打擾你
請問如何在android的code把所傳送的數字由發出ascii改為發出實數
例如: 要傳送’1′
不要’31’
而要把1傳到arduino上 省卻在arduino把ascii轉回char呢 😛
版主回覆:(04/13/2013 03:29:56 PM)
據我所知是不可能的
他之所以會轉成ASCII就是要符合串列傳輸的標準
當初做也是在ARDUINO 上面轉換,要不然就直接辨識ASCII
哭~
這次我沒用"匯入專案"的方法 (因為這令到gen消失了…)
而是打開你的專案 並copy了部分files;
在arduino上則採用了你設計的code。
可是手機成功連接後卻沒有data傳到arduino (鳴~~~~~)
你知道出現什麼問題麼?
謝!
版主回覆:(04/13/2013 05:18:18 PM)
你有copy到完成的檔案嗎
會不會少複製一些jar呢
版主大大又是我 我放棄了自己的做法 砍掉重練
我想問 需要買什麼硬件(我懷疑我用錯了零件 麻煩您列出硬件的型號和名字) 再加上你上面的兩個programmes才做到用手機控制的車?
謝謝班主了 我還有一個禮拜就要交功課, 哭~final year project來的, 我還想畢業。
版主回覆:(04/14/2013 08:20:01 AM)
其實現在ARDUINO的馬達版蠻多的…
大多都是用L298達靈頓對電晶體做的
所以…我這一塊也不知道要怎麼跟你講型號
其實大多的控制方式都大同小異,只是你的腳位對應要自己修改
final year project要努力k阿XDD
版大
連線後 按了些按鈕後
回到Amarino2.0再按"monitoring" 只見它說: flag not registered
這是什麼原因?
版主回覆:(04/17/2013 06:55:42 PM)
有點久了耶
我之前也有遇到,好像是兩邊藍芽的鮑率沒有對上吧
我終於找到 flag not registered 的問題了XD
直覺告訴我 我將會成功 謝謝班主的指導了
版主回覆:(04/17/2013 06:57:08 PM)
所以是啥問題…
問題解決要回報阿XD
還有個問題
speedPinA與dir1PinA是甚麼關係?_?
版主回覆:(04/18/2013 06:13:32 PM)
從單字上面你覺得是甚麼關係咧
樓上回復完我再告訴你A_A
flag not registered應該是在ecllipse時有一句話
Amarino.sendDataToArduino(this, DEVICE_ADDRESS, ‘B’, power_Val);
當中的’B’一定要與Arduino上的這個 meetAndroid.registerFunction(backwards, ‘B’);一樣
從單字上面我覺得是speedPinA是用來控制motor speed- -" dir1PinA是motor…
不過我用這款ic上的M1和M4, 我卻不知道是那個pins- -http://www.ladyada.net/make/mshield/use.html
請問大大一個問題
這個要怎麼寫成手機連手機
可以教教我嗎
版主回覆:(04/18/2013 06:13:58 PM)
請有基礎知識在來弄喔
我這裡不回答基礎知識的問題