Fixing minor bugs

main
YohanHadji 2022-04-09 12:34:35 +02:00
rodzic 342497b33d
commit 26a4712cd6
7 zmienionych plików z 39 dodań i 43 usunięć

Wyświetl plik

@ -112,22 +112,11 @@ void get_baro(int mode) {
alt_baro = (b_al.reading(alt_baro*100.0)/100.0); alt_baro = (b_al.reading(alt_baro*100.0)/100.0);
pressure_baro = (ps.reading(pressure_baro*100.0)/100.0); pressure_baro = (ps.reading(pressure_baro*100.0)/100.0);
if (((millis() - waitd) >= 100)) {
barometer_setup();
}
baro_count = (baro_count + 1);;
if (baro_count >= BARO_VS_SAMPLE) {
baro_count = 0;
cmpt_vertical_speed_baro(alt_baro-prev_alt_baro, baroA-baroB);
baroB = millis();
prev_alt_baro = alt_baro;
new_baro = true;
}
}
}
new_baro = true;
}
}
String baro_text() { String baro_text() {
String alt_baro_text = String(alt_baro, 3); String alt_baro_text = String(alt_baro, 3);

Wyświetl plik

@ -61,14 +61,12 @@ void send_data() {
} }
} }
void save_data(bool initialised) { void save_data() {
if (initialised == true) { if (sd_ok == true and SD_WRITING == true) {
if (sd_ok == true and SD_WRITING == true) { if (DEBUG) { Serial.println("Saving Data"); }
if (DEBUG) { Serial.println("Saving Data"); } dataFile = SD.open(namebuff, FILE_WRITE);
dataFile = SD.open(namebuff, FILE_WRITE); dataFile.println(mainSD);
dataFile.println(mainSD); dataFile.close();
dataFile.close();
}
} }
} }
@ -91,8 +89,10 @@ void cmpt_string_data(int flight_mode, bool initialised, bool deployed, bool win
String packet_count_text = String(packet_count); String packet_count_text = String(packet_count);
String status_text = time_text+","+packet_count_text+","+flight_mode_text+","+initialised_text+","+deployed_text+","+wing_opened_text+","+gps_ok_text+","+cog_ok_text+","+spiral_text+","+failsafe_text+","+vbatt_text+","+loop_rate_text; String status_text = time_text+","+packet_count_text+","+flight_mode_text+","+initialised_text+","+deployed_text+","+wing_opened_text+","+gps_ok_text+","+cog_ok_text+","+spiral_text+","+failsafe_text+","+vbatt_text+","+loop_rate_text;
mainSD = status_text+","+gps_text()+","+baro_text()+","+nav_text()+","+rc_text()+","+servo_text()+","+servo_max_cmd_text(); if (initialised) {
mainSD = status_text+","+gps_text()+","+baro_text()+","+nav_text()+","+rc_text()+","+servo_text()+","+servo_max_cmd_text();
}
mainTLM = "/*"+status_text+","+gps_text()+","+baro_text()+","+servo_text()+"/*"; mainTLM = "/*"+status_text+","+gps_text()+","+baro_text()+","+servo_text()+"/*";
} }
@ -111,7 +111,7 @@ void newfile() {
dataFile = SD.open(namebuff, FILE_WRITE); dataFile = SD.open(namebuff, FILE_WRITE);
delay(10); delay(10);
if (dataFile) { if (dataFile) {
dataFile.println("time (ms), Packet_Count (text), Mode (text), Initialised (text), Deployed (text), Wing_Opened (text), GPS_Ok (text), COG_Ok (text), Spiral (text), FailSafe (text), Vbatt (V), Loop_rate (Hz), GPS-date, GPS-time, lat (deg), lon (deg), alt (m), CoG (deg), Speed (m/s), Sat_in_use (text), HDOP (text), Position_Age (text), Fix_type (text), Baro_Alt (m), Pressure (hpa), Baro_Vspeed (m/s), Altitude (m), Baro_Weight, GPS_Weight, Baro_Vspeed_AVG (m/s), GPS_Vspeed_AVG (m/s), VDOWN (m/s), SetPoint_Home (deg), Err_Home (deg), LatB (deg), LonB (deg), WaypointNumber (text), Distance (m), Ch 0 (us), Ch 1 (us), Ch 2 (us), Ch 3 (us), Ch 4 (us), Ch 5 (us), Ch 6 (us), PWM_L (us), PWM_R (us), PWM_D (us), PWM_X (us), MAX_M_W, MAX_C_W, MAC_M, MAX_C"); dataFile.println("time (ms), Packet_Count (text), Mode (text), Initialised (text), Deployed (text), Wing_Opened (text), GPS_Ok (text), COG_Ok (text), Spiral (text), FailSafe (text), Vbatt (V), Loop_rate (Hz), GPS-date, GPS-time, lat (deg), lon (deg), alt (m), CoG (deg), Speed (m/s), Sat_in_use (text), HDOP (text), Position_Age (text), Fix_type (text), Baro_Alt (m), Pressure (hpa), Baro_Vspeed (m/s), Altitude (m), Merged_Vspeed (m/s), Baro_Weight, GPS_Weight, Baro_Vspeed_AVG (m/s), GPS_Vspeed_AVG (m/s), VDOWN (m/s), SetPoint_Home (deg), Err_Home (deg), LatB (deg), LonB (deg), WaypointNumber (text), Distance (m), Ch 0 (us), Ch 1 (us), Ch 2 (us), Ch 3 (us), Ch 4 (us), Ch 5 (us), Ch 6 (us), PWM_L (us), PWM_R (us), PWM_D (us), PWM_X (us), MAX_M_W, MAX_C_W, MAC_M, MAX_C");
dataFile.close(); dataFile.close();
} }
if (CONFIG_FILE_SV) { if (CONFIG_FILE_SV) {

Wyświetl plik

@ -39,13 +39,13 @@ void flight_init() {
current_waypoint = waypoint[waypoint_number]; current_waypoint = waypoint[waypoint_number];
} }
baroset(gps.altitude.meters(), 1);
get_baro(1);
cmpt_fusion();
b_vs.reset(); b_vs.reset();
b_al.reset(); b_al.reset();
g_vs.reset(); g_vs.reset();
baroset(gps.altitude.meters(), 1);
get_baro(1);
merged_alt = gps.altitude.meters();
cmpt_string_data(flight_mode, initialised, deployed, wing_opened, spiral); cmpt_string_data(flight_mode, initialised, deployed, wing_opened, spiral);
@ -81,7 +81,7 @@ void ready_steady() {
setcam(1, 20, 600); setcam(1, 20, 600);
} }
if (is_descent(v_down(VDOWN), 0)) { if (is_descent(v_down(VDOWN), 1)) {
flight_mode = 3; flight_mode = 3;
EasyBuzzer.beep(3000,100,50,3,500,1); EasyBuzzer.beep(3000,100,50,3,500,1);
setcam(1, 60, 600); setcam(1, 60, 600);
@ -159,7 +159,7 @@ void flight_gliding_auto() {
myPID.SetMode(MANUAL); myPID.SetMode(MANUAL);
} }
if (is_descent(v_down(-5), 0)) { if (is_descent(v_down(-5), 1)) {
spiral = true; spiral = true;
spiral_time = millis(); spiral_time = millis();
} }
@ -244,9 +244,9 @@ void flight_gliding_no_gps() {
void cmpt_flight_state() { void cmpt_flight_state() {
if (flight_mode!=prev_flight_mode) { if (flight_mode!=prev_flight_mode and prev_flight_mode !=0) {
cmpt_string_data(flight_mode, initialised, deployed, wing_opened, spiral); cmpt_string_data(flight_mode, initialised, deployed, wing_opened, spiral);
save_data(initialised); save_data();
send_data(); send_data();
prev_flight_mode = flight_mode; prev_flight_mode = flight_mode;
} }

Wyświetl plik

@ -52,6 +52,8 @@ void get_gps() {
new_gps = true; new_gps = true;
} }
} }
void sendPacket(byte *packet, byte len){ void sendPacket(byte *packet, byte len){
for (byte i = 0; i < len; i++) { GPS_PORT.write(packet[i]); } for (byte i = 0; i < len; i++) { GPS_PORT.write(packet[i]); }

Wyświetl plik

@ -92,15 +92,18 @@ void datacmpt() {
cmpt_flight_state(); cmpt_flight_state();
cmpt_data_rate(flight_mode); cmpt_data_rate(flight_mode);
if (initialised) { if (initialised) {
cmpt_vertical_state();
cmpt_fusion(); cmpt_fusion();
} }
cmpt_vertical_state();
if ((millis()-sd)>=delaySD) { if ((millis()-sd)>=delaySD) {
sd = millis(); sd = millis();
cmpt_string_data(flight_mode, initialised, deployed, wing_opened, spiral); cmpt_string_data(flight_mode, initialised, deployed, wing_opened, spiral);
save_data(initialised); if (initialised) {
save_data();
}
} }
if (millis()-tlm>=delayTLM) { if (millis()-tlm>=delayTLM) {

Wyświetl plik

@ -46,8 +46,8 @@ void cmpt_fusion() {
double h_dop = gps.hdop.value(); double h_dop = gps.hdop.value();
if (gps_ok) { if (gps_ok) {
gps_alt_weight = 50.0/h_dop; gps_alt_weight = constrain((gps.altitude.meters()/3000), 0.1, 10);
gps_vspeed_weight = 1; gps_vspeed_weight = constrain((gps.altitude.meters()/6000), 0.05, 10);
} }
else { else {
gps_alt_weight = 0; gps_alt_weight = 0;
@ -55,7 +55,7 @@ void cmpt_fusion() {
} }
merged_alt = ((alt_baro*baro_alt_weight)+(gps.altitude.meters()*gps_alt_weight))/(baro_alt_weight+gps_alt_weight); merged_alt = ((alt_baro*baro_alt_weight)+(gps.altitude.meters()*gps_alt_weight))/(baro_alt_weight+gps_alt_weight);
merged_vspeed = ((baro_vspeed*baro_vspeed_weight)+(gps_vspeed*gps_vspeed_weight))/(baro_vspeed_weight+gps_vspeed_weight); merged_vspeed = ((baro_stab_factor*baro_vspeed_weight)+(gps_stab_factor*gps_vspeed_weight))/(baro_vspeed_weight+gps_vspeed_weight);
} }
} }
@ -64,7 +64,7 @@ void cmpt_vertical_state() {
if (new_baro) { if (new_baro) {
new_baro = false; new_baro = false;
new_baro_fusion = true; new_baro_fusion = true;
baro_stab_factor = (baro_v.reading(baro_vspeed*100.0))/100.0; baro_stab_factor = (baro_v.reading(baro_vspeed*100.0))/100.0;
} }
if (new_gps) { if (new_gps) {
new_gps = false; new_gps = false;
@ -102,7 +102,7 @@ bool is_descent(int v_trigger, bool mode) {
} }
} }
else { else {
if (gps_stab_factor<v_trigger and baro_stab_factor<v_trigger) { if (merged_vspeed<v_trigger) {
return true; return true;
} }
else { else {
@ -128,7 +128,8 @@ String pos_text() {
String baro_stab_text = String(baro_stab_factor, 2); String baro_stab_text = String(baro_stab_factor, 2);
String gps_stab_text = String(gps_stab_factor, 2); String gps_stab_text = String(gps_stab_factor, 2);
String v_down_text = String(v_down(VDOWN), 2); String v_down_text = String(v_down(VDOWN), 2);
return merged_alt_text+","+baro_weight_text+","+gps_weight_text+","+baro_stab_text+","+gps_stab_text+","+v_down_text; String merged_vspeed_text = String(merged_vspeed, 2);
return merged_alt_text+","+merged_vspeed_text+","+baro_weight_text+","+gps_weight_text+","+baro_stab_text+","+gps_stab_text+","+v_down_text;
} }

Wyświetl plik

@ -150,6 +150,7 @@ servo_cmd cmpt_servo(uint16_t channels[16], int autopilot, int flight_mode, bool
} }
else { steering_cmpt.aux = sw; } else { steering_cmpt.aux = sw; }
} }
steering_cmpt.aux_deploy = 2000;
break; break;
case 2: case 2: