HELP! Total beginner :( GPS shield+Gyro+SD card+GSM+speed?

Hi All!!! Thanks for taking the time to read my post I really really appreciate it!

Firstly I want tot begin by saying I am not at all an electrical/electronics engineer or hobbyist or anything..I am actually a mechanical engineer by trade :slight_smile: but as we know the world is changing and it's time I learnt some electronics :slight_smile:

I am trying to do a project to build a GPS receiver which hybridizes different types of data (does this make sense)...I have no even attempted to look at the back office and how I am going to process the data as I am already stuck on the hardware part.

I have been told arduino is a good platform to use and I was wondering if anyone could guide me or give advice on how I would go about building a receiver with:

GPS shield+Gyroscope (motion shield?)+SD card+GSM/GPRS+speed input and obviously a battery to power this

The speed input I am planning to use another gps shield because I am thinking I can somehow just drae the velovity information out of it somehow..if this is possible. The idea is it will eventually have speed being read from a vehicle but thats in the far future :slight_smile:

anyyy help at all in how to assemble this would be appreciated because I am even struggling on what battery to use :slight_smile:

thank you!!!!

GPS shield+Gyroscope (motion shield?)+SD card+GSM/GPRS+speed input

You can get a combo GPS+SD from Adafruit, and I think there's a combo GPS+GPRS shield. Otherwise, you can get separate modules and not worry about which pins are used by a shield and whether they conflict with other modules/shields. There's a little more freedom with the latter approach, which may not be a good thing for a beginner. :wink:

For separate GPS modules, the ublox Neo-6, 7, or 8 are probably the best for the price.

The speed input I am planning to use another gps shield because I am thinking I can somehow just drae the velovity information out of it somehow..if this is possible.

Well, you don't need 2 GPS devices. One will give you speed, if that's all you need. Many folks start with the TinyGPS, TinyGPS++ or Adafruit libraries, but run into trouble when they try to do SD logging and SMS at the same time. I wrote a library that's very fast and saves lots of RAM and program space: NeoGPS. It can also be configured to grab only the speed and heading data, which saves even more time, RAM and program space.

I sure don't know what you mean by this, though:

a GPS receiver which hybridizes different types of data

Do you mean "fuses" different kinds of data?

Cheers,
/dev

Hi Dev,

Thanks SO much for your reply and sorry in advance for my stupid response:

If I were to buy the modules seperately what do you mean worry about the conflict between shields-as in specific components go with others?

I understand 1 will give me speed but I want to monitor almost a 'fake'speed input to mimic having the receiver hooked up to a railway vehicle if that makes any sense...

and yes i mean fuse haha i wasn't sure of the right word, Im trying to improve the accuracy of the reporting of the trains position :slight_smile:

any more help greatly appreciated!

The SIM908 (and SIM808?) combines GSM/GPRS and GPS in one, and you can get a shield for the Arduino. However, I don't know if you can get one that incorporates an SD card socket.

what do you mean worry about the conflict between shields

Because the shields sit on top of the Arduino, they usually have a fixed set of pins that they use. For example, the Adafruit Ultimate GPS Logger shield can only use pins 0 & 1 (the Serial pins) or pins 7 & 8 (with SoftwareSerial). The SD card can only be on pins 10, 11, 12 and 13. If your other shields try to use those pins, they will "conflict" (i.e., two shields drive or read the same pin).

So sometimes it's easier to connect modules (not shields) with wires so you can pick which pins are used by which modules. But it's more soldering, and may not be as compact. OTOH, if you're trying to squeeze this project into a small or oddly-shaped space, it may be easier with several small modules.

Im trying to improve the accuracy of the reporting of the trains position

Is this a model train? Unless your train layout is really big (10's of metres), and it's outside or in the attic, GPS probably isn't a good idea. You'd have better luck fusing the IMU data with a hard-coded track layout. It's more of a 2D problem: where along this line is the train positioned?

Cheers,
/dev

Thanks for explaining! Is there any kind of quick start tutorial? I didn't find the getting started section on this site to be all that helpful...

It is actually to be used on a live uk Mainline train eventually once i figure how to build it :slight_smile:

Don't forget that for optimum performance the aerials / antenna will need to be mounted outside the metal body shell.

Is there any kind of quick start tutorial?

I'd start with googling for "vehicle tracker", "car tracker", etc. to see what other people have done. The commercial solutions will show you what kind of packaging and installation you should strive for. The hacker projects will give you a good idea of what has worked for other people.

Then start trying the tutorials for each kind of interface: Serial (for GPS and GSM), I2C (for IMU+GYRO+Compass), SPI (for SD card). You'll have to choose a shield or module for each. Maybe you'll try one and find it's the wrong choice. Try another. How busy is the processor for each one of these?

Then start trying to integrate all these pieces. At this point, you'll start to run into RAM, program space or CPU time constraints of the devices or libraries. Many libraries will conflict with each other in subtle ways (e.g., ISRs or "blocking" vs. "non-blocking" implementations).

How hard could it be? :wink:

Cheers,
/dev