Controlling two DC motors with keyboard and more

Hello everyone,

I'm currently working on a project consisting in controlling a tracked robot with two DC motors via wi-fi. I've been gathering some information here and there but, as I have nearly no experience in the world of programming, I've decided to ask you a few questions.

For my project, I have at my disposal:
-Arduino Uno
-Arduino Motor shield (latest version)
-WiFly shield (from sparkfun electronics)
-2 DC motors
-lipo batery (to power arduino and make everything wirless)

My problem is that my idea is controlling this robot by pressing a system of buttons of the keyboard (the letters W,A,S,D). As I understand, this is perfectly possible but everyone does it differently. At first, I thought it should be easy to find an example of this and make my own code, but there seems to be no good tutorials about it. If someone had the patience to teach a newbie who has no idea of programming a little about this topic I would be very grateful.

The other problem I'm encountering is the wi-fi control. For now I have managed to send a message through the USB and the WiFly shield responded me throgh a wi-fi channel, but I can't comunicate and send orders solely with wi-fi.

If you have any suggestions or you need to know anything else, just let me know.

A keyboard connected to the arduino? A computer?

Yes, the keyboard is connected to the computer as normal, and the arduino to the computer via USB. With the hyperterminal or monitor serial I should be able to send the direction I awnt the motors to go. I think the key is making the WASD keys a variable, so that I can use de command If... else..., but I have no idea how to do it

Very simple control by a sent character.

int ledPin = 13;

void setup()
{
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT); 
  Serial.println("serial on/off test 0021"); // so I can keep track
}
   
void loop()
{
  char c = 0;
  if (Serial.available() > 0) 
  {
    c = Serial.read();
    if (c == '1')     // assuming you send character '1', not a byte with value 1 
    {
       digitalWrite(ledPin, HIGH);
    }
    if (c == '0')
    {
       digitalWrite(ledPin, LOW);
    }
  }
}