![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
地磁気センサーのプログラム
Dependencies: mbed
gm_sensor/main.cpp@0:af969b92a87c, 2021-10-20 (annotated)
- Committer:
- minanao
- Date:
- Wed Oct 20 08:15:44 2021 +0000
- Revision:
- 0:af969b92a87c
gm_sensor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
minanao | 0:af969b92a87c | 1 | #include "mbed.h" |
minanao | 0:af969b92a87c | 2 | #include "MPU9250.h" |
minanao | 0:af969b92a87c | 3 | |
minanao | 0:af969b92a87c | 4 | |
minanao | 0:af969b92a87c | 5 | |
minanao | 0:af969b92a87c | 6 | MPU9250 mpu9250(D4, D5); // SDA, SCL |
minanao | 0:af969b92a87c | 7 | |
minanao | 0:af969b92a87c | 8 | Serial pc(USBTX, USBRX, 115200); |
minanao | 0:af969b92a87c | 9 | |
minanao | 0:af969b92a87c | 10 | volatile bool interrupt_flag = false; |
minanao | 0:af969b92a87c | 11 | |
minanao | 0:af969b92a87c | 12 | void detect_shock(void) |
minanao | 0:af969b92a87c | 13 | { |
minanao | 0:af969b92a87c | 14 | interrupt_flag = true; |
minanao | 0:af969b92a87c | 15 | } |
minanao | 0:af969b92a87c | 16 | |
minanao | 0:af969b92a87c | 17 | int main() |
minanao | 0:af969b92a87c | 18 | { |
minanao | 0:af969b92a87c | 19 | |
minanao | 0:af969b92a87c | 20 | |
minanao | 0:af969b92a87c | 21 | mpu9250.resetMPU9250(); |
minanao | 0:af969b92a87c | 22 | mpu9250.setWakeOnMotion(); |
minanao | 0:af969b92a87c | 23 | |
minanao | 0:af969b92a87c | 24 | while(1) { |
minanao | 0:af969b92a87c | 25 | if (interrupt_flag) { |
minanao | 0:af969b92a87c | 26 | |
minanao | 0:af969b92a87c | 27 | pc.printf("detect\r\n"); |
minanao | 0:af969b92a87c | 28 | wait_ms(1000); |
minanao | 0:af969b92a87c | 29 | interrupt_flag = false; |
minanao | 0:af969b92a87c | 30 | } |
minanao | 0:af969b92a87c | 31 | |
minanao | 0:af969b92a87c | 32 | /* get accell data*/ |
minanao | 0:af969b92a87c | 33 | int16_t acc[3]; |
minanao | 0:af969b92a87c | 34 | mpu9250.readAccelData(acc); |
minanao | 0:af969b92a87c | 35 | float acc_f[3]; |
minanao | 0:af969b92a87c | 36 | for (int i = 0; i < 3; ++i) |
minanao | 0:af969b92a87c | 37 | acc_f[i] = float(acc[i]) * mpu9250.getAres(); |
minanao | 0:af969b92a87c | 38 | |
minanao | 0:af969b92a87c | 39 | /* get temperature */ |
minanao | 0:af969b92a87c | 40 | float temperature = ((float) mpu9250.readTempData()) / 333.87 + 21.0; |
minanao | 0:af969b92a87c | 41 | |
minanao | 0:af969b92a87c | 42 | /* get gyro data*/ |
minanao | 0:af969b92a87c | 43 | int16_t gyro[3]; |
minanao | 0:af969b92a87c | 44 | mpu9250.readGyroData(gyro); |
minanao | 0:af969b92a87c | 45 | float gyro_f[3]; |
minanao | 0:af969b92a87c | 46 | for (int i = 0; i < 3; ++i) |
minanao | 0:af969b92a87c | 47 | gyro_f[i] = float(gyro[i]) * mpu9250.getGres(); |
minanao | 0:af969b92a87c | 48 | |
minanao | 0:af969b92a87c | 49 | |
minanao | 0:af969b92a87c | 50 | /* get mag data*/ |
minanao | 0:af969b92a87c | 51 | int16_t mag[3]; |
minanao | 0:af969b92a87c | 52 | mpu9250.readMagData(mag); |
minanao | 0:af969b92a87c | 53 | float mag_f[3]; |
minanao | 0:af969b92a87c | 54 | for (int i = 0; i < 3; ++i) |
minanao | 0:af969b92a87c | 55 | mag_f[i] = float(mag[i]) * mpu9250.getMres(); |
minanao | 0:af969b92a87c | 56 | |
minanao | 0:af969b92a87c | 57 | |
minanao | 0:af969b92a87c | 58 | |
minanao | 0:af969b92a87c | 59 | |
minanao | 0:af969b92a87c | 60 | |
minanao | 0:af969b92a87c | 61 | |
minanao | 0:af969b92a87c | 62 | |
minanao | 0:af969b92a87c | 63 | /* serial */ |
minanao | 0:af969b92a87c | 64 | |
minanao | 0:af969b92a87c | 65 | pc.printf("ax:%3.3f\t", acc_f[0]); |
minanao | 0:af969b92a87c | 66 | pc.printf("ay:%3.3f\t", acc_f[1]); |
minanao | 0:af969b92a87c | 67 | pc.printf("az:%3.3f\t\n", acc_f[2]); |
minanao | 0:af969b92a87c | 68 | pc.printf("mx:%3.3f\t", mag_f[0]); |
minanao | 0:af969b92a87c | 69 | pc.printf("my:%3.3f\t", mag_f[1]); |
minanao | 0:af969b92a87c | 70 | pc.printf("mz:%3.3f\t\n", mag_f[2]); |
minanao | 0:af969b92a87c | 71 | pc.printf("gx:%3.3f\t", gyro_f[0]); |
minanao | 0:af969b92a87c | 72 | pc.printf("gy:%3.3f\t", gyro_f[1]); |
minanao | 0:af969b92a87c | 73 | pc.printf("gz:%3.3f\t\n", gyro_f[2]); |
minanao | 0:af969b92a87c | 74 | pc.printf("temp:%3.3f\t", temperature); |
minanao | 0:af969b92a87c | 75 | |
minanao | 0:af969b92a87c | 76 | pc.printf("\n\n---------------------------\r\n"); |
minanao | 0:af969b92a87c | 77 | |
minanao | 0:af969b92a87c | 78 | wait_ms(100); |
minanao | 0:af969b92a87c | 79 | } |
minanao | 0:af969b92a87c | 80 | } |