• Jueves 28 de Marzo de 2024, 18:39

Autor Tema:  Controlar El Joystick Desde Visual Basic  (Leído 12528 veces)

DrakerDG

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
    • http://drakerdg.xbot.es/wordpress/
Controlar El Joystick Desde Visual Basic
« en: Miércoles 7 de Septiembre de 2005, 10:39 »
0
:comp: Encontré información interesante sobre el uso de funciones del API para el control del Joystick utilizando Visual Basic.  Sé que para la gran mayoría esto no es nada nuevo, pero para los que no o los que de todos modos les llame la atención desarrolle un ejemplo.

Para el desarrollo del mismo utilicé varias funciones:

joyGetPosEx

joyGetDevCaps

joyGetNumDevs

Con sus respectivas estructuras de registros:

JOYINFOEX

JOYCAPS

Adicionalmente utilicé otra función del API para reproducir archivos WAV, por ejemplo:  Al pulsar un botón del joystick.

sndPlaySound

Este ejemplo puede detectar los joystick instalados en el sistema y si están conectados. También saber cuantos botones y ejes tiene. Con el apoyo de graficas y sonido muestra el estado del joystick seleccionado.  Produce diferentes sonidos cuando se presionan los botones o se mueven las palancas del joystick y/o pad.  Muestra los valores que detecta por medio del registro de consulta, en este caso el JOYINFOEX de la función joyGetPosEx.  Se puede cambiar ID del joystick en tiempo de ejecución si hay más de uno conectados al sistema.

Pueden bajar este ejemplo del siguiente link:

JoystickEX.zip

Nota:  De ser posible, para las personas que lo revisen, les agradecería me postearan sus comentarios y/o críticas al respecto.

 :gracias:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Saludos desde Guatemala, C. A.
Electrobotics

skaldebaran

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #1 en: Jueves 20 de Noviembre de 2008, 06:29 »
0
hola amigo, esta muy chido tu progra, felicidades por lo que has conseguido, pero quisiera abusar de tu confianza, nose q posibilidad haya de q me muestres el codigo, esq yo = lo estoy haciendo pero por alguna forma no me detecta los botones del joyztick, y pues ya lo intente en C++, Java y la verdad de VB no le se mucho, espero tu respuesta por favor

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #2 en: Jueves 20 de Noviembre de 2008, 08:35 »
0
Cita de: "DrakerDG"
:comp: Encontré información interesante sobre el uso de funciones del API para el control del Joystick
por ejemplo de aquí: http://foros.solocodigo.com/viewtopic.php?f=53&t=37460

Tienes también estas otras APIs de las que disponer:
Las de Treshold es para especificar una especie de salto, algo así como si mi salto lo establezco en 10 sólo me comunicará que ha sido movido cuando alcance el valor 10 ó  -10,  Es controlar los eventos de movimiento por movimiento en vez de enviarnos un evento cada cierto lapso de tiempo y comprobar nosotros si el movimiento es tan minúsculo no interpretarlo como movimiento y desencadenar todos los eventos asociados a un movimiento quizás debido al pulso del usuario... así este salto sería la unidad mínima que nos informará cuando ocurra, también es útil si queremos que dentro de un área existan sólo determinado número de movimientos. imagina una cuadrícula de 1008 x 1008 píxels, si nosotros solo concebimos aceptable que existen 8 x 8 cuadrículas (por ejemplo si nuestro tablero fuera para un ajedrez) entonces sólo nos interesaría computar como movimiento cuando se haya movido  la mitad  de una casilla es decir (1008/ (8 * 2))=63, sólo nos comunicará movimiento cuando se haya movido 63 píxeles, lo cual nos asegura que ha cambiado a otra casilla en nuestro tablero 8x8.
Private Declare Function joyGetThreshold Lib "winmm.dll" Alias "joyGetThreshold" (ByVal id As Long, lpuThreshold As Long) As Long
Private Declare Function joySetThreshold Lib "winmm.dll" Alias "joySetThreshold" (ByVal id As Long, ByVal uThreshold As Long) As Long


Las de Capture es para 'enganchar' un determinado joystick a tu programa,  vamos fijar el que vas a usar de los disponibles en tu sistema.
Private Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long
Private Declare Function joySetCapture Lib "winmm.dll" Alias "joySetCapture" (ByVal hwnd As Long, ByVal uID As Long, ByVal uPeriod As Long, ByVal bChanged As Long) As Long


No he mirado tu código, pero lo he descargado, cuando tenga un tiempito le hecho un vistazo.
Saludos y suerte.
«Ma non troppo»
----> ModoVacaciones = False<----

rodstar

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #3 en: Miércoles 23 de Diciembre de 2009, 08:39 »
0
Cita de: "DrakerDG"
Nota:  De ser posible, para las personas que lo revisen, les agradecería me postearan sus comentarios y/o críticas al respecto.

 :gracias:

Le he echado un vistazo y se vé de pelos muchas gracias por compartir, te puedo comentar que no estuve advertido de los sonidos, lo cual me causò bastante gracia con el x,y. Da gusto ver un programa bien hecho, se nota que lo disfrutaste al hacerlo

Thanatos-chan

  • Miembro MUY activo
  • ***
  • Mensajes: 136
  • Nacionalidad: do
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #4 en: Miércoles 23 de Diciembre de 2009, 18:03 »
0
gracias por el aporte,

yo habia preguntando por algo similar.

una pregunta, el programa detecta joysticks de interfase usb?
Que es un genio???? yo superare a un genio con trabajo duro, y eso es todo.

rodstar

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #5 en: Miércoles 23 de Diciembre de 2009, 18:38 »
0
Cita de: "Thanatos-chan"
gracias por el aporte,

yo habia preguntando por algo similar.

una pregunta, el programa detecta joysticks de interfase usb?


claro que sí, de hecho, los joysticks que probé son USB

egtfar

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #6 en: Lunes 14 de Junio de 2010, 05:59 »
0
el enlace para bajar el ejemplo no sirve!

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #7 en: Lunes 14 de Junio de 2010, 14:23 »
0
Cita de: "egtfar"
el enlace para bajar el ejemplo no sirve!
Funciona perfectamente, yo lo acabo de probar.
«Ma non troppo»
----> ModoVacaciones = False<----

lucaspalomba

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Controlar El Joystick Desde Visual Basic
« Respuesta #8 en: Jueves 9 de Junio de 2011, 15:35 »
0
BUEN DIA CHICOS, La verdad muy buen post , perdonen que lo abro despues de tanto tiempo pero estoy intentando controlar la salida del joystick el pwm mediante la ocx y tengo un problema ya que tengo varias opciones cuando pongo la rutina tengo para elegir duration (index , tiempo) canal (west north etc) eso es el costado , y force (dutycicle del pwm osea el ancho de pulso).Ahora bien cuando programo la rutina por ejemplo de force 3000 , con un boton y otro boton con el boton 100 , si le doy velocidad falla osea como que cae en cualquier lado, para mi es un problema de duration, pero la verdad no se que puede ser , espero que alguno de ustedes me pueda ayudar o decirme si trabajaron con las salidas del joystick.Desde ya espero opiniones, Muchas gracias

PD:Y tambien me interesaria saber si lograron hacer funcionar varios joysticks a la vez e ir programandoles diferentes acciones a cada uno.Saludos

santiago9415

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Controlar El Joystick Desde Visual Basic
« Respuesta #9 en: Jueves 19 de Julio de 2012, 20:17 »
0
no puedo bajar el ejemplo me podrias dar una solucion

kharnus

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Controlar El Joystick Desde Visual Basic
« Respuesta #10 en: Domingo 4 de Noviembre de 2012, 17:51 »
0
no puedo bajar la aplicacion