Ugh - I'm waiting for parts. Today the battery charger should arrive, and tomorrow I'm expecting the new controllers. I've done just about all I can with rebuilding the base plate until the parts arrive, so I can figure out how to lay out the interior around those sizes. Sigh.
So, I've redrawn the block diagram:
... which shows off that I have no idea how I'm going to connect the gun motor. The idea was to get a low-speed right angle motor (check: 2 rpm!), connect it to one side of the gun barrel, and then I'd have an up/down control for aiming the gun stalk. Unfortunately, I'd also have a way to break through the gun box itself - when kids wound up driving the Dalek and started trying to rotate the gun up beyond its limits. So I need a limiter of some sort.
The easy answer is to use a couple of optical sensors; as long as the sensor is blocked, the gun stalk is free to rotate. One would break for upward rotation and another for downward, so the Dalek could still figure out which way to move. But to do that (where the sensors are directly connected to the Arduino that's driving the motor), I need two more signal lines down to the base - and I only have one free line in the slip ring.
I think what I'll need to do is revisit the way the audio shield works. Right now A1 has its serial TX line going to the RX of A3 - unidirectional communication. If I use the remaining slip ring line for the reverse path, then A3 can transmit back to A2. (Another unidirectional line, which violates my sense of "rightness", but it's better than dragging the signal to A1 and then resending to A2.) I'll have to write the protocol such that a steady stream of "ok" is being sent from A3 - or I'd be in danger of failing open, where A3 isn't working correctly, and A2 drives the gun stalk through the gun box. And I don't particularly like that model, because it would be constantly transmitting - where I'd rather it shut down to save power.
Another option would be to move the A1-to-A3 serial TX line -- making it A2-to-A3, bidirectionally; with an improvement of the A1-to-A2 communication, removing the four parallel "move this motor now" digital lines and converting to all serial; and relaying music commands through A2. Not the end of the world, I guess; music can fail and not be catastrophic, while the motors are likely to cause a catastrophe if they fail. And it would simplify the interior wiring a bit - replacing 4 parallel lines with 1 serial, and using the remaining already-dangling-free slip ring line.
Ah well, something to keep rolling around in the back of my mind.
Since I'm in downtime, I also finally got around to pushing the source code to Github! If you're interested, head over to https://github.com/JorjBauer/swd40 ...