“Motion模块姿态测试示例”的版本间的差异
Radiumray9(讨论 | 贡献) |
Radiumray9(讨论 | 贡献) |
||
第20行: | 第20行: | ||
*打开'''文件'''->'''示例'''->'''_05_Microduino_10DOF'''->'''sensor_MPU6050'''的“MPU6050_raw”程序 | *打开'''文件'''->'''示例'''->'''_05_Microduino_10DOF'''->'''sensor_MPU6050'''的“MPU6050_raw”程序 | ||
[[File:motion-weather-bmp180.jpg|800px|thumb|center]] | [[File:motion-weather-bmp180.jpg|800px|thumb|center]] | ||
− | |||
<source lang="cpp"> | <source lang="cpp"> | ||
− | Serial.print(ax | + | #include <MPU6050.h> |
− | Serial.print(ay | + | |
− | Serial.print(az | + | // class default I2C address is 0x68 |
− | Serial.print(gx | + | // specific I2C addresses may be passed as a parameter here |
− | Serial.print(gy | + | // AD0 low = 0x68 (default for InvenSense evaluation board) |
− | Serial.println(gz/ | + | // AD0 high = 0x69 |
+ | MPU6050 accelgyro; | ||
+ | |||
+ | int16_t ax, ay, az; | ||
+ | int16_t gx, gy, gz; | ||
+ | |||
+ | #define LED_PIN 13 | ||
+ | bool blinkState = false; | ||
+ | |||
+ | void setup() { | ||
+ | // join I2C bus (I2Cdev library doesn't do this automatically) | ||
+ | Wire.begin(); | ||
+ | |||
+ | // initialize serial communication | ||
+ | // (38400 chosen because it works as well at 8MHz as it does at 16MHz, but | ||
+ | // it's really up to you depending on your project) | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | // initialize device | ||
+ | Serial.println("Initializing I2C devices..."); | ||
+ | accelgyro.initialize(); | ||
+ | |||
+ | // verify connection | ||
+ | Serial.println("Testing device connections..."); | ||
+ | Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); | ||
+ | |||
+ | // configure Arduino LED for | ||
+ | pinMode(LED_PIN, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // read raw accel/gyro measurements from device | ||
+ | accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); | ||
+ | |||
+ | // these methods (and a few others) are also available | ||
+ | //accelgyro.getAcceleration(&ax, &ay, &az); | ||
+ | //accelgyro.getRotation(&gx, &gy, &gz); | ||
+ | |||
+ | // display tab-separated accel/gyro x/y/z values | ||
+ | Serial.print("a/g:\t"); | ||
+ | Serial.print(ax); Serial.print("\t"); | ||
+ | Serial.print(ay); Serial.print("\t"); | ||
+ | Serial.print(az); Serial.print("\t"); | ||
+ | Serial.print(gx); Serial.print("\t"); | ||
+ | Serial.print(gy); Serial.print("\t"); | ||
+ | Serial.println(gz); | ||
+ | |||
+ | // blink LED to indicate activity | ||
+ | blinkState = !blinkState; | ||
+ | digitalWrite(LED_PIN, blinkState); | ||
+ | } | ||
</source> | </source> | ||
*将程序下载到核心,打开串口监视器,可以看到数据,前面三个对应的是X,Y,Z的角度,后三个对应的是X,Y,Z的加速度。 | *将程序下载到核心,打开串口监视器,可以看到数据,前面三个对应的是X,Y,Z的角度,后三个对应的是X,Y,Z的加速度。 |
2017年12月18日 (一) 07:14的版本
硬件清单
测试MPU6050姿态传感器
#include <MPU6050.h>
// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
#define LED_PIN 13
bool blinkState = false;
void setup() {
// join I2C bus (I2Cdev library doesn't do this automatically)
Wire.begin();
// initialize serial communication
// (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
// it's really up to you depending on your project)
Serial.begin(115200);
// initialize device
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
// verify connection
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
// configure Arduino LED for
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// read raw accel/gyro measurements from device
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// these methods (and a few others) are also available
//accelgyro.getAcceleration(&ax, &ay, &az);
//accelgyro.getRotation(&gx, &gy, &gz);
// display tab-separated accel/gyro x/y/z values
Serial.print("a/g:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.print(az); Serial.print("\t");
Serial.print(gx); Serial.print("\t");
Serial.print(gy); Serial.print("\t");
Serial.println(gz);
// blink LED to indicate activity
blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState);
}
测试BMP180气压传感器
|