1

首先,我想指出我是一个极端的新手,我担心我可能会在这里不知所措。我的问题在于试图让 Xbox 360 控制器的左操纵杆控制每个轴上的单独功能。目前我正在尝试对控制器进行编码,以便它将以变速控制 Phidg​​et 电机控制器的输出。我已经设法构建了我的代码,以便 Y 轴可以毫无问题地控制前进速度,但是如果我尝试单独编写 X 轴代码,以不同的方式移动电机,它就不起作用了。没有错误,只是没有发送到 Phidg​​et。

我发现我可以让 X 轴按我的意愿工作,但只有当我删除 Y 轴的代码时。似乎一个在那里,另一个不想,好像它一次只注册一个轴。除此之外,我发现它工作正常并且没有任何问题。我还应该提到,我有一些标签可以显示两根棍子的当前位置,它们可以完美地工作,没有任何障碍。任何帮助将不胜感激!谢谢!

Imports Microsoft.Xna.Framework
Imports Microsoft.Xna.Framework.Input
Public Class Form1
Dim WithEvents MC1 As Phidget21COM.PhidgetMotorControl

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    MC1 = New Phidget21COM.PhidgetMotorControl
    MC1.Open(15100)
    MC1.WaitForAttachment(3000)

    If MC1.IsAttached = True Then
        PhidStat.Text = "Phidget Attached!"
    Else
        PhidStat.Text = "No Phidget Found"
    End If

    JoyConnect.Text = ""
    Threading.Thread.Sleep(1000)
    If GamePad.GetState(PlayerIndex.One).IsConnected = True Then
        JoyConnect.Text = "Controller Connected!"
    Else
        JoyConnect.Text = "Not Connected. :("
    End If

End Sub

Private Sub Controller()
    Dim LX As String
    Dim RX As String
    Dim LY As String
    Dim RY As String

    'Left Joystick
    LX = GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X * 100 'Negetive value = Left, Positive = Right
    LX1.Text = LX
    If LX < 0 Then
        MC1.Velocity(0) = LX
        MC1.Velocity(1) = -1 * LX
    End If
    If LX > 0 Then
        MC1.Velocity(0) = LX
        MC1.Velocity(0) = -1 * LX
    End If

    LY = GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.Y * 100
    LY1.Text = LY
    MC1.Velocity(0) = LX
    MC1.Velocity(1) = LX

    'Right Joystick
    RX = GamePad.GetState(PlayerIndex.One).ThumbSticks.Right.X * 100
    RX1.Text = RX

    RY = GamePad.GetState(PlayerIndex.One).ThumbSticks.Right.Y * 100
    RY1.Text = RY

End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Controller()
End Sub
End Class

还有一件事。电机控制器旨在控制用于飞行 ROV 的电机。当左摇杆向左移动时(负值),电机 0 反向移动,电机 1 向前移动做一种“点转”,反之亦然,左摇杆向右移动。此外,y 轴同时控制正向或反向。

4

0 回答 0