2Chx3dof Magnetrometer supported M-Series Random Sequence Generator Servo Control

Dependencies:   mbed

Sampling Frequency

Sampling Frequency in main.cpp

#define SampleFreq     200   // [Hz]

Auto Stop Setting

Auto-stop Timer 15sec after

    // auto-stop when 15sec after
    if(smpl_cnt>3000){stop_dump();}

The number of 3000 means Sample Count. The number is given by SampleFreq[Hz] * Auto-Stop Time [sec].

M-Series Random Sequence

M-series Random Update Term in main.cpp

// M-series update flag
#define  M_TERM  200;

Unit is sample count.

cf.) 200 equals to 200 [samples] which equals to 1 [second] where SampleFreq = 200 [Hz}.

See above.

M-Series Random Servo Control

Branch:
MPU-9250-MagSensServo
Revision:
5:521f1c79123d
Parent:
4:e1d7947336f4
Child:
6:493df7718ecb
--- a/main.cpp	Tue Feb 02 14:29:33 2021 +0000
+++ b/main.cpp	Tue Feb 02 15:04:04 2021 +0000
@@ -144,7 +144,11 @@
             if(i==0||i==2) LED_flash_error_notice(i);
             continue;
         }
-
+        
+        imu[i]->calib_acc();
+        wait_ms(100);
+        printf("Calibrated Acc\n");
+        
         imu[i]->AK8963_calib_Magnetometer();
         wait_ms(100);
         printf("Calibrated Magnetrometer\n");
@@ -189,14 +193,17 @@
     imu[2]->select();
     imu[3]->deselect();
 
-    imu[0]->read_acc();
-    imu[0]->read_rot();
-    imu[0]->AK8963_read_Magnetometer();
-
-    imu[2]->read_acc();
-    imu[2]->read_rot();
-    imu[2]->AK8963_read_Magnetometer();
-
+//    imu[0]->read_acc();
+//    imu[0]->read_rot();
+//    imu[0]->AK8963_read_Magnetometer();
+//
+//    imu[2]->read_acc();
+//    imu[2]->read_rot();
+//    imu[2]->AK8963_read_Magnetometer();
+    
+    imu[0]->read_all();
+    imu[2]->read_all();
+    
 //    imu[0]->deselect();
 //    imu[1]->select();
 //    imu[2]->deselect();
@@ -210,15 +217,16 @@
 //    imu[3]->read_rot();
 //    imu[3]->AK8963_read_Magnetometer();
 
-
     switch(send_mode) {
 
         case ASCII_MODE:
 
             for(int i=0; i<3; i+=2) {
-                for(int j=0; j<3; j++) printf("%1.3f,  ",imu[i]->Magnetometer[j] / 1000.0f);
+                for(int j=0; j<3; j++) printf("a:%1.3f,",imu[i]->accelerometer_data[j]);
+                for(int j=0; j<3; j++) printf("g:%1.3f,",imu[i]->gyroscope_data[j]);
+                for(int j=0; j<3; j++) printf("m:%1.3f,",imu[i]->Magnetometer[j] / 1000.0f);
             }
-            printf("[mT]");
+//            printf("[mT]");
             break;
 
         case BINARY_MODE: