Nucleo based high altitude balloon computer
Dependencies: SDFileSystem Venus838 mbed MS5611 TinyGPS
Diff: Atlas.cpp
- Revision:
- 5:1facb0e83e62
- Parent:
- 4:96539c6e50c0
- Child:
- 6:f91db4a7acf1
--- a/Atlas.cpp Tue Jun 24 15:20:54 2014 +0000
+++ b/Atlas.cpp Wed Jun 25 15:02:14 2014 +0000
@@ -7,6 +7,7 @@
DigitalOut grn(LED_GRN);
DigitalOut ylw(LED_YLW);
+AnalogIn batt(PC_2);
Serial pc(USBTX, USBRX);
Venus838 venus(GPS_TX, GPS_RX);
TinyGPS gps;
@@ -24,15 +25,15 @@
venus.setNmeaMessages(true, false, false, false, true, false);
printf("Attempting to open SD card...\n");
- mkdir("/sd/mydir", 0777);
+ mkdir("/sd/debug", 0777);
printf("Attempting to open file...\n");
- FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
+ FILE *fp = fopen("/sd/debug/debug.txt", "w");
if(fp == NULL) {
error("Could not open file for write\n");
ylw = LED_ON;
}
- fprintf(fp, "Hello fun SD Card World!");
+ fprintf(fp, "Hooray, we can write to the SD Card. Go get a cookie.");
printf("Closing file...\n");
fclose(fp);
@@ -46,12 +47,15 @@
int main() {
unsigned long date, time, ttf;
double latitude, longitude, altitude;
- float pressure, temperature;
+ float pressure, temperature, battery;
unsigned int writeCount = 0;
init();
FILE *fp = fopen("/sd/atlas.txt", "a");
-
+ fprintf(fp, "Atlas Logger\r\n");
+ fprintf(fp, "Date Time Lon Lat Alt Pressure Temp Battery\r\n");
+ fprintf(fp, "------------------------------------------------------------------\r\n");
+ //fclose(fp);
while(true) {
if(venus.readable()) {
char c = venus.getc();
@@ -67,13 +71,15 @@
altitude = gps.f_altitude();
pressure = pres.getPressure();
temperature = pres.getTemperature();
- pc.printf("%u, %u, %f, %f, %f, %f, %f\n",
+ battery = (batt.read()*3.3f) * 4.0f;
+ wait_ms(1);
+ pc.printf("%u, %u, %f, %f, %f, %f, %f, %f\n",
date, time, longitude, latitude, altitude,
- pressure, temperature
+ pressure, temperature, battery
);
- fprintf(fp, "%u, %u, %f, %f, %f, %f, %f\n",
+ fprintf(fp, "%u, %u, %f, %f, %f, %f, %f %f\n",
date, time, longitude, latitude, altitude,
- pressure, temperature
+ pressure, temperature, battery
);
writeCount++;
if(writeCount > 100) {