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");
}
}
}
}