本教程將指導您如何使用零知增強板與MPU6050六軸傳感器模塊進行交互。MPU6050是一款含有三軸加速度計和三軸陀螺儀的傳感器,能夠測量設備的傾斜情況和旋轉運動。
通過本教程,您將學習如何讀取并處理這些數據,為您的項目添加運動檢測和姿態控制功能。
一、硬件連接
在開始編程之前,首先需要正確連接MPU6050模塊到零知增強板。
1.所需材料:
零知增強板
MPU6050六軸傳感器模塊
跳線若干
2.硬件連接示意圖:
MPU6050模塊的SCL和SDA分別連接到零知增強板的21、20號引腳
零知增強版 | MPU6050 |
3.3V | VCC |
GND | GND |
21/SCL | SCL |
20/SDA | SDA |
完成以上步驟后,硬件連接就完成了。
二、代碼實現
接下來,我們將編寫代碼來讀取MPU6050的數據。
準備工作:
1.打開零知開源平臺,選擇零知增強板開發板
2.選擇電腦連接的串口,驗證代碼并上傳
完整源代碼:
/* I2C interface MPU6050 demo * powered by www.lingzhilab.com */ #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); }
三、實驗結果
將代碼驗證上傳到零知增強板,打開串口監視器,設置波特率為9600。觀察測量到的加速計和陀螺儀輸出數據
結果分析:
上傳代碼并打開串口監視器后,將看到加速度計和陀螺儀的原始數據以及歸一化后的數據。
原始數據:
原始數據顯示了MPU6050直接讀取的數值,這些數值是傳感器內部ADC轉換后的數字量。
歸一化數據:
歸一化數據是將原始數據轉換為實際的物理量(加速度單位為g,陀螺儀單位為度/秒)。這些數據更直觀,便于進行后續的處理和分析。
通過本教程,您已經學會了如何使用零知增強板和MPU6050模塊來讀取運動數據。這些數據可以用于各種應用,如姿態控制、平衡機器人、運動跟蹤等。您可以根據項目需求進一步處理和分析這些數據。
完整工程參考:
通過網盤分享的文件:MPU6050.rar
鏈接: https://pan.baidu.com/s/1nHM_Uh29d-DEb4zKxlAoGQ 提取碼: kyrc
審核編輯 黃宇
-
傳感器
+關注
關注
2565文章
52995瀏覽量
767371 -
運動檢測
+關注
關注
0文章
40瀏覽量
12742
發布評論請先 登錄
小安派BW21-CBV-Kit入門教程之DMP6讀取MPU6050數據

零知開源——STM32F103RBT6驅動 ICM20948 九軸傳感器及 vofa + 上位機可視化教程
零知開源——STM32F103RBT6驅動 ICM20948 九軸傳感器及 vofa + 上位機可視化教程

零知經驗——STM32F4驅動ICM20948 九軸運動傳感器 + VOFA上位機可視化驗證與抗漂移優化
關于mpu6050問題
零知開源——MPU6050六軸傳感器模塊實踐教程,輕松實現運動檢測!
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-運動追蹤之六軸傳感器使用場景
飛凌嵌入式ElfBoard ELF 1板卡-運動追蹤之六軸傳感器使用場景
使用MSP430掃描接口和光學傳感器進行旋轉和線性運動檢測

評論