This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com).
My passion for sailing is what inspired me to make an RC sailboat for my project. I wanted control the main aspects of sailing: raising the sails, trimming the sails and steering, in order to make it as authentic as possible but to also make it easy to sail. I based the design around a ketch style sailboat but modified it to incorporate the Makecourse required box.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Components
Below is a list of the material used to construct the RC sailboat, most of the items can be sourced on Amazon or a hobby website like Hobby King.
- Qty. 1 - Arduino Uno
- Qty. 1 - Arduino Nano
- Qty. 1 set - RF Transceivers.
- Qty. 4 - Continuous rotation servos
- Qty. 1 - 180 Degree metal gear servo
- Qty. 2 - XY Dual axis joystick
- Qty. 1 - LiFePo4 Battery
- Qty. 1 - AA Battery pack (controller power)
- Qty. 2 - PCB Prototype boards (on board servo power)
- Qty.1 - 9v Battery & plug (on board arduino power)
- Qty. 1 - 4'x4' 5mm sanded plywood
- Qty. 1 pack - Maple veneer (would have used ash but local wood shop didn't have it)
- Qty. 1 - 1/2"x3' wood dowel
- Qty. 1 - 3/8"x3' wood dowel
- Qty. 1 bottle - Titebond III Ultimate wood glue
- Qty. 1 bottle - Superglue
- Soldering Iron
- Wire cutter
- Needle Nose Pliers
- Painters Tape
- Fishing Line or Equivalent
Step 2: Design
The design was based off of a ketch style sailboat which was scaled and modified to incorporate the Makecouse required box. I took technical drawings that were found online and modeled a skin on spar design with a 2" spar spacing. I chose a skin on spar design because it would be the lightest, provide mounting locations for servos and the easiest to manufacture with my resources.
I sourced continuous rotation servos for the sail halyards (lines to raise the sail) and sail trim which allowed me to have an infinite range of sail heights and trim while also providing enough torque to accomplish the tasks. The rudder servo is a 180 degree metal gear servo because it has exceptional torque and won't strip out like the plastic gear servos. I attached a 3D printed spool to each of the continuous rotation servos so I could wrap line around them to control the halyards and sail trim.
I originally planned to attach a lead keel for counter balance put as of right now it is fairly heavy and it may add to much weight. One design flaw I found after assembling the sailboat was that the line used to control the sail trim will jump off the servo spool unless there is constant tension on the line. I would suggest redesigning it so there is a direct or mechanical linkage controlling the sail trim.
All of the Solidworks 3D files are also attached.
Step 3: Program
I used the Arduino IDE software to write both the transmitter program and receiver program. The majority of the program was focused around the nRF24L0I RF transceivers which I found most of the necessary code on the numerous helpful forums.
For the transmitter code I assigned the joystick inputs to array which was then sent as one packet via the transceiver. For the receiver code I took the array of joystick inputs and assigned one axis of one joystick to the rudder servo and one axis of the other joystick to the sail trim servos. The push buttons of each joystick were used to control the sail halyards.
A few issues I found while programming was that the center of the continuous rotation servos was not exactly 90 degrees. The centers were off by approximately one degree so I had to adjust and map accordingly.
The two Arduino program sketches are attached.
Step 4: Fabrication (Hull)
This was my first time building a sailboat of this complexity so it didn't turn out perfect but I learned a lot along the way.
After I carefully removed the laser cut pieces from the work piece I sanded down any rough edges and began by gluing together the appropriate sets of spars making sure to clamp the pieces per the glue directions. After I had spar sets glued together I clamped them to a make shift jig where I could file the notches to accept the spine. Once the glue on the spine had set I began sanding the spine and the spars to achieve a smooth curve along the entire boat so that the skin would lay properly without any nasty bends.
Now that the skeleton of the sailboat was finished I focused on skinning it. I took a ~4" strip of veneer and traced the profile of the boat on it. I then cut this profile out, over sizing it quite a bit at first and then slowly cutting away material until I achieved the desired fit. I continued this process working my way from the keel to the deck.
Once I had my skin pieces trimmed I began gluing them to the skeleton by clamping and taping them where I could. I used two bags of dirt, rice would have been better, to apply pressure so that the skin stayed contoured to the spars while the glue dried. Again, I started at the keel and worked my way up to the deck. When I got to the last piece where the deck was I had to prop up the sailboat so that the veneer would clear the jig.
A few things I learned that would be helpful when building, use more and smaller strips of veneer to skin the boat, they're easier to work with. I tried only using two pieces of veneer to cover each side but they did not want to contour to the spars, so I ended up using three pieces. A big help when trying to glue the skin pieces to the spars is to clamp them to the skeleton first; once you have it where you want it spray the skin piece with glass cleaner which will soften the wood. When it dries after a few minutes remove the clamps and glue the now formed piece to the skeleton reducing the panic and effort required when the glue is tacking up. Be careful not to wait too long though because the wood will eventually flatten to its original state if left sitting.
Step 5: Fabrication (Electronics)
I started out by prototyping both the transmitter and receiver circuits on a breadboard. I did this to make changes and diagnosing easier. Once I had both circuits completely programmed and working properly I moved on to making a shield for each circuit.
By simplifying the circuit it freed up more room and made the system look much cleaner. I started by laying out the locations of my components making sure to eliminate wiring jumping as much as possible. Once I had the components routed on the prototype PCB board I began soldering the appropriate headers for the pins I would be using on the Arduino. When all of the headers were soldered I began connecting the Arduino input and output pins to the correct component and power pins. Since this was a prototyping PCB board I used solid wire to bridge the gaps. As I went along I checked continuity between adjacent pins to make sure nothing was going to short. After I finished a board I would power the board with just the Arduino to double check that I was receiving the proper voltages. Lastly, I completely assembled both circuits and made sure everything was working properly.
Step 6: Assembly
For final assembly I started with assembling both masts minus the sails, since the the bolts to hold the mast to the spars were the lowest thing in the sailboat. After that I bolted the rudder and servos to the spars starting from the outside working my way in, so the rudder and main sail halyard followed by the mizzen sail trim servo. I then bolted the two servos inside the required Makecourse box. I then attached the required box to the spars using screws.
From here I plugged in all of the components to the shield and Arduino to make sure everything was functional. The rudder was attached to the servo using two pieces of solid wire, the sails were then attached to the mast and boom using paper clips and fishing line. I used fishing line routed around the servo, up through the paper clips and over the mast topper. Note that looped the fishing line around the sail halyard spools and back up to where I connected the line to the head of the sail. This allowed me to lower the sails using the same halyard servos.
That was for the sailboat assembly, for the controller, I zip tied the AA battery pack to the back of the controller plate. The PCB board and joysticks were just screwed to the controller plate. It is a very crude but functional controller.
Some of the difficulties I ran into include: PCB board to big for Arduino location, tight space to run the fishing line and the sail trim system was poorly designed. For the PCB shield in the sailboat, the Arduino was mounted in the corner of the required box which didn't leave enough room for the shield, so I cut off the corner of the PCB shield. For the tight spaces needle nose pliers are very useful but I would revise the design to make it bigger so assembly would be easier. As for the sail trim system, what I found was that when using fishing line you had to keep constant tension on the line otherwise it would unravel. Keeping constant tension is almost impossible while sailing because of wind strength and direction changes. I would revise the system to use a mechanical connection whether it be a direct connection to the boom or a linkage system.
Overall, the final assembly was much easier than I thought considering the tight spaces.
Step 7: Go Sailing!
Go enjoy your new RC sailboat, preferably on a small lake when the winds are light otherwise you'll be fishing it off the bottom!