Making an autonomous boat using a Raspberry Pi (WiP)
The wave of enthusiasm for the Raspberry Pi has driven many people to wonder at the possibilities, and marvel at it’s simplicity. The credit card sized SBC is perfect for just about anything. Maybe even for crossing the Atlantic Ocean.
FishPi is a project with the goal of doing just that and crossing the Atlantic, using the Raspberry Pi to pilot the craft. The first step in this project is the Proof-Of-Concept Vehicle (POCV).
The POCV will test the basic principles of autonomous control with a Raspberry Pi, and I’m going to show you how to make your own.
Step 1: Parts
The core components used in the FishPi Proof-Of-Concept Vehicle are;
- Model B Raspberry Pi.
- 8gb SD Card.
- Models By Design Fibre Glass Hull.
- Models By Design 40mm Kort Nozzle.
- Raspy Juice.
- Flytron Navigatron V2 i2c GPS.
- CMPS10 – Tilt Compensated Compass Module.
- Adafruit 16-Channel 12-bit PWM/Servo Driver – i²c interface – PCA9685.
- Mtronics MicroViper Marine10 Electronic Speed Controller (ESC) .
- MFA 919D 540 Motor With Attached Single Ratio Metal Gearbox 2.5:1.
- Raboesch Brass 4 Bladed Kort Propeller.
- Raboesch Waterproof Propshaft.
- Kinobo 5 Megapixel USB Webcam.
- Six 5000mAH 1.2 Volt NiMH SubC cells.
- Flytron 3.3v & 5v Tiny Regulators.
- Digital Temperature Sensor Breakout – TMP102.
Additional Parts Used (Update One 18/3/13);
- TP-Link TL-WN722N High-Gain Wi-Fi USB Dongle.
- RockBLOCK Satellite Communicator.
- SMA Female to SMA Male Panel Mount Pigtail Extension Cable.
- 2x 45mm M3 Spacers.
Step 2: The Incredible Hull
The hull I am using for the POCV is based on the Cygnus Marine DS25 Fishing Boat. It is made by a company called Models By Design, they specialise in G.R.P. model boats. The hull costs a little over £20, perfect for low budgets.
To begin with the basic components going into the hull are the Motor, Kort Nozzle, Propshaft, Propeller, and servo. The DS25 is not designed to run a Kort nozzle, but as this system works well at low RPM and high torque, I decided to trial the Kort system with a view to using it in our larger vessels.
The first step is to find the centre line of the hull. To do this is I simply held a ruler against one side of the keel and carefully drew a line along the underside of the model. Repeating this on the opposite edge put two lines on the underside. Next it was just a case of measuring the distance between the two lines and marking up the centre.
To locate holes for the Kort nozzle I had to approximate where the nozzle would be best situated, I did this by viewing the hull side on and taking measurements to get the correct distances.
Inside the hull is a wooden support. This support forms the upper brace for the Kort nozzle, and provides the lower brace for the rudder servo. The support is held in with epoxy resin.
Once the Kort was fitted I used a similar method to locate a hole for the propshaft. The hole for the propshaft was slightly elongated to allow for minor adjustment in height. As long as the elongation was in the vertical plane there should be no deviation off centre in the horizontal. Before finally cementing the propshaft with epoxy take note to align the propshaft with enough room to give the propeller clearance inside the Kort nozzle, even when the nozzle is being steered.
I found that by following the mantra of measure three times, cut once, I reached an accuracy of about 0.5 of a mm when positioning the propeller.
Step 3: Shafted
The MFA 919D 540 Motor is fitted with a single ratio gearbox. It increases the motor’s torque, but lowers the RPM. It should have no problems driving the 40mm Kort propeller.
The motor needs a strong base to mount onto inside the hull. The underside of the mount is angled to match the slope of the hull. A centre pane slots into the keel giving additional strength.
At the rear the upper servo bracket is added. A universal joint connects the motor output to the propshaft. Some time must be spent correctly aligning the two before permanently fixing the propshaft and motor mount in place.
Step 4: Elastictrickery
Electricity & electronics do not fair well in water. I thought sometime about how to enclose the electronics in a watertight compartment. I looked at several options and in the end I settled on a plastic food storage box.
Why? Well it was cheap, about £3, there are no screws to secure the lid, and they are watertight. The particular box I chose had enough space for the Raspberry Pi, and the four clips which secured the lid to the base were on the lid itself. By building the electronics onto the lid and effectively turning the tub upside down I could un-clip the tub proper so that when it is removed all the electronics are easily accessible.
I cut & shaped a plywood board which would rest inside the lid.The whole assembly is screwed to two cross-members fixed inside the POCV’s hull. The two side clips were removed from the lid so the assembly can sit lower in the hull. Onto the wood panel I glued a shaped foam pad, from a Yoga mat, which the Raspberry Pi sits on, and fitted three brackets to hold the Raspberry Pi in position. With the tub, now the lid, clipped in place the enclosure is completely watertight. For now anyway!
Step 5: Wired
Originally the plan was to connect the POCV to a Base-Station via a wired link called we termed as the umbilical. The link would provide connectivity for USB, HDMI, & CAT5e. In total there were 32 separate wires across the USB, HDMI, and Network cables. The design utilised a 32 pin aviation style connector and a 2 metre cable.
Wires would connect to the Raspberry Pi, pass through the lid of the watertight compartment and into the 32-pin connector. This would then be replicated at the other end where the cable would plug into an LCD, USB hub, and a offer a network connection.
Recently this system has been removed as it caused too many problems. The umbilical is being replaced with a Wifi link. Details of this conversion are shown later on.
Step 6: Staying Power
Six 1.2v 5000mAh SubC NiMh batteries. Quite a mouthful, they all need securely fitting into the POCV’s hull, along with a switch control box.
The box switches the battery connections between a DC socket, and supplying power to the POCV. By plugging a NiMh charger into the DC socket, and with the switch it in the correct position we can charge the six cells without needing to remove them from inside the hull.
To help balance the board I put two at the rear, below the tub, and four at the front. They are held in with tie-wraps. I have used several connectors so that the batteries can be removed if necessary.
For more detail: Making an autonomous boat using a Raspberry Pi (WiP)