Some years ago I started out to make a set of Plans for the first Tank to go into action, the MK1 British Heavy Tank. These Plans I felt necessary due to the poor information available at the time for modellers to use. This soon, with the persuasion of friends, evolved int o a 1/6 Scale model that is now reaching completion after three years work.
An important and unique feature of these World War One tanks is their lack of a Turret. Instead they had their main armament in two side Sponsons.
This lack of a turret set me a problem, as all the electric workings for RC Tanks allowed only for one Gun and Turret.
Luckily for me a Friend of mine knew of the Pololu range of products and suggested I might be able to find a solution using them to control my sponsons. The solution I went with was to use an Elmod Main Board for my normal tank sounds and features, then take a feed from the Elmod to make 'both' Sponsons go through a Firing Routine.
I would like to say at this point that I planned it all out and then just built it... but the truth is one of trial and error, with a quick look at the Pololu Forum every time I hit a brick wall.
The solution I went with in the end was a Pololu RC Switch with Digital Output to covert the servo output from the Elmod's firing circuit into something usable as a signal. This then activates a Subroutine in the Sponson's Control board to make a Strobe Light in the Barrel flash, then the Barrel Recoil. The gun flash is a Taigen Gun Flash Unit which is activated by a Pololu RC Switch with Relay.
Each Sponson has its own 12 volt supply which it uses for the Gun Flash Unit. This is also dropped down to 6 volts via a Battery eliminator Circuit to power every thing else.
The Main Control Board in the Sponsons is Micro Maestro 6 Channel Servo Controller. With this I operate the Guns Traversing, which runs through a set routine that simply loops around as long as there is power. This I hope at some point I hope to be able to stop & start in the same way as the recoil is activated from the Radio Hand Control.
As a bit of an experiment... as if the whole thing isn't one big one... I used a Submarine Depth Leveller on the Gun Barrel elevation servo to keep it from getting stuck in the mud as it goes down a ditch. Although a bit twitchy, it works, which is pretty cool for something I thought up and just gave it a go.
I have shown a Radio Receiver in the Wiring Diagram as it is something often asked on the Forum and is another option to an all singing and dancing Elmod Board. Also it is a setup that could be used in Warship turrets or all sorts of projects beyond just Tanks.
The Scripting side of things I did my best with, luckily the Pololu Engineers came to my aid. I got it to as near as I could, I kinda new what it would take, but my coding is just not up to it.
Hope posting this here helps someone like myself when I first started on this project... remember to post anything you learn and your own projects... pass it on!
The STL files for the 3D printed boxes/enclosures can be found here on Thingiverse... http://www.thingiverse.com/HelentheCAD/designs
The Forum post where the scripting was worked out is here... https://forum.pololu.com/t/input-and-subroutines-issues/8442/1
This is the final script I went with... sorry if it's messy.
# Sponson Movement LH
3968 5 servo 6062 4 servo 4850 2 servo 4594 1 servo # set servos to safe start position
numbers: # label to jump to when depth of stack equals 0
4594 4594 4594 4594 5526 5526 4701 4701 4701 4701 5709 5709 5709 6240 6240 6240 5067 5067 5067 5067 5067 4594 4594 4594 4594
traversing # move gun
DEPTH 0 EQUALS # get depth of stack and compare it to 0
GOTO numbers # add list of numbers to stack if depth equals 0
8000 5 servo 4680 4 servo # gun flashes then recoils
3968 5 servo 6062 4 servo return # flash relay reset then gun moves back out into position
SUB traversing # gun movement routine set by stack values
dup 1 servo
1000 # 1 second timing
# check input on channel 0
BEGIN dup WHILE
0 get_position 100 greater_than
recoil # fire gun if > 100
1 delay # delay 1ms
1 minus # subtract 1 from count (1000ms)