Mando inalámbrico

Buenas, un colega teleco y yo, estamos pensando en utilizar la tecnología actual de baterías de móviles o simples pilas recargables (a una muy mala) y elementos de conexión inalámbrica para montarnos un Dreamconn con mandos originales y si sale bien colgar un tutorial (si el tío que los vende a 150€ puede, un foro de frikazos de la dreamcast también) si pudiéramos hacer un brainstorming a lo mejor entre todos sacamos algo.

PD: A una mala enviamos un mensaje a Bricoman de briconsola, aunque no he visto nada de esto.
Muy bien pero no es asi de simple como cortar la corriente de cable y poner baterias.
Se debe conocer con exactitud como funciona la interaccion de la consola, el mando y los puertos de expasión.

Tambien como la consola reacciona a la respuesta del control, como lo identifica y deduce cual numero de puerto es , que clase de controlador tiene(maracas, control, mouse, teclado, mando de tren) y que cosa esta conectada en sus puertos (memoria, memoria con pantalla, vibrador, microfono)

El tipo de voltaje que utiliza el mando para funcionar correctamente, el tiempo que tarda la señal en dar una respuesta bilateral (mando-consola /consola-mando)

Y por ultimo traducir todo eso a un lenguaje inalambrico suficientemente rapido que codifique y decodifique la señal en tiempo real para que no se pierda la velocidad original y que no haya el tan sufrido lag o de plano no funcione por descoordinación en los tiempos de respuesta.
En resumen: chupado, esperamos a que algún chino los fabrique por 50 dólares :)
dakangel escribió:Muy bien pero no es asi de simple como cortar la corriente de cable y poner baterias.
Se debe conocer con exactitud como funciona la interaccion de la consola, el mando y los puertos de expasión.

Tambien como la consola reacciona a la respuesta del control, como lo identifica y deduce cual numero de puerto es , que clase de controlador tiene(maracas, control, mouse, teclado, mando de tren) y que cosa esta conectada en sus puertos (memoria, memoria con pantalla, vibrador, microfono)

El tipo de voltaje que utiliza el mando para funcionar correctamente, el tiempo que tarda la señal en dar una respuesta bilateral (mando-consola /consola-mando)

Y por ultimo traducir todo eso a un lenguaje inalambrico suficientemente rapido que codifique y decodifique la señal en tiempo real para que no se pierda la velocidad original y que no haya el tan sufrido lag o de plano no funcione por descoordinación en los tiempos de respuesta.


Tenemos unos 10 mandos operativos de dreamcast para ir probando. Lo chungo es conseguirlo, pero una vez hecho, hacemos un tutorial y lo colgamos.
No es tan sencillo como la típica comunicación serie que usan los mandos de otras consolas, pero tampoco es tan difícil, yo diría nivel intermedio.

Hace varios meses empecé el mismo proyecto. Avancé bastante en lo relacionado al estudio del protocolo y algoritmos para interpretar los comandos y escribir en el puerto. Aunque por falta de tiempo y pérdida de interés lo mandé al congelador y lleva varios meses sin avances. Ahora acabo de adquirir dos dreamcast extra a las dos ya tenía, así que apenas me libere un poco del trabajo podré retomar los mods sin miedo a romper algo.

Este es el tema original donde lo había posteado, en el hay hay un link hacia una página donde explican todo el protocolo del bus maple, te va a ser muy útil (si es que aún no lo tienes, ya que es lo primero que sale en google).

http://www.elotrolado.net/hilo_worklog-convirtiendo-control-cableado-en-inalambrico_2121895

De sobra está decir que si puedo ayudar en algo, no dudes en preguntar. Eso si, de preferencia que sea en tu mismo tema y no por mp, así queda la información disponible para cualquiera usuario a quien le pueda ser útil. Y para ir animando, esta es una captura que hice de la trama de sincronización entre la consola y el controlador:

Imagen
Si,de hecho tambien yo estaba interesado en hacer uno, pero cuando vi el dreamccon tanto le perdi un poco de gracia, como tambien primero quise investigar mas del tema.

Segun lei , el dreamconn funciona con dos procesadores emulados en dos fpga y aparte una memoria ram, he ahi porque se disparo el precio tanto; ademas de que en si esta inflado un poco el costo.

Mi intencion es hacer un adaptador usando las cosas mas baratas y suficientemente rapidas para funcionar como lo son los receptor/transmisor inalambrico Nrf24l01 @2.4ghz que se usa en arduino.

Y a la vez como "procesador central" usar los microcontroladores Atmega que curiosamente también usan como corazón los arduino.

La idea es usar un receptor que codifique la señal usando el atmega y el otro transmisor igual con su atmega que la decodifique; asi no sera necesario usar un fpga a menos que se quiera emular una memoria y no se disponga de mas espacio en los microcontroladores.

dot-exe escribió:No es tan sencillo como la típica comunicación serie que usan los mandos de otras consolas, pero tampoco es tan difícil, yo diría nivel intermedio.

Hace varios meses empecé el mismo proyecto. Avancé bastante en lo relacionado al estudio del protocolo y algoritmos para interpretar los comandos y escribir en el puerto. Aunque por falta de tiempo y pérdida de interés lo mandé al congelador y lleva varios meses sin avances. Ahora acabo de adquirir dos dreamcast extra a las dos ya tenía, así que apenas me libere un poco del trabajo podré retomar los mods sin miedo a romper algo.

Este es el tema original donde lo había posteado, en el hay hay un link hacia una página donde explican todo el protocolo del bus maple, te va a ser muy útil (si es que aún no lo tienes, ya que es lo primero que sale en google).

http://www.elotrolado.net/hilo_worklog-convirtiendo-control-cableado-en-inalambrico_2121895

De sobra está decir que si puedo ayudar en algo, no dudes en preguntar. Eso si, de preferencia que sea en tu mismo tema y no por mp, así queda la información disponible para cualquiera usuario a quien le pueda ser útil. Y para ir animando, esta es una captura que hice de la trama de sincronización entre la consola y el controlador:

Imagen


Oye disculpa, ese control artificial que hiciste podrias explicarme porfavor como funciona, me gustaria mucho hacer algo similar pero en un microcontrolador y hacerme un control fisico en protoboard para experimentar .

Este es mi tema en assemblergames: http://assemblergames.com/l/threads/new ... ack.55193/
Tampoco estaría mal un aparato para poder utilizar mandos modernos en plan cronusmax, inalambricamente o no, utilizar un arcade stick de one o ps4, o algunos de sus mandos estaría bien, sin placas como ps360.
Aunque tengo qué decir si me gustaría un mando inalámbrico estoy contento con el cable alargador de mando qué utilizo.
dakangel escribió:Si,de hecho tambien yo estaba interesado en hacer uno, pero cuando vi el dreamccon tanto le perdi un poco de gracia, como tambien primero quise investigar mas del tema.

Segun lei , el dreamconn funciona con dos procesadores emulados en dos fpga y aparte una memoria ram, he ahi porque se disparo el precio tanto; ademas de que en si esta inflado un poco el costo.

Mi intencion es hacer un adaptador usando las cosas mas baratas y suficientemente rapidas para funcionar como lo son los receptor/transmisor inalambrico Nrf24l01 @2.4ghz que se usa en arduino.

Y a la vez como "procesador central" usar los microcontroladores Atmega que curiosamente también usan como corazón los arduino.

La idea es usar un receptor que codifique la señal usando el atmega y el otro transmisor igual con su atmega que la decodifique; asi no sera necesario usar un fpga a menos que se quiera emular una memoria y no se disponga de mas espacio en los microcontroladores.

dot-exe escribió:No es tan sencillo como la típica comunicación serie que usan los mandos de otras consolas, pero tampoco es tan difícil, yo diría nivel intermedio.

Hace varios meses empecé el mismo proyecto. Avancé bastante en lo relacionado al estudio del protocolo y algoritmos para interpretar los comandos y escribir en el puerto. Aunque por falta de tiempo y pérdida de interés lo mandé al congelador y lleva varios meses sin avances. Ahora acabo de adquirir dos dreamcast extra a las dos ya tenía, así que apenas me libere un poco del trabajo podré retomar los mods sin miedo a romper algo.

Este es el tema original donde lo había posteado, en el hay hay un link hacia una página donde explican todo el protocolo del bus maple, te va a ser muy útil (si es que aún no lo tienes, ya que es lo primero que sale en google).

http://www.elotrolado.net/hilo_worklog-convirtiendo-control-cableado-en-inalambrico_2121895

De sobra está decir que si puedo ayudar en algo, no dudes en preguntar. Eso si, de preferencia que sea en tu mismo tema y no por mp, así queda la información disponible para cualquiera usuario a quien le pueda ser útil. Y para ir animando, esta es una captura que hice de la trama de sincronización entre la consola y el controlador:

Imagen


Oye disculpa, ese control artificial que hiciste podrias explicarme porfavor como funciona, me gustaria mucho hacer algo similar pero en un microcontrolador y hacerme un control fisico en protoboard para experimentar .

Este es mi tema en assemblergames: http://assemblergames.com/l/threads/new ... ack.55193/


Si a los del dreamcon se les pasó un poco la mano con el precio, probablemente de ahí también nació parte de mi motivación original de crear algo abierto y lo mas económico posible.

Pues el control articial era exactamente eso que nombras, un microcontrolador y algunos botones en protoboard. Eso del control ficticio es una de las mejores formas de comenzar el proyecto junto al conversor de control para PC. Si recuerdo bien, hasta esa parte mas o menos llegué. Estaba usando un ARM Cortex M3 (específicamente el STM32F103C8T6, una bestia para su precio y tamaño), lamentablemente tuve problemas erráticos de comunicación por causa de los adaptadores bidireccionales 5v<->3v3, obligatorios para esos micros, ya que funcionan a 3,3v y el controlador de la dreamcast a 5v.

De principio descarté el uso de arduino por su baja velocidad (16 MHz y capado por culpa de programar en C y comerse la "inteligencia" del compilador). Quizá usándolo directamente en lenguaje nativo sea factible. Necesitas un timing muy preciso para leer la información del puerto, mientras que para escribir es un poco mas relajado. Los STM32 que mencionaba, por su parte, corren a 72 MHz y bastante más memoria, por lo cual el uso de C no capa tanto su poder de procesamiento.

En cuanto a los NRF24L01+, tambien pensaba usar esos, aunque nunca he comprobado su rendimiento en cuanto a ancho de banda para transmitir datos, recordemos que el puerto maple tiene una velocidad peak de 2 Mbps, lo que no es poco. También esta la alternativa de usar los famosos ESP8266, que son un módulo unalámbrico y microcontrolador en una sola pastilla, solo faltaría comprobar su velocidad de lectura y escritura digital (pines) y podrían ser el componente ideal para el proyecto.

PS: cuando tenga un tiempo me registro en assemblergames para comentar en tu proyecto (y en muchos otros, que dicha página tiene muchísimas cosas interesantes).
Hace cuatro años logré implementar el protocolo Maplebus en un microcontrolador ATTINY25.
Utilicé ese proyecto para conectar controles de SNES a la Dreamcast. Posteriormente pude ampliar el proyecto para que soportara controles de Saturn y de Playstation (con un ATTINY2313 a 16MHz).
En un principio utilicé los controles de SNES por su ergonomía y su simplicidad. La adaptación a los de Playstation surgió precisamente por querer emplear controles inalámbricos en la Dreamcast, pues tengo varios controles inalámbricos de PlayStation. Sé que existen adaptadores chinos, sin embargo en mi país nunca pude encontrarlos y ahora son muy escasos.
Ahora bien, a los AVR de ATMEL les falta potencia (aún en lenguaje ensamblador) para poder implementar el protocolo completo del Maplebus, por lo que para soportar tarjetas de memoria se requiere circuitería de apoyo (en especifico un CPLD con dos entradas de reloj independientes, lo que descalifica a las GAL/PAL y a varios CPLDs de bajo costo). En mis implementaciones tuve que recurrir a algunos hacks para poder establecer la comunicación de forma efectiva (mi ATTINY25 corría a 16.5MHz ).
Hacer un Dreamconn a bajo costo o convertir controles alámbricos de Dreamcast a bajo precio está fuera de cuestión.
El protocolo de Maplebus como tal no es complicado, el problema es la velocidad de transmisión de datos. Seguramente dot-exe podrá llevar su proyecto a buen puerto, según mis pruebas un procesador necesita por lo menos una velocidad de 22MHz para poder comunicarse de forma efectiva por bitbittling con el Maplebus. Además, el STM32 es un procesador de 32bits, por lo que el DMA se puede implementar de forma nativa (la unidad de palabra en el Maplebus es de 32bits precisamente). En un procesador de 8bits el acomodo de los bytes es muy laborioso.
Con sus STM32 se puede hacer la implementación con los NRF24L01, el ancho de banda no es problema con estos transceptores; ya que la comunicación entre los transceptores no se realizaría en el protocolo nativo Maplebus. Además, la comunicación no se da de forma continua a 2Mbps, la consola solicita el estado del control cada 16ms, dando un periodo de gracia de 1ms para recibir respuesta antes de indicar que el control se ha desconectado.
Además, tampoco necesita de conversores de nivel, el MapleBus funciona en sus terminales de datos a 3.3V, los 5V sólo son en VCC (alimentación).
Espero que esta información les ayude a plantear los requerimientos de su implementación.
Saludos.
Raven_Izerion escribió:Hace cuatro años logré implementar el protocolo Maplebus en un microcontrolador ATTINY25....
Saludos.


Hola, que interesante lo de tu adaptador, es de mucha utilidad la informacion que das aqui y en tu blog, le dare una leida detenida.
Por cierto eres de ecatepec, estamos muy cerca.
10 respuestas