Hello people (happy drunkdays with the family), im glad to announce my final version (no beta) of my Arduino GPS navigation, with a lot of improvements and now is commented in English :o.
In this pic, you can se the accuracy, have an error of 2 meters (simulation):
http://jordii07.googlepages.com/NEWgps.jpg
My real destination was "Casa", and i passed over it, almost perfect. Enough for my arduplane.
The second surprise is that i developed a ground station with labview, you can use any serial modem you want, pic:
http://jordii07.googlepages.com/ground.jpg
know issues:
-Not work if your try to navigate from latitude north to latitude south or vise versa, the same with longitude, but, if you live in the USA or Mexico, you going to have no problems, (poor Ecuador's and Colombians). You can fix it easily, but you need some extra code (useless for me).
-The max range of the distance is 65535 meters (6.5 KM) , unless you change the unsigned integers to a long integers. (i dont have the balls to fly that distance with my RC), the accuracy is very nice.
-Error of 2 meters + GPS device error, between 5 to 10 meter of accuracy (better you use a ublox).
- Some bug in the ground station software, is you dont stop the ports, when you try to close the program it will crash, no big deal, but better you know. Letter ill fix it >:(.
-The altitude from GPS no work any more,i removed it, because have an error of 20 meters (Crash for sure). But right now i received a pressure sensor (free sample) from freescale (MPXA6115A), with a precision of 8 cm (almost 3 inches). Using an ADC of 16 bit resolution with i2C interface (MAX1169).
Improvements:
-Code less complex
-More accuracy resolution (heading degrees).
-Arduino Forward the NMEA sentences, and came with a new one, YEAH the $JORDI (in honor of my grandpa :P) sentences, look like this:
$GPRMC,044756,A,3414.4200,N,11826.9260,W,019.0,105.0,301207,000.0,W7C
$JORDI,240,187,19,34240332,-118448768,105,888,-1738,3,150 <------No check sum hehe ;D
$GPVTG,105.0,T,105.0,M,019.0,N,035.2,K42
$GPZDA,044756,30,12,2007,00*65
$GPGGA,044756,3414.4200,N,11826.9260,W,2,08,2.0,0,M,50.0,M,,43
$GPGSA,A,3,01,02,03,,05,,07,,09,,11,12,2.0,2.0,2.038
were:
$JORDI,Course to Destination, Distance, Speed, Latitude,Longitud, Real Course,Dif Lat, Dif Long, Quadrant, Correction
You can change it if you one, but is used by the ground station, to read the data. Then the ground station forward again the NMEA sentence to another port, to use it for example in Google Earth, etc and see your position in real time. Google Earth ignores the $JORDI sentence.
You can download the complete sketch and the labview source code from here:
http://jordii07.googlepages.com/GPSarduinov101.rar
And please, pleaseee!!!!!! :'(, try to read and understand this documents:
http://jordii07.googlepages.com/Waypoint-Math.pdf
The navigation part is based in this document, exactly... :
and this;
Arduino Playground - GPS esperabas
Good luck, i know... i use to make lot of mistakes, but what you expect from a 21 years old, trying to write in another language???..
Anyway, i just do it to pay back for all the arduino community made for me, thanks... :-*
Made by a Mexican Tijuanero...