Monday, September 28, 2009

More uses with the PF Motors

I really like PF motors. They have plenty of power, they are easy to mount, and the hollow shaft makes customizing a project a breeze. Everything I build uses the NXT, so I needed a way to control the PF motors. Enter the HiTechnic IRLink. But the problem is there is no direct way to the position of the shaft, such as “turn the shaft 270 degrees.” Well, there are a couple of ways to get around that.

The first way is to add some gearing and include a clutch gear. Then design your project so that it will hit some stops. When the stops are hit, the clutch gear will give and your actuator will end in the desired position. Reversing the motor will run the actuator the other way until the other stop is hit. This is analogous to using a pneumatic cylinder. Stopping the cylinder midway through the stroke is a challenge, so we mostly use it in the extended and retracted position. As you build and test, measure the time it takes to complete the cycle from one end to the other and write that into your program and add some additional time, say about 0.25 or .50 seconds.

Here is a short video showing an example of how that might work.

The second way again uses the IRLink sensor, but adds an RCX and a rotation sensor or a couple of touch sensors. The touch sensors would be used in the same manner as above, but the touch sensors would be used as the stop.

The IRLink makes use of the RCX and the PF motors, so you can get motor control and feedback while using only one port of the NXT! Imagine, using a single program, you can have 3 servomotors, 8 PF motors, 3 9V motors, 3 sensors on the RCX and 3 sensors on the NXT. If that is not enough power for you…..


  1. Note that the NXT can also take input from an RCX-style rotation sensor directly (install the legacy block library if you don't have it already via the education version of NXT-G), so the RCX itself is not necessary to get a stand-alone shaft encoder. You do need the standard RCX/9V to NXT adapter wire, though.

  2. Great point! What I like about the IRLink is that you can control both the RCX and the PF motors and use only one NXT port. I am amazed at the fact that someone had the foresight to open up that versatility. Luckily, I have two RCXs (only one works now, but I can fix the other) and two IRLinks and a bunch of PF stuff. I just can't come up with a project to use all that power.