93EXCivic
93EXCivic SuperDork
4/14/11 10:06 a.m.

Ok so a project for this summer is to work on doing my own data acquisition system. My plan is to do ground speed, accelerometer (should I go 2D or 3D), brake pressure sensor and throttle position. I was also thinking about including water temperature and oil pressure as well. I was thinking about using an Arduino board. I was hoping to get opinions/ ideas from people.

tpwalsh
tpwalsh New Reader
4/14/11 10:14 a.m.

BTDT, more of a PITA than you think. For instance, how are you planning on getting the raw data for each input? Where are you going to store the data? How fast is that storage? How are you going to trigger the stopping/starting of the logger? How are you going to view the data(excel only takes about 65K lines or 60s @100hz)

Arduinos are pretty slow actually. There are lots of ways to speed them up, but that takes a fair amount of C++/microcontroller specific knowledge. Then there are nuances of the AnalogIn function which can skew your data.

93EXCivic
93EXCivic SuperDork
4/14/11 10:18 a.m.

In reply to tpwalsh:

Several of my friends are very used to working with microcontrollers. So they are going to be helping me with this.

alfadriver
alfadriver SuperDork
4/14/11 10:20 a.m.

While we have not built the second version, yet, we used a propeller board from Parallax. Works great.

GPS + analog (engine speed, 4 anything, accelerations and gyros). Seems to work great. We stream it via bluetooth to a handheld, but you can also write directly to an SD card and post process, too.

From what my buddy says, triggering is pretty easy- since you write the code for the processor, you can tell it to start and stop.

As for looking at the data- racechrono.com works. But if you can format the output correctly, a lot of the commercially availble systems give the software away for free.

Go for it- learn some computing languages. It's fun.

93EXCivic
93EXCivic SuperDork
4/14/11 10:23 a.m.

In reply to alfadriver:

How many inputs and outputs does the Propeller board have?

ReverendDexter
ReverendDexter SuperDork
4/14/11 10:31 a.m.

Is this going on an OBDII-equipped vehicle by any chance?

ransom
ransom GRM+ Memberand Reader
4/14/11 10:33 a.m.

My first thought (as a developer, not a microcontroller guy, which I'm not), is not to have a set list of inputs you're going to build to. Keep it abstracted so you can add stuff later. You don't want to have to chuck this out when you want to start logging steering angle, suspension travel, boost, exhaust O2, etc, right? Don't hamstring it before you even start.

With that in mind, figure out how much data that is. Here we get to tpwalsh's comments. I have not BTDT, but his comments make a lot of sense.

I think the central question is whether you're looking for an educational project or cheap datalogging. If the former, you'll probably learn a lot just chewing on it. If you're looking for cheap datalogging, I think you're probably miles ahead looking at existing systems.

That's my two cents, but I haven't done datalogging, and have only pondered doing my own setup, so take it with a grain of salt.

93EXCivic
93EXCivic SuperDork
4/14/11 10:36 a.m.
ReverendDexter wrote: Is this going on an OBDII-equipped vehicle by any chance?

More then likely, it is not.

93EXCivic
93EXCivic SuperDork
4/14/11 10:42 a.m.
ransom wrote: My first thought (as a developer, not a microcontroller guy, which I'm not), is not to have a set list of inputs you're going to build to. Keep it abstracted so you can add stuff later. You don't want to have to chuck this out when you want to start logging steering angle, suspension travel, boost, exhaust O2, etc, right? Don't hamstring it before you even start. With that in mind, figure out how much data that is. Here we get to tpwalsh's comments. I have not BTDT, but his comments make a lot of sense. I think the central question is whether you're looking for an educational project or cheap datalogging. If the former, you'll probably learn a lot just chewing on it. If you're looking for cheap datalogging, I think you're probably miles ahead looking at existing systems. That's my two cents, but I haven't done datalogging, and have only pondered doing my own setup, so take it with a grain of salt.

I was listing ideas as I am trying to figure out the number of inputs and outputs. The idea behind it is to learn a little and make a cheap datalogger.

ReverendDexter
ReverendDexter SuperDork
4/14/11 10:55 a.m.

One thing you could do is make your inputs standardized. By that I mean all of your sensors return a normalized set of values, for sake of simplified example, we'll call them 0-255 (8 bit sensing). Doesn't matter what the sensor is actually sensing, it returns a value between 0 and 255. Steering can be centered at 127, and return increasing lower values for increasing left input, and increaing higher values for right input. Nothing says you have the full range of inputs, either; for brakes, if you just want a simple yes/no, you could have it return 1 if the brake lights are on, 0 if they're not (very, very simple indicator of brake usage). Or, similarly, a 1/0 representation of WOT or not. And if you're really slick, you could hook up 8 of those binary sensors to create one 0-255 output

Long story short, you make it modular. The core unit just has a set of ports that accept these inputs that return these 8-bit values, but it's totally agnostic to what they represent. That way your only limitation at the core is the number of sensors you can hook up simultaneously, and your imagination as to how to represent what you're measuring quantitatively.

alfadriver
alfadriver SuperDork
4/14/11 11:18 a.m.
93EXCivic wrote: In reply to alfadriver: How many inputs and outputs does the Propeller board have?

None- we add an 8 channel a-d board.

I'm not sure of the overall structure, but it sounds like you it has a fixed number of cogs that it can read. We are using one for the a/d, one for the GPS, one for bluetooth, and one for the SD card.

Our idea of modular is that we can add another input board later, and not even have it ON the module- just connect with good wires, so we can string together more.

see if this formats- here's a list of the parts I need to get, you'll see multiple a/d boards and bluetooth boards- that's because there are cheaper options that might work.

Source  Name    Cost

Main Board -Paralax,Proto Board w/USB- 32812 29.99

A/D board Paralax Max1270 12 bit a/d- 604-00026 19.99

Paralax 8-channel, 12bit a/d- 604-00062 5.22

Bluetooth Paralax Easy Bluetooth- 30085 69.99 Sparkfun Bluetooth SMD, Rayson BTM-182 14.95 Sparkfun Bluetooth SMD, Rayson BTM-182, DIP module 34.95

SD card Paralax SD Card adaptor - 32313 14.99

analog specific input boards IMU Analog Combo Eval board, 5 axis- sen-09268 44.95

GPS VENUS GPS w SMA- GPS-09133 49.95

SMA Antenna - GPS-00464 12.95

Box paralax 19.99

Power supply

tpwalsh
tpwalsh New Reader
4/14/11 11:35 a.m.

In reply to ReverendDexter:

Agreed, though that has it's own set of problems. What protocol are you going to use to send those inputs? i2c? one-wire? straight up serial or maybe normalize it to a 0-5v for A/D conversion? Each one has it's quirks that make it better or worse for this sort of thing.

One thing to look at is sparkfun.com. They've got a TON of good stuff and the tutorials to help you get started. One thing I've used is the previous version of this: http://www.sparkfun.com/products/10216 It worked pretty darned well, but was lacking the customizability of v2. The 2148 cpu is really beefy compared to the '328 of the arduino, and an order of magnatude faster than a '328 after the arduino overlay is added. The logomatic is really easy to get started with to since it includes all the source, AND has a VERY easy way to compile and download the compiled code.

erohslc
erohslc Reader
4/14/11 11:38 a.m.

DIY solution: http://www.dataq.com/products/startkit/di145.html + used laptop

NFI

Addresses most if not all of the issues raised.

Carter

alfadriver
alfadriver SuperDork
4/14/11 11:46 a.m.

In reply to erohslc:

If you build it right, you don't need a laptop to strap down in a car. I find that pretty important when I'm driving. that, and the processers we are talking about are also capable of recording GPS data.

alfadriver
alfadriver SuperDork
4/14/11 11:48 a.m.
93EXCivic wrote: In reply to alfadriver: How many inputs and outputs does the Propeller board have?

BTW, since I know someone is thinking it- why Propeller over anything else? easy- the guy doing the real hard work knows the propller software.

that's it.

Learning a new micro and it's software wasn't worth the few $$ saved on an alternate system....

So if you find something you can work with and will do what you want- go for it- I'm not trying to sell the propeller, just illustrate that you can assemble the parts.

93EXCivic
93EXCivic SuperDork
4/14/11 11:50 a.m.
alfadriver wrote:
93EXCivic wrote: In reply to alfadriver: How many inputs and outputs does the Propeller board have?
BTW, since I know someone is thinking it- why Propeller over anything else? easy- the guy doing the real hard work knows the propller software. that's it. Learning a new micro and it's software wasn't worth the few $$ saved on an alternate system.... So if you find something you can work with and will do what you want- go for it- I'm not trying to sell the propeller, just illustrate that you can assemble the parts.

That is the reason I am leaning towards Arduino because I know people who can help me with the Arduino.

alfadriver
alfadriver SuperDork
4/14/11 11:58 a.m.

In reply to 93EXCivic:

IMHO, an excellent reason to choose an Arduino.

From a different prespective, I can tell you that you really don't need much better than 20Hz data acq- for many years, I maxed out at 10hz, and it was very good data. I chose 20 for the heck of it, and it turns out that the GPS is one of the very few very fast readers you can get. And even it has issues faster than 10hz.

So if Arduino is capable of reading all that's to be read, and write it correctly, where ever, it will be fine.

You'll need to log in to post.

Our Preferred Partners
UDnVznVeXTbDMo5EibLb3yU0W9YnLkHWSwrOj3syFxJ0LYwR10AHDBOzTBzqY3Xi