Program to read data from sensors, write them to a file which can then be interpreted by software to help show the path of a bicycle as it travels around a field
Dependencies: C12832_lcd FatFileSystemCpp MMA7660 CMPS03 GPS
Fork of MSCUsbHost by
Program to link a compass and a GPS to an MBED to produce a CSV file which can be used to track a bicycle around a field
Results can be found here
main.cpp
- Committer:
- mbedevilledEgg
- Date:
- 2017-03-16
- Revision:
- 9:dbb7c4e63d45
- Parent:
- 8:f1679795e9ac
- Child:
- 10:d2dd3b355de5
File content as of revision 9:dbb7c4e63d45:
#include "mbed.h" // mbed library #include "MMA7660.h" // Accelerometer library #include "GPS.h" // GPS library #include "CMPS03.h" // Compass library #include "C12832_lcd.h" // LCD screen library #include "MSCFileSystem.h" #define FSNAME "USB" #define LIM 60 GPS gps(p9, p10); // GPS Connection CMPS03 compass(p28, p27, CMPS03_DEFAULT_I2C_ADDRESS); // Compass connection MMA7660 MMA(p28, p27); // Accelerometer connection C12832_LCD lcd; Serial pc(USBTX, USBRX); // Declarations float ax, ay, az; DigitalOut connectionLed(LED1); MSCFileSystem msc("USB"); // Mount USB stick under the name "USB" int main() { DIR *d; struct dirent *p; // For printing externally (USB Stick) d = opendir("/" FSNAME); if (MMA.testConnection()) connectionLed = 1; // Checking MMA connected correctly FILE *Accel = fopen("/USB/Accelerometer.txt", "w"); // Opens text file for Accelerometer FILE *GPS = fopen("/USB/GPS.txt", "w"); // Opens text file for GPS FILE *Comp = fopen("/USB/Compass.txt", "w"); // Opens text file for Compass int i; while(i < LIM) { //Accelerometer Accel = fopen("/USB/Accelerometer.txt", "a"); ax=MMA.x(); ay=MMA.y(); az=MMA.z(); fprintf(Accel,"%f, %f, %f,\r\n",ax,ay,az); lcd.locate(1,21); lcd.printf("Accel: %.2f, %.2f, %.2f", ax, ay, az); /* //GPS GPS = fopen("/USB/GPS.txt", "a"); if (gps.sample()) { fprintf(GPS, "\n%f, %f\r\n", gps.latitude, gps.longitude); lcd.locate(1,1); lcd.printf("%.4f, %.4f, %.4f", gps.latitude, gps.longitude); } else // For no signal { fprintf(GPS, "\nNo Lock!\n\n"); lcd.locate(1,1); lcd.printf("GPS: No Lock!"); } */ // Compass //Offset = compass.readBearing(); // Initial definitions Comp = fopen("/USB/Compass.txt", "a"); fprintf(Comp, "%f\r\n", compass.readBearing()/10); lcd.locate(1,11); lcd.printf("Bearing: %.2f\n", compass.readBearing()/10.0); /* Comp = fopen("/USB/Compass.txt", "a"); fprintf(Comp, "%f\r\n", compass.readBearing()); lcd.locate(1,11); // lcd.printf("Offset: %f, CMP: %f", Offset, compass.readBearing()); lcd.printf("Bearing:%f\n", compass.readBearing() / 10.0); */ /* GenBearing = compass.readBearing()/10; Comp = fopen("/USB/Compass.txt", "a"); if (GenBearing < 0) { GenBearing = 0 - GenBearing; } fprintf(Comp, "%f\r\n", GenBearing); lcd.locate(1,11); lcd.printf("Offset: %.2f, CMP: %.2f", Offset/10.0, GenBearing); */ wait (0.5); i++; fclose(Accel); //fclose(GPS); fclose(Comp); } }