Building the Actuator for So Close

So Close needs a way to set its sails. Not a new problem. Model boats have been using pulley servos for years, but they are a bit limited. I want a servo with more travel, more strength and not so expensive. 







I had previously experimented with modifying a standard RC servo to make it into a pulley servo. By replacing the potentiometer which senses the position with a 10 turn potentiometer it made the servo turn about 7 times over the full travel, but I found spooling string up was unreliable. Very practical on a real sailboat with sailors that can solve the problem of a snagged line, but on an RC boat a minor tangle can be big trouble.


I needed something with fewer points of failure. Abandoning the winch approach, I designed a linear actuator based on a gearhead motor and a 1m length of M6 threaded rod. A square nut runs on the threaded rod inside a square tube. As the rod rotates the nut is moved back and forth in the square tube. The screw thread of the rod has a 1mm pitch so each turn of the rod moves the nut 1mm. A pair of IR light gates next to the motor keep count of the turns of the rod. 






When the actuator is first switched on an Arduino Nano, which manages the actuator, runs the motor continuously until the nut gets all the way to the motor end, at the end of its travel it hits a limit switch at which point the Arduino knows the position count is zero. To get to any point in the 800mm travel it just needs to drive the motor and count the turns; anti clockwise will cause the count to increase as the rod turns and the light gates are triggered. Clockwise will decrement the count. And as each count is worth one turn and one turn is one 1mm, the turn count will be the number of millimetres the nut is down the rod. A simple calculation to manage in the Arduino progam.





From there its simple to use the pulseIn function on the Arduino to find the value of the controlling servo signal (between 1000 - 2000 microseconds) and then use the map function to compute what the target count should be. The main loop implements a basic Proportional controller that drives the motor to reach the target count, with a bit of hysterisis to stop it constantly hunting.


A length of 8mm diameter aluminium tube is glued to the nut and keeps the threaded rod covered so the lines attached to the nut don’t just wrap around the threaded rod as it turns. 


Comments

Popular posts from this blog

Waypoint Navigation and Sailing Algorithm

Volantex Compass Robotic Conversion

Making the Keel of So Close