|
我們是用小三輪自走車+藍芽模組來和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,[Data] '將RxPin接收到的資料放入Data
Debug Data
Select Data
Case 217 '後退
B:
'Serin RxPin,Baudmode,[Data]
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,[Data]
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,[Data]
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,[Data]
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,[Data]
'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
|
|