I am currently in a class at my college where we will be building several model rockets. On these rockets we are wanting to take several measurements including acceleration and air pressure and have the intent of transmitting the data back down to a base station.
Basically I'm just wondering which microcontroller would work best for our purpose. We will put the controller on the rocket itself, and it would be power by a battery. We have a head engineer that is overseeing our project, and he reccomended a PIC microcontroller -- specifically the 18F2523. But this is a pretty weak controller and has very little storage and processing power. Our controller would control...
Accelerometer
Pressure Sensor (if we want to use one)
Thermistor
Transmitter
potentially turn a video system on/off
so i mean it doesn't need a WHOLE lot of processing power, but it seems like we'd want more than that PIC so we can get more data points. So basically I'm just wondering which controller would be good for this that strikes a good balance between power consumption and processing power.
Almost any micro-controller would have the processing power to perform the task you have enumerated. As far as the data logging memory requirements go you just need to define how many samples per second you wish to have X the number of data channels you wish to log. If it exceeds the data memory capacity of the micro then small 8 pin EEPROM serial memory chips are dirt cheap to add to a design.
Things to keep in mind for your project as I've read from other peoples effort with rocket instrumentation:
Research battery temperature range depending on how high the rocket gets it can get quite cold and some batteries almost shut down at cold temps.
Size and weight are a big factor of this kind of project so if you were to use an Arduino type micro you might look into some of the smaller clone packages that are much smaller and less weight.
If you wish to measure pressure be sure to select a pressure sensor designed to measure absolute pressure not normal differential gauge pressure.
Good luck and keep us posted on your design decisions and progress.
The arduino should be just fine. You'll want some flash storage with an SPI interface, so that you can store samples more quickly than I2C. I've just completed a PCB, getting ready to start the software, for an Atmel Dataflash interface.
You may want an external ADC to get higher resolution measurements from analog sensors (pressure, etc). Again I'd make it SPI so the sample rate can be high enough.
The pressure sensor used on the Perfectflite altimeters are Freescale (nee Motorola) sensors (the 6115 IIRC). We flew a pair of them on a balloon flight recently, interfaced to an ATmega.
IMO the Arduino's ATmega is much more friendly to work with than the PICs.
If you're using the high power stuff (H, I, etc) you can probably get by with a standard Arduino - there will be plenty of volume and payload mass available. If they are smaller (D, E Estes size) then you may want to look at the mini arduinos.
I wouldn't call the PIC18F2523 "weak"; it's a somewhat slower CPU than the ATMega168 (10 vs 16 MIPS) but has comparable amounts of memory, and a more powerful A/D converter that might be relevant (10 channels, 12bit, 50kSPS vs 6 channels, 10bit, 15kSPS)
The PIC thus defended, I'd have to agree that the AVR chips are "friendlier", especially if you get to stay within the Arduino environment. (However, the 18F PICs are less "unfriendly" than the older 16F series by quite a bit.)
On the third hand, there's something to be said for sticking with a processor that your adviser is apparently already familiar with.
And on the last hand, introducing your adviser to Arduino might be a good thing for "future generations."