Nucleo based high altitude balloon computer
Dependencies: SDFileSystem Venus838 mbed MS5611 TinyGPS
Atlas.cpp
- Committer:
- ethanharstad
- Date:
- 2014-06-24
- Revision:
- 3:552319ab5341
- Parent:
- 2:244d3912b449
- Child:
- 4:96539c6e50c0
File content as of revision 3:552319ab5341:
#include "mbed.h" #include "Atlas.h" #include "SDFileSystem.h" #include "Venus838.h" #include "TinyGPS.h" #include "MS5611I2C.h" DigitalOut grn(LED_GRN); DigitalOut ylw(LED_YLW); Serial pc(USBTX, USBRX); Venus838 venus(GPS_TX, GPS_RX); TinyGPS gps; MS5611I2C pres(I2C_SDA, I2C_SCL, false); SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd"); Timer tick; void init() { pc.baud(115200); grn = LED_OFF; ylw = LED_OFF; venus.setUpdateRate(10); venus.setNavigationMode(4); venus.setNmeaMessages(true, false, false, false, true, false); printf("Attempting to open SD card...\n"); mkdir("/sd/mydir", 0777); printf("Attempting to open file...\n"); FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); if(fp == NULL) { error("Could not open file for write\n"); ylw = LED_ON; } fprintf(fp, "Hello fun SD Card World!"); printf("Closing file...\n"); fclose(fp); pres.printCoefficients(); tick.start(); pc.printf("Atlas Ready!\n"); } int main() { unsigned long date, time, ttf; double latitude, longitude, altitude; float pressure, temperature; unsigned int writeCount = 0; init(); FILE *fp = fopen("/sd/atlas.txt", "a"); while(true) { if(venus.readable()) { char c = venus.getc(); //pc.putc(c); gps.encode(c); } if(tick.read_ms() >= 500) { tick.reset(); grn = !grn; gps.get_datetime(&date, &time, &ttf); gps.f_get_position(&latitude, &longitude, &ttf); altitude = gps.f_altitude(); pressure = pres.getPressure(); temperature = pres.getTemperature(); pc.printf("%l, %l, %d, %d, %d, %d, %d\n", date, time, longitude, latitude, altitude, pressure, temperature ); fprintf(fp, "%l, %l, %d, %d, %d, %d, %d\n", date, time, longitude, latitude, altitude, pressure, temperature ); writeCount++; if(writeCount > 100) { writeCount = 0; fclose(fp); FILE *fp = fopen("/sd/atlas.txt", "a"); } } } }