I am trying to build a 6-axis (pan, tilt, track, zoom, focus, aux) motion control system to use for timelapse photography. I will control it using Dragonframe software on a mac, which they claim can control up to 8 steppers with an Arduino Mega and an Easy Driver board for each motor. They have already written code to tell the Arduino how to translate the info from the software to the motors, so I don't think putting it together should be too difficult.
I don't have a ton of experience with this stuff but I think I understand the wiring except for one aspect. I know each Easy Driver needs to be wired to power but see that there aren't enough power ports on the Arduino Mega to power six Easy Drivers. Should I wire each Easy Driver directly to the battery?
Secondly, that will be a lot of hardware to fit on one breadboard--should I break it up over several, or is there a bigger breadboard or project box I should look at? I'd like to have enough room to use solid connectors like these: https://www.sparkfun.com/products/11475
Any help is most appreciated! I've done tons of searching but haven't found any good examples of anyone using this many motors with one Arduino.
Additional Info:
Dragonframe Software & Arduino: http://www.dragonframe.com/arduino
I plan to use a Nema 17 stepper like this: http://www.stepperonline.com/gear-271-planetary-gearbox-for-nema-17-geared-stepper-motor-p-43.html
Here is a tutorial showing how to wire two Big Easy Drivers to an Arduino Mega: Easy Driver Examples
Basically, what I want to build is a crude, DIY version of this:
This is what the code looks like (complete code here: https://docs.google.com/document/d/1PFX-qTL1yJue4jXI3ZvIdmM7bTrRZVjeK_MUNV398e8/pub):
#define DFMOCO_VERSION 1
#define DFMOCO_VERSION_STRING "1.0.2"
/*
DFMoco version 1.0.2
Multi-axis motion control.
For use with the Arc motion control system in Dragonframe 3.
Generates step and direction signals, which can be sent to stepper motor drivers.
Control up to four axes with an Uno or Duemilanove board.
Control up to eight axes with a Mega or Mega 2560 board.
Version History
Version 1.0.2 Moved pulses into interrupt handler
Version 1.0.1 Added delay for pulse widths
Version 1.0.0 Initial public release.
Pin configuration:
channel 1
PIN 4 step
PIN 5 direction
channel 2
PIN 6 step
PIN 7 direction
channel 3
PIN 8 step
PIN 9 direction
channel 4
PIN 10 step
PIN 11 direction
channel 5
PIN 22 step
PIN 23 direction
channel 6
PIN 24 step
PIN 25 direction
channel 7
PIN 26 step
PIN 27 direction
channel 8
PIN 28 step
PIN 29 direction
*/
// output the pre-calculated move data
#define DEBUG_MOVE 0
// if you do not want a kill switch, comment out this line
#define KILL_SWITCH_INTERRUPT 0
// define maple board
#define ARDUINO 1
//#define MAPLE 1
#if defined(MAPLE)
#define SERIAL_DEVICE SerialUSB
#else
#define SERIAL_DEVICE Serial
#endif
// Arduino Uno/Duemilanove -> 4 MOTORS MAX
// Arduino Mega 2560 / Mega -> 8 MOTORS MAX
#if defined(MAPLE) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define MOTOR_COUNT 8
#else
#define MOTOR_COUNT 4
#endif