Hello, I am Jim, 72 years old licensed ham, 55 years in electronics as a tech, retired, and recently discovered the Arduino world. I live in Manitoba Canada some of the best fishing country in the world. I have an 18 foot 188 hp boat with a 7.5 hp trolling motor. :whistle:
Where I want to fish is a manmade lake in a valley where the river used to run. I have depth and contour charts and I want to use arduino to slave my Humminbird GPS / Fathometer /Fish Finder to an auto steer system and eventually to an autopilot. Not content with waypoints of lat. long. I would like to take the depth readings to follow the old river channel.
Thus far I have an Arduino Maga 2560, a Uno, an ardupilot, a flux gate magnetometer, breadboards, leds, lcds, headers, relay boards to work with and I have a 12 volt linear actuator to actually steer the outboard. :ugeek:
Now the problem, many years ago ( read that as circa 1974) my first computer was a TI-99/4A and did a lot of programming in basic. I was was also quite comfortable with DOS. Now, at my age I am having problems trying to learn C.
So far I have blinking lights and traffic signals etc runing on Uno. Where I am having a problem is figuring out how to interface several sketches in the IDE and have them compile without trashing each other.
There is a world of info out there and Ii have been combing it for gems. Just one of my hangups is how to enter or change waypoints - without carrying a laptop-
Thanks, I love sparkfun, like a beacon to a new harbour in a storm.
Assuming I understand your question correctly, it’s more about the Arduino environment than GPS per se. The key to combining multiple code modules in C-like environments is the #include directive, as in:
#include <SoftwareSerial.h>
Here’s a link to [writing libraries for Arduino, which covers how to write libraries to include in your sketch. You might not be ready to write your own libraries yet, but that should give you an idea about how #include works.
At the smartphone end, you will need to be running Arduino (Apple prevents use of Serial Port Profile Bluetooth devices - who knows why…) and an app like this one: https://play.google.com/store/apps/deta … ller&hl=en
Feel free to ask more questions - I was in your place at the beginning of the year and have learned so much about GPS/Arduino/Bluetooth/Compass from my Dad’s app. I am sure I could code it myself
I have thought about doing the exact same thing as you are and might be able to help you out as I have programmed extensively. You can contact ne directly at wade at dajanibrown.com
I have a similar issue with GPS way-points, but I’m using a ground vehicle to navigate around a track. I figured as far as way- points, I would simply use my other commerical GPS unit, then record the NMEA sentences (LAT, LONG, and Bearings) no more than 10 (of the 3 items) as I walk a straight line. Next, I’d plug that data into an intger array for the C-lanuage program. Now, to calculate distance, I’d use the Great Circle Earth formula. Finally, from a starting point to way-point one, I’d use the bearing in degrees to point to the right direction. The distance would be calculate via my encoders wheels. So, I’m basically parsing the data myself. Well, that’s what I believe people are doing to get there robots working with GPS at the recent 2015 AVC.
Here where I need help. I noticed the NMEA sentence allow for way-points( $GPWPL), but I’m using adafruit’s ultimate GPS. I’m not sure how you can transmit a message to the GPS module to accept/add a way-point in the same manner as my commerical unit accepts/adds a way-point. That’s where I believe an arduino would be needed to have an array of way-points to go from start to a way-point after another way-point. Please correct me if I’m wrong on this.
Also, why do use a gyro with a GPS for a ground-based robot? So, wouldn’t a 2 axis accelometer work just as well or is there something I’m missing here?