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.
BMX055.h
00001 /* 00002 宣言方法 00003 BMX055 bmx(SDA_pin,SCL_pin); 00004 00005 bmx.getAcc(); 00006 bmx.getGyro(); 00007 bmx.getMag(); で値をゲット! 00008 00009 値は 00010 bmx.accel[3]; 00011 bmx.gyroscope[3]; 00012 bmx.magnet[3]; に入っている! 00013 00014 00015 00016 用例----------------------------------------------------------- 00017 #include "mbed.h" 00018 #include "BMX055.h" 00019 00020 00021 BMX055 bmx(D14,D15); //SDA SCL 00022 DigitalOut myled(LED1); 00023 DigitalIn sw(PC_13); 00024 Timer t; 00025 00026 int main() { 00027 float preAngle=0, AngGyr=0, gy=0, acc[2]={0}, angleAccel=0; 00028 int angle=0, use_angle=0; 00029 const double dt = 0.01; 00030 00031 printf("\r\nrun\r\n"); 00032 00033 while(sw==0){} 00034 while(sw==1){} 00035 while(1) { 00036 00037 // getAcc(accel); 00038 // printf("%2.4f, %2.4f, %2.4f\r\n",(accel[0]/512)*9.8,(accel[1]/512)*9.8,(accel[2]/512)*9.8); 00039 // getGyro(gyroscope); 00040 // printf("%2.4f, %2.4f, %2.4f\r\n",gyroscope[0]*125/2048,gyroscope[1]*125/2048,gyroscope[2]*125/2048); 00041 // getMag(magnet); 00042 // printf("%2.4f, %2.4f, %2.4f\r\n",magnet[0],magnet[1],magnet[2]); 00043 00044 bmx.getGyro(); 00045 00046 while(sw==0){ 00047 angle=0; 00048 use_angle=0; 00049 printf("Setting now!\r\n"); 00050 } 00051 00052 gy=bmx.gyroscope[2]*125/2048; 00053 angleAccel=bmx.gyroscope[2]*125/2560; 00054 AngGyr = preAngle+gy*dt; 00055 angle = (int)(0.905*AngGyr+0.09*angleAccel); //回転の検知幅小さくすると遅いのができて、大きくすると早いのができる 00056 //回転の検知制度を調整:上と反比例 00057 use_angle += angle; 00058 00059 printf("%3d\r\n", use_angle/48); 00060 preAngle=angle; 00061 acc[1]=acc[0]; 00062 00063 wait(dt); 00064 } 00065 } 00066 ---------------------------------------------------------------------- 00067 回転角がわかるよV 00068 */ 00069 00070 #ifndef BMX055_H_ 00071 #define BMX055_H_ 00072 00073 #define ACC 0x19<<1 00074 #define GYRO 0x69<<1 00075 #define MAG 0x13<<1 00076 00077 class BMX055 00078 { 00079 public: 00080 BMX055(PinName SDA, PinName SCL); 00081 float accel[3]; 00082 float gyroscope[3]; 00083 float magnet[3]; 00084 void getAcc(void); 00085 void getGyro(void); 00086 void getMag(void); 00087 private: 00088 I2C bmx055; 00089 void bmx_init(void); 00090 }; 00091 00092 #endif /* BMX055_H_ */
Generated on Tue Aug 9 2022 02:44:34 by
1.7.2