tkju8439 發表於 2012-6-11 15:36

要請教有關藍芽模組和自走車的問題[已解決]

我們是用小三輪自走車+藍芽模組來和Android手機連接

然後用手機去控制他

現在問題是 假設我們傳一個數據給車子 他就只能走一步 或者是執行完一個動作才能跳下個動作(For...Next)

我希望能夠 按前進之後 一直往前跑 期間可以跳往下個動作以此類推

先附上我們的程式碼:
(學校電腦有點問題 無法附件)
Dim RxPin As Byte
Dim Baudmode As Word
Dim Data As Byte
Dim a As Word
Dim b As Integer
Sub main()
#DEFINE Baudrate 9600      '宣告Baudrate速率為38400
RxPin = 13      '設定RxPin為15
Baudmode = (4096 - (2000000\Baudrate)) '計算Baudmode值
Do
Serin RxPin,Baudmode,   '將RxPin接收到的資料放入Data
Debug Data
Select Data

Case 217 '後退
B:
'Serin RxPin,Baudmode,
Debug Data

Pulseout 14,100 ''右馬達.產生0.5ms脈波
Pause 16
Pulseout 15,100 ''左馬達.產生0.5ms脈波
Pause 16
If Data=205 Then Goto L
If Data=254 Then Goto F
If Data=255 Then Goto R
If Data=221 Then Goto S

'Case 256
Case 205 '左轉
L:
'Serin RxPin,Baudmode,
Debug Data
Pulseout 14,500 ''右馬達.產生2.5ms脈波
Pause 16
Pulseout 15,100 ''左馬達.產生2.5ms脈波
Pause 16
If Data=217 Then Goto B
If Data=254 Then Goto F
If Data=255 Then Goto R
If Data=221 Then Goto S
'Case 257
Case 254 '前進
F:
'Serin RxPin,Baudmode,
Debug Data
Pulseout 14,500 ''右馬達.產生2.5ms脈波
Pause 16
Pulseout 15,500 ''左馬達.產生0.5ms脈波
Pause 16
If Data=205 Then Goto L
If Data=217 Then Goto B
If Data=255 Then Goto R
If Data=221 Then Goto S

Case 255 '右轉
R:

'Serin RxPin,Baudmode,
Debug Data
Pulseout 14,100 ''右馬達.產生2.5ms脈波
Pause 16
Pulseout 15,500 ''左馬達.產生0.5ms脈波
Pause 16
If Data=205 Then Goto L
If Data=217 Then Goto B
If Data=254 Then Goto F
If Data=221 Then Goto S
    Case 221 '停止
S:
'Do
'Serin RxPin,Baudmode,
'Debug Data
'Pulseout 14,300 ''右馬達.產生1.5ms脈波
'Pause 16
'Pulseout 15,300 ''左馬達.產生1.5ms脈波
'Pause 16
'If Data=205 Then Goto L
'If Data=217 Then Goto B
''If Data=254 Then Goto F
'If Data=255 Then Goto R
'Loop

Case Else '例外
For a=0 To 50
Pulseout 14,300 ''右馬達.產生1.5ms脈波
Pause 16
Pulseout 15,300 ''左馬達.產生1.5ms脈波
Pause 16
Next
End Select
Loop
End Sub


magiccar 發表於 2012-6-12 01:46

1。Serin RxPin,Baudmode, 沒有加入 timeout 設定,所以卡住了!
2。Debug 指令會拖慢程式,造成馬達動力不連續。

tkju8439 發表於 2012-6-12 20:05

那大概該怎麼修改呢?

能不能麻煩老師貼一下範例...

magiccar 發表於 2012-6-14 00:48

tkju8439 發表於 2012-6-12 20:05 static/image/common/back.gif
那大概該怎麼修改呢?

能不能麻煩老師貼一下範例...
參考=>
格式=>SERIN Rpin, Baudmode, Timeout, , Timeout_Label
所以原程式可改成如下:
.
.
R:
Serin RxPin,Baudmode,5,, TimeOut
   '延遲時間越短(目前設為5ms)馬達越快,但控制信號則不易接收,要作實驗。
      If Data=205 Then Goto L
      If Data=217 Then Goto B
      If Data=254 Then Goto F
      If Data=221 Then Goto S
TimeOut:
      驅動馬達R程式段...
      Goto R
.
.


如果問題已解決,請回覆告知。

tkju8439 發表於 2012-6-19 20:53

感謝老師 問題已解決...感謝喔
頁: [1]
查看完整版本: 要請教有關藍芽模組和自走車的問題[已解決]