| |
| | Proyecto DUCK, Doragasu Usb Custom Kontroller | |
| |  | |  |
 | doragasu | |  Desconectado de la realidad
 Grupo: MemberMensajes: 1643 Status:  | |
| Como algunos de los marcianos ya sabréis, ando enfrascado en un proyecto de desarrollo de un sistema que me permita conectar los mandos directamente al USB, sin necesidad de andar hackeando un pad de PC con todas las limitaciones que ello conlleva (como el número de botones, ejes, etc). Posteriormente una vez que tenga acabado el tema del USB y si el tiempo me lo permite me gustaría hacer también el sistema compatible con Playstation y Dreamcast (y tal vez XBox, aunque como no tengo una, esto va a ser más difícil), aunque teniendo en cuenta que dentro de nada empiezo con el curro y las clases otra vez, supongo que la cosa avanzará muy lenta... En adelante llamaré a este proyecto, proyecto DUCK (Doragasu Usb Custom Kontroller) o DUCK simplemente. Por ahora he desarrollado una placa prototipo que tengo pensado destinar no sólo a este proyecto, sino que es de propósito general y quiero que me sirva para cualquier cosa que se me ocurra hacer con el USB. Por lo tanto esta placa tiene muchos componentes que para el desarrollo del DUCK no son necesarios (como el puerto serie, el conector de alimentación auxiliar, etc etc), así que no os asustéis cuando veais las fotos. Este hilo quiero que me sirva para ir informando de mis progresos a la comunidad marciana, y también como feedback, para que los marcianos me den sus opiniones y consejos, ya que aunque mi experiencia electrónica es mediana, mi experiencia en el tema de los controles de recreativa y demás es nula. El interfaz que estoy desarrollando está basado en un microcontrolador que incorpora un driver hardware USB (ojo, no lleva driver software) compatible con la versión 2.0 y con capacidad USB Full-Speed. En el prototipo que tengo preparado me sobran más de 20 pines de entrada/salida, lo cuál me da mucha libertad de acción en la implementación del mando. Por ahora sólo tengo pensado realizar un mando, pero en un futuro veremos si sale algo más. El firmware que estoy haciendo para el micro es compatible con la especificación HID (Human Interface Devices), de modo que no necesita de instalación de drivers en el PC (y además me ahorro la tediosa tarea de programar esos drivers) y debería ser además compatible con Windows, Linux y Mac (y digo debería porque yo sólo lo he probado en Windows). Hasta ahora me he basado en un ejemplo que he encontrado para implementar un ratón USB y lo he modificado para convertirlo en un joystick. En las pruebas que llevo realizadas hasta ahora va perfectamente, se enumera, se añade un joystick a Windows y puedo acceder a él directamente. Aún no he conectado los controles, pero el programa de prueba que he hecho envía al PC una simulación como si alguien estuviese moviendo el mando describiendo círculos. Aquí van unas fotitos de la placa prototipo: Cara TOP (frontal):  Cara Bottom (trasera):  Fotos de perfil:   Aquí tenéis una del invento funcionando:  Y por último una con un Euro para que os hagáis una idea del tamaño de la placa prototipo:  Como ya os he comentado, la placa tiene muchos componentes innecesarios para el DUCK, una vez que tenga todo funcionando construiré una que sólo tenga lo necesario (el micro, el cristal de cuarzo, los conectores necesarios y poco más). Como sé que mucha gente tiene problemas para trabajar con componentes SMD, si veo que hay interés en el tema, tal vez haga también un diseño sólo con componentes de inserción. Una cosa que me gustaría que me comentaseis es si hay interés en que en lugar de que Windows reconozca a la placa como joystick la reconozca como teclado. Creo que investigando un poco y jugando otro poco podría modificar el sistema para que se identificase como un teclado en lugar de como un joystick para así poder enviar códigos de tecla con la pulsación de los botones. La especificación HID, creo que permite incluso que se identifique como teclado+joystick, es cuestión de investigar. Si pensáis que es interesante, hacedmelo saber. Bueno, por ahora esto es todo. Ya sabéis, quiero opiniones+consejos. Además si alguno de vosotros vive por Madrid y me puede echar un cable con la construcción mecánica del mando, se lo agradecería, porque yo de carpintería ando mu mal, y mi padre que es al que se lo encargué, no parece muy entusiasmado, así que igual no empieza a hacerlo hasta el día del juicio final  .
Modificado por doragasu - 28/8/2005, 11:28 |
|  |
 | Macarro | |  El karma existe... por desgracia.
 Grupo: Moderadores generalesMensajes: 8657 Status:  | |
| Bufffff...
Curradísimo está tu proyecto, además veo que es muy ambicioso.
En cuanto a si en windows se reconoce como teclado o joystick, creo que lo mejor es que lo reconozca como joystick. De ese modo se tiene la opción de usar joytokey, que permite muchísimas opciones extra.
Mucho ánimo. |
|  |
 | Suco | |  Desconectado de la realidad
 Grupo: MemberMensajes: 1249 Location: ...cerca de Toledo Status:  | |
| Eres una maquina tio,SUPERCURRADO.Ya me gustaría a mi que mi experiencia electrónica fuese simplemente baja...jeje... Pues eso,sigue así,que estás haciendo un inventazo.Y luego,pues a fabricar en serie.  ...sinceramente,no se las ventajas de que lo reconozca como Joystick o teclado,las podria alguien explicar? (Macarro,tu parece que lo sabes bien) MUY BIEN.
Modificado por Suco - 28/8/2005, 13:22 |
|  |
 | Macarro | |  El karma existe... por desgracia.
 Grupo: Moderadores generalesMensajes: 8657 Status:  | |
| ...yo solo tengo una pequeña idea  Es que si funcionase como teclado usb, no le veo ventajas. Porque la ventaja de hackear un teclado es su funcionamiento con ms-dos y que no son necesarios drivers. Pero en este caso, al ser usb el invento, en ms-dos que yo sepa, no hay drivers usb. Y en cuanto a drivers, si el aparato funciona con el driver standar hid de windows, no sería necesario ningún extra, simplemente enchufar y a funcionar. Así que en este caso, para mi la opción de joystick es la que tiene ventajas y la de teclado, ninguna. |
|  |
 | fistro | | Gran Marciano
Grupo: MemberMensajes: 297 Status:  | |
| Simplemente increible!! Si lo reconociese como teclado tendría los problemas de blocking y ghosting?? si es así, mejor será que lo reconozca como joystick, no? Simplificar el esquema para solo utilizarlo como i-pac sería la bomba, claro está que nos haría falta que nos pasaras el hex del pic, y si ademas le añadimos al circuito el amplificador de video para "convertirlo" en J-Pac pues mejor que mejor, un J-Pac barato y facil por usb!!! Es la caña!!! Todo sea por tener otra opcion a el chupa sangre de Andy y Ultimarc!! P.D.: Ya solo queda que se libere la forma y el firm para actualizar la bios a las ATI!!!!! |
|  |
 | doragasu | |  Desconectado de la realidad
 Grupo: MemberMensajes: 1643 Status:  | |
| Un matiz, en MS-DOS puro (es decir, sin arrancar antes el windows) los joysticks USB no funcionan. Se puede hacer que funcionen teclados y ratones USB (dependiendo también de la BIOS), pero no los joysticks. Por eso digo lo del teclado. De todos modos voy a intentar primero con el joystick y luego ya veremos. |
|  |
 | Pepeto | |  Aprendiz curioso
Grupo: MemberMensajes: 245 Location: Zaragoza Status:  | |
| Yo de mayor quiero ser como tu...  Enhorabuena, yo no te puedo ayudar en nada (electronica...) pero tienes alguien animandote a conseguirlo. Un saludo Chaoooooooo |
|  |
 | doragasu | |  Desconectado de la realidad
 Grupo: MemberMensajes: 1643 Status:  | |
| Fistro, no había visto tu post, te respondo. Si lo reconociese como teclado, los problemas de blocking serían igual que en los normales, y el ghosting seguiría existiendo, pero si quiero hacer el teclado compatible con las BIOS (para usarlo en MSDOS puro) el ghosting se produciría al pulsar más de 6 teclas (sin contar con las Ctrl, Alt y demás), con lo que en principio el problema sería leve. Si paso de la compatibilidad con la BIOS y simplemente lo hago compatible con Windows/Linux/Mac, *creo que* puedo aumentar el límite a más de 6 teclas sin problemas. Lo de hacerlo al estilo i-pac es algo que tengo pensado para la siguiente revisión de la placa, como ya mencioné, esta es un prototipo de "propósito general" (de ahí que tenga cosas como por ejemplo el puerto serie, que no hace ninguna falta para este proyecto). Pero vamos, que la siguiente revisión la haré (esperemos que tenga tiempo) cuando ésta esté 100% operativa. Respecto a la siguiente placa tengo bastante interés en que la gente me comente si quiere una versión con componentes únicamente de inserción. Yo prefiero utilizar sólo SMD, pero sé que hay gente que tiene problemas para manejar estos componentes, y yo al menos por ahora no tengo pensado producir el invento en serie (principalmente porque yo no tengo tiempo para montar varias de estas y no sabría ni cómo empezar para contratar a una empresa para que lo haga, o si saldría rentable). Lo que comentas del J-Pac no tengo ni idea de lo que es, como ya comenté mi experiencia en el tema de los arcades es nula, si me das más información de lo que debería hacer, tal vez pueda echar un vistazo, aunque me da la impresión de que no es algo que yo pueda probar (ya que no tengo monitor que soporte 15 KHz). En cuanto al programa, no hay problema, cuando esté acabado os pasaré el .HEX y no sólo eso sino que también publicaré los fuentes (que al fin y al cabo, al día de hoy están basados en un 90% en un ejemplo de implementación de un ratón). Evidentemente también tengo pensado dar los esquemáticos. Y ya voy a aprovechar el post para poneros el sistema conectado a mi programador/depurador (un clon del ICD2 de Microchip construído desde cero por mí, basándome en el esquema de Lothar Stolz con algunas pequeñas modificaciones):  Ah, ¡y muchas gracias por los mensajes de ánimo!
Modificado por doragasu - 28/8/2005, 16:09 |
|  |
 | VeS | | Marciano
Grupo: MemberMensajes: 154 Status:  | |
| Hola doragasu, es un flipe tu Duck,por lo que he visto esta muy currado y eres la ostia, y sobre si deberia de ser joystick o teclado , mi opinion es que deberia de ser teclado como el j-i-pac , minibox... asi de esa forma seria mucho mas facil de implartar en maquinas y demas, no tendriamos que andar configurando joystick.... y se podria utilizar en cual quier sistema Linux Windows Msdos Mac.. Si necesitas betatester yo estoy dispuesto a pillarte un DUCK y hacer lo que haga falta. Es impresionante como poco a poco nos vamos haciendo nosotros mismo los aparatitos para nuestras recres, gracias a genios como estos Un Saludo. |
|  |
 | doragasu | |  Desconectado de la realidad
 Grupo: MemberMensajes: 1643 Status:  | |
| Aquí tenéis una captura del joystick funcionando en Windows, con el programa de test que hace girar la palanca en círculos:  En esta versión de prueba lo he definido con 8 botones, aunque se pueden poner los que se quiera, siempre dentro de los límites del número de pines de Entrada/Salida del micro. Como el micro dispone también de un ADC con varios canales, también sería sencillo añadir otro tipo de controles como un potenciómetro para el Throttle (ideal para el Arkanoid), o volantes, etc etc. La especificación de HID es muy versátil y potente. Acabo de echar un vistazo el J-Pac y por lo que veo es un I-Pac con conector Jamma y ampli de vídeo. El ampli creo que se puede construir fácilmente con C.I. Amplificador Operacional de banda ancha, aunque tendría que conocer las señales con detalle para estar seguro. En cuanto al Jamma, sería cuestión de tener el listado de pines (del que no dispongo). Por curiosidad, ¿cuánto cuestan el I-Pac y el J-Pac?
Modificado por doragasu - 28/8/2005, 16:50 |
|  |
 | Macarro | |  El karma existe... por desgracia.
 Grupo: Moderadores generalesMensajes: 8657 Status:  | |
| Pues mira, ahora mismo, i-pac 2 players: 34 lauros i-pac 4 players: 57.20 j-pac: 50 opti-pac: 34 lauros ...en fin, bastante caras las bromas. En cuanto a tu proyecto, casi no se nada de electrónica, qué diferencia hay entre componentes de inserción o smd? de inserción son los típicos y smd reducidos para placas construidas? en plan mini-resistencias, mini-diodos, etc??? Yo en un principio, no voy a construirme el invento porque hasta que no empiece con mi cabina de conducción (año 2020 o más...  ) no me hace falta ningún interfaz más, pero creo que la opción más interesante es la que permite que nos hagamos fácilmente el circuito a los que no podamos construir placas. De todos modos, plantéate sériamente la construcción comercial del invento porque el mercado puede ser amplio y las empresas que se dedican a ello son caras y pocas. Si permitieses con tu invento todo tipo de entradas, digitales, analógicas y ópticas y lo hicieras a un precio razonable, creo que te podría ir bien. Dispositivos como los que he puesto de ultimarc u otros más avanzados más orientados hacia la construcción de simuladores de vuelo y similares son bastante caros.ç Un saludo. |
|  |
 | fistro | | Gran Marciano
Grupo: MemberMensajes: 297 Status:  | |
| Doragasu, como sigas así voy a poner una foto tuya de fondo de escritorio, sabes que puedes dar un paso GRANDIOSO en el tema de las recres??? Seria bestial poder conectar spinners, volantes y mandos rotatorios estilo ramboIII, implementar controles "analógicos" en tu "niño" es algo que no me esperaba. Tus diseños de PCB en SMD son espectaculares, profesional total, pero para la gente de a pié como yo, mejor esquemas y lista de componentes de inserción, aunque salga un poquito mas grande tenemos sitio de sobra dentro de la maca. Estarás orgulloso cuando sepas que el "cerebro" de nuestras macas tiene tu nombre. Animo y sigue así. |
|  |
 | doragasu | |  Desconectado de la realidad
 Grupo: MemberMensajes: 1643 Status:  | |
| He estado jugando otro rato con el invento y sobretodo pensando en cómo conectar las cosas. Aunque tengo una candidad de pines de E/S libres considerable (según cómo lo configure finalmente, serán unos 26 mínimo), he decidido conectar los interruptores en forma de matriz en lugar de ponerlos directamente. De este modo, utilizando 16 de estos pines es posible conectar hasta 64 interruptores (matriz de 8x8) y sobran unos 10 pines para lo que haga falta en un futuro (conexión de mandos analógicos, implementación de la compatibilidad con PSX, etc). Con esta configuración, yo creo que debería de ser más que suficiente para realizar los controles de la más infame de las macas. He implementado el código para leer la matriz y lo he probado y funciona perfectamente  . También me he diseñado otra PCB sencillita que enchufada encima del prototipo me va a permitir realizar la matriz y conectar todos los controles que necesito. Llegado a este punto, me temo que el proyecto va a sufrir un parón por varios motivos: 1.- No voy a poder hacer físicamente la PCB de "expansión" hasta como mínimo el día 5. 2.- No voy a poder construir el "mueble" del mando hasta Dios sabe cuándo (salvo que algún madrileño mañoso por aquí me eche un cable, o más bien un carrete entero). 3.- El día 1 vuelvo al curro  y en breve empezaré también las clases  . Ambos factores dejan bastante poco tiempo (y más aún si los combinamos con la novia  ). Por lo tanto hasta el día 5 mínimo no podré avanzar con el hardware y como mucho, únicamente podré hacer pequeñas pruebas con el software, como por ejemplo intentar definir más de 1 joystick con un sólo DUCK o intentar jugar con los controles analógicos. Después del día 5, ya se verá. He estado pensando también en el tema de comercializar el invento, sin duda me seduce la idea de ganarme algún dinerillo con esto, pero hay unos cuantos puntos que me echan para atrás, principalmente el miedo a no poder alcanzar una cuota de mercado decente. Si tengo que pedir un préstamo para fabricar, pongamos unas 1000 unidades y luego vendo 8, pues la cosa no me saldría muy rentable, y no veo yo claro que fuese a vender más (me tendría que meter a competir con Ultimarc, anunciarme, que la gente confíe en el invento, etc...). También podríais decirme que puedo fabricar 100 en lugar de 1000 (o menos), pero la cuestión es que para que el precio de salida del invento sea bajo y por tanto atrayente, hay que buscar economías de escala (es decir, fabricar una cantidad elevada de unidades). Otra cosa que me echa para atrás es la falta de experiencia (no sabría ni por dónde empezar para venderlo). Vamos, que por ahora veo muy dudoso el fabricar esto en serie. Otra cosa, también sería interesante que alguien que controle del tema me indique las cosas necesarias para realizar controles "raros" como trackballs y demás, para ir preveyendo cómo conectar las cosas. Por ejemplo, supongo que los trackballs darán pulsos, así que sabiendo eso, puedo ir reservando un pin del micro que esté conectado con un temporizador que cuente pulsos en una ventana de tiempo. Bueno, espero comentarios y gracias de nuevo por los ánimos. |
|  |
 | Macarro | |  El karma existe... por desgracia.
 Grupo: Moderadores generalesMensajes: 8657 Status:  | |
| Hola, la verdad es que entiendo todo lo que expones, y sería una pena que algo tan cojonudo como esto no pudiese darte beneficio económico (no digo que te fueras a hacer rico). Pero la vida es así... para ganar dinero muchas veces hace falta tener más dinero.
En cuanto al trackball, funciona exactamente como un ratón. De hecho los trackballs y spinner comerciales solo traen implementadas las parejas diodo-receptor que son las que detentan los dientes por delante de ellos. Así que tu "solo" tendrías que implementar la lógica que trae cualquier ratón (estado anterior de los dos lectores por eje, estado actual y por lo tanto ver en qué dirección nos hemos movido...)
Para dispositivos analógicos, pues ni idea, los que yo conozco están basados en potenciómetros.
Un saludo. |
|  |
 | Xertur | |  Iniciado
Grupo: MemberMensajes: 23 Location: Zamora, España Status:  | |
| Hola, lo primero de todo es felicitarte doragasu por el trabajo que estás haciendo, me parece increible lo que puede llegar a ser el DUCK, me parece realmente increible poder aunar en una placa de unas dimensiones ridiculas 64 botones, trackball y spinner; vamos, para mi que apenas llevo visitando estos foros un año me parece increible lo que nos ofreces. En cuanto al tema de realizarlo en serie la verdad es que tienes toda la razón en el tema de comercializarlo a gran escala, pero seguro que encontrarás una solución. Te animo a seguir adelante en tu magnifico proyecto aunque sea dedicandole 10 minutos al día, un día tu trabajo estará terminado, y muchos de los que entramos aquí te estaremos eternamente agradecidos por todo el tiempo que hayas empleado. Sin más que aportar me despido, animo y suerte en la vida. PD: Eres un genio tio!!! |
|  |
| 304 respuesta(s) desde el 28/8/2005, 10:17 |
| | | | |
|