[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

16 Comments

  1. 請問Android端的app打開就異常終止,有什麼可能的錯誤嗎?
    其實您上一個版本的我打開也是異常終止, 範例程式MultiColorLamp也是。
    版主回覆:(03/02/2012 07:38:52 PM)
    能給我一下錯誤訊息嗎
    您是第三位回報這個問題給我的朋友
    還有手機android版本!
    謝謝!

  2. 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

  3. 請問
    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)
    那個是系統自己產生的喔

  4. 謝謝你上次的指導。
    請問我可以如何把你的NTL_Bluetooth_Car for Android放到自己的口袋?
    版主回覆:(04/06/2013 05:14:38 PM)
    甚麼口袋XD?…

  5. 哈 我來自香港的 所以有時候言語表達沒那麼清晰。
    "口袋"是指寫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裏頭抓我包好的專案回來試看看呢

  6. 我下載了你的專案, 但不知如何放到Eclipse裹…t_t
    版主回覆:(04/11/2013 05:13:24 PM)
    這…你可能要看Eclipse匯入專案的方法XDD
    這我就不補充了,google還蠻多開發工具教學文的

  7. 喔~好的
    我好像成功匯入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官方網站找到相關函數~~~

  8. 謝謝, 努力尋找中..

  9. 不好意思啊
    這麼夜還打擾你
    請問如何在android的code把所傳送的數字由發出ascii改為發出實數
    例如: 要傳送’1′
    不要’31’
    而要把1傳到arduino上 省卻在arduino把ascii轉回char呢 😛
    版主回覆:(04/13/2013 03:29:56 PM)
    據我所知是不可能的
    他之所以會轉成ASCII就是要符合串列傳輸的標準
    當初做也是在ARDUINO 上面轉換,要不然就直接辨識ASCII

  10. 哭~
    這次我沒用"匯入專案"的方法 (因為這令到gen消失了…)
    而是打開你的專案 並copy了部分files;
    在arduino上則採用了你設計的code。
    可是手機成功連接後卻沒有data傳到arduino (鳴~~~~~)
    你知道出現什麼問題麼?
    謝!
    版主回覆:(04/13/2013 05:18:18 PM)
    你有copy到完成的檔案嗎
    會不會少複製一些jar呢

  11. 版主大大又是我 我放棄了自己的做法 砍掉重練
    我想問 需要買什麼硬件(我懷疑我用錯了零件 麻煩您列出硬件的型號和名字) 再加上你上面的兩個programmes才做到用手機控制的車?
    謝謝班主了 我還有一個禮拜就要交功課, 哭~final year project來的, 我還想畢業。
    版主回覆:(04/14/2013 08:20:01 AM)
    其實現在ARDUINO的馬達版蠻多的…
    大多都是用L298達靈頓對電晶體做的
    所以…我這一塊也不知道要怎麼跟你講型號
    其實大多的控制方式都大同小異,只是你的腳位對應要自己修改
    final year project要努力k阿XDD

  12. 版大
    連線後 按了些按鈕後
    回到Amarino2.0再按"monitoring" 只見它說: flag not registered
    這是什麼原因?
    版主回覆:(04/17/2013 06:55:42 PM)
    有點久了耶
    我之前也有遇到,好像是兩邊藍芽的鮑率沒有對上吧

  13. 我終於找到 flag not registered 的問題了XD
    直覺告訴我 我將會成功 謝謝班主的指導了
    版主回覆:(04/17/2013 06:57:08 PM)
    所以是啥問題…
    問題解決要回報阿XD

  14. 還有個問題
    speedPinA與dir1PinA是甚麼關係?_?
    版主回覆:(04/18/2013 06:13:32 PM)
    從單字上面你覺得是甚麼關係咧
    樓上回復完我再告訴你A_A

  15. 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

  16. 請問大大一個問題
    這個要怎麼寫成手機連手機
    可以教教我嗎
    版主回覆:(04/18/2013 06:13:58 PM)
    請有基礎知識在來弄喔
    我這裡不回答基礎知識的問題

Leave a comment

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