Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 14454|回復: 16
打印 上一主題 下一主題

藍芽接收資料控制自走車的問題

[複製鏈接]
1#
發表於 2017-12-10 06:52:28 | 顯示全部樓層
本帖最後由 超新手 於 2017-12-10 06:59 編輯

錯很多。最基本的問題是.....
以你的做法
app 送過來的是字串,而 arduino 卻是以字元處理
兩邊根本不同步
舉例來說,
如果 app 送出 1234,事實上
Arduino會收到 4個值,
分別是49,50,51,52(ascii code)
你必須把這4個字元組合回去 1234
才能進行判斷
如果直接判斷,這些字元最大才 255
根本不可能大於 3750
更別說3750那個判斷式完全是錯的

2#
發表於 2018-3-25 06:20:23 | 顯示全部樓層
AI2
你不能寫在 afterpick 那邊
那邊是用來選擇連線藍牙裝置用的
第一次連線時,都還沒連線成功
怎麼去判斷收到的值?
就算第二次以後,放在這也不對
沒事還要去按一下,才能更改 label 顏色

比較好的方式,就是放一個計時器timer
定時去判斷,如果藍牙連線成功,而且收到
1或 2,就去改變顏色
類似的程式寫法應該在隔壁樓就可以找到
3#
發表於 2018-3-25 13:46:05 | 顯示全部樓層
你要先把”接收長度1位元之無號數”先存在一個變數中
然後再用這個變數去判斷它是1,2或3
而不是呼叫”接收長度1位元之無號數”三次
4#
發表於 2018-3-25 14:04:13 | 顯示全部樓層
另外, 應該再增加判斷“取得接收數元組數” >0
才能再去判斷值
因為必須等到藍牙接收到序列監視所送的值
才能去藍牙讀資料,也才能進一步判斷值
5#
發表於 2018-3-25 14:31:33 | 顯示全部樓層
1)應該把橘色的設置和紫色的
”接收長度1位元之無號數”接在一起
然後用這個 global number 判斷 48,49,50
只能呼叫一次”接收長度1位元之無號數”
而且所有的判斷式都包在”藍牙的可用狀態
2)因為 bt.availabl() 是表示手機傳送過去的資料數
你從來沒送資料過去 arduino
所以永遠等於零
6#
發表於 2018-3-25 18:00:20 | 顯示全部樓層
判斷順序不對
照常理來想這個問題即可,判斷順序應該是
1) 藍牙是否是可用狀態?
2) 藍牙是否收到資料?如果有,才去讀資料
3) 依讀到的資料來判斷是否要改顏色
7#
發表於 2018-3-25 21:18:29 來自手機 | 顯示全部樓層
當然可以。只不過你找(買)的到類似的模組嗎?還要懂得應用它
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-2 09:55 , Processed in 0.195089 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表