diff --git a/arduino/Payload_BME280_MPU6050_XS_GPS.ino b/arduino/Payload_BME280_MPU6050_XS_GPS.ino index 539304a2..14d9ddcb 100644 --- a/arduino/Payload_BME280_MPU6050_XS_GPS.ino +++ b/arduino/Payload_BME280_MPU6050_XS_GPS.ino @@ -22,7 +22,7 @@ int Sensor2 = 0; float Sensor3 = 0; void eeprom_word_write(int addr, int val); short eeprom_word_read(int addr); -float flat = 0.0, flon = 0.0, flel = 0.0; +float lat = 0.0, lon = 0.0, alt = 0.0; void setup() { @@ -144,7 +144,7 @@ void loop() { Serial.print(" "); Serial.print(mpu6050.getAccZ()); } else { - Serial.print("OK MPU6050 0.0 0.0 0.0 0.0 0.0 0.0"); + Serial.print(" MPU6050 0.0 0.0 0.0 0.0 0.0 0.0"); } Serial.print(" XS "); @@ -159,7 +159,10 @@ void loop() { bool newData = false; unsigned long chars; unsigned short sentences, failed; - + + // For one second we parse GPS data and report some key values + for (unsigned long start = millis(); millis() - start < 1000;) // 1000;) + { while (Serial2.available()) { char c = Serial2.read(); @@ -167,10 +170,23 @@ void loop() { if (gps.encode(c)) // Did a new valid sentence come in? newData = true; } - if (newData) + } + if (newData) { + float flon, flat; unsigned long age; gps.f_get_position(&flat, &flon, &age); + lat = flat * 100; + lon = flon * 100; + alt = (float) gps.altitude()/100.0; + + Serial.print(" GPS "); + Serial.print(lat); + Serial.print(" "); + Serial.print(lon); + Serial.print(" "); + Serial.println(alt); +/* Serial.print("LAT="); Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6); Serial.print(" LON="); @@ -179,14 +195,8 @@ void loop() { Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites()); Serial.print(" PREC="); Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop()); +*/ } - - Serial.print(" GPS "); - Serial.print(flat); - Serial.print(" "); - Serial.print(flon); - Serial.print(" "); - Serial.println(flel); float rotation = sqrt(mpu6050.getGyroX()*mpu6050.getGyroX() + mpu6050.getGyroY()*mpu6050.getGyroY() + mpu6050.getGyroZ()*mpu6050.getGyroZ()); float acceleration = sqrt(mpu6050.getAccX()*mpu6050.getAccX() + mpu6050.getAccY()*mpu6050.getAccY() + mpu6050.getAccZ()*mpu6050.getAccZ()); @@ -250,7 +260,7 @@ void loop() { Serial1.print(" "); Serial1.print(mpu6050.getAccZ()); } else { - Serial1.print("OK MPU6050 0.0 0.0 0.0 0.0 0.0 0.0"); + Serial1.print(" MPU6050 0.0 0.0 0.0 0.0 0.0 0.0"); } Serial1.print(" XS ");