Let's Make Robots!

Handsfree GPS director

Hands free! navigation from a known GPS point given a distance and bearing
Geocache.pde11.82 KB

I am looking at building a relativly 'hands free' GPS navigator for bush walking as a backup for magnetic compass work. Keeping track of distance and bearing in rough terrain can be very hard.

The concept is to take a known GPS position - "Here" and enter by thumbwheels/voice recognition/other method a distance and bearing and use the GPS as a backup for the magnetic compass. Basically if you are roughly on track then it is silent but should give an indication of when you have arrived. If going off course then a simple "bear left" / "bear right" audio prompt with an 'on course' finish. A count down of distance every 100m could also be provided. As hiking in the Australian bush requires carrying sufficient water, food and first aid gear as a minimum then I would like this to be small and light, hence the audio feed back and possibly data entry.

 While I mainly use picaxe I realise this is NOT the right micro for this job. I have an Arduino Uno but am not comfortable in C. Another option may be the parallax Propellor I would like any feedback on microprocessor and GPS modules (406?) Text to speech looks like the TTS256 and speakjet but wav files on a SD card could be an option also.

UPDATE 15 Feb 2012 I have now completed the first proof of concept prototype. Simply put, on power up it waits until the GPS has lock. Prompts for user entry for the starting point (where they are currently), the distance (Km) and bearing to walk. The position is checked every 5 seconds (probably less often on the final), speeding up as you approach the target area. Once within 5m you have arrived. This process is then repeated until the user power offs. Prototype works well but has limitations. Main one is the size of the unit. I am now considering a graphical LCD as they are more compact than the 20x2 LCD I am using at the moment. This would also allow a better style of display when being used hand help. Another option I am also considering is instead of voice just three LED's, Red for Left, Green for Right and another colour for arrived. At the moment the code takes about half of the Arduino Uno memory space up. I am now awiating a SD card holder and some other goodies. I will probably have to switch to the Mega at this point to get sufficient digital pins

UPDATE 20 Feb 2012  I realised this weekend I had used the wrong formulae.  The original formulae was for great circle navigation (shortest distance).  However I neede rhumb line navigation (constant bearing), which is different.  I have just about finished changing the formulea but also realise I am getting occaisional errors in the course (direction) error.  This is partially due I feel  to my short testing distances and the accuracy of GPS (+- 5m, WAAS is not available in Australia).  Further testing will be done.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I would mention a PIC and maybe a PICKit2 to program it. I would write the code in JALv2. I would stay away from speech input for now to keep costs down and store audio files in the chip, if I had the space, or, on an SD card if I didn't. A small memory chip with i2c might also be a possibility. Input could be as simple as buttons or a rotary switch.

But, that is just me.

I would mention that the Parallax Propeller has onboard video and sound outputs including text to speach objects that are sofware that you can freely download and then just feed it words to say.

Thanks Birdmun,

All feed back is appreciated.  I have shied away from buttons as it would be all to easy to knock them with the device in a pocket/backpack  Another issue could also be battery power.  I am often out for 10 hours or more, but then again I have plenty of lipo's from my model flying days so this shouldn't be too much of a hassle.

My mind isn't as agile as it used to be so picking up ANY new language is always a hassle (I'm in my 50's).  I like the idea of the memory chip  however for the sound clips. 


Still got lots more research to do  :)

Hi Grue,

Your reply came in while I was typing Birdmun's reply.  I didn't know that about the propeller - I will definately have to do more research into that.  I do know that it is Chris's favorite processor though :)

So, it should be put in a light colored enclosure. If you put a hinged front cover on it, you could cover a keypad or a rotary dial. I agree that the prop is a very nice chip. I believe it is overkill for this application. Your arduino is a fine controller for what you want. If battery power is a concern, with some learning on your part you might be able to put the uC (microcontroller) to sleep for even a few moments at a time to save power. SD cards can be read from an SPI bus. You can even make an impromptu holder from a set of header pins with the proper bend in them, otherwise you would need a honest to goodness holder. The upside to using SD vs a memory chip is, you can go to a decent store and purchase SD cards; when was the last time you could go buy a small i2c memory chip? :)

Hi Birdmun - Heating shouldn't be a problem (I hope).

Gareth - That link does not work for me though I have looked at http://letsmakerobots.com/node/5972 I must admit that adding a screen and geocaching was also going through my mind for a later adaptation.  However for my initial trials I would really like to be audio feed back only.  Another option would be using a method of beeps as used in the early directed flight methods in the second world war, using a different pattern of beeps to indicate wether left, right or on the correct course. The downside of audio is that the after 10 hours or so you could really get fed up of that 'beeping in the ear' (sorry Monty Python!)

It would seem that the 406 is a very popular GPS module so will probably order one soon to play with, although there are now Sirf 4 modules out now, albeit a little more expensive. 

sparkfun has a few tutorials on GPS receivers.


Thanks Bird - I have already read those

Well I have decided on the EM-406 GPS module and the Arduino MEGA from yourDuino.  This will give me plenty of serial options.  I will start using a serial LCD for debugging and finally add either voice or coded beeps for the audio feed back section.

Received my EM406A from Sparkfun yesterday  :)  I went to Gareths GPS Tutorial part 1 but couldn't get a ;ock until I took the GPS outside.  Once outside I started receiving the NMEA data stream quite quickly.  As soon as I returned indoors I lost the signal.  Still awaiting on the MEGA board from YourDuino but blaming Chinese New Year for the delay.

Having said that after looking at the Software Serial options I might not need it.  Time to get my UNO out and start coding over the next few days.