Servo repair with 4-40 tap, no thanks to silly proprietary servo hardware

Hexapod now has 18 working servos again! yay.

Servo Failure modes
I didn’t strip the gears* on one of my servos from applying to much load to it (the way I expected my servo to fail), but rather stripped the threads on the servo to servo horn coupler.

*see http://techtv.mit.edu/videos/10523-what-is-design-an-example for a good video of designing a robot, having the gears strip, and solving that problem with rubber “shock absorbers.” This video is shown near the very beginning of 2.007 Design and Manufacturing I, a sophomore build-robots mechanical engineering class.
@28:30 you see a good picture of stripped servos gears, where the missing teeth means that the servo can’t turn correctly:


Anyway, I had some issues because I thought maybe I was using the wrong size screw. The servo horns and screws and splines are all some dumb not inter-compatible between manufacturers proprietary design.

So I ordered some replacement servos off of ebay.
“Vigor VS-2 standard analog Servo VS 2 vs2”
$9.98 for 2, or $4.99 each.
Probably I paid way too much but whatever. At the time I thought $5 was really cheap for a servo (now I think $3 is more reasonable price for this servo). Bought 2/9 and delivered 2/19, not bad.

At first I thought I got ripped off and the servos were stripped, but then I looked more closely and realize that there are no threads cut into the servos:

So you can use the proprietary self-tapping screws, but I realized you can just tap them with regular ol’ 4-40 threads and use normal 4-40 screws instead of, if you ever lose the pack of proprietary servo stuff, hunting around for ages looking for an appropriate size screw.
left: 4-40 screw mates fine with servo horn. top: a 4-40 tap. right: A proprietary screw with mysterious thread count and pitch next to a nylon 4-40 screw.
Works well!


Hunt for cheap steppers cont’d: VID teardown, datasheets

Steppers I mentioned in previous post came within a few days! They’re not as small as I’d thought, but they are very flat. I bought them off of amazon by searching for “stepper motor gauge”:
6 Stepper Motor Chevy AVALANCHE V8 5.3 8.1 2003-2006 Gauge Cluster Speedo Speedometer x6
$16.5 for 6, or $2.75 each.

The inscription says VID29-02P.

Well, I decided to take one apart.

They’re geared steppers and you can see the end stop (top right) that prevents the gear from rotating and this stepper from being continuous. It has 315deg of travel according to the datasheet.

If you take it apart, you see that the four leads of the stepper go to the four poles of two coils of wire, switching the electromagnet on and off.
That’s all there is to it!

Anyway.
Time to find a datasheet.
Here is one for a similar one, the MR series: http://clearwater.github.com/gaugette/resources/mcr/2010410104720473.pdf
(mirror)
which is where I get my guess of VID’s “Angle of rotation of motor with internal stop” as equal to 315 degrees from.

Here’s a note of the rather obscure manufacturers:
http://guy.carpenter.id.au/gaugette/blog/2012/05/25/buyers-guide/
For instance, in our case:

Hong Kong based VID also manufacture a range of similar motors. Their motors are black, and have a black model number starting with “vid”.

Well, anyway.
I also decided to buy (off of ebay) some less strangely shaped and hopefully easier to couple to stepper motors. They turn out to be cheaper too!

[x] img src, ebay iawoo

http://electronics.stackexchange.com/questions/60969/stepper-motors-stride-angle
28BYJ-48 – 5V Stepper Motor Datasheet
“New 1pc 5V 4-phase 5-wire Stepper Motor Gear Motor 28BYJ-48”
$8.72 for 4, or $2.18 each.

Those should get here in two weeks. It’s nice to just order fun things ahead of time and feel like I am getting good deals.

That’s all for now.

References

http://www.freescale.com/files/microcontrollers/doc/app_note/AN2974.pdf “Quick Start for Beginners to Drive a Stepper Motor”

2dof minimalistic servo arm, now with mapped values + code

values actually mapped correctly = some semblance of control. mapping painstakingly / experimentally determined
the setup

actually very difficult to write words even with the arm controller (versus twiddling some potentiometers to control the arm), because the potentiometer to servo mapping isn’t precise and there’s a lot of slop (e.g. look at the dead space around the screwdriver)

time elapsed: probably 1 hr including trying to figure out how to draw things and documenting ^^ (~40 minutes to code this and map the values)

/**
 * @file: RC control of servo
 *
 * @description
 * theta1 = bottom joint pot value, theta2 = top joint pot value
 * these were experimentally determined,
 * I had one leg of pot connected to sig5v, the other to a voltage
 * divider setup with a 1kohm=R2 and being read to A0 or A1 respectively
 */

#include <Servo.h>
Servo servo1;
Servo servo2;

int theta1;
int theta2;

int map1;
int map2;

void setup()
{
//    pinMode(1, INPUT);
//    pinMode(2, INPUT);
    Serial.begin(9600);
    servo1.attach(2,500,2400);
    servo2.attach(3,500,2400);
}

void loop()
{
  theta1 = analogRead(A1);
  theta2 = analogRead(A0);
//  map1 = map(theta1, 163,380, 0,130);
  map1 = map(theta1, 163,360, 0,130);
//  map2 = map(theta2, 1017,275, 0,160);
  map2 = map(theta2, 1017,264, 3,150);
  servo1.write(map1);
 
  servo2.write(map2);
  Serial.print(“theta1 “); Serial.print(theta1);
  Serial.print(” map1 “); Serial.print(map1 );
  Serial.print(” theta2 “); Serial.print(theta2);
  Serial.print(” map2 “); Serial.print(map2);
  Serial.println();
 
  delay(20);
 
}

projects blog (nouyang)