樹莓派連接9軸IMU傳感器(GY-85 模塊)

9軸IMU傳感器(GY-85 模塊) 其實也可以看作三個模塊 `ITG3205 三軸陀螺儀傳感器` `ADXL345 三軸加速度傾角傳感器` `HMC5883L 電子羅盤`
GY-85模塊的接口是i2c, 可以方便的和arduino/樹莓派鏈接.
## 準備工作
確保系統安裝了quick2wire庫,如果沒有,移步這里 http://www.rzrgm.cn/hangxin1940/archive/2013/04/04/2999015.html
在合適的目錄下載thinkbowl的i2clibraries庫
git clone https://bitbucket.org/thinkbowl/i2clibraries.git
此i2clibraries庫恰好包含了`ITG3205` `ADXL345` `HMC5883L` 這三種傳感器接口,很方便開發,要注意的是 `i2c_itg3205.py`接口中,默認對應 `ITG3205`設備地址為`69`,為了以后省事,將相關注釋下面的代碼做更改
# Address will always be either 0x68 (104) or 0x69 (105)
def __init__(self, port, addr=0x68): #這里的addr改為68, 原值為69
## 連接

這張圖指明了兩排GPIO真腳中5V輸出與3.3V輸出的位置,用以指明方向

這張圖具體說明了GY-85的真腳與樹莓派GPIO/I2C針角的連接方式
雖然GY-85有8個真腳,但用到的也只有四個
## 測試
運行`i2cdetect`查看當前所連接的i2c設備
樹莓派A型:
sudo i2cdetect -y 0
樹莓派B型:
sudo i2cdetect -y 1
將會看到所有已經連接的i2c設備的地址

其中 地址`68`對應了`ITG3205`設備, `53`對應了`ADXL345`設備, `1e`對應了`HMC5883L`設備
到這里,GY-85模塊已經順利的介入到樹莓派上
## 獲取 ITG3205 陀螺儀信息
更多信息請移步 http://think-bowl.com/raspberry-pi/i2c-python-library-3-axis-mems-gyro-itg-3205-with-the-raspberry-pi/
新建腳本`i2c_itg3205.py`, 注意此腳本的位置,確保能引用之前下載的`i2clibraries`包, 或者將之前下載的python包添加至引用路徑.
from i2clibraries import i2c_itg3205
from time import *
itg3205 = i2c_itg3205.i2c_itg3205(0)
while True:
(itgready, dataready) = itg3205.getInterruptStatus()
if dataready:
temp = itg3205.getDieTemperature()
(x, y, z) = itg3205.getDegPerSecAxes()
print("Temp: "+str(temp))
print("X: "+str(x))
print("Y: "+str(y))
print("Z: "+str(z))
print("")
sleep(1)
運行此腳本
python3 i2c_itg3205.py
輸出
Temp: 26.73
X: -8.278260869565218
Y: -12.869565217391305
Z: -28.034782608695654
Temp: 26.86
X: -1.808695652173913
Y: 3.4782608695652173
Z: -13.773913043478261
## 獲取 ADXL345 三軸/傾角信息
更多信息請移步 http://think-bowl.com/raspberry-pi/i2c-python-library-3-axis-digital-accelerometer-adxl345-with-the-raspberry-pi/
新建腳本`i2c_adxl345.py`
from i2clibraries import i2c_adxl345
from time import *
adxl345 = i2c_adxl345.i2c_adxl345(0)
while True:
print(adxl345)
sleep(1)
輸出
X: -0.40625
Y: 0.15625
Z: -0.9375
X: -0.40625
Y: 0.15625
Z: -0.9375
## 獲取 HMC5883L 電子羅盤信息
更多信息請移步 http://think-bowl.com/raspberry-pi/i2c-python-library-3-axis-digital-compass-hmc5883l-with-the-raspberry-pi/
新建腳本`i2c_hmc5883l.py`
from i2clibraries import i2c_hmc5883l
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(0)
hmc5883l.setContinuousMode()
hmc5883l.setDeclination(9,54)
print(hmc5883l)
輸出
Axis X: -114.08
Axis Y: -345.92
Axis Z: -286.12
Declination: 9° 54'
Heading: 261° 39'
## hack it!
上面示例代碼很簡單,但通過`i2clibraries`與上面示例代碼,我們足以開發自己的應用了.
浙公網安備 33010602011771號