Working on a robotics application. I have a custom 2560 board designed and it's going to show up next week but I'm already realizing that I need to make more changes to it, additions, deletions, etc. Want to get some feedback.
I need to drive 5 wormgear (low rpm) DC motors, they are between 50W and 150W at 12V.
All 5 will have quadrature encoders, I already have LS7184 ICs on the board to count ticks by the encoder. I was thinking that encoders would tell me motor position but they are only going to tell me speed and direction. The position of the motor is more critical to me than motor speed. 3 motors will be driving arms on a robot, the other 2 will drive motors on a self balancing platform.
The encoder libraries I've found want to use 2 interrupts each. That's 10 which is a problem because the 2560 only has room for 6.
3 of the motors are driving a cam which oscillates up and down, that's what I need to track, the rotational oscillation of the cam. I was thinking about a MPU-6050 3-axis accelerometer + 3 axis gyro. It uses an I2C interface and I would need 3 of them.
For the self balancing platform I'll need a 9DOF like the FreeIMU (http://www.varesano.net/projects/hardware/FreeIMU
), it combines the MPU-6050 with a magnetometer. It also runs on the I2C bus.
There's also a chip or hardware debouncing and a small LCD screen but those are easy.
Will also be polling 4-5 analog pressure sensors and driving 4-5 LED lights and reading a file from an SD card. Little calculation will be done on the board as it will be connected to a Linux computer running ROS (Robot Operating System). It will log data and send back motor commands, etc.
5 Encoders (that need interrupts)
4 Accelerometer/gyro sensors that run on I2C
1 1 axis accelerometer for data acquisition (analog)
5 motor drivers
5 analog sensors
5 LED lights
I was thinking about using two ATMEGA2560 chips and connecting them together via a serial connection with two regular Digital Pins. I can put 2 encoders (4 interrupts) on one chip and use SDA/SCL for the 4 accelerometers that use I2C and the other chip could run the other 3 encoders.
The SDA/SCL pins can also be used as interrupts. If I put an I2C multiplexer on those pins does that mean I can no longer use it as an interrupt?
Thanks for the feedback.