圓創力科技

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

查看: 4123|回復: 4

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

    [複製鏈接]
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,[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


magiccar 發表於 2012-6-12 01:46 | 顯示全部樓層
1。Serin RxPin,Baudmode,[Data] 沒有加入 timeout 設定,所以卡住了!
2。Debug 指令會拖慢程式,造成馬達動力不連續。
 樓主| tkju8439 發表於 2012-6-12 20:05 | 顯示全部樓層
那大概該怎麼修改呢?

能不能麻煩老師貼一下範例...
magiccar 發表於 2012-6-14 00:48 | 顯示全部樓層
tkju8439 發表於 2012-6-12 20:05
那大概該怎麼修改呢?

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

參考=> InnoBasic指令補充手冊_2010924.pdf (630.82 KB, 下載次數: 2)
格式=>SERIN Rpin, Baudmode, Timeout, [Value2], Timeout_Label
所以原程式可改成如下:
.
.
R:
  Serin RxPin,Baudmode,5,[Data], 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 | 顯示全部樓層
感謝老師 問題已解決...感謝喔
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

QQ|Archiver|手機版|小黑屋|圓創力科技有限公司 IOP Robotic Technology Co.,Ltd Tel: 07-3924582 Fax: 07-3924001

GMT+8, 2024-4-25 19:07 , Processed in 0.024450 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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