Created a mechanism to help the motor crawl by putting it on its side and adjusting for weight differential!
Here's the code:
/** Servo with Potentiometer control* Theory and Practice of Tangible User Interfaces* October 11 2007*/int servoPin = 7; // Control pin for servo motorint potPin = 0; // select the input pin for the potentiometerint pulseWidth = 0; // Amount to pulse the servolong lastPulse = 0; // the time in millisecs of the last pulseint refreshTime = 20; // the time in millisecs needed in between pulsesint val; // variable used to store data from potentiometerint minPulse = 500; // minimum pulse widthvoid setup() {pinMode(servoPin, OUTPUT); // Set servo pin as an output pinpulseWidth = minPulse; // Set the motor position to the minimumSerial.begin(9600); // connect to the serial portSerial.println("servo_serial_better ready");}void loop() {val = analogRead(potPin); // read the value from the sensor, between 0 - 1024if (val > 0 && val <= 999 ) {pulseWidth = val*2 + minPulse; // convert angle to microsecondsSerial.print("moving servo to ");Serial.println(pulseWidth,DEC);}updateServo(); // update servo position}// called every loop().void updateServo() {// pulse the servo again if the refresh time (20 ms) has passed:if (millis() - lastPulse >= refreshTime) {digitalWrite(servoPin, HIGH); // Turn the motor ondelayMicroseconds(pulseWidth); // Length of the pulse sets the motor positiondigitalWrite(servoPin, LOW); // Turn the motor offlastPulse = millis(); // save the time of the last pulse}}