TinyCircuits Forum

TinyCircuits Products => TinyDuino Processors & TinyShields => Topic started by: DrForbush on November 26, 2017, 02:42:25 AM

Title: Model Rocket Acceleration Project
Post by: DrForbush on November 26, 2017, 02:42:25 AM
Attached is the pdf plot of acceleration data from a data logger of acceleration data using the accelerometer board, and SD card board.

I was able to use the data to calculate the drag coefficient for the rocket, velocity during liftoff to apogee.

The data is quite interesting, but the board can collect data every 0.5 msec but the data takes 30 msec to write to the card. One way around this problem would be to buffer the data and write less often. This technique would effect the timing and therefore require some other way to know how much time has passed. I asked in an earlier post if anyone knew how to read the cpu time, because I only need a running time. I assume that the time must be stored in a register - any ideas?

 
Title: Re: Model Rocket Acceleration Project
Post by: Brent on April 23, 2018, 11:38:36 AM
I can't answer your question directly, but I'm not sure I understand why it's necessary. If you know the data collection rate, the data size, and the write time, why can't you simply manage accordingly? Or, is the issue that you need to know the exact time a measurement was taken, and you can't rely on that 0.5 ms being accurate?
Title: Re: Model Rocket Acceleration Project
Post by: PSch on May 18, 2018, 05:02:27 AM
Hi,
Why not use the millis() function?
https://www.arduino.cc/reference/en/language/functions/time/millis/

This gives you (at least) a timestamp in milliseconds (and then buffer in an array of datapoints before writing on the SD card).
Cheers