NXT Dial Remote Control
1. Simple and sturdy, low part count
2. High "on-center" stability (whenever you take your hands off the remote, the robot should stop, no need to find a center position)
3. The motor power is always applied very progressively (no jerking on or off) with easy fine-control for accurate small movements, but you can still get full power.
For these, I was willing to give up the ability to drive forward and steer at the same time (only straight and pivot turns are available), or drive and operate the 3rd motor at the same time.
The mechanics is very simple, basically just a single motor attached to the NXT. You choose one of four functions to control by pressing one of the 3 NXT buttons (or no button), then use the motor (dial) to apply power/value to that motor/function. The key is that it is the speed of the dial, not it's absolute position, that determines the power applied to the motor. This gives you a nice progressive feel, kind of like an iPod wheel, and the hands-off stability in any position.
The remote can control many different types of robots/machines, many with no modifications to the program (typical 2-motor vehicles with optional 3rd motor), and I also included a wired remote variation for those with only one NXT. All programs and instructions are included. The building is very simple, the programs are not so simple...
Here is a video of the remote in action:
Actually, that's only have the fun - since the communication is two-way, the robot can literally "wrestle control" from the human operator when needed. It's a lot of fun to watch an inexperienced human have this happen, BTW :).
Brian, I would be interested to hear more of your ideas on force feedback. I tried something like that with my "Wind up Ballerina" project, where the user pretends to wind up a spring, which is an NXT motor fighting back at you with force, and I discovered that this is actually hard to achieve because of the way the NXT does its motor power/speed control. Unlike the old RCX motors, even at a very small "power" level, the NXT interprets this as a desired speed and does whatever it can to achieve that speed, so even at say 5% power, it will fight you with 100% of its torque to achieve that. Thus I was not able to get the feel of a light or progressive push back. I guess the solution would involve constantly changing the target degrees to trick the NXT into following your motion. Do you have any projects that do this?