Robofun 機器人論壇

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

Roboard 的 GPIO for .NET

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-7-1 09:43:18 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
請問一下在vb .net中
gpio要怎麼使用,需要初始化嗎

RoBoIO_DotNet.RoBoIO.io_outpb
RoBoIO_DotNet.RoBoIO.io_outpdw
RoBoIO_DotNet.RoBoIO.io_outpw
RoBoIO_DotNet.RoBoIO.io_InUse
RoBoIO_DotNet.RoBoIO.io_CpuID
RoBoIO_DotNet.RoBoIO.io_inpb()
RoBoIO_DotNet.RoBoIO.io_inpdw
RoBoIO_DotNet.RoBoIO.io_inpw
RoBoIO_DotNet.RoBoIO.io_close()

這些方法有沒有文件可以看?或是直接跟我說怎麼用?謝謝
2#
 樓主| 發表於 2010-7-1 21:45:58 | 顯示全部樓層
我的做法是
在vb.net將RoBoIO_DotNet.dll加入參考
然後將WinIo.dll,WinIo.sys,WINIO.VXD
copy到 roboard 上的 c:\windows\system32\
然後在程式裡寫
        RoBoIO.roboio_SetRBVer(RoBoIO_DotNet.RoBoIO.RB_100)
        RoBoIO.rcservo_Initialize(RoBoIO.RCSERVO_USECHANNEL0)

然後就執行時,就會失敗,不知為何?
3#
 樓主| 發表於 2010-7-1 23:38:14 | 顯示全部樓層
失敗訊息是看不到,就出現一個視窗說錯誤
也沒說是什麼錯誤,但是我只要mark有關的
roboard程式碼,就可以執行~~
4#
 樓主| 發表於 2010-7-3 17:45:09 | 顯示全部樓層
後來可以了,不過,好像執行後high ,low好像都沒有發生
之前是在vc++是可以用,現在.net好像就不行。
真奇怪
5#
 樓主| 發表於 2010-7-4 21:40:04 | 顯示全部樓層
我在.net 寫了這樣的code,發現,初始化就失敗了,請問有大大可以指點嗎?
謝謝。
        RoBoIO.roboio_SetRBVer(RoBoIO.RB_100)
        RoBoIO.rcservo_SetServo(0, RoBoIO.RCSERVO_SERVO_DEFAULT_NOFB)

        If RoBoIO.rcservo_Initialize(RoBoIO.RCSERVO_USECHANNEL0) = False Then
            Me.Label1.Text = "rcservo_Initialize failed!!!"
        Else
            Me.Label1.Text = "rcservo_Initialize succeesed!!!"
        End If
        RoBoIO.rcservo_EnterPWMMode()
6#
 樓主| 發表於 2010-7-5 09:39:01 | 顯示全部樓層
我是接7.4v的電池,之前用vc++是可以動的。
現在移到.net就不行,不知道我還少什麼東西? 是不是 winio之類的

對了,m大你的直接接馬達成功了嗎?我覺得用com去送命令有點慢,所以也想改成直接接pwm
7#
 樓主| 發表於 2010-7-5 23:37:16 | 顯示全部樓層
本帖最後由 miaoichi 於 2010-7-5 23:42 編輯

他寫說
I/O library fails to initialize
8#
 樓主| 發表於 2010-7-6 08:51:27 | 顯示全部樓層
本帖最後由 miaoichi 於 2010-7-6 09:38 編輯

找到原因了~~~
已經可以動了。
謝謝m大與a大的協助

不過發現

RoBoIO.rcservo_Outp(RoBoIO.RCSERVO_USECHANNEL15, 1) 不等於RoBoIO.rcservo_Outp(16, 1)
9#
 樓主| 發表於 2010-7-6 13:59:29 | 顯示全部樓層
本帖最後由 miaoichi 於 2010-7-6 14:01 編輯

如a大所說的,可以看失敗的原因
-----------------------------------------------------------------------------
Initialize 會 false 那邊, 你可以試著用 roboio_GetErrMsg()
來看看 false 的原因...
-----------------------------------------------------------------------------
後來才發現原來用.net與vc++不同處
就是在vb.net將RoBoIO_DotNet.dll加入參考後
將WinIo.dll,WinIo.sys,WINIO.VXD,RoBoIo.dll copy到同一目錄下,就可以運作
而RoBoIO.rcservo_Outp(RoBoIO.RCSERVO_USECHANNEL15, 1) 不等於RoBoIO.rcservo_Outp(16, 1)
也是因為 資料type(bit wise的issue)的不同 ,所以在vc++ 用RCSERVO_USECHANNEL15這樣的方式是
可以操作的,但是.net一定要用0~23的方式來指定。

以上是我個人的心得,希望後來的人就不會再有這樣的問題了。
10#
 樓主| 發表於 2010-7-6 15:30:15 | 顯示全部樓層
六足呀,因為xpe開機要一段時間,所以用led燈來表示開機的進度
這樣不接lcd就可以知道開好機了沒。

最後就可以直接控制我的六足了。
11#
 樓主| 發表於 2010-7-6 16:53:09 | 顯示全部樓層
選好了,祥儀的
12#
 樓主| 發表於 2010-7-6 22:33:44 | 顯示全部樓層
使用GPIO控制燈號來看狀況
是可以知道你開到什麼狀況
不然你也不知死在哪裡~~~
做嵌入式產品久了就知道
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-11 23:04 , Processed in 0.208182 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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