Folks,
I'm interested in developing a motor controller/driver for a range of small BLDC motors (5-12v, <1amp) generally with a gear train (100-250x), to be used in small mobile robotic devices for K12 education. General idea is to package MCU, driver and motor in a standardized module, with multiple modules to be used for various functions,
Here's where it gets interesting. Would like to be able to monitor/control all of the following:
- RPM, for continuous motion, from very slow speed to max motor RPM.
- Acceleration/deceleration curves.
- Count "steps", i.e., changes in pole positions (with n pole pairs per rev)
- Hold position, like a stepper motor.
- Single "step", like a stepper (where this will correspond with a small output angle, determined by n and the gear ratio
- "Micro step" (Is this practical with a BLDC motor?)
- Force control/feedback by modulating/measuring drive current (via PWM I presume)
- For motors with and without Hall effect sensors
I'm presuming that I can jump right into the InstaSPIN tool for the continuous motion design, but what about very low speed and stepping? Treat them as two different control regions, with InstaSPIN for the high end and typical stepper motor control for the low end?
BTW, for purposes of focusing the discussion, assume that I'm a competent embedded system HW and SW designer with MSP430, ARM and (a little) C2000 experience.
Any general pointers or words of wisdom?
TIA,
Mike