Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

18/03/2009 #21


Deja que llegue a mi casa, subo el proyecto completo.
18/03/2009 #22

Avatar de Moyano Jonathan

Bueno dale te espero
19/03/2009 #23


Eso sería buenisimo, gracias
19/03/2009 #24


Adjunto los códigos fuentes y de simulación en proteus, funcionando.
Archivos Adjuntos
Tipo de Archivo: zip gamepad_by_liam_neeson__190309_119.zip (26,0 KB (Kilobytes), 459 visitas)
19/03/2009 #25


Muy buena la información. Me bajé el libro USB COMPLETE, y alli encontré mas información sobre el tema, esta un poco mas detallada. Ya empecé a hacer un desarrollo para poner mas señales análogas y digitales, esta en pruebas por ahora. Cuando lo tenga completo, lo subo.

La otra parte del desarrollo que quiero hacer es ponerle el force feedback a la cabrilla, y un sistema de vibración y movimiento de acuerdo al juego. Eso tambien se hace con HID, y toca tener en cuenta unas tablas de PID, no estoy del todo seguro. Voy a seguir investigando, pero si alguno sabe como, le agradezco
19/03/2009 #26


Que interesante, te corrió la simulación que subí ?

En la nota de aplicación de ST titulada: USING THE ST7263 KIT TO IMPLEMENT A USB GAME PAD, implementan un convertidor de control de PSX a USB HID no la he revisado a fondo pero me parece que manejan lo del force feedback. La otra opción sería que implementaras dicha nota de aplicación pero con un PÏC18F4550 en vez del ST7263 . Ahí viene el HID Report completo.
19/03/2009 #27

Avatar de Moyano Jonathan

Muy bueno el desarrollo que están haciendo , ya voy a implementar algún código para hacer por ejemplo un emulador del jostick de NES como aplicacion directa.
19/03/2009 #28


La culminación sería jugar en línea cada quien con su gamepad un Mario Kart 64 por poner un ejemplo
19/03/2009 #29

Avatar de Moyano Jonathan

uuuuuuuuu eso seria el climax electronico ajajajj
20/03/2009 #30


no he probado el que subiste. lo hago el fin de semana. Estuve probando uno que encontré en otra pagina, que simula un joystick como los de microsoft, y funciona bastante bien. Voy a seguir trabajando en eso, aunque ahora me tocó dedicarme mas a la parte del force feedback y movimiento. Les estaré contando sobre eso tambien
23/03/2009 #31

Avatar de Moyano Jonathan

Estoy desarrollando uno con control analogico y 8 botones USB voy a ver que sale.
24/03/2009 #32

Avatar de Moyano Jonathan

Hola LIAM tengo unas preguntas para hacerte:

1° -
Código:
out_data[0]=ejes; // Ejes X y Y
En esta parte del código aparece que envías 1 byte con los datos de los ejes X e Y. Ahora yo tengo un mando analógico de play conectando el eje X al pin RA0 de un PIC18F2550 y el eje Y conectado al pin RA1.

Mi pregunta sería: Como hago para mandar los 2 valores analógicos de los 2 ejes ?



2° -

Según tu configuración para el mando analógico:
Código:
Si quieres una resolución de 8 bits para los ejes X y Y te quedaría algo así:

0x09, 0x30, // USAGE (X)
0x09, 0x31, // USAGE (Y)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
0x35, 0x00, // PHYSICAL_MINIMUM (0)
0x46, 0xff, 0x00, // PHYSICAL_MAXIMUM (255)
0x75, 0x08, // REPORT_SIZE (8) bits
0x95, 0x02, // REPORT_COUNT (2)
Tendría el siguiente problema:




Como serían los descriptores si no es mucha molestia, para 8 botones y 1 pad analógico de 8 bits de resolución de 2 ejes?

Gracias por tu ayuda
24/03/2009 #33


primero tienes que aumentar el tamaño de out_data, hacer la rutina de lecturas análogas a tu gusto y ponerlas en las variables correspondientes (eje_x, eje_y). Cuando vayas a cargar esa información en out_data, lo haces de la siguiente manera:

out_data[0]=eje_x;
out_data[1]=eje_y;
out_data[2]=botones;

El orden que pongas en ese arreglo debe coinciidir con el orden de las variables que estén en el descriptor HID, es decir que el descriptor debe tener primero la información de una variable analoga, luego otra variable análoga y por ultimo 8 botones.
24/03/2009 #34


alejandroc242 dijo:
primero tienes que aumentar el tamaño de out_data, hacer la rutina de lecturas análogas a tu gusto y ponerlas en las variables correspondientes (eje_x, eje_y). Cuando vayas a cargar esa información en out_data, lo haces de la siguiente manera:

out_data[0]=eje_x;
out_data[1]=eje_y;
out_data[2]=botones;

El orden que pongas en ese arreglo debe coinciidir con el orden de las variables que estén en el descriptor HID, es decir que el descriptor debe tener primero la información de una variable analoga, luego otra variable análoga y por ultimo 8 botones.
No pudo quedar mejor explicado, a ver si lo implemento al rato y subo el código.

Por cierto alejandroc242 como vas con tu proyecto, que pasó con el force feedback ?
24/03/2009 #35

Avatar de Moyano Jonathan

Bueno gracias , ahora voy a ver que pasa. Otra cosa que no entendi es como es el tema del orden de los descriptores según las variables a enviar?
24/03/2009 #36


Puedes usar el HID Descriptor Tool para ayudarte con la elaboración de los descriptores de acuerdo a tus necesidades, en el programa tienes algunos ejemplos. El del joystick sirve para hacer esa aplicación.

La semana pasada encontré una pagina donde está otro desarrollo de este tipo. Lo bajé y lo probé en el PC de la oficina, pero no me funcionaba, decía que no se reconocía el dispositivo. Me dió por probarlo en otras PC de la oficina y funcionó perfectamente. El problema: Aun no se bien.. pero se lo atribuyo a que el usb de mi pc es 1.0 (no estoy seguro, lo digo porque la board es medio vieja) y el de los otros es 2.0.

Ahora: Empecé a hacer las pruebas de mi desarrollo, que es parecido a lo que está haciendo Jonathan, y sucedió todo lo contrario: Mi PC reconoce el dispositivo, pero los otros mas modernos no lo reconocen. Probé el que subió Liamneeson la semana pasada y sucede lo mismo.

Es raro porque conecté un dispositivo de juegos microsoft en los 2 tipos de PC y en ambos los reconoce sin problema. Que creen que sea y como arreglarlo?
24/03/2009 #37


Moyano Jonathan dijo:
Hola LIAM tengo unas preguntas para hacerte: ....
Te adjunto una imagen de como lo interpreta la PC y tambien te adjunto el descriptor de como queda, ya está probado.

Como dice alejandroc242 los datos que mandas a la PC quedarìan:

alejandroc242 dijo:
primero tienes que aumentar el tamaño de out_data, hacer la rutina de lecturas análogas a tu gusto y ponerlas en las variables correspondientes (eje_x, eje_y). Cuando vayas a cargar esa información en out_data, lo haces de la siguiente manera:

out_data[0]=eje_x;
out_data[1]=eje_y;
out_data[2]=botones;

El orden que pongas en ese arreglo debe coinciidir con el orden de las variables que estén en el descriptor HID, es decir que el descriptor debe tener primero la información de una variable analoga, luego otra variable análoga y por ultimo 8 botones.
Imágenes Adjuntas
Tipo de Archivo: jpg picture_417.jpg (12,6 KB (Kilobytes), 157 visitas)
Archivos Adjuntos
Tipo de Archivo: zip usb_gamepad_hid_analog_by_liam_neeson__240309_410.zip (3,3 KB (Kilobytes), 194 visitas)
25/03/2009 #38

Avatar de Moyano Jonathan

muchas gracias

Vamos a probarlo a ver que pasa y luego les digo
25/03/2009 #39


Moyano Jonathan dijo:
Vamos a probarlo a ver que pasa y luego les digo
Ok, postea tus resultados
26/03/2009 #40


Hola

me parece muy interesante este proyecto.
si me queda algo de tiempo intentare reconstruir un gamepad de PSone usando su hardware botones palancas analogicas y demas para conactarlo por usb usando el pic 18f2550 o el 4550.
pero mientras seguire el tema muy de cerca.

salu2

Edito.

ya probe el programa de Liam y me funciona de maravilla en simulacion. intentare grabarlo y probarlo en el protoboard.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.