RoboSub
Little is known about the earth’s oceans due to extreme depths, intense water pressure, and limited communication methods. Because of this, remote cameras are becoming the preferred method of discovery in tough to reach places on the ocean floor. Small remote controlled submarines are ideal for placing such cameras and are being developed for widespread use.
This project utilizes RF communication, water-tight designs, Arduino programs, and so much more to create a beneficial tool for the future of ocean exploration! To begin, view the following image to visualize the project and start thinking of creative touches that can make this project your own!
How it works
Submarines require some method of propulsion and buoyancy control. To do this simply, the submarines will be created as slightly negatively buoyant, which means that when the sub is placed in the water most of it will be submerged when at equilibrium. Two motors will be attached to the submarine that when prompted, will either push the submarine down into the water, or will push it up toward the surface. Three additional motors will be mounted on the back of the submarine to control the forward/backward propulsion as well as the right to left turning.
The submarines will be controlled by custom made remote controls. However, as can be learned in the next section, RF (radio frequency) devices do not work well underwater. Therefore, a small buoy will be tethered to the submarine and will remain on the surface while the sub is free to dive in the water below. The remote control will send the signal to the buoy which will then receive it and relay the message to the sub below.
To place the remote camera, the submarine will need to have a mounting and releasing mechanism to carry the camera to the required observation area, before releasing it to begin recording.
RF Communication
To begin this project, one must understand how RF communication works underwater. Research has shown that radio frequency communication methods do not work well underwater due to the wavelength of radio frequency devices. The following video shows a test which proves this to be true.
As can be observed, the use of radio frequency is limited underwater. To control the submarines underwater will therefore require a different type of communication or an alternative way of using it. To simplify the project, the submarines use RF communication via a floating buoy that is tethered to the submarine. The buoy contains the RF receiver and relays the message that is received from the controller down to the submarine.
Controller
Remote controllers are designed for mechanical and ergonomic function. Although the visual looks of the remote are completely dependent on the designer, the following is a list of important things to consider when designing a remote control:
- Make a list of all necessary components and ensure there is enough space
- Consider how electrical components connect and the space needed
- Design with the user in mind; create a remote that it is a comfortable size and shape for handling
- Create easy access to internal parts for troubleshooting and maintenance
- Find materials that are easily accessible and design around them
Required Components
The following is a list of necessary components for the building of the remote controllers:
- 1 Arduino Uno/Nano
- 1 Solder Board
- 1 LCD Screen
- 2 Arduino Joysticks
- 1 Rechargeable Nine Volt Battery
- 1 Nine Volt Battery Holder with Barrel Connector and Switch
- 1 RF 433 Transmitter
CAD Design
To begin, use a CAD software to design a representation of the remote you are going to build. This will help ensure that all required parts will fit within the design space.
The following zip file download includes an accurately scaled STL file for the arduino uno, joystick, LCD screen, and 9V battery holder. When importing, be sure to save each as a .prt file before adding to an assembly.
Electrical Circuits
To make connections between electrical components, 18-24 gauge wire and a soldering iron are needed. All connections should be checked for connectivity using a multimeter to prevent issues later in the project. The following electrical schematics show the solder connections that are needed dependent on which Arduino is used.
Arduino Uno Schematic
Arduino Nano Schematic
Programming
Most of the electrical components in this project are commonly used with Arduinos. Therefore, the Arduino Forum page and other websites have tutorials on how to work individual components with an Arduino. For more detailed explanations and troubleshooting purposes, the Arduino Reference Page is also helpful.
The following is the code used on the club’s prototype remote that can be used and referenced as needed. Use caution in direct copying, as much of the setup portion of the code is dependent on how the electrical components are connected.
Example Code
Joystick: https://create.arduino.cc/editor/benjjensen/71abe939-14bc-4ae5-bec9-eabb5e270323/preview
LCD: https://create.arduino.cc/editor/benjjensen/06666263-23eb-4ea6-80fa-43a3959d3ba6/preview
RF Sender: https://create.arduino.cc/editor/canlas13/8accbe03-81d3-4f0e-9e70-5f5a5bce75ab/preview
RF Receiver: https://create.arduino.cc/editor/canlas13/c0db52a6-42cb-47d2-b01a-1080657b7828/preview
Radio Head Library: https://www.airspayce.com/mikem/arduino/RadioHead/classRH
Construction
The physical construction of the remote control will vary depending on the design choice. The remote may be an encasing that is 3D printed or it could two sheets of plastic (or another material) that are fastened together, such as the club prototype. The following video is for reference only and is not necessary to follow.
Receiver Buoy
To create a simple floating buoy requires only a small PVC tube with two end caps, an RF 433 Receiver, and a 20 foot CAT5e waterproof cable for tethering the submarine. PVC waterproofing solvent is used to keep the buoy watertight. The following code can be used to set up the receiver buoy.
Submarine
The main design of the submarine is dependent on each team’s design style. However, one of the most important things to consider when building and designing the submarine body, is methods of waterproofing. Therefore, this section will cover various ways to waterproof different areas of the submarine.
Motors
The following materials are used to waterproof the 5 motors that will be on the submarine:
- Film Canister with Lid
- Toilet Wax
- Electrical Tape
The following video created by Utah ROV shows the tools and supplies that will be needed to complete this step, as well as how to correctly waterproof each motor.
Ensure that all electrical wires are cut long enough to run through the body of the submarine to connect to the electronics before put into the body. Once the motor/canister assemblies are complete, the wires should be run through the main body of the sub and the canisters should then be epoxied in place, with a layer of all purpose silicone used on top for waterproofing purposes.
To add propellers to the motor shafts, refer to the following video that was created by Utah Rov.
Electrical Circuits
The following electrical circuit is for the receiving side (inside the submarine). This schematic should be modified to match each team’s independent wiring diagram.
The red blocked out Arduino pins (10 & 12) in the diagram above cannot be used for any use because it is used to run the RF library. Additionally, pin 11 must connect to the RF receiver unit because the RF library uses pins 10-12 to run the background code.
Body & Tower Connections
The function of the tower is to provide lateral stability and to provide an entry port for the buoy wire. The tower can be easily made using 3D printing, but requires additional work to make it waterproof. Liquid rubber sprays such as ‘Flex Seal’ are an easy way to waterproof these structures.
A hole for the CAT5e cable from the buoy should be drilled in both the submarine body and tower, and then the buoy cable should be run through both. Epoxy can then be used to cement the cable and tower in place. Silicone all purpose sealant can then be used to waterproof the connection points between the tower and body, as well as between the buoy cable and tower.
Buoyancy Motors
The same process should be used to waterproof the two buoyancy motors as were used on the main thruster and side motors. Refer to the video above by Utah Rov for instructions on waterproofing.
To connect the motors, two small holes should be drilled in the side of the body where the motors are desired. A zip tie can then be run through the holes and around the motors to hold them to the body. A layer of epoxy and silicone can be used to ensure the motors do not slide out of the zip tie constraint. See the RoboSub Rendering video below for additional insights into how the these motors function.
However, for this setup to work, it should be noted that the sub should be nearly neutrally buoyant when all of the entire assembly is complete. If the sub is too buoyant the motors will not be able to push the sub down in the water. Weights should be added as needed to assist in decreasing the buoyancy.
Final Touches
Once the motors and tower are attached correctly, the final step is to ensure that all connection points between different pieces were waterproofed correctly in the build process. To waterproof the front hatch connection (threaded PVC), teflon tape is wrapped a few layers thick on the threaded part. When the hatch is threaded on this tape seals the gaps in the threads to prevent water from entering.
It is good practice to test the sub in a controlled environment where it can be easily extracted and inspected to ensure that all waterproofing surfaces worked as desired. Once this is complete, the last thing to do is to find a body of water and start exploring!