Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: IMU_I2C IMUfilter SCP1000 SDFileSystem mbed nmea0813 myCAN_logger
Revision 4:008160161171, committed 2013-08-16
- Comitter:
- YSB
- Date:
- Fri Aug 16 08:23:45 2013 +0000
- Parent:
- 3:33a9e207e309
- Commit message:
- 20130816ver
Changed in this revision
--- a/main.cpp Sat Jul 27 10:01:33 2013 +0000
+++ b/main.cpp Fri Aug 16 08:23:45 2013 +0000
@@ -26,6 +26,7 @@
Ticker logging;
//for communication with mission_mbed
myCAN can(p30, p29);
+ Ticker can_msg;
//for pc_msg
#define PC_BAUD 9600
@@ -36,6 +37,10 @@
#define LOG_RATE 0.3//0.04
char log_flg;
void log_flg_on(void);
+//for can_msg
+ #define CAN_RATE 0.1
+ void can_flg_on(void);
+ char can_flg = 0;
//Offsets for the gyroscope and the accelerometer.
double w_xBias;
@@ -214,6 +219,10 @@
pc_flg = 1;
}
+void can_flg_on(void){
+ can_flg = 1;
+}
+
void log_flg_on(void){
log_flg = 1;
}
@@ -241,19 +250,31 @@
//for PC
pc.baud(PC_BAUD);
pc_msg.attach(&pc_flg_on,PC_RATE);
+
+ //for CAN
+ can_msg.attach(&can_flg_on,CAN_RATE);
//for logging
logging.attach(&log_flg_on,LOG_RATE);
- int a_zi;
- a_zi=0;
+ int roll,pitch;
+ float g;
+ roll = 0;
+ pitch = 0;
while(1){
//for can send
- if(a_z > 9.6){a_zi=1;}
- else{a_zi=0;}
- can.make_logger_senddata(gps.get_time(),gps.get_satelite_number(),gps.get_str_latitude(),gps.get_str_longitude(),a_zi,(int)(scp1000.readTemperature()*20),scp1000.readPressure());
- can.send(LOGGER);
+ if(can_flg == 1){
+ g = sqrt(a_x*a_x + a_y*a_y + a_z*a_z);
+ roll = (int)(acos(a_y/g)*180/3.1415926535 - 90.0);
+ pitch = (int)(acos(a_x/g)*180/3.1415926535 - 90.0);
+ if(roll<0){roll=roll+360.0;}
+ if(a_z<0){roll=-1*roll+180.0;}
+ if(roll<0){roll=roll+360.0;}
+ can.make_logger_senddata(gps.get_time(),gps.get_satelite_number(),gps.get_str_latitude(),gps.get_str_longitude(),roll,pitch,(int)(scp1000.readTemperature()*20),scp1000.readPressure());
+ can.send(LOGGER);
+ can_flg = 0;
+ }
//for logging
if(log_flg == 1){
if(SD == 1){
@@ -263,10 +284,13 @@
//error("Could not open file for write\n");
pc.printf("SD_error");
}else{
- fprintf(fp,"time:%s,latitude:%f,longitude:%f,status:%c,satelite:%c,speed:%f,",gps.get_time(),gps.get_latitude(),gps.get_longitude(),gps.get_status(),gps.get_satelite_number(),gps.get_speed());
- //fprintf(fp,"roll:%f,pitch:%f,",toDegrees(imuFilter.getRoll()),toDegrees(imuFilter.getPitch()));
- fprintf(fp,"pressure:%d,temperature:%f\r\n", scp1000.readPressure(), scp1000.readTemperature());
- fprintf(fp,"%s,%f,%f,%f,%f,%f,%f\r\n",gps.get_time(),w_y, w_x, w_z, a_y, a_x, a_z);
+ fprintf(fp,"%s,%f,%f,",gps.get_time(),gps.get_latitude(),gps.get_longitude());
+ fprintf(fp,"%c,%d,%f,",gps.get_status(),gps.get_satelite_number(),gps.get_speed());
+ fprintf(fp,"%d,%f,", scp1000.readPressure(), scp1000.readTemperature());
+ fprintf(fp,"%f,%f,%f,%f,%f,%f,",w_y, w_x, w_z, a_y, a_x, a_z);
+ fprintf(fp,"%d,%d,",roll,pitch);
+ fprintf(fp,"%d",can.get_mission_status());
+ fprintf(fp,"\r\n",can.get_mission_status());
fclose(fp);
}
}
@@ -274,13 +298,12 @@
//for pc debug
if(pc_flg == 1){
- pc.printf("%f,%f,%f,%f,%f,%f\r\n",w_y, w_x, w_z, a_y, a_x, a_z);
- pc.printf("%d\r\n",a_zi);
+ //pc.printf("%f,%f,%f,%f,%f,%f\r\n",w_y, w_x, w_z, a_y, a_x, a_z);
+ pc.printf("%d,%d\r\n",roll,pitch);
//pc.printf("%f,%f,%f,%f,%f,%f\r\n",a_xBias, a_yBias, a_zBias, w_xBias, w_yBias, w_zBias);
//pc.printf("pressure:%d,temperature:%f\r\n", scp1000.readPressure(), scp1000.readTemperature());
- pc.printf("time:%s,latitude:%f,longitude:%f,status:%c,satelite:%c,speed:%f\r\n",gps.get_time(),gps.get_latitude(),gps.get_longitude(),gps.get_status(),gps.get_satelite_number(),gps.get_speed());
- //pc.printf("%f,%f,%d,%f\r\n",toDegrees(imuFilter.getRoll()),toDegrees(imuFilter.getPitch()),scp1000.readPressure(), scp1000.readTemperature());
- pc.printf("\n\r");
+ //pc.printf("time:%s,latitude:%f,longitude:%f,status:%c,satelite:%d,speed:%f\r\n",gps.get_time(),gps.get_latitude(),gps.get_longitude(),gps.get_status(),gps.get_satelite_number(),gps.get_speed());
+ //pc.printf("\n\r");
pc_flg =0;
}
}
--- a/myCAN.lib Sat Jul 27 10:01:33 2013 +0000 +++ b/myCAN.lib Fri Aug 16 08:23:45 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/YSB/code/myCAN_logger/#89073e0112db +http://mbed.org/users/YSB/code/myCAN_logger/#3804d83c7377
--- a/nmea0813.lib Sat Jul 27 10:01:33 2013 +0000 +++ b/nmea0813.lib Fri Aug 16 08:23:45 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/YSB/code/nmea0813/#84d63345eb80 +http://mbed.org/users/YSB/code/nmea0813/#7be9581d0734
