2Chx3dof Magnetrometer supported M-Series Random Sequence Generator Servo Control
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
Diff: main.cpp
- Branch:
- MPU-9250-MagSensServo
- Revision:
- 5:521f1c79123d
- Parent:
- 4:e1d7947336f4
- Child:
- 6:493df7718ecb
diff -r e1d7947336f4 -r 521f1c79123d main.cpp --- 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: