I am working on a project for my final in a first year programming course at my high school. I would like to make an Arduino based data logging device that I can bring with my on the mountain biking trails around where I live to create a map. I have found a lot of great sources online but I do not have a small budget. I have an Arduino Uno and a breadboard. My first question is whether it is easy to interface between an Uno and my phone for data logging, or if it would just be easier to buy a microSD card shield? And I need help finding a GPS unit. I have no preference and size is not really a problem. I just need to know how to interface with the Uno. Also if you have any links to other sources I can use that would be greatly appreciated!
I've been looking at the same problem, and there is a lot of new stuff now that may still count as a DIY project, but cut out a lot of the leg-work.
On kickstarter there are a lot of new boards that can make it easy: Here is a ready to go GPS tracking band: https://www.kickstarter.com/projects/blipperbands/blipper-bands-safety-wherever-you-go?ref=nav_search
Spark-IO has a board that gives you 20,000 messages per month, so you could use it instead of a cellphone to send out the data. https://store.particle.io/?product=particle-electron
U-Blox makes gps higher-end consumer GPS units that are used in autonomous drones. There are also a lot of instructables that show how to do the GPS datalogging with while building a drone. These would be small enough and light enough to use while cycling.
first questions; is it easy? Very, do it all the time. But easy to me (30+ year programmer with some embedded experience) may not mean easy to you. Seek out a local make group or friend to help guide you if you are just starting out. I would look into a simple bluetooth adapter for the arduino, they are cheap, $5 in some places like eBay. Then find or write a phone app that log bluetooth.
second question; Pick a GPS unit from SparkFun or somewhere like that.
If it is a serial unit it may need need some sort of FTDI adapter, which can sometimes be just a cable (and it might not need it, depends). You really need to match the GPS with the appropriate way to hook it up and there are so many options I don't think someone will be able to cover them all. Depending on which arduino, you will use softSerial, since the hardware serial pins are probably being used by the bluetooth adapter. BTW, did this exact thing for a robot project not too long ago, work ok. I used XBees instead of bluetooth. If I did it again I would try Bluetooth as the XBee reliability wasnt very good.
Another type of connection is called I2C, and that would attach directly to Arduino UNO SDA/SCL (pins A4/A5 I think).
In both cases there are 3V and 5V devices and again you need to match things up on your own.
Now, to spoil your fun, you realize if you are carrying a phone and it is on, you are already being tracked and they are ways to view the history on the web?
In some cases it is easy to find (used to be called google tracks I think). Others are a little harder and I wont give out details, but I used to follow my ATV excursions on fire roads in the mountain all the time after I got back home.
Update: gps (https://www.sparkfun.com/products/11571) -> softSerial on UNO -> tx/rx -> bluetooth (http://www.ebay.com/itm/New-Slave-UART-Wireless-Bluetooth-Transeiver-RF-Module-Serial-for-Arduino-AVR-/121643226124) -> phone logging app.
I picked that bluetooth because it claims it can do 3.3v-6v - the others I looked at said 3.3V but I bet they are all the same. Technically, you probably do not even need the arduino in the middle, but said you wanted to learn.