M-G354PDH0 program that utilizes library.

Dependencies:   mbed QMC5883L MG354PDH0 SDFileSystem

Revision:
0:0fdf17171743
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 28 07:40:05 2021 +0000
@@ -0,0 +1,123 @@
+/*
+EPSONのセンサを試すために組んだ20210423。
+*/
+
+#include "mbed.h"
+#include "string.h"
+
+#include "MG354PDH0.h"//慣性センサのライブラリ
+#include "QMC5883L.h"//地磁気センサのライブラリ
+#include "SDFileSystem.h"//sdカードを操作するためのライブラリ
+
+/*--------------シリアルポート設定------------------------------*/
+Serial   epson_imu(p28, p27);                  // IMU通信用シリアルポート
+Serial   pc(USBTX, USBRX);           // PC通信用シリアルポート
+MG354PDH0        imu(&epson_imu);                     // IMU
+/*----------------------------------------------------------*/
+
+/*--------------sdカード用の設定------------------------------*/
+SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
+/*----------------------------------------------------------*/
+
+/*--------------その他IOポート設定-----------------------------*/
+DigitalIn switch_blue(p21);//sdカードへの書き込みを終了させる
+/*-----------------------------------------------------------*/
+
+/*-----------------------------------------------*/
+/*-------------タイマー関数---------------*/
+Timer passed_time;
+/*---------------------------------------*/
+/*-------------------各種の変数-----------------*/
+float gyro_val[3];//角速度の値
+float angle_val[3];//角度の値
+
+float acc_val[3];//加速度の値
+float acc_angle[2];//加速度から計算した角度の値
+
+int16_t mag_val[3];//地磁気の値
+
+float time_new,time_old;
+/*---------------------------------------------*/
+
+
+int main() {
+    
+    pc.baud(460800);
+    
+    /*
+    power on
+    wait 800ms
+    */
+    wait(1.0);
+    
+    //compass.init();//地磁気センサの起動
+    
+    imu.power_on_sequence1();//IMUが動作可能かどうかの確認
+    imu.power_on_sequence2();//IMUが動作可能かどうかの確認
+    imu.UART_CTRL_write();//IMUのボーレートを480600,手動モードへ移行
+    imu.move_to_sampling_mode();//サンプリングモードへの移行
+    
+    passed_time.start();
+    time_old=passed_time.read();
+    
+    /*----------------------------*/
+    /*
+    mkdir("/sd/IMU_logger", 0777);
+    
+    FILE *fp = fopen("/sd/IMU_logger/log.csv", "w");
+        
+    if(fp == NULL) {
+        error("Could not open file for write\n");
+    }
+    */
+    /*-------------------------------------------------------*/
+    
+    pc.printf("Writing start!\r\n");
+    
+    while(1){
+        
+        gyro_val[0]=imu.read_angular_rate_x();//X軸周りの角速度の算出
+        gyro_val[1]=imu.read_angular_rate_y();//Y軸周りの角速度の算出
+        gyro_val[2]=imu.read_angular_rate_z();//Z軸周りの角速度の算出
+        
+        acc_val[0]=imu.read_acceleration_x();//X軸の加速度の算出
+        acc_val[1]=imu.read_acceleration_y();//Y軸の加速度の算出
+        acc_val[2]=imu.read_acceleration_z();//Z軸の加速度の算出
+        
+        /*
+        mag_val[0]=compass.getMagXvalue();//X軸の地磁気の算出
+        mag_val[1]=compass.getMagYvalue();//Y軸の地磁気の算出
+        mag_val[2]=compass.getMagZvalue();//Z軸の地磁気の算出
+        */
+        
+        time_new=passed_time.read();//時間更新
+        
+        //angle_val[0]+=(time_new-time_old)*gyro_val[0];//X軸周りの角度の算出
+        //angle_val[1]+=(time_new-time_old)*gyro_val[1];//Y軸周りの角度の算出
+        //angle_val[2]+=(time_new-time_old)*gyro_val[2];//Z軸周りの角度の算出
+        
+        pc.printf("%f,",time_new);
+        pc.printf("%f,%f,%f,",gyro_val[0],gyro_val[1],gyro_val[2]);
+        //pc.printf("%f:%f:%f\r\n",angle_val[0],angle_val[1],angle_val[2]);        
+        pc.printf("%f,%f,%f\r\n",acc_val[0],acc_val[1],acc_val[2]);        
+        
+        //fprintf(fp,"%f,%f,%f,%f\r\n",time_new,angle_val[0],angle_val[1],angle_val[2]);//sdファイルに書き込み
+        //pc.printf("%f,%f,%f,%f\r\n",time_new,angle_val[0],angle_val[1],angle_val[2]);//sdファイルに書き込み
+        
+        time_old=time_new;
+        /*
+        
+        if(switch_blue==1){//青いタクトスイッチが押されている事が確認されたら
+                   
+            //fclose(fp);//sdカードに作ったファイルを閉じる(書き込みをやめる)
+            pc.printf("Writing finish!");
+            break;//while文から離脱
+                    
+        }else{}
+        */
+        
+        wait(0.01);
+        
+        }//while 終わり
+}//main終わり
+