1. 程式人生 > >MPU6050中資料輸出教程

MPU6050中資料輸出教程

硬體準備

  • MPU6050模組
  • Arduino UNO開發板
  • 杜邦線若干

第一部分:通過串列埠除錯助手檢視IMU輸出值

第一步:接線

在這裡插入圖片描述

第二步:燒錄程式

  • 從網上下載已有程式
  • 解壓縮
    • 將第一個檔案解壓縮得到的資料夾和第2個資料夾,複製到Arduino安裝目錄的libraries資料夾內,重啟Arduino。
      注意:在ubuntu16.04中,將上面兩個資料夾複製到~/sketchbook/libraries內
  • 燒錄程式
    • 通過 檔案 –> 示例 –> MPU6050 –> Examples –> MPU6050_DMP6 開啟程式,上傳。
      在這裡插入圖片描述
  • 遇到的一些問題總結:
    • 上傳的時候找不到I2Cdev.h檔案。因為之前下載的I2Cdev沒有找對,下載下來的檔案失效,我已經給了正確的下載地址。
    • 無法選擇串列埠
      • win7系統下:重新安裝驅動。
        • 控制面板–> 裝置管理器–> 埠(COM和LPT)–> Arduino UNO(COM3)–> 驅動程式–> 更新驅動程式–> 瀏覽我的計算機以查詢驅動程式軟體(R)–Arduino IDE安裝路徑/drives/x86(64位的作業系統選擇這個資料夾)
      • ubuntu16.04系統下:解除安裝brltty程式,重啟電腦。
        • 因為該程式與串列埠選擇衝突,解除安裝brltty即可解決問題。通過sudo apt-get remove brltty。
  • 開啟串列埠監控,設定波特率115200, 看到 “Send any character to begin DMP programming and demo: “ 時輸入任意一個字元,然後傳送。就能看到yaw, pitch 和roll的值,如下圖所示。
    在這裡插入圖片描述

第二部分:使用ROS視覺化

第一步:燒錄程式

  • 新建專案
    在arduino中,新建一個專案,複製檔案 –> 示例 –> MPU6050 –> Examples –> MPU6050_DMP6的內容。
    注意:是複製MOU6050_DMP6整個資料夾的內容。
  • 修改程式
    加註釋:”#define OUTPUT_READABLE_YAWPITCHROLL”
    去註釋:“#define OUTPUT_TEAPOT”
  • 上傳程式

第二步:建立ROS工作空間

  • 在ROS的工作目錄下,下載和編譯程式碼
    預設環境:ubuntu16.04,且已經安裝了ROS-kinetic
sudo apt-get install ros-kinetic-serial  

cd ~catkin_ws/src/
git clone https://github.com/fsteinhardt/mpu6050_serial_to_imu
git clone https://github.com/ccny-ros-pkg/imu_tools

cd ~catkin_ws/
catkin_make 
source ~catkin_ws/devel/setup.bash
  • 執行如下命令,就可以把mpu6050的值轉換為ROS的/imu 訊息,同時通過rviz看到mpu6050朝向的變化。
 roslaunch mpu6050_serial_to_imu demo.launch 
  • 但是並不能夠在viz看到IMU實時的變化,有哪位大聲可以指點一下嗎?
    在這裡插入圖片描述

參考資料:

https://maker.pro/arduino/tutorial/how-to-interface-arduino-and-the-mpu-6050-sensor https://blog.csdn.net/EAIBOT/article/details/51398074