From ArduinoInfo
Jump to: navigation, search

Thoughts on a possible new motor controller February 2012

These are some musings on a possible new motor controller that would incorporate up to date motor control chip(s) with FET output with an easy-to-use controller interface. Maybe.

Starting at the top-down "Fantasy as an Engineering Design Tool" approach:

  • There is a black box that runs two DC motors with encoders, or two Stepper Motors
  • Serial or I2C commands can be sent to the controller, and status returned, with little overhead in the application program.
  • Users in Arduino-land (or wielders of the PicAxe?) have a simple command such as:
    • BotMove(DistanceInCentiMeters, Time, ChangeInAngle);

Example Commands:

So some example commands for a two-motor wheel / caster type configuration might look like:

BotMove(100,10,0); Go straight ahead 1 meter in 10 seconds

BotMove(100,10,-90); 1 Meter long arc 90 degree left turn in 10 seconds

BotMove(0,1,90); // 90 degree right turn in place in 1 second

Things To Consider:

This ASSumes that a few things are figured out :-)
  1. The differential pulse rates for the concurrent motor runs are well done, probably from interrupt-driven encoder inputs.
  2. Acceleration factors are controlled.
  3. Practical limits are enforced.
  4. A reasonable variety of motor and encoder types can be accommodated.
  5. A low-cost controller (possibly Arduino-equivalent/reprogrammable) is found
  6. Setup/profile information facility is provided
  7. Reasonable physical/heat transfer design is done.
    1. "Module/Brick" version perhaps with heatsink?
    2. Shield Version, but still stackable.
  8. The BOM / board / build costs VS attractive selling price and builder / distributor margins work.

Possible Options:

  • A high-power variant
  • Onboard support of higher-level commands
    • Logo-Like: REPEAT 4[BotMove(0,1,90) BotMove(10,2,0)] Trace a square
    • Run Until Interrupted: BotRun(100,10,-90) Repeat same command until stopped
  • Onboard direct support of optional collision / distance sensors
    • Interrupt a BotRun
    • Stop and Send status back, including sensor data
  • A LOGO-like language in Arduino for newbies / education
  • ArduBlock support: Create BotMove blocks.
  • Other Stuff??

Needed Research:

  • Currently available reasonable-cost FET motor driver chips
  • Best physical configurations, electrical connection options
  • Probable build costs
  • Apparent market