Mesa XY

Hola amigos:
Estoy metido en una aventura que por mi mismo, soy incapaz de salir y es por lo que recurro a vosotros.
Mecánicamente he construido una mesa XY con motores paso a paso y mi pretensión es poder manejarla con el teclado de mi pc.
Me explico:
Pretendo que al pulsar por ejemplo la letra "a", el cursor de la mesa XY, se desplace a una posición determinada ej (1,1)
cuando pulse la letra "b", se desplace a otra posición ej (7,3)
cuando pulse la letra "c", se desplace a otra posición ej (21,12)... y asi sucesivamente para cada letra o número del teclado.
En principio no me importaría que para iniciar cada movimiento, partiese del punto (0,0), pero lo ideal sería que pudiese ir de punto a punto.
No tengo ni idea si con Arduino seria realizable o bien habría que recurrir a otro sistema, pero en cualquiera de los casos necesitaría ayuda para la programación.
¿Alguien me puede ayudar?
Saludos

Para saber la posicion vas a tener que dotarlo de algunos switch en las esquinas, y puedes llevar un contador de paso interno, suponiendo siempre que si se produjo el avance.
Sino debes poner un encoder para saber la posicion real. Pero esto lo puedes hacer despues.

Te pongo un psudocodigo

Si hayDatosEnSerial
Case valor es:
a: AvanzarArriba(1); aca podes enviarle el numero de pasos y despues que controle a donde está y si se pudo mover
b: AvanzarAbajo(1);
c: AvanzarDerecha(1);
d: AvanzarIzquierda(1);
Fin Case
Fin si

Esas funciones tambien te van a servir para que desde la pc le envies las coordenadas
Funcion AvanzarArriba(n)
{
posi =0;
Mientras (FinDeCarrera = 0 ) y (Posi < n) // si no ha llegado al fin del recorrido se puede avanzar
{
//rutina de mover el motor
Posi++; //avanzamos el contador
PosX = aca pones los valores reales en donde quedo el cabezal en el eje X
PosY = aca pones los valores reales en donde quedo el cabezal en el eje Y
}
}

Funcion AvanzarXY(x,y)
{
segun donde se encuentra llamas a la funcion adecuada
AvanzarArriba(y);
AvanzarAbajo(y);
AvanzarDerecha(x);
AvanzarIzquierda(x);
}

Bueno hoy me levante con ganas de programar, espero te sirva. Suerte y no dejes. Aunque parezca que no sale siempre sirven los errores para aprender.