這個模組能夠輸出六個數據,三個軸的傾斜角度跟加速度,但是角度是偵測水平變化,而加速度則是偵測線性運動的變化,在還沒開始使用前,自己就感到很困惑,因為拿到這個模組時,很懷疑這麼小的東西要怎麼偵測這兩種數據,尤其是還有陀螺儀,印象中,陀螺儀不就是一個陀螺在轉嗎?
於是上網用"mems 陀螺儀"查看看,了解是利用科氏力(科裡奧利力(Coriolis))的原理,在微電機裡面也不是真的有個陀螺,詳細就不去研究了,先知道個大概之後,就來用看看吧。
然後,又遇到問題了,我根本不知道有什麼SCL,SDA之類的,查到了SDA (Serial Data line),SCL (Serial Clock Line),的說明,這是兩個裝置通訊所用的接腳,至於通訊用的協定則是採用I2C,因為這個模組用的通訊協定是I2C,所以就會使用這兩個接腳,我有查到接腳的說明,路徑如下
https://www.mschoeffler.de/2017/10/05/tutorial-how-to-use-the-gy-521-module-mpu-6050-breakout-board-with-the-arduino-uno/
好,那arduino上呢?
- VCC (The breakout board has a voltage regulator. Therefore, you can connect the board to 3.3V and 5V sources.)
- GND
- SCL (Serial Clock Line of the I2C protocol.)
- SDA (Serial Data Line of the I2C protocol.)
- XDA (Auxiliary data => I2C master serial data for connecting the module to external sensors.)
- XCL (Auxiliary clock => I2C master serial clock for connecting the module to external sensors.)
- AD0 (If this pin is LOW, the I2C address of the board will be 0x68. Otherwise, if the pin is HIGH, the address will be 0x69.)
- INT (Interrupt digital output)
因為我用的是arduino nano,就查了一下接腳,A5是SCL,A4則是SDA
網路上有很多文章,我是參考底下這篇
http://dory168.blogspot.com/p/gy-521sensormpu-6050dmp-ic.html
函式庫是底下路徑,要注意的是所需要的函式庫是放在Arduino目錄下
https://github.com/jrowberg/i2cdevlib
還有,文章中有提到驗證會出現錯誤,我抓的版本沒有,也許有修正錯誤了
因為有輸出數據,就不想去研究了
看到了數字,就想試試看圖像化的效果,
但是,在下載 “Toxi” 函式庫時遇到問題,因為這個連結過去的好像不是,就GOOGLE了一下,從網站首頁找下底下的網址
https://bitbucket.org/postspectacular/toxiclibs/downloads/
結果,安裝processing的時候又遇到了問題,出現警告訊息說有檔案遺失而無法安裝,於是試了幾個版本,最新版都不行,防毒都關了也沒用,只有2.2.1可以開啟,但是編譯的時候卻出現錯誤,看來是JVM的版本不合,抓了各種JVM都不行,就卡在這裡了。
而且發現,瞬間超過某個角度之後,MPU6050就會當掉,又再上網查了之後知道這是抓data時會頓停的問題,但是就必須要連arduino都要重開,所以又在找到下面的文章,使用他的程式碼後就好了。
http://microchip.eefocus.com/module/forum/thread-57814-1-1.html