Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MPU9250_SPI mbed
Fork of MPU9250_AHRS by
Diff: main.cpp
- Revision:
- 19:3fc0ecfc723a
- Parent:
- 18:a4d18f4eb968
- Child:
- 20:01bba4071ffc
--- a/main.cpp Tue Jun 28 06:18:52 2016 +0000
+++ b/main.cpp Tue Jun 28 13:41:15 2016 +0000
@@ -10,7 +10,7 @@
#include "mbed.h"
#include "MPU9250.h"
#include "MadgwickAHRS.h"
-
+#define DEBUG_putc //Wada
/* MPU9250 Library
*
@@ -45,7 +45,7 @@
void init(void)
{
- pc.baud(9600); //921600
+ pc.baud(115200); //921600
imu[0] = new mpu9250_spi(spi, p8);
imu[1] = new mpu9250_spi(spi, p9);
@@ -72,6 +72,23 @@
}
}
+// Wada June 17, 2016
+void float2byte(float gq, float k)//k = gyro_divider 32.8 or q_divider 32800
+{
+ float omegaF = gq * k;
+ int16_t omegaI = (int16_t)omegaF;
+ if(omegaI < 0){//1の補数
+ omegaI = 0xFFFF + omegaI;
+ }
+ for(i=0;i<4;i++){
+ tmp = (0xF & (omegaI >> (i*4)));
+ #ifdef DEBUG_putc
+ pc.putc(tmp);
+ #endif
+ }
+}//float2byte
+
+
void eventFunc(void)
{
for(int i=0; i<2; i++) {
@@ -95,14 +112,17 @@
imu[i]->Magnetometer[1],
imu[i]->Magnetometer[2]
);
-
- for(int i=0; i<2; i++)
+ #ifdef DEBUG_putc
+ pc.putc(0x34); //STX
+ #endif
+ for(int i=0; i<2; i++) {
/*
printf("%+1.3f,%+1.3f,%+1.3f,",
imu[i]->accelerometer_data[0],
imu[i]->accelerometer_data[1],
imu[i]->accelerometer_data[2]);
*/
+ /*
printf("%+0.3f,%+0.3f,%+0.3f,%+0.3f,%+0.3f,%+0.3f,%+0.3f,",
imu[i]->gyroscope_data[0]*DEGREE2RAD,
imu[i]->gyroscope_data[1]*DEGREE2RAD,
@@ -111,8 +131,19 @@
ahrs[i]->q1,
ahrs[i]->q2,
ahrs[i]->q3);
-
- printf("\n");
+ */
+ float2byte(imu[i]->gyroscope_data[0],32.8);
+ float2byte(imu[i]->gyroscope_data[1],32.8);
+ float2byte(imu[i]->gyroscope_data[2],32.8);
+ float2byte(ahrs[i]->q0,32800);
+ float2byte(ahrs[i]->q1,32800);
+ float2byte(ahrs[i]->q2,32800);
+ float2byte(ahrs[i]->q3,32800);
+ }
+ #ifdef DEBUG_putc
+ pc.putc(0x12); //ETX
+ #endif
+ //printf("\n");
}
int main()
