Rover Status display on a PC or Kindle Fire

I’m working on a rover project. I’m using a standard RC transmitter and receiver to control a RC vehicle. The on board Arduino UNO reads the 2 channels from the receiver and controls the ESC and steering servo. The next step is to use a couple of Xbee’s to send status, Throttle mode and Steering Position, of the rover back to my PC. That looks pretty straight forward and I can use the Xbee software, X-CTU, to monitor the status.

How would I make a status screen, say similar to look as a LCD display, on my PC? Eventually I would like to put that same status display on my Kindle Fire but that may be a separate challenge.

Here’s what I would like the display to look like:

Throttle = Forward Steering = Left

Throttle = and Steering = would be static text, Forward and Left would come back from the Rover as I control it.

Thanks All

I have used Processing to make displays of data from my robot. It is easy to get and display data from a PC serial port (if Xbee is serial). Processing is easy to learn as it is close to Arduino C++.

So groudfungus we meet again. I was looking at Processing as a way to do that, obviously I'll have to look into it more now. The next step would be to put a GPS and compass on the rover and have it send that info back. But I figure if I can get this working first adding a couple of extra fields should be easy.

BTW, you helped me last week getting the PinChangeInt.h library in to my sketch. I did as you told me and it worked fine on my rover.

If you don't mind I do have a question, again just for my understanding of it. From the basic stuff I read about using the Servo library you write the angle you want to servo to go to, Servo.write(Angle). But in the sketch I'm using the programmer uses Servo.writeMicroseconds(XXX) where XXX is the pulse length, I assume.

Does the Servo.h library know to covert the angle to a pulse length when using just "write" and a pulse length when using "writeMicroseconds?

Thanks again

Does the Servo.h library know to covert the angle to a pulse length when using just "write" and a pulse length when using "writeMicroseconds?


Here is the code from the Servo library.

void Servo::write(int value)
  if(value < MIN_PULSE_WIDTH)
  {  // treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
    if(value < 0) value = 0;
    if(value > 180) value = 180;
    value = map(value, 0, 180, SERVO_MIN(),  SERVO_MAX());

Great, thanks for the info and help

You are welcome. It is actually nice to hear as once most posters get what they want, they're not to be heard form until they have another problem.

To me that's part of the "Open Source" This is a great forum, before I post I search in the Forum, also in Sparkfun and a few other places, sometimes I find what I'm looking for, most times there's just so much info out there it's hard to sort through. I've posted a few questions here and always get great, useful, feedback most times in less than an hour.

Thanks again