Project background
Element 14 has just shaken me out of winter hibernation by awarding me an Ultimate Pi bundle to help pursue my aim of using the Raspberry Pi as a low-cost 'nerve centre' from which I can automatically control my powerboat.
Complete automatic control would be a very tall order indeed, so I'll have to approach it in stages. One obvious and apparently 'doable' first task is to link the Pi to a GPS receiver and servo motors controlling the helm position so that a course can be set and maintained automatically. This is my first stage project objective.
I have two major incentives for making this my first priority:
(1) There is almost nothing more miserable than standing at the helm for hours on end in the cold and rain of a British summer. It can be a very pleasant occupation (see any glossy ever produced on the subject) but my experience suggests that at least 50% of the helmsman's time will be spent exposed to our least clement weather.
(2) Of course, commercial suppliers are well aware of this and offer ready-made solutions. These, however, are not 'mass market' products so prices are high and functionality is constrained by a number of commercial considerations which generally have very little to do with my requirements, the characteristics of my boat and the very limited depth of my pocket.
So, for the cost of a little effort in software writing, some minimal 'boning-up' on modern electronics and a little application of workshop practice (extending no further that wielding a soldering iron and spanner), it looked like the Pi was the answer to this maiden's prayer - and Project AutoPiLot was born!
Previous work
I acquired my Pi about a year ago so have had some time to get acquainted. Attaching a GPS chip directly (via the UART) and providing software to parse and interpret the GPS input proved (fairly) simple. Supplying a GUI which allowed for easy (and reasonably weatherproof) onboard interaction with this system was similarly straightforward and limited sea trials were carried out towards the end of the last sailing season.
A number of problems came to light (weatherproofing, VDU visibility in high ambient light conditions) but the main problem anticipated in taking development forward was the apparent need to change from RISC OS and BBC Basic, in which my software had been written, to Raspbian OS and C/Python which were the 'recommended options' used to provide software support for most of the hardware packages I was going to need.
These I knew nothing about. I have resisted 'object orientated' programming for more years than I care to mention and what I had seen of Raspbian and Python in the course of setting up my Pi had not been reassuring ('bloatware' seemed too kind a description: this project will eventually require me to store digital charts on the Pi SD card, so space could be at a premium).
Then the Ultimate Pi bundle arrived. Well, beggars can't be choosers, so it's roll up your sleeves time, Jim lad!
Which brings us up to date....
Current tasks
First, I must get to grips with the Ultimate Pi bundle. It offers several possibilities for steering servo motor control and system state display. Which will be best? Turns out, that is not an easy question to answer: I'm still struggling with software downloads and steep learning curves. And, depending on how that works out, I have a choice of helm control mechanisms: mechanical or hydraulic. So the detailed design of my system has still to be finalised - but I'm looking forward to a bit of 'right first time' top-down design. That'll be nice!
I'll keep you posted.
Jim Gibb