SSLM1 / Mbed 2 deprecated 4_sensor-Integration-function2

Dependencies:   mbed 2_P7100 2_EEPROM 2_MPU9250

Committer:
rary
Date:
Thu Jul 09 16:45:51 2020 +0000
Revision:
0:f282852e22f1
Child:
1:f6528bed0dce
all sensor Integration

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rary 0:f282852e22f1 1 #include "mbed.h"
rary 0:f282852e22f1 2 #include "EEPROM.h"
rary 0:f282852e22f1 3 #include "LPS33HW.h"
rary 0:f282852e22f1 4 #include "P7100.h"
rary 0:f282852e22f1 5 #include "MPU9250.h"
rary 0:f282852e22f1 6
rary 0:f282852e22f1 7 Timer t; //時間計測
rary 0:f282852e22f1 8 Serial pc(USBTX, USBRX);
rary 0:f282852e22f1 9 LPS33HW lps(p9, p10);
rary 0:f282852e22f1 10 EEPROM rom(p9, p10);
rary 0:f282852e22f1 11 MPU9250 mpu(p9, p10);
rary 0:f282852e22f1 12 P7100 p7100(p5, p6, p7, p8);
rary 0:f282852e22f1 13
rary 0:f282852e22f1 14 void sensor_get_save(int); //自作関数プロトタイプ宣言
rary 0:f282852e22f1 15
rary 0:f282852e22f1 16 #define ADDR 0xA0 //EEPROMコントロールアドレス
rary 0:f282852e22f1 17 int pointerAddress = 0; //EEPROM保存アドレス
rary 0:f282852e22f1 18
rary 0:f282852e22f1 19 //main
rary 0:f282852e22f1 20 int main()
rary 0:f282852e22f1 21 {
rary 0:f282852e22f1 22 char data_read[128];
rary 0:f282852e22f1 23
rary 0:f282852e22f1 24 pc.baud(460800); //ボーレート変更
rary 0:f282852e22f1 25
rary 0:f282852e22f1 26 t.start(); //timer Start
rary 0:f282852e22f1 27
rary 0:f282852e22f1 28 pc.printf("Start!");
rary 0:f282852e22f1 29
rary 0:f282852e22f1 30 lps.start(1); //気圧センサスタート
rary 0:f282852e22f1 31 lps.start(1); //気圧センサスタート
rary 0:f282852e22f1 32 wait(0.5);
rary 0:f282852e22f1 33
rary 0:f282852e22f1 34 mpu.start(); //MPU9250 start&setup
rary 0:f282852e22f1 35 mpu.accelsetup(3);
rary 0:f282852e22f1 36 mpu.gyrosetup(3);
rary 0:f282852e22f1 37 mpu.AKsetup(1);
rary 0:f282852e22f1 38 wait(0.5);
rary 0:f282852e22f1 39
rary 0:f282852e22f1 40 for(int n = 0; n < 100; n++) { //data get&save
rary 0:f282852e22f1 41 sensor_get_save(n);
rary 0:f282852e22f1 42 wait_ms(0);
rary 0:f282852e22f1 43 }
rary 0:f282852e22f1 44
rary 0:f282852e22f1 45 //read the data
rary 0:f282852e22f1 46 pointerAddress = 0;
rary 0:f282852e22f1 47 pc.printf("Data read\r\n");
rary 0:f282852e22f1 48
rary 0:f282852e22f1 49 for(int n = 0; n < 100; n++) {
rary 0:f282852e22f1 50 rom.read(ADDR, pointerAddress, data_read, 128);
rary 0:f282852e22f1 51 wait_ms(5);
rary 0:f282852e22f1 52 pc.printf("%s", data_read);
rary 0:f282852e22f1 53
rary 0:f282852e22f1 54 pointerAddress = pointerAddress + 128; //アドレスずらし
rary 0:f282852e22f1 55 memset(data_read, '\0', 128 ); //初期化
rary 0:f282852e22f1 56 }
rary 0:f282852e22f1 57
rary 0:f282852e22f1 58 pc.printf("Finish");
rary 0:f282852e22f1 59 }
rary 0:f282852e22f1 60
rary 0:f282852e22f1 61 void sensor_get_save(int n)
rary 0:f282852e22f1 62 {
rary 0:f282852e22f1 63 char s[64]; //データ取得配列
rary 0:f282852e22f1 64
rary 0:f282852e22f1 65 float accel[3], gyro[3]; //MPU9250data
rary 0:f282852e22f1 66 float AX, AY, AZ, GX, GY, GZ; //MPU9250data
rary 0:f282852e22f1 67
rary 0:f282852e22f1 68 float T = t.read(); //時刻データ取得
rary 0:f282852e22f1 69 float P = lps.data_read(); //気圧データ取得
rary 0:f282852e22f1 70 float v = p7100.v_read(); //電圧取得
rary 0:f282852e22f1 71 float tp = 0.25 * v - 0.125; //タンク圧力換算
rary 0:f282852e22f1 72
rary 0:f282852e22f1 73 mpu.accel_read(3, accel);
rary 0:f282852e22f1 74 mpu.gyro_read(3, gyro);
rary 0:f282852e22f1 75 AX = accel[0];
rary 0:f282852e22f1 76 AY = accel[1];
rary 0:f282852e22f1 77 AZ = accel[2];
rary 0:f282852e22f1 78 GX = gyro[0];
rary 0:f282852e22f1 79 GY = gyro[1];
rary 0:f282852e22f1 80 GZ = gyro[2];
rary 0:f282852e22f1 81
rary 0:f282852e22f1 82 sprintf(s, "%8.3f %8.3f %6.3f %5.3f %5.2f %5.2f %5.2f %5.2f %5.2f\r\n", T, P, tp, AX, AY, AZ, GX, GY, GZ); //floatからchar*へ変換
rary 0:f282852e22f1 83
rary 0:f282852e22f1 84 rom.write(ADDR, pointerAddress, s, 64); // write tha data
rary 0:f282852e22f1 85 pointerAddress = pointerAddress + 64; //アドレスずらし
rary 0:f282852e22f1 86
rary 0:f282852e22f1 87 pc.printf("%s\r\n", s); //check用
rary 0:f282852e22f1 88
rary 0:f282852e22f1 89 memset(s, '\0', 64 ); //初期化
rary 0:f282852e22f1 90 }