Control RC car Motor Speed via PI

Hello,

I'm using the below code and it works.
the code uses the PING))) sensor to read the distance from an object.
the distance then converted to PWM duty cycles.

then I feed the PWM into an H-bridge chip to drive the motor.

NOTE: if the object moves further away from the car, then the car accelerate and maintain (a minimum distance of 25 cm) with the moving object. {i.e. tailing the object}

THE QUESTION:
HOW CAN I DO THIS USING PI (of the PID library)?
I've looked at the "Arduino Playground - PIDLibrary" and I still don't know how to implement or start programming.
all I know is my set point is the 25 cm obviously.

THE CODE:
/Ping))) Sensor + PWM/

// sensor's output:
const int pingPin = 7;
// PWM output connected to digital pin 9
int pwmPin = 9;

void setup() {
// initialize serial communication:
Serial.begin(9600);
}

void loop()
{
// establish variables for duration of the ping,
// and the distance result in inches and centimeters:
long duration, inches, cm;
int x;

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);

// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm, ");
//Serial.println();

delay(100);

// PWM SECTION:
{
if (cm >= 25 && cm <= 150)
{
x = ((cm/150.0)*255.0); // maintane car distance from the object,(25cm <= distance <= 150 cm) (0% < Duty cycle < 100%)
}
else if (cm <25)
{
x = 0; // STOP car!, Duty cycle = 0%
}
else
{
x = 254; // full speed, clear road, Duty cycle = 100%
}

analogWrite (pwmPin, x); // this pin is connected to a chip to drive the car motor.

Serial.print("X VALUES IS: ");
Serial.print(x);
Serial.println();
delay (20);
}

}

long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}

you will need so porvide us with more info ! willlll the speed of the car be constant ? and is it that you just need to maintain a distance of 25 cm ? then you can do something much simpler !

while(distance>25)
(drive forward)

I wish I can use something simple, I am required to use PI to drive the car.
I'd like to maintain a distance of 25 cm using a PWM as an output of the arduino.
to control the PWM, I need to use PI.

I'm new to this forum.
I have bought 6 of these on Ebay as 'Stepper motor drivers for Arduino'.to drive 3 Nema 34 1065oz inches stepper motors.
I realised a Bi-polar stepper with 6A coils will need 2 Dual BTS7960 chips for 2 'H' drives per motor.

My question is where do I connect my EN, Dir & Step to the 2 sets i/p pins?

I have tried asking the seller, but Chinese can't understand what I'm asking & sent schematic of board.
I have attached this schematic of dual BTS7960 Module.(74HC244 is a octal buffer with enable line.)

IBT-2diagram.pdf (7.85 KB)