I plan on using my mbed to capture some raw acceleration data from a rocket that I plan to launch soon. What I have build is a little program that records data from an accelerometer. When you flip the switch, the program automatically starts recording all x,y, and z values to a cvs file which can later be opened in excel to produce a graph. I have also added a mobile lcd screen to output the results.

Dependencies:   mbed

Committer:
vcazan
Date:
Tue Nov 02 00:16:20 2010 +0000
Revision:
0:e43a1f11a90b
Inital revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vcazan 0:e43a1f11a90b 1 #include "mbed.h"
vcazan 0:e43a1f11a90b 2 #include "MobileLCD.h"
vcazan 0:e43a1f11a90b 3
vcazan 0:e43a1f11a90b 4 AnalogIn x1(p18);
vcazan 0:e43a1f11a90b 5 AnalogIn y1(p19);
vcazan 0:e43a1f11a90b 6 AnalogIn z1(p20);
vcazan 0:e43a1f11a90b 7 DigitalOut led(LED1);
vcazan 0:e43a1f11a90b 8
vcazan 0:e43a1f11a90b 9 DigitalIn start(p21);
vcazan 0:e43a1f11a90b 10 Serial pc(USBTX, USBRX); // tx, rx
vcazan 0:e43a1f11a90b 11 LocalFileSystem local("local"); // Create the local filesystem under the name "local"
vcazan 0:e43a1f11a90b 12
vcazan 0:e43a1f11a90b 13 MobileLCD lcd(p5, p6, p7, p8, p9);
vcazan 0:e43a1f11a90b 14
vcazan 0:e43a1f11a90b 15 int count=0;
vcazan 0:e43a1f11a90b 16
vcazan 0:e43a1f11a90b 17 int main() {
vcazan 0:e43a1f11a90b 18 lcd.background(0x0000FF);
vcazan 0:e43a1f11a90b 19 lcd.cls();
vcazan 0:e43a1f11a90b 20
vcazan 0:e43a1f11a90b 21
vcazan 0:e43a1f11a90b 22 lcd.printf("Waiting for start...");
vcazan 0:e43a1f11a90b 23 for (int i=0; i<130; i++) {
vcazan 0:e43a1f11a90b 24 lcd.pixel(i, 80 + sin((float)i / 5.0)*10, 0x000000);
vcazan 0:e43a1f11a90b 25 }
vcazan 0:e43a1f11a90b 26 while (1) {
vcazan 0:e43a1f11a90b 27
vcazan 0:e43a1f11a90b 28 pc.printf("%d",start.read());
vcazan 0:e43a1f11a90b 29 if (start) {
vcazan 0:e43a1f11a90b 30 remove("/local/out.csv");
vcazan 0:e43a1f11a90b 31 FILE *fp = fopen("/local/out.csv", "w"); // Open "out.txt" on the local file system for writing
vcazan 0:e43a1f11a90b 32 lcd.background(0x0000FF);
vcazan 0:e43a1f11a90b 33 lcd.cls();
vcazan 0:e43a1f11a90b 34 while (start) {
vcazan 0:e43a1f11a90b 35
vcazan 0:e43a1f11a90b 36 pc.printf("XValue %.4f , YValue %.4f , ZValue %.4f\n",x1.read(),y1.read(),z1.read());
vcazan 0:e43a1f11a90b 37 fprintf(fp," %f , %f , %f\n",x1.read(),y1.read(),z1.read());
vcazan 0:e43a1f11a90b 38
vcazan 0:e43a1f11a90b 39 lcd.locate(0,3);
vcazan 0:e43a1f11a90b 40 lcd.printf("X:");
vcazan 0:e43a1f11a90b 41 lcd.locate(0,6);
vcazan 0:e43a1f11a90b 42 lcd.printf("Y:");
vcazan 0:e43a1f11a90b 43 lcd.locate(0,8);
vcazan 0:e43a1f11a90b 44 lcd.printf("Z:");
vcazan 0:e43a1f11a90b 45 lcd.pixel(count++, -10 +x1.read()*100, 0x000000);
vcazan 0:e43a1f11a90b 46 lcd.pixel(count, 10+x1.read()*100, 0x000000);
vcazan 0:e43a1f11a90b 47 lcd.pixel(count,30+x1.read()*100, 0x000000);
vcazan 0:e43a1f11a90b 48 if (count == 120 ) {
vcazan 0:e43a1f11a90b 49 count = 0;
vcazan 0:e43a1f11a90b 50 lcd.cls();
vcazan 0:e43a1f11a90b 51 }
vcazan 0:e43a1f11a90b 52
vcazan 0:e43a1f11a90b 53 }
vcazan 0:e43a1f11a90b 54 fclose(fp);
vcazan 0:e43a1f11a90b 55 }
vcazan 0:e43a1f11a90b 56
vcazan 0:e43a1f11a90b 57
vcazan 0:e43a1f11a90b 58
vcazan 0:e43a1f11a90b 59
vcazan 0:e43a1f11a90b 60 }
vcazan 0:e43a1f11a90b 61 }