MPU6050模块应用于零知平台,使用该模块测量三轴加速度和三轴陀螺仪数据。 硬件准备 (1)零知开发板 (2)MPU6050模块 (3)杜邦线若干 1、电路连接 电路连接很简单,把模块的SCL和SDA引脚分别接到零知标准板的A5和A4引脚,即用I2C接口,供电3.3V即可。 2、程序烧录 打开零知开发工具,找到相应代码即可。
3、核心代码如下:
- /* I2C interface MPU6050 demo
- * powered by 零知实验室
- */
- #include "MPU6050.h"
- // 默认I2C地址为 0x68
- // AD0 low = 0x68
- // AD0 high = 0x69
- MPU6050 accelgyro;
- int16_t ax, ay, az;//三轴加速度值
- int16_t gx, gy, gz;//三轴陀螺仪值
- float nax,nay,naz;
- float ngx,ngy,ngz;//转换后的实际值
- #define LED_PIN LED_BUILTIN
- bool blinkState = false;
- void setup() {
- Serial.begin(9600);
- // MPU6050初始化设置
- Serial.println("Initializing I2C devices...");
- accelgyro.initialize();
- // verify connection
- Serial.println("Testing device connections...");
- if(accelgyro.testConnection()){
- Serial.println("MPU6050 connection successful");
- }else{
- Serial.println("MPU6050 connection failed");
- }
-
- //使用LED进行指示
- pinMode(LED_PIN, OUTPUT);
-
- // accelgyro.setFullScaleAccelRange(MPU6050_ACCEL_FS_16);//加速度参数
- // accelgyro.setFullScaleGyroRange(MPU6050_GYRO_FS_500);//陀螺仪
- }
- void loop() {
- // 获取原始的数值:三轴加速度值和三轴陀螺仪数值
- accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
- // 分别获取
- //accelgyro.getAcceleration(&ax, &ay, &az);
- //accelgyro.getRotation(&gx, &gy, &gz);
- // 显示打印
- Serial.print(" acc:\t");
- Serial.print(ax); Serial.print("\t");
- Serial.print(ay); Serial.print("\t");
- Serial.print(az); Serial.print("\t");
- Serial.print("\t gyro:\t");
- Serial.print(gx); Serial.print("\t");
- Serial.print(gy); Serial.print("\t");
- Serial.println(gz);
-
- //实际数值转换
- accelgyro.readNormalizeAccel(&nax,&nay,&naz);
- accelgyro.readNormalizeGyro(&ngx,&ngy,&ngz);
- Serial.print("Normalize acc:\t");
- Serial.print(nax); Serial.print("\t");
- Serial.print(nay); Serial.print("\t");
- Serial.print(naz); Serial.print("\t");
- Serial.print("\t Normalize gyro:\t");
- Serial.print(ngx); Serial.print("\t");
- Serial.print(ngy); Serial.print("\t");
- Serial.println(ngz);
- // blink LED to indicate activity
- blinkState = !blinkState;
- digitalWrite(LED_PIN, blinkState);
- delay(300);
- }
复制代码 完整代码可到零知实验室官网免费获取,完整工程需放到lingzhi_library下的project文件夹下。
4、当我们读取到原始数值后需要转换才可得到实际的值,完整代码已经做了转换,结果如下: |
curton 2019-10-12 21:44