まず第一に、私は非常に初心者であり、ここで頭を悩ませているのではないかと心配しています。私の問題は、Xbox 360 コントローラーの左ジョイスティックで各軸の個別の機能を制御しようとすることにあります。現在、Phidget モーター コントローラーの出力を可変速度で制御するようにコントローラーをコーディングしようとしています。Y 軸が問題なく前進速度を制御するようにコードを作成できましたが、X 軸を個別にコーディングしてモーターを別の方法で動かそうとしても、うまくいきません。Phidget に送信されないだけで、エラーはありません。
X 軸を思いどおりに動作させることができることを発見しましたが、それは Y 軸のコードを削除した場合のみです。あたかも一度に1つの軸だけを登録しているかのように、そこにあるものと、他のものはしたくないようです。それ以外は、問題なく動作していることがわかりました。また、両方のスティックの現在の位置を表示するラベルがいくつかあり、問題なく問題なく動作することにも言及する必要があります。どんな助けでも大歓迎です!ありがとう!
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 軸は、順方向または逆方向の両方を同時に制御します。