M-G354PDH0 program that utilizes library.

Dependencies:   mbed QMC5883L MG354PDH0 SDFileSystem

Files at this revision

API Documentation at this revision

Comitter:
Joeatsumi
Date:
Wed Apr 28 07:40:05 2021 +0000
Commit message:
M-G354PDH0 program that utilizes library.

Changed in this revision

MG354PDH0.lib Show annotated file Show diff for this revision Revisions of this file
QMC5883L.lib Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MG354PDH0.lib	Wed Apr 28 07:40:05 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/Joeatsumi/code/MG354PDH0/#9e92f863fde5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QMC5883L.lib	Wed Apr 28 07:40:05 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/Joeatsumi/code/QMC5883L/#ba5655a87eea
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Wed Apr 28 07:40:05 2021 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/SDFileSystem/#8db0d3b02cec
--- /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終わり
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Apr 28 07:40:05 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/e1686b8d5b90
\ No newline at end of file