MPU6050三軸陀螺儀及三軸加速計感測模組

MPU6050支援I2C介面,連接的方式非常簡單,也能夠很快地上手使用。

在NodeMCU的MicroPython中,已經有熱心的高手幫我們寫好了模組,可以直接拿來使用:

同學們只要把上面的模組下載下來解壓縮,會看到一個mpu6050.py的檔案,把那個檔案利用ampy上傳到NodeMCU的板子上,同時接上5V的電源以及GND,並把SLC接到D1,SDA接到NodeMCU的D2,在硬體上的連線就算是完成了。接線之後的外觀如下所示:

在模組中即有使用Shell介面的方式操作的範例。如果我們打算量測一下靜置一段時間之平均數據,程式可以編寫如下:

from machine import I2C, Pin
import mpu6050, time
i2c = I2C(scl=Pin(5), sda=Pin(4))
acc = mpu6050.accel(i2c)
count = 600
delta = 0.1
sum_x, sum_y, sum_z = 0, 0, 0
for i in range(count):
time.sleep(delta)
d = acc.get_values()
sum_x += d['GyX']
sum_y += d['GyY']
sum_z += d['GyZ']
avg_x = float(sum_x) / count
avg_y = float(sum_y) / count
avg_z = float(sum_z) / count
with open("avg_values.txt", "wt", encoding='utf-8') as fp:
fp.write("x:{}, y:{}, z:{}\n".format(avg_x, avg_y, avg_z))

在按下RESET按鈕執行main.py程式一段時間之後,即可利用ampy來看看平均值是多少(它會寫在avg_values.txt檔案中):