Ray Kelm

  • About
    • Home
    • News

User Login

  • Create account
  • Reset password

Projects

  • SDL_gui
  • Cyclone
  • roaddemo
  • rtChess
  • exemel
  • gp2x
  • robot

Options

Recent News

  • leJOS NXJ for Mindstorms NXT
  • Chumby at work
  • Chumby!
  • And...
  • Busy busy busy...

News Tags

  • news (46)
  • cyclone (15)
  • SDL_gui (14)
  • robot (7)
  • chumby (3)
  • lego (3)
  • exemel (2)
  • nms (1)
  • work (1)
  • dev (1)
  • robofest (1)
  • rtChess (1)
  • roaddemo (1)
  • osgi (1)

Links

  • DataSlab Hosting
  • SellMySoftwareOnline!
  • SDL
  • YAAARC
  • FIRST
  • Arduino

Servo modification

To build the drive system for our first robot, we decided to use servo motors that have been modified for continuous rotation. We found a page which had directions which we used as as starting point. The pictures weren't an exact match for what we saw, but were close enough that we got the job done. I have to apologize for the blurry pictures. Alex took them using her camera, instead of the good camera my wife uses. Next time we'll use that, if she'll let us.

Initial setup

This is the initial setup. Before modifying the servo motor, I wanted to make sure that the servo worked, and I wanted to show Alex how it worked. So I designed a cable for connecting the Arduino to the servo motor.

Arduino close up

I picked the Arduino because it is easy to program, and easy to work with. I wanted something that could be used to teach Alex simple embedded programming, but that would not limit what we would be able to achieve too much.

Software test

The first thing we did was the "blinking LED" test. This was just to make sure the Arduino was working, and the software environment worked. I had to let the windows machine I was using figure out the USB drivers, which didn't work the first time.

Servo connection

We connected to the servo using the standard three pin connector. I wanted to do as little modification of the servo as possible. However, the cable from the servo motor is rather long, and I suspect we'll need to shorten it before we're done.

My messy workbench

Yes, my workbench is messy, but I like it that way. Everything is where I can find it.

Fixed servo cable

Oops. the servo control signal was connected to the TX pin on the Arduino. This means that when I downloaded the blinking LED program, the motor started moving, which surprised both of us. So we went back and changed the cable to move the control signal to digital pin 2 instead of digital pin 1.

Servo control pulse

This is the control pulse that we were using to move the servo. At the time this was running, we had the pulse width sweeping back and forth so that the motor would move back and forth. Since the servo was working well, and I felt that Alex understood how we were controlling it, it was time to start modifying the servo.

Servo gears

Alex seems to like the black nail polish now. That's her had holding the opened servo motor, showing some of the gears. Most of them actually fell out when I took the top housing off.

Servo taken apart

Here are all of the parts from the servo, pulled apart and spread out on the static mat.

Servo output shaft

This is the output shaft, which we will ream out using a drill bit. I ended up putting the bit in the drill press back in the shop, and turning the gear by hand. I had to use a smaller bit at first to get the corners cut, then step up to a larger one. I think the largest one I used was an 0.196" bit.

Drilling access hole

At first, we tried to drill (by hand) the access hole for adjusting the servo from the outer side of the gear, but I soon realized that this was just not going to work. The drill bit we had to use was so small that the screwdriver would never fit, and it would take forever to drill by hand. Finally, I put the part in a vise, and drilled from the inner side of the gear. I used a larger drill bit, I think it was 0.083, and just use the drill press. It worked great.

Cutting adjustment slot

I couldn't find the dremel tool, so we used a hack saw to cut a slot into the feedback potentiometer. It worked surprisingly well.

Gear reassembly

We put all the gears back on, which took a little figuring out, since they all fell out when the housing was removed. The pictures didn't exactly match the instructions we were using, but it was close enough.

Housing reassembly

Finally, I put the rest of the housing on, and put the long screws back in.

Completed servo

And here is our completed modified servo. We reloaded the first servo test program, which just outputs a 1.5 ms pulse every 20 ms, and adjusted the pot so that it stopped moving.

Finally, we switched back to the sweeping back and forth program, and watched the servo move several rotations in each direction, repeatedly. Looks like it was all working. The last thing we did was mark the outside of the servo with a paint pen, since it looks just like an unmodified servo. Our final design will probably include at least 4 servos, and we don't want to mix them up.

Copyright © Ray Kelm. All rights reserved.

Valid XHTML 1.0 Strict Valid CSS!