Joystick USB con PIC18F2550 1 analógico + 8 botones

#22
moyano en la parte del esquema lo que es la la direccion aparece logicamente como 2 potenciometros..esos potencimetros se pueden sustituir por una palanca???? y la palanca ya trae esa configuracion o como se implementaria con los potenciometros seria muy tardado para jugar ??
 
#23
Si la palanca es "tipo potenciómetro" ...entonces lo podés cambiar ahora si son del tipo encoder rotativo tendrías que decodificar los datos del encoder y luego enviarlos por USB.
 
#24
Excelente Proyecto!!! quisiera saber varias cosas: como le añado otro eje al gamepad?, Lo estoy probando en windows vista pero no me lo reconoce por completo, existe algún driver externo que se le pueda instalar?
 
#27
Primero, genial aporte, excelente de verdad, un gran trabajo.

Me gustaría preguntar un par de cosas, aunque no se si quizás es demasiado tarde, pues hace unos meses que nadie comenta en este hilo, en fin...

Estoy haciendo lo siguiente:
Simulo el circuito en proteus con sus drivers para usb virtuales funciona perfecto.
He modificado los descriptores para dejar el mando con un único control, un "throttle" analógico.
Estoy usando pic c compiler para compilar el hex una vez modificados los descriptores.

Pero hay un par de cosas que necesito saber:


1.- No he conseguido cambiar el nombre MoyaPIC_GAMEPAD que aparece como nombre del dispositivo, he buscado en los descriptores pero solo he encontrado "Moya" como parte de un comentario. ¿Podrías especificar exactamente donde se encuentra?

2.- Puedo conectar un led que se encienda cuando pulse algún boton del mando, ¿Necesito modificar los descriptores o alguna otra parte del proyecto para esto? ¿O tengo que hacerlo mediante el software?

Muchas gracias por vuestro genial trabajo aquí.
 
#29
Gracias por tu respuesta, ya he encontrado como modificarlo, pero he de aclarar que no se modifica el mensaje aun modificando el descriptor, ya que en el registro de windows se guarda el pid y el vid asociado al dispositivo y a su mensaje, tienes que cambiar el mensaje además del pid y el vid para que windows le asigne un nombre de dispositivo distinto, no he coseguido ni borrando el registro, solo cambiando el pid y el vid.

Y lo del led? alguna idea?
 
#30
Sugerencia: Con el PIC conectado a la PC, ve al administrador de dispositivos, busca el controlador Joistick USB para el PIC y clic en la opción desinstalar (marca todo si te aparecen opciones).
 
#33
Hola a todos. Tengo tu excelente programa pero no me funciona. Uso el Quemador winpic800 no se que configuracion al rato de quemar hay que usar. Agradeceria la ayuda, adiocional se puede hacer este sin reloj externo y usar el interno del pic18f2550. Gracias.
 
#36
hola amigo me interesa mucho tu tema y es muy bueno,
a mi me interesa hacer una pedalera para conrtolar un programa para efectos de guitarra c llama guitar rig4
ojala me pudieras ayudar tengo entendido que c puede hacer con este pic pero la verdad c muy poco de electroniaca, tu gamepad me sirve mucho pero quiero saber como progamarlo para ese programa.........saludos
 
#37
hola amigo muy buen proyecto desearia q me ayudes a anular los controles analogicos y habilitar la mayor cantidad de botones digitales o las flechas de direccion no soy bueno en pregramacion y quisiera q me indiques como hacerlo ojala me puedas ayudar.
te agradesco de antemano
 
#38
Hay que modificar los descriptores para añadir más botones o controles...luego modificar la toma de de datos para que acepte los nuevos controles..

Usen el buscador , por que eso ya se ha hecho.

Cualquier cosa que encuentre el link donde lo explica...se los pongo.
 
#39
Moyano!! como estas??' MUY BIEN TU APORTE; TU SIEMPRE CON EL USB

Estoy simulando este Gamepad y funciona Perfect..
Pero le agregue mas botones ya que yo uso el 18f4550

Asi quedaron los descritores:

//Botones 1-8
0x05, 0x09, // usage page (buttons) Choose the “button” usage page
0x19, 0x01, // usage minimum (1) There are three buttons
0x29, 0x08, // usage maximum (8)
0x15, 0x00, // logical minimum (0) Each button is represented by one bit
0x25, 0x01, // logical maximum (1)
0x95, 0x08, // report count (8) Three reports, one bit each
0x75, 0x01, // report size (1)
0x81, 0x02, // input (data, variable, absolute)
//Botones 9-16
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x09, // USAGE_MINIMUM (Button 9) 'MAS botones'
0x29, 0x10, // USAGE_MAXIMUM (Button 16)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x95, 0x08, // REPORT_COUNT (8)
0x75, 0x01, // REPORT_SIZE (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
//Botones 17-24
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x11, // USAGE_MINIMUM (Button 17) 'MAS botones'
0x29, 0x18, // USAGE_MAXIMUM (Button 24)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x95, 0x08, // REPORT_COUNT (8)
0x75, 0x01, // REPORT_SIZE (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
//Botones 15-32
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x19, // USAGE_MINIMUM (Button 17) 'MAS botones'
0x29, 0x20, // USAGE_MAXIMUM (Button 24)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x95, 0x08, // REPORT_COUNT (8)
0x75, 0x01, // REPORT_SIZE (1)
0x81, 0x02, // INPUT (Data,Var,Abs)

Espero les sirva a los que vienen atras!!

Ahora tengo es una prengunta!! esta configuracion con 1 analogico, funciona para simuladores de autos?? osea solo giros de derecha e izquierda??

Gracias...
 
Última edición:
#40
ya cree mi joypad usb con pic18f2550 de ejes x y mas 10 botones
pero tengo una consulta quisiera saber si hay alguna forma de presionar internamente los botones del joypad mediante codigo:
actualmente lo hago con otro pic externamente.
Lo que necesito es que una vez alimentamos el pic presione internamente algunos botones del joypad una sola vez
EJ
high boton 1
delay_ms(200)
low boton 1
delay_ms(2000)
high up
delay_ms(200)
low up
delay_ms(3000)
Esto es solo un ejemplo de lo que quiero hacer, q mediante codigo de programacion le indique al pic q presione un boton o un eje internamente.
esperando su ayuda y respuestas me despido de ustedes:
 
Arriba