Introduction: Automating Model Submarines
The video above gives most of the info on this automation. A model submarine involves a lot of working parts which need to work together in perfect balance. If not, literally all can be lost. This video describes how arduino has automated certain functions and left the rest to the 'captain.' This video is not able to discuss the workings of a model submarine, or even the build, but will describe the role of automation in the control of the boat, and it is terrific.
The video features the Nautilus SSN 571. Most of the automation involves the ballasting system so I will begin to describe this. It is a unique system.
These three systems can be controlled ‘manually’ by RC. I am using arduino but the first goal of the script was to take in all the channels from the receiver and then achieve the same degree of manual control. In total 6 channels now go into the arduino, plus a pressure gauge. The arduino reads these and powers a bank of 8 relays, and two servos.
The manual controls are:
· Main ballast pump in/out
· Piston in/out
· Trim tank fore/aft.
This degree of complexity is high so the arduino automates a number of functions. The goal of the automation is to make sailing more effective but not to take away the challenge of individual control. It is integrated automation. This can be seen in operation on the video. But the first thing to note is the bow hydroplane. When the boat is in surface running mode the hydros are closed. Although this is not about the mechanism but the automation but I will show you the mechanism for the hydros. What makes them extra difficult is that they are at an angle of 120 extended. (See above)
On arrival at the lake, the boat is put in the water, hydro’s closed and taken for a short sail then back to the bank. Then the hydros are opened, and the main ballast tank is manually filled. (Using the switch on the transmitter) Then the piston and trim tanks are used to get the boat to neutral buoyancy. This needs to be done every sail as water and weather conditions change the ballast requirements every time.
Then when the boat is submerged at a depth that is wanted, a snapshot of the pressure is taken. Then, if wanted, the boat can be put into auto control immediately and sailed away at that depth.
In auto control the arduino controls the bow hydros using a PID algorithm to maintain the boat at the recorded pressure, and should the boat sink or rise too much (3 cm) the piston will make take correcting action.
While running and if visible the auto control can be turned off and the boat ‘flown’ using the hydros. It can be taken down to another depth and the snapshot taken and then put into auto to maintain that depth.
When ready for surfacing, the auto is turned off and surface routine initiated from the transmitter. This causes the piston to extend making the boat lighter, and the trim tanks to pump toward the stern for a set amount of time. This brings the boat up, bow first. When the conning tower breaches the surface, the ‘Captain’ may then turn on the main pump. (I like to keep that control separate).
The planes can now be retracted for surface running. When ready to dive, the planes are extended, and the diving routine initiated. This causes the piston and the trim tanks to reverse what they previously did. When this has finished the main pump turns on for the 12 seconds necessary to fill the main tank. Then decks are awash and the boat will start to slide under which may be aided by the manual use of the hydroplanes. When it ducks under the auto switch can be turned on and the boat will seek the depth of the snapshot pressure.
The RC receiver aerial lies inside the boat lengthwise. It will read RC down to 3 meters in fresh water. The air intake is hidden inside the sail (conning tower), and the vertical mast that can be seen in the video is only there to tell me where the boat is. Without it in the opaque pool water I would lose the sub visually.
The parts I have added to the submarine to do all of this is an arduino nano, a MPXV7007 pressure gauge, and a bank of eight relays. Everything else was already there.
I have attached the arduino sketch, in all it’s primitiveness, and the circuit diagrams for the nano and the bank of relays.