I'm looking for recommendations for an experiment:
The concept is a small (preferably under 6" long) car which drives in a straight line only, forwards ~1m and backwards ~1m in a repeating (sinusoid-ish) fashion along a track, such that the frequency of oscillation can be varied programatically. I don't have an exact frequency range of oscillation in mind, but something around 1-2s would probably be the fastest period I'd need.
One important requirement is that there be as low rolling resistance as possible so that inertial forces can cause the car to roll as freely as possible. I'm thinking this means brushless DC is likely the best candidate?
The project will not be battery powered so there's no concern with draw.
I'm not mechanically inclined (much better with electronics and code) so would prefer mechanical simplicity - direct drive wheels, avoiding gearing and shared drive shafts.
Initially I imagine my arduino code will be fairly simple, e.g.:
- Drive forward at 50% speed for 2s
- Drive backwards at 50% speed for 2s
- Drive forward at 100% speed for 1s
- Drive backwards at 100% speed for 1s
With this open loop arrangement I expect the midpoint of this translation will eventually drift off the track and I'll want to upgrade with some positional feedback control. I'd be interested in a rotary encoder that would be compatible with this setup. I've also read about sensored BLDCs, could that be used in lieu of an encoder?
Initially I will likely start out with position-dependent speed control but ultimately I want to have position-dependent torque control. Are these basically the same things? If not what considerations are there for achieving torque control?
The project requirements are likely to shift a bit as I go along, so I'm hoping to get something with a bit of performance headroom that allows me to get my feet wet today. I expect I'll probably need to swap out components as I progress along the learning curve.
Any advice, be it specific product recommendations (motors, motor controllers, encoders) or just general pointers are welcome.