Robofun 機器人論壇

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

如何用VB 2005和BS2溝通??

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-5-27 17:42:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大大好,我想用VB 2005來跟BS2做溝通,我是用Boe-BS2PX USB的,使用baudrate 9600,8N1,VB的serialport也有設定好com port等等,因為我對VB才剛接觸,可以幫我看一下程式哪裡有錯,程式大致上是利用一個button和textbox,當我按下button,然後傳出dat,接著BS2收到dat之後,回傳給PC,但是執行VB則是顯示"通訊埠已經關閉"的訊息,拜託懂的人出個聲吧,或是有什麼方法提供一下,現在只是想簡單測試VB跟BS2的溝通。

-------VB 程式--------------------------------------------------------
Public Class Form1
    Dim dat(2) As Byte
    Dim readbf(2) As Byte
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim A As Byte
        dat(0) = 5
            SerialPort1.Write(dat, 0, 1)        '在這裡顯示==>"通訊埠已經關閉"
            System.Threading.Thread.Sleep(1)
      
             SerialPort1.DiscardInBuffer()
             SerialPort1.Read(readbf, 0, 1)
        readbf(0) = A
        TextBox1.Text = A

    End Sub
End Class
--------------------------------------------------------------------

----BS2程式-------------------------------
' {$STAMP BS2px}
' {$PBASIC 2.5}
dat VAR Byte
DO
SERIN 16,16780,[dat]
DEBUG ? dat,CR
IF dat>0 THEN
  SEROUT 16,16780,[DEC 125]
ENDIF
LOOP
END
--------------------------------------------------------------------
2#
發表於 2009-7-19 20:07:45 | 只看該作者
這是一個用VB傳字串給RS232的程式,一個ComboBox,三個Button,兩個Textbox,程式碼如下
Imports System.IO.Ports
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btnOpenPort.Text = "開啟"
        btnSend.Text = "傳送"
        btnReceive.Text = "接收"
        Label1.Text = "通訊"
        Label2.Text = "傳送的資料"
        Label3.Text = "收到的資料"
        cmbPort.Items.Clear()
        For Each PortName As String In SerialPort.GetPortNames
            cmbPort.Items.Add(PortName)
        Next
        cmbPort.SelectedIndex = 0
    End Sub
    Private Sub btnOpenPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenPort.Click
        If SerialPort1.IsOpen Then
            SerialPort1.Close()
            'btnOpenPort.imagkey = "open"
            btnOpenPort.Text = "開啟"
            txtSend.Text = " "
            txtReceive.Text = " "
            btnSend.Enabled = False
            btnReceive.Enabled = False
        Else
            SerialPort1.PortName = cmbPort.SelectedItem.ToString
            SerialPort1.BaudRate = 9600
            SerialPort1.Parity = Parity.None
            SerialPort1.DataBits = 8
            SerialPort1.StopBits = StopBits.One
            SerialPort1.Open()
            btnOpenPort.Text = "關閉"
            btnSend.Enabled = True
            btnReceive.Enabled = True
        End If
    End Sub
    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
        SerialPort1.Write(txtSend.Text)
    End Sub
    Private Sub btnReceive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReceive.Click
        txtReceive.Text = SerialPort1.ReadExisting()
    End Sub
End Class

BS2板程式沒有太大變化
84如果不行直接改回16780
----BS2程式-------------------------------
' {$STAMP BS2px}
' {$PBASIC 2.5}
dat VAR Byte
DO
SERIN 16,84,[dat]
DEBUG ? dat,CR
IF dat>0 THEN
  SEROUT 16,84,[DEC 125]
ENDIF
LOOP
END
3#
發表於 2009-9-11 01:22:46 | 只看該作者
請問有無看懂?在給我MAIL 我把程式碼給你
4#
發表於 2010-2-3 17:33:31 | 只看該作者
請問是指有BS2p能這樣做嗎?!?!  我看大家貼有關RS232的 範例都是 PIN:16

如果是BS2就不能嗎!?

BS2與BS2P 不就差在IO腳及容量大小嗎?
5#
發表於 2010-2-4 00:18:11 | 只看該作者
剛剛查了一下!! 其他的BS2晶片 也沒有 PIN:16 這隻腳位阿?!

看飆給的範例 也是PIN16?

是為蛇?!
6#
發表於 2010-7-26 22:36:17 | 只看該作者
不好意思,可以請問我用VB轉parallax bs2晶片的
程式要怎麼寫BS2才會接收呢?
我要傳出去的按鍵 "W A S D"控制前進 左邊 右邊 後退
麻煩指教一下感恩.
7#
發表於 2011-3-9 00:34:48 | 只看該作者
打擾了!我也想請教程式碼的問題!?
一樣是想轉VB的形式,想問如何用VB PING BS2晶片的腳位及動作(下列為超音波程式碼)
----------------------BS2-------------------------
PingA           PIN      7
A:
    GOSUB Get_SonarA                             ' get sensor value
    cm = rawDist ** RawToCm                     ' convert to centimeters
    PUT 0,Word cm
    GOTO B
Get_SonarA:
    PingA = IsLow                                  ' make trigger 0-1-0
    PULSOUT PingA, Trigger                         ' activate sensor
    PULSIN  PingA, IsHigh, rawDist                 ' measure echo pulse
    rawDist = rawDist */ Scale                    ' convert to uS
    rawDist = rawDist / 2                         ' remove return trip
    RETURN
playrobot 該用戶已被刪除
8#
發表於 2011-3-12 09:08:39 | 只看該作者
9#
發表於 2011-4-5 09:56:06 | 只看該作者
這網址以過期了,想請問用VB連接藍芽鄉郭範例嗎?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-20 06:51 , Processed in 0.165292 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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