Go Down

Topic: Pyton to VB.net Joystick Arduino (Read 715 times) previous topic - next topic

rw

Sep 08, 2010, 02:16 am Last Edit: Sep 08, 2010, 02:19 am by rw Reason: 1
Hi people!

I want to convert this http://principialabs.com/joystick-control-of-a-servo/ program pyton to VB 2010.

Code: [Select]

import serial
import pygame

# allow multiple joysticks
joy = []

# Arduino USB port address (try "COM5" on Win32)
usbport = "/dev/ttyUSB0"

# define usb serial connection to Arduino
ser = serial.Serial(usbport, 9600)

[u]# handle joystick event
def handleJoyEvent(e):
   if e.type == pygame.JOYAXISMOTION:[/u]
       axis = "unknown"
       if (e.dict['axis'] == 0):
           axis = "X"

       if (e.dict['axis'] == 1):
           axis = "Y"

       if (e.dict['axis'] == 2):
           axis = "Throttle"

       if (e.dict['axis'] == 3):
           axis = "Z"

       if (axis != "unknown"):
           str = "Axis: %s; Value: %f" % (axis, e.dict['value'])
           # uncomment to debug
           #output(str, e.dict['joy'])

          [u] # Arduino joystick-servo hack
           if (axis == "X"):
               pos = e.dict['value']
               # convert joystick position to servo increment, 0-180
               move = round(pos * 90, 0)
               if (move < 0):
                   servo = int(90 - abs(move))
               else:
                   servo = int(move + 90)[/u]
               # convert position to ASCII character
               servoPosition = chr(servo)
               # and send to Arduino over serial connection
               ser.write(servoPosition)
               # uncomment to debug
               #print servo, servoPosition

   elif e.type == pygame.JOYBUTTONDOWN:
       str = "Button: %d" % (e.dict['button'])
       # uncomment to debug
       #output(str, e.dict['joy'])
       # Button 0 (trigger) to quit
       if (e.dict['button'] == 0):
           print "Bye!\n"
           ser.close()
           quit()
   else:
       pass

# print the joystick position
def output(line, stick):
   print "Joystick: %d; %s" % (stick, line)

# wait for joystick input
def joystickControl():
   while True:
       e = pygame.event.wait()
       if (e.type == pygame.JOYAXISMOTION or e.type == pygame.JOYBUTTONDOWN):
           handleJoyEvent(e)

# main method
def main():
   # initialize pygame
   pygame.joystick.init()
   pygame.display.init()
   if not pygame.joystick.get_count():
       print "\nPlease connect a joystick and run again.\n"
       quit()
   print "\n%d joystick(s) detected." % pygame.joystick.get_count()
   for i in range(pygame.joystick.get_count()):
       myjoy = pygame.joystick.Joystick(i)
       myjoy.init()
       joy.append(myjoy)
       print "Joystick %d: " % (i) + joy[i].get_name()
   print "Depress trigger (button 0) to quit.\n"

   # run joystick listener loop
   joystickControl()

# allow use as a module or standalone script
if __name__ == "__main__":
   main()


Ok, I try some moves and some help to other vb forums where I really want to convert the code (in underline) to vb.net.
This line is to Arduino joystick servo hack. Its just Im need.
Code:
Code: [Select]

' Variables needed:
Dim axis As String
Dim pos As Double
Dim move As Integer
Dim servo As Integer

' Ported code
If axis = "X" Then
   pos = ???
   move = CInt(Math.Round(pos * 90, 0))
   If move < 0 Then
       servo = 90 - Math.Abs(move)
   Else
       servo = 90 + move
   End If
End IF))


But not I didnt not find some library or function similar in VB.net

Code: [Select]

handleJoyEvent(e):
if e.type == pygame.JOYAXISMOTION:


Can some one help?

Or please, tell me the code in VB or C#  to communicate arduino from joystick via serial?

Thanks!

Eight


Go Up