色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用第三方開(kāi)源庫(kù)驅(qū)動(dòng)MPU6050模塊

CHANBAEK ? 來(lái)源:魚香ROS ? 作者:小魚 ? 2023-07-13 14:52 ? 次閱讀

你好,我是愛(ài)吃魚香ROS的小魚。上一節(jié)我們安裝好了MPU6050的三方庫(kù),這一節(jié)我們嘗試使用該庫(kù)將我們板子上的IMU模塊驅(qū)動(dòng)起來(lái)。

教程所使用硬件平臺(tái)為MicroROS學(xué)習(xí)板V1.0.0,可點(diǎn)擊閱讀原文購(gòu)買及查看詳情

圖片

一、MPU6050介紹

首先我們了解下MPU6050模塊,從外觀看,長(zhǎng)這個(gè)樣子

圖片

MPU6050 為全球首例集成六軸傳感器的運(yùn)動(dòng)處理組件,內(nèi)置了運(yùn)動(dòng)融合引擎,用于手持和桌面的應(yīng)用程序、游戲控制器、體感遙控以及其他消費(fèi)電子設(shè)備。它內(nèi)置一個(gè)三軸 MEMS 陀螺儀、一個(gè)三軸 MEMS 加速度計(jì)、一個(gè)數(shù)字運(yùn)動(dòng)處理引擎(DMP)以及用于第三方的數(shù)字傳感器接口的輔助 I2C 端口(常用于擴(kuò)展磁力計(jì))。當(dāng)輔助 I2C 端口連接到一個(gè)三軸磁力計(jì),MPU6050 能提供一個(gè)完整的九軸融合輸出到其主 I2C 端口。

在我們板子上的位置是這里

圖片

二、調(diào)用開(kāi)源庫(kù)驅(qū)動(dòng)

新建工程example06_mpu6050

圖片

2.1 添加依賴

修改platformio.ini

[env:featheresp32]
platform = espressif32
board = featheresp32
framework = arduino
lib_deps = 
    https://ghproxy.com/https://github.com/rfetick/MPU6050_light.git

2.2 復(fù)制樣例程序

該開(kāi)源庫(kù)作者提供了開(kāi)源庫(kù)的使用方式,將.pio/libdeps/featheresp32/MPU6050_light/examples/GetAllData/GetAllData.ino復(fù)制到main.cpp中。

/* Get all possible data from MPU6050
 * Accelerometer values are given as multiple of the gravity [1g = 9.81 m/s2]
 * Gyro values are given in deg/s
 * Angles are given in degrees
 * Note that X and Y are tilt angles and not pitch/roll.
 *
 * License: MIT
 */

#include "Wire.h"
#include < MPU6050_light.h >

MPU6050 mpu(Wire);

unsigned long timer = 0;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  byte status = mpu.begin();
  Serial.print(F("MPU6050 status: "));
  Serial.println(status);
  while(status!=0){ } // stop everything if could not connect to MPU6050
  
  Serial.println(F("Calculating offsets, do not move MPU6050"));
  delay(1000);
  mpu.calcOffsets(true,true); // gyro and accelero
  Serial.println("Done!n");
  
}

void loop() {
  mpu.update();

  if(millis() - timer > 1000){ // print data every second
    Serial.print(F("TEMPERATURE: "));Serial.println(mpu.getTemp());
    Serial.print(F("ACCELERO  X: "));Serial.print(mpu.getAccX());
    Serial.print("tY: ");Serial.print(mpu.getAccY());
    Serial.print("tZ: ");Serial.println(mpu.getAccZ());
  
    Serial.print(F("GYRO      X: "));Serial.print(mpu.getGyroX());
    Serial.print("tY: ");Serial.print(mpu.getGyroY());
    Serial.print("tZ: ");Serial.println(mpu.getGyroZ());
  
    Serial.print(F("ACC ANGLE X: "));Serial.print(mpu.getAccAngleX());
    Serial.print("tY: ");Serial.println(mpu.getAccAngleY());
    
    Serial.print(F("ANGLE     X: "));Serial.print(mpu.getAngleX());
    Serial.print("tY: ");Serial.print(mpu.getAngleY());
    Serial.print("tZ: ");Serial.println(mpu.getAngleZ());
    Serial.println(F("=====================================================n"));
    timer = millis();
  }

}

2.3 修改代碼

1.修改波特率 9600->115200

2.修改IO地址 Wire.begin();->Wire.begin(18, 19);

修改完后代碼,并附上小魚對(duì)代碼的注釋講解

#include "Wire.h"          // 導(dǎo)入I2C相關(guān)頭文件
#include < MPU6050_light.h > // 導(dǎo)入MPU6050庫(kù)

MPU6050 mpu(Wire); // 新建MPU6050對(duì)象mpu

unsigned long timer = 0;

void setup()
{
  Serial.begin(115200);
  Wire.begin(18, 19); // 初始化I2C,設(shè)置sda引腳為GPIO18,SCL引腳為GPIO19

  byte status = mpu.begin(); // 檢測(cè)IMU模塊狀態(tài)
  Serial.print(F("MPU6050 status: "));
  Serial.println(status);
  while (status != 0)
  {
  } // stop everything if could not connect to MPU6050

  Serial.println(F("Calculating offsets, do not move MPU6050"));
  delay(1000);
  mpu.calcOffsets(true, true); // gyro and accelero 校準(zhǔn)
  Serial.println("Done!n");
}

void loop()
{
  mpu.update();

  if (millis() - timer > 1000)
  { // print data every second
    Serial.print(F("TEMPERATURE: "));
    Serial.println(mpu.getTemp()); // 溫度
    Serial.print(F("ACCELERO  X: "));
    Serial.print(mpu.getAccX()); // X軸加速度
    Serial.print("tY: ");
    Serial.print(mpu.getAccY()); // Y軸加速度
    Serial.print("tZ: ");
    Serial.println(mpu.getAccZ()); // Z軸加速度

    Serial.print(F("GYRO      X: "));
    Serial.print(mpu.getGyroX()); // X軸 角速度
    Serial.print("tY: ");
    Serial.print(mpu.getGyroY()); // Y軸 角速度
    Serial.print("tZ: ");
    Serial.println(mpu.getGyroZ()); // Z軸 角速度

    Serial.print(F("ACC ANGLE X: "));
    Serial.print(mpu.getAccAngleX()); // X軸角加速度
    Serial.print("tY: ");
    Serial.println(mpu.getAccAngleY()); // Y軸角加速度

    Serial.print(F("ANGLE     X: "));
    Serial.print(mpu.getAngleX()); // X角度
    Serial.print("tY: ");
    Serial.print(mpu.getAngleY()); // Y角度
    Serial.print("tZ: ");
    Serial.println(mpu.getAngleZ()); // Z角度
    Serial.println(F("=====================================================n"));
    timer = millis();
  }
}

三、編譯測(cè)試

保存代碼,編譯下載到開(kāi)發(fā)板。打開(kāi)串口監(jiān)視器,查看結(jié)果。

圖片

結(jié)果

圖片

四、總結(jié)

本節(jié)我們通過(guò)調(diào)用開(kāi)源庫(kù)實(shí)現(xiàn)了對(duì)IMU傳感器的的調(diào)用,如果你對(duì)該庫(kù)感興趣,可以隨時(shí)到.pio/libdeps/featheresp32/MPU6050_light/src/MPU6050_light.h查看源碼

class MPU6050{
  public:
    // INIT and BASIC FUNCTIONS
 MPU6050(TwoWire &w);
    byte begin(int gyro_config_num=1, int acc_config_num=0);
 ...

  private:
 ...
};

可以看到,這里是通過(guò)面向?qū)ο蟮姆绞綄PU6050封裝成了一個(gè)類,我們使用的時(shí)候也是通過(guò)實(shí)例化后使用的,所以下一節(jié)我們將學(xué)習(xí)如何在我們的工程里使用面向?qū)ο蟮姆绞竭M(jìn)行封裝。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2554

    文章

    51632

    瀏覽量

    758044
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1499

    瀏覽量

    125109
  • 學(xué)習(xí)板
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    12226
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    308

    瀏覽量

    71831
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    281

    瀏覽量

    17197
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    proteus第三方元器件庫(kù)

    本帖最后由 eehome 于 2013-1-5 09:59 編輯 網(wǎng)上找的,_proteus第三方元器件庫(kù)。解壓后直接安裝。
    發(fā)表于 12-05 08:23

    如何把第三方庫(kù)加到PROTEUS中?

    新手求教,弱弱的問(wèn)下,下了一個(gè)第三方庫(kù),說(shuō)是要先安裝,再添加路徑,可是我下來(lái)的第三方庫(kù)沒(méi)有看到安裝文件啊。還望指教如何添加!
    發(fā)表于 06-15 22:32

    Proteus 第三方元件庫(kù)

    第三方元件庫(kù),基本包含大部分常用元件的,分享給大家。
    發(fā)表于 04-16 22:06

    第三方dll調(diào)用問(wèn)題!!!

    第三方dll,沒(méi)有.h,labview怎么實(shí)現(xiàn)調(diào)用,dll可以用VS打開(kāi),類庫(kù)說(shuō)明也有
    發(fā)表于 05-11 09:14

    proteus第三方元件庫(kù)

    proteus第三方元件庫(kù)
    發(fā)表于 05-26 10:44

    下載python第三方庫(kù)

    python第三方庫(kù)的下載
    發(fā)表于 07-02 13:12

    怎樣去調(diào)用一個(gè)第三方驅(qū)動(dòng)庫(kù)

    怎樣去調(diào)用一個(gè)第三方驅(qū)動(dòng)庫(kù)呢?如何用IIC驅(qū)動(dòng)Terawins的圖像處理芯片T613呢?
    發(fā)表于 03-04 06:59

    鴻蒙開(kāi)源第三方組件資料合集

    1、鴻蒙開(kāi)源第三方組件——日志工具組件Timber_ohosTimber_ohos是一個(gè)帶有小型可擴(kuò)展API的日志工具組件,它可以給開(kāi)發(fā)者提供統(tǒng)一的API接口,來(lái)記錄不同類型的日志,幫助開(kāi)發(fā)者管理
    發(fā)表于 03-23 09:53

    使用MPU6050開(kāi)源庫(kù)將板子上的IMU模塊驅(qū)動(dòng)起來(lái)

    連接到一個(gè)軸磁力計(jì),MPU6050 能提供一個(gè)完整的九軸融合輸出到其主 I2C 端口。  二、調(diào)用開(kāi)源庫(kù)驅(qū)動(dòng)  新建工程example06
    發(fā)表于 03-28 14:46

    Arduino與MPU6050的通信

    為避免糾纏于電路細(xì)節(jié),我們直接使用集成的MPU6050模塊MPU6050的數(shù)據(jù)接口用的是I2C總線協(xié)議,因此我們需要Wire程序庫(kù)的幫助來(lái)實(shí)現(xiàn)Arduino與
    發(fā)表于 11-07 14:25 ?7907次閱讀
    Arduino與<b class='flag-5'>MPU6050</b>的通信

    移動(dòng)應(yīng)用第三方庫(kù)自動(dòng)檢測(cè)和分類

    移動(dòng)應(yīng)用中,廣泛使用第三方庫(kù)來(lái)幫助開(kāi)發(fā)和增強(qiáng)應(yīng)用功能.很多關(guān)于移動(dòng)應(yīng)用分析以及訪問(wèn)控制的研究工作,需要在分析之前對(duì)第三方庫(kù)進(jìn)行檢測(cè)、過(guò)濾或者對(duì)其進(jìn)行功能分類.當(dāng)前,大部分研究工作都以使
    發(fā)表于 12-29 14:35 ?0次下載

    MPU6050簡(jiǎn)介

    MPU6050簡(jiǎn)介什么是MPU6050MPU6050的特點(diǎn)MPU6050框圖MPU6050初始化MPU6050—DMP使用介紹
    發(fā)表于 12-06 11:51 ?76次下載
    <b class='flag-5'>MPU6050</b>簡(jiǎn)介

    MPU6050教程開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《MPU6050教程開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-25 15:18 ?11次下載
    <b class='flag-5'>MPU6050</b>教程<b class='flag-5'>開(kāi)源</b>分享

    MPU6050運(yùn)動(dòng)跟蹤設(shè)備開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《MPU6050運(yùn)動(dòng)跟蹤設(shè)備開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-29 14:57 ?7次下載
    <b class='flag-5'>MPU6050</b>運(yùn)動(dòng)跟蹤設(shè)備<b class='flag-5'>開(kāi)源</b>分享

    學(xué)會(huì)安裝第三方開(kāi)源庫(kù)

    你好,我是愛(ài)吃魚香ROS的小魚。秉承著拒絕重復(fù)造輪子的ROS精神,本節(jié)我們學(xué)習(xí)如何在我們的工程里安裝第三方開(kāi)源庫(kù)
    的頭像 發(fā)表于 07-13 14:35 ?1088次閱讀
    學(xué)會(huì)安裝<b class='flag-5'>第三方</b><b class='flag-5'>開(kāi)源</b><b class='flag-5'>庫(kù)</b>
    主站蜘蛛池模板: 国产AV白丝爆浆在线播放 | 无码一区国产欧美在线资源 | 久久爽狠狠添AV激情五月 | 国产人妻麻豆蜜桃色在线 | 97精品国产高清在线看入口 | 狠狠综合久久综合88亚洲 | 手机看片一区二区 | 穿着丝袜被男生强行啪啪 | 999久久免费高清热精品 | 亚洲精品一区三区三区在线观看 | 91免费网站在线看入口黄 | 国产精品久久久久久久A片冻果 | 色裕插插插影视 | 亚洲中文无码AV在线观看 | 5G年龄确认我已满18免费 | 99国内精品久久久久久久清纯 | 久久亚洲精选 | 亚洲日本乱码中文论理在线电影 | 青青草伊人网 | 国产精品AV无码免费播放 | 思思久99久女女精品 | gogogo在线观看 | 国产偷国产偷亚州清高 | 欧美三级在线完整版免费 | 日本夜爽爽一区二区三区 | 好男人好资源视频高清 | 久久视频在线视频观看天天看视频 | 芳草地在线观看免费视频 | 国产精品高清在线观看93 | 中文字幕人成人乱码亚洲AV | 99久在线国内在线播放免费观看 | 黑人阴茎插女人图片 | 国产乱国产乱老熟300部视频 | 受坐在攻腿上H道具PLAY | 福利视频久久 | 日本一卡2卡3卡四卡精品网站 | 披黑人猛躁10次高潮 | 18禁黄无遮挡禁游戏在线下载 | 精品视频免费在线 | 久久国产免费观看精品1 | 黑人巨茎大战白人女40CMO |