這裡介紹如何在 Raspberry Pi 上面安裝 MPU-6050 加速度計與陀螺儀六軸感測器,並且透過 I2C 讀取 sensor 上的資料。
MPU-6050 是一個六軸感測器,包含三軸加速度計與三軸陀螺儀,其價格便宜(上拍賣網站買,80 元就有了),用途也很廣泛,一般的手機、平板電腦幾乎都會有這個感測器。
它的加速度計與陀螺儀可以藉由程式動態控制測量數值的範圍,加速度計的範圍有 ±2g、±4g、±8g 與 ±16g 可以選擇,而陀螺儀的測量範圍有 ±250 度/秒、±500 度/秒、±1000 度/秒與 ±2000 度/秒。
Step 1
首先準備好 MPU-6050 感測器與相關必要的零件,如果不講究的話,只要有杜邦線可以接得起來就行了,麵包板有沒有其實無所謂,不過有麵包板接起來比較方便就是了。
這裡當然也要記得準備好自己的 Raspberry Pi,如果光只有 MPU-6050 是不能用的。
Step 2
把 MPU-6050 感測器按照下面的接法接上 Raspberry Pi B+:
對照實際的照片會像這樣。
如果您買的 MPU-6050 感測器是沒有焊接好排針的,可能會不太好接,因為排針插上去如果沒有焊起來通常容易接觸不良,建議還是直接把排針焊上去,否則很容易出問題。
正常來說,MPU-6050 接上去之後,有個紅燈會亮,如果燈沒亮大概就是有問題。
這是 Raspberry Pi B+ 上插上杜邦線的情況。
Step 3
編輯 /etc/modules
,在這個檔案的最後加上兩行:
i2c-bcm2708 i2c-dev
Step 4
編輯 /etc/modprobe.d/raspi-blacklist.conf
,把 spi-bcm2708
與 i2c-bcm2708
兩個模組註解起來:
#blacklist spi-bcm2708 #blacklist i2c-bcm2708
設定完之後,重新啟動:
sudo reboot
Step 5
安裝 i2c-tools
套件:
sudo apt-get install i2c-tools
然後使用 i2cdetect
偵測一下是否有抓到 I2C 的設備:
sudo i2cdetect -y 1
輸出為
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
這裏可以看出來在 0x68
的位置有偵測到一個設備,這個就是我們的 MPU-6050 感測器。
i2cdetect -y 1
指令的最後一個參數 1
是指定要掃描的 I2C 匯流排名稱,如果是用舊的 Raspberry Pi Rev. 1 就要指定為 0
。不確定自己的板子該用哪一個的話,可以使用這個指令查詢:
sudo i2cdetect -l
輸出會像這樣:
i2c-1 i2c bcm2708_i2c.1 I2C adapter
Step 6
使用 i2cget
指令嘗試讀取 0x68
這個 I2C 設備的 register 0x75
的值:
sudo i2cget -y 0 0x68 0x75
正常來說,MPU-6050 的 register 0x75
的值會是 0x68
,輸出應該會像這樣:
0x68
如果看到這樣的值,就代表 MPU-6050 已經可以把資料傳回 Raspberry Pi 了,接下來您可以使用 C++ 來讀取 MPU-6050 的感測資料。
如果您對於樹莓派的應用有興趣,建議您可以繼續閱讀物聯網的相關文章。