Envio de mensaje EloTouch a Pc

#1
Hola buenos dias o tardes :)

Tengo una computadora que utilizaba con un teclado con conexión ps/2
Ahora quiero conectar un teclado en una computadora all-in-one (todo en uno) marca EloTouch a la Pc
http://www.elotouch.com/Products/Computers/19MR/default.asp

Es un teclado virtual, puedo imprimir las letras en el puerto serial (conector DB9), lo que desconozco es que conexión necesito hacer para enviar satisfactoriamente el mensaje a la Pc con puerto ps/2

De no ser posible también tengo disponibles los puertos USB

Cualquier ayuda se agradece.
 
Última edición:
#2
Disculpame pero no entendí: vos querés conectar un teclado ps2 a tu computadora all-in-one?
 
#3
gracias por tu respuesta
hice un programa en la computadora all-in-one que imprime un mensaje en el puerto Com (db9)
y quiero que ese mensaje lo reciba otra PC en el puerto PS2 como si lo estuviera entregando un teclado

vaya quiero que la PC interprete los mensajes de la all-in-one como si se tratase de un teclado

adjunto un diagrama mas comprensible
 

Adjuntos

#4
Pero qué es lo que necesitás hacer en la otra computadora? Si lo que querés es controlarla remotamente, tal vez sea mejor RDP (Escritorio remoto), VNC, Teamviewer, LogMeIn o algo similar.
 
#5
no, lo que necesito es escribir letras como si fuera un teclado
por ejemplo en la PC abrir un archivo de Word y poder escribir "HOLA" desde la All-in-one
forzozamente tiene que ser enviando los caracteres por el puerto COM y que la PC los reciba por PS/2
encontre algo que me podria servir http://www.todopic.com.ar/foros/index.php?topic=11910.0
lamentablemente la documentacion no se encuentra y no puedo ver diagramas :/
Gracias
-----------------
encontre esta tabla de datos
http://www.computer-engineering.org/ps2keyboard/scancodes2.html
la cosa estaria asi, con un arduino leo el puerto COM
el arduino se encargara de simula el puerto ps/2 mediante salidas digitales
mi pregunta aqui seria como emular el mensaje por ps/2
el puerto tiene dos pins (Clock y Data)
Código:
int data = 2
int clock = 3
char lectura = 0

void setup(){
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
Serial.begin(9600)
}

void loop(){
if(Serial.avaible()){
    lectura = Serial.read();
    if(lectura == a || lectura == A){
        [U][B] ESTO ES LO QUE NO SE COMO HACER[/B][/U]
}
}
}
dice que la letra A se representa en hexadecimal con "1C" que convertido a binario seria "00011100"
entonces tendria que hacer la rutina

Código:
digitalWrite(data, LOW);
delay(40); // ejemplo
digitalWrite(data, LOW);
delay(40);
digitalWrite(data, HIGH);
delay(40);
digitalWrite(data, HIGH);
delay(40);
digitalWrite(data, HIGH);
delay(40);
digitalWrite(data, LOW);
delay(40);
digitalWrite(data, LOW);
delay(40);
digitalWrite(data, LOW);
delay(40);
pero y el pin de CLOCK??
como lo tengo que emular?

----------------------------------------
tengo una respuesta aproximada
Código:
output_high(clock);
output_high(data);
delay_us(40);

output_high(clock);
output_low(data);
delay_us(40);

output_low(clock);
output_low(data);
delay_us(40);

salida =1;
do
{
      output_high(clock);
       output_bit(data, letra&0x01);
      delay_us(40);
      output_low(clock);
       output_bit(data, letra&0x01);
      delay_us(40);

      if ((letra & 0x01) == 0x01) {unos++;}

      letra = letra>>1;
      salida++;

}while (salida <  9);


output_high(clock); ////// P
output_bit(data, unos&0x01);
delay_us(40);
output_low(clock);
output_bit(data, unos&0x01);
delay_us(40);


output_high(clock); ////// STOP
output_high(data);
delay_us(40);
output_low(clock);
output_high(data);
delay_us(40);


output_high(clock); ////// FIN
output_high(data);
esa es la rutina para representar un caracter enviandolo por ps/2
la del principio es fija
luego se envian los 8 bits uno por uno dos veces cada uno con el pin reloj prendiendo y apagando
alguien que pueda explicarme la rutina del final de envio del caracter?
esa no la entiendo
 
Última edición:
#6
que significa especificamente "unos&0x01"
ademas "unos" esta declarado como entero, como se puede enviar como bit???? :(



Esta es mi tabla de como se envia un mensaje por Ps/2, si alguien la revisa y me comenta lo agradezco

Clock 1 1 0 --1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 --1 0 --1 0 1
Data 1 0 0 --x x x x x x x x x x x x x x x x ----(X-X) -1 1 1
------start---byte a transmitir-------------------P??---Stop-End

en los (X-X) no se que se envia, solo se que son dos bits que dependen del mensaje enviado, pero como se obtienen?
 
Última edición:
#8
gracias analogico, no los habia encontrado
pero servira justamente para lo que necesito?
por ejemplo si imprimo "A" en el rs232 lo imprime como si de un teclado se tratase a la computadora con ps/2??
 
#11
Justamente mientras leía pensaba en ese cable PS/2 a serial y que le sale otro PS/2. El esquema éstá claro, pero ¿Será necesario tantos pasos? A lo mejor, directamente con el cable que te dijieron y algún programa en la pc vieja se pueda recopilar la información...



Salvo que la All in one no tenga conección PS2, en la facultad con un equipo que trabaja con microondas usé un conversor de USB a Serial, se consigue en cualquier casa de computación. A lo mejor te sirve.
 
Última edición:
#12
olvide mencionar que es requerimiento no instalar ABSOLUTAMENTE NADA en la PC vieja
:/
me quedo sin opciones manana tratare de simular mis avances con arduino
 
#13
no te puedo asegurar que funcione
no se de alguien que le haya dado ese uso

pero ese aparato se usa con los lectores de codigo de barra
los lectores envian texto asi que puede que sirva
 
Arriba