miaoichi 發表於 2010-7-11 17:51:59

Roboard 的 rcservo 驅動問題

目前馬達已經可以控制,當我送出SendPWMPulses後,只維持一下下,馬達就鬆了。所以不能持久
請問若是要可以讓馬達一直維持在最後位置,要怎麼寫?謝謝

RoBoIO.roboio_SetRBVer(RoBoIO.RB_100)
      Dim i As Integer
      For i = 0 To 23
            RoBoIO.rcservo_SetServo(i, RoBoIO.RCSERVO_SERVO_DEFAULT_NOFB)
      Next
      Dim channel As Integer = 0
      Dim temp As Integer = 0
      Dim temp1 As Integer = 0
      For a = 0 To 23
            temp = 2 ^ a
            If Not (a = 2 Or a = 3 Or a = 4 Or a = 5) Then
                channel += temp
            End If
            temp1 += temp
      Next
      If RoBoIO.rcservo_Initialize(channel) = False Then
            Me.Label_status.Text = RoBoIO.roboio_GetErrMsg()
      Else
            Me.Label_status.Text = "rcservo_Initialize succeesed!!!"
      End If

      RoBoIO.rcservo_EnterPWMMode()
      RoBoIO.rcservo_SendPWMPulses(1, 10000L, duty, 100L)

tommylin 發表於 2010-7-11 18:06:00

不確定你說的鬆了, 是有多鬆...
如果不是像開機以後的那種緊度,
而是要一直固定在一個位置( 用手很難轉動那樣 ),
我猜就要一直送出 pulse, 或是 count 次數多一點(rcservo_SendPWMPulses() 第四個參數) ...
這是我的實驗結果, 還是要請老師出面說一下比較妥當 ~"~

acen2008 發表於 2010-7-12 20:56:07

Hi

在 rcservo lib 中, PWM 是以 count mode 初始化的, 而不是 continue mode
, 你可試著增加 count 值來延長固定位置的時間, 例如 :
rcservo_SendPWMPulses(1, 10000L, duty, 1000L)

(注意 : 馬達固定角度的時間過長, 有可能會傷害馬達)

mzw2008 發表於 2010-7-12 23:04:12

我是放在timer裡面依照條件持續送
像利基的鐵蛋
所有馬達初始化的時候, 整個機器人會剛好穩穩的站好
斷電也會站好不會軟調
但BIOLOIDE會, 所以平時都是橫放
用MG系列的SERVO做的也不會
頁: [1]
查看完整版本: Roboard 的 rcservo 驅動問題