syouichi imamori
/
MulticopterQuadX
Quad X Type Multicopter
Diff: config.cpp
- Revision:
- 3:27407c4984cf
- Parent:
- 2:59ac9df97701
- Child:
- 4:4060309b9cc0
--- a/config.cpp Fri Nov 15 20:53:36 2013 +0000 +++ b/config.cpp Thu Feb 13 16:07:07 2014 +0000 @@ -92,11 +92,13 @@ break; case CALIBURATE+1: //Calibrate Transmitter LCD_printf("Start Calibrate"); + wait(1); for(i=0; i<4; i++) { conf.Stick_Ref[i] = 0; } for(i=0; i<16; i++) { - wait(0.3); + wait(0.03); + Get_Stick_Pos(); conf.Stick_Ref[ROL] += AIL; conf.Stick_Ref[PIT] += ELE; conf.Stick_Ref[YAW] += RUD; @@ -193,21 +195,21 @@ hmax = 3; break; case ACCELCORRECT+1: - Param_Set_Prompt1("Accel>ROL",&conf.Accel_Ref[ROL],2,-10.0,10.0f,0.01f,sw); + Param_Set_Prompt1("Accel>Rol",&conf.Accel_Ref[ROL],2,-10.0,10.0f,0.001f,sw); break; case ACCELCORRECT+2: - Param_Set_Prompt1("Accel>PIT",&conf.Accel_Ref[PIT],2,-10.0,10.0f,0.01f,sw); + Param_Set_Prompt1("Accel>Pitch",&conf.Accel_Ref[PIT],2,-10.0,10.0f,0.001f,sw); break; case ACCELCORRECT+3: - Param_Set_Prompt1("Accel>YAW",&conf.Accel_Ref[YAW],3,-10.0,10.0f,0.01f,sw); + Param_Set_Prompt1("Accel>Yaw",&conf.Accel_Ref[YAW],3,-10.0,10.0f,0.001f,sw); break; case PIDSET: //PID Setting LCD_printf("PID Setting"); Set_Arrow(1); - hmax = 8; + hmax = 9; break; case PIDSET+1: - Param_Set_Prompt1("PID>RoolPitch>kp",&conf.kp[0],2,0.00f,5.00f,0.01f,sw); + Param_Set_Prompt1("PID>RoolPitch>kp",&conf.kp[0],2,0.00f,15.00f,0.01f,sw); conf.kp[1] = conf.kp[0]; break; case PIDSET+2: @@ -219,7 +221,7 @@ conf.kd[1] = conf.kd[0]; break; case PIDSET+4: - Param_Set_Prompt1("PID>YAW>kp",&conf.kp[2],2,0.00f,5.00f,0.01f,sw); + Param_Set_Prompt1("PID>YAW>kp",&conf.kp[2],2,0.00f,15.00f,0.01f,sw); break; case PIDSET+5: Param_Set_Prompt1("PID>YAW>ki",&conf.ki[2],2,0.00f,5.00f,0.01f,sw); @@ -228,10 +230,13 @@ Param_Set_Prompt1("PID>YAW>kd",&conf.kd[2],2,0.00f,5.00f,0.01f,sw); break; case PIDSET+7: + Param_Set_Prompt1("PID Interval",&conf.PID_Interval,2,0.002f,0.015f,0.001f,sw); + break; + case PIDSET+8: Param_Set_Prompt1("PID Limit",&conf.PID_Limit,2,0.00f,400.00f,10.00f,sw); break; - case PIDSET+8: - Param_Set_Prompt1("Integral Limit",&conf.Integral_Limit,3,0.00f,100.00f,1.00f,sw); + case PIDSET+9: + Param_Set_Prompt1("differential Lim",&conf.Differential_Limit,3,0.00f,300.00f,10.00f,sw); break; case STICKMIX: //Set Stick Mixing LCD_printf("Set Stick Mixing"); @@ -278,32 +283,37 @@ hmax = 7; for ( i=0; i<3; i++ ) { pid[i].init(conf.kp[i],conf.ki[i],conf.kd[i]*(float)abs(Stick[GAIN])/50.0 - ,conf.PID_Limit,conf.Integral_Limit); + ,conf.PID_Limit,conf.Differential_Limit); Angle[i] = 0; } break; case DISPSENSOR+1: //Gyro - Get_Gyro(); +// Get_Gyro(); + if ( conf.Gyro_Dir[3] ==1 ) i2c.angular(&x,&y,&z); + else i2c.angular(&y,&x,&z); + x -= Gyro_Ref[0]; + y -= Gyro_Ref[1]; + z -= Gyro_Ref[2]; LCD_locate(0,0); - sprintf(str,"[Gyro]X=%5.1f",Gyro[ROL]); + sprintf(str,"[Gyro]X=%5.1f",x); LCD_printf(str); LCD_locate(0,1); - sprintf(str,"y=%5.1f,Z=%5.1f",Gyro[PIT],Gyro[YAW]); + sprintf(str,"y=%5.1f,Z=%5.1f",y,z); LCD_printf(str); ret_mode = 'R'; break; case DISPSENSOR+2: //Accelerometer - Get_Accel(); +// Get_Accel(); if ( conf.Gyro_Dir[3] ==1 ) i2c.Acceleration(&x,&y,&z); else i2c.Acceleration(&y,&x,&z); x -= conf.Accel_Ref[0]; y -= conf.Accel_Ref[1]; z -= conf.Accel_Ref[2]; LCD_locate(0,0); - sprintf(str,"[Accel]X=%5.1f",x); + sprintf(str,"[Accel]X=%5.2f",x); LCD_printf(str); LCD_locate(0,1); - sprintf(str,"Y=%5.1f,Z=%5.1f",y,z); + sprintf(str,"Y=%5.2f,Z=%5.2f",y,z); LCD_printf(str); // Set_Arrow(2); ret_mode = 'R'; @@ -336,7 +346,7 @@ Get_Pressure(); elaps.stop(); LCD_locate(0,0); - sprintf(str,"Press=%9.3f",Press/4096); + sprintf(str,"Press=%9.1f",Press/4096); LCD_printf(str); LCD_locate(0,1); sprintf(str,"Elaps=%6d",elaps.read_us()); @@ -439,9 +449,9 @@ hmax = 3; break; case CONFRESET+1: - LCD_printf("If want to reset"); + LCD_printf("Ailron stick"); LCD_locate(0,1); - LCD_printf("Aileron right"); + LCD_printf("Move to right"); Set_Arrow(2); break; case CONFRESET+2: //E2PROM reset @@ -581,7 +591,7 @@ LCD_locate(0,0); LCD_printf(hd); LCD_locate(0,1); - sprintf(str,"%7.2f",*num); + sprintf(str,"%7.3f",*num); LCD_printf(str); Set_Arrow(arrow); switch ( sw ) { @@ -651,3 +661,11 @@ + + + + + + + +