Construcción de adaptador Joystick a PS/2

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: Construcción de adaptador Joystick a PS/2

Mensaje por spark2k06 » 26 Oct 2016, 10:08

mcleod_ideafix escribió:
spark2k06 escribió:4. Input HI-Z -> 0,06V (Funcionamiento en PS/2 -> HI-Z)
Estupendo! Si acaso, comprueba que realmente eso es Hi-Z y no un estado bajo. Pon una resistencia externa de unos 10K entre ese pin y 3.3V (si tienes una salida de 3.3V en tu Arduino, si no, 5V) y comprueba que ahora sí mides la tensión de pullup con el pin en ese estado.
Puedo probar pero tiene que ser HI-Z, de lo contrario no me hubiera funcionado la prueba del test VICTOR, donde se veía claramente que los eventos de teclado se estaban enviando, ahora, es curioso que en ese estado el polímetro me devuelva 0,06V... no tendría que devolver 0V?

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: Construcción de adaptador Joystick a PS/2

Mensaje por spark2k06 » 27 Oct 2016, 08:25

spark2k06 escribió:
mcleod_ideafix escribió:
spark2k06 escribió:4. Input HI-Z -> 0,06V (Funcionamiento en PS/2 -> HI-Z)
Estupendo! Si acaso, comprueba que realmente eso es Hi-Z y no un estado bajo. Pon una resistencia externa de unos 10K entre ese pin y 3.3V (si tienes una salida de 3.3V en tu Arduino, si no, 5V) y comprueba que ahora sí mides la tensión de pullup con el pin en ese estado.
Puedo probar pero tiene que ser HI-Z, de lo contrario no me hubiera funcionado la prueba del test VICTOR, donde se veía claramente que los eventos de teclado se estaban enviando, ahora, es curioso que en ese estado el polímetro me devuelva 0,06V... no tendría que devolver 0V?

Lo he comprobado con una resistencia de 100K entre el pin A2 ó A3 y 3.3V... resultado 3.1V, todo correcto. Ya estoy realizando mis primeras pruebas, tengo que depurar algunas cosas del código pero funciona según lo esperado, cuando termine lo subo a github.

Imagen

Le he dado unas vueltas al tema de las combinaciones, y finalmente quedarán así:

Direcciones -> Cursores
Boton 1: Espacio
Boton 2: V
Boton 3: B
Boton 4: N
Boton Select: ESC
Boton Start: Intro

Funciones extra:
Reset -> Select + Arriba
MasterReset -> Select + Abajo
NMI -> Start + Boton 1
LOAD "" -> Start + Boton 2

-> Para menus en juegos:
Tecla 1 -> Select + Boton 1
Tecla 2 -> Select + Boton 2
Tecla 3 -> Select + Boton 3
Tecla 4 -> Start + Boton 3

Aunque con el código en mano, quien quiera podrá configurarlo a su gusto.

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: Construcción de adaptador Joystick a PS/2

Mensaje por spark2k06 » 27 Oct 2016, 10:33

Enviado desde mi thor mediante Tapatalk
Última edición por spark2k06 el 27 Oct 2016, 12:05, editado 1 vez en total.

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Construcción de adaptador Joystick a PS/2

Mensaje por neuro_999 » 27 Oct 2016, 10:43

Se me ocurre que seria un cacharro cojonudo si en un futuro al final se puede conectar el zxuno a teclado de matriz, para controlar los eventos que no son de spectrum. :)
Lo que no se es xq cnd conecto yo el teclado de matriz al atmega y pongo el test de teclado de la bios, al pulsar teclas estas parpadean a toda pastilla, y claro para jugar es imposible. Cnd saques tu codigo le echare un ojo a ver, aunque no tg casi tiempo para trastear.

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: Construcción de adaptador Joystick a PS/2

Mensaje por spark2k06 » 27 Oct 2016, 10:59

neuro_999 escribió:Lo que no se es xq cnd conecto yo el teclado de matriz al atmega y pongo el test de teclado de la bios, al pulsar teclas estas parpadean a toda pastilla, y claro para jugar es imposible.
Pues es raro eso que comentas, solo puede ser porque envías eventos de pulsado y liberación de tecla continuamente...:

Yo simplemente llamo a esta función una única vez, con release a 0... y listo, se mantiene pulsada en el test, y cuando suelto el switch llamo otra vez con release a 1... no hay que hacer nada mas:

//codifica envio de caracteres ps/2
void sendCodeMR(unsigned char key, uint8_t release)
{
uint8_t extn = 0;

//checkeamos si es una tecla con scancode extendido (E0)
switch(key) {
case KEY_LEFT:
case KEY_DOWN:
case KEY_RIGHT:
case KEY_UP:
case KEY_HOME:
case KEY_END:
case KEY_PDN:
case KEY_PUP:
extn = 1;
break;
default:
extn = 0;
break;
}
//secuencia

if (extn)
sendPS2(0xE0);

if (key && release)
sendPS2(0xF0);

if (key)
sendPS2(key);

//fin secuencia
}

En cuanto al tiempo, creo que la mayoría andamos parecido, yo intento sacar el tiempo de debajo de las piedras para poder avanzar algo..., con pareja, dos críos muy peques y el curro tengo que hacer verdaderos malabares para cacharrear un poco :-)
Última edición por spark2k06 el 27 Oct 2016, 10:20, editado 2 veces en total.

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Construcción de adaptador Joystick a PS/2

Mensaje por neuro_999 » 27 Oct 2016, 11:03

Gracias, a ver si puedo mirarlo, ando como tu pero con un peque menos :)

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: Construcción de adaptador Joystick a PS/2

Mensaje por spark2k06 » 27 Oct 2016, 12:04

@neuro_999, sin ver tu código y por lo que comentas...yo creo que estás llamando continuamente (en bucle :boingg: ) a la funcion PressKey de Quest:


void PressKey(unsigned char key)

{

sendCodeMR(keymapVB[key], 0); //Make

_delay_ms(100);

sendCodeMR(keymapVB[key], 1); //Release

}


Usa sendCodeMR en su lugar, llamando una sola vez con el segundo parámetro a 0 para mantenerla pulsada, y otra vez como 1 para soltarla... verás como así te funciona bien.

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Construcción de adaptador Joystick a PS/2

Mensaje por neuro_999 » 28 Oct 2016, 09:09

Entiendo lo que dices, pero entonces el problemilla estaria en el codigo de quest, ya aue esa parte no la toque, solo le amplíe el numero de Fx que reconocía.
Si que he visto ahora que en su sendcode envia siempre que pulsas una tecla un 0xF0 por lo que entiendo que provocaría el parpadeo de teclas.
Ya voy a ver si hago alguna prueba, aunque a ese sendcodemr habría que añadirle la detección de las teclas shift y symbol pulsadas.
Gracias y seguiré tu proyecto a ver cm te queda.

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: Construcción de adaptador Joystick a PS/2

Mensaje por spark2k06 » 28 Oct 2016, 09:24

neuro_999 escribió:Si que he visto ahora que en su sendcode envia siempre que pulsas una tecla un 0xF0 por lo que entiendo que provocaría el parpadeo de teclas.
El 0xF0 sólo lo envía si llamas a la función de sendCodeMR con release a 1, de lo contrario (pasándole un 0) sólo envía la key:

void sendCodeMR(unsigned char key, uint8_t release)

if (key && release)
sendPS2(0xF0);

if (key)
sendPS2(key);

Ya nos contarás... yo ando depurando y optimizando mi código, en cuanto me salgan bien las pruebas lo comparto :okidoki;

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Construcción de adaptador Joystick a PS/2

Mensaje por neuro_999 » 28 Oct 2016, 09:31

Si ,en el tuyo ya lo vi, decía en el original lo de que envía siempre un 0xF0 en cada presskey.
Muchas gracias, a ver como queda al final. :)

Enviado desde mi ONE A2003 mediante Tapatalk

Responder