print("Hello, ESP32-S3!")
import machine
class MPU6050:
def __init__(self, i2c, addr=0x68):
self.i2c = i2c
self.addr = addr
self.i2c.writeto_mem(self.addr, 0x6B, b'\x00') # 唤醒传感器
def get_values(self):
raw_data = self.i2c.readfrom_mem(self.addr, 0x3B, 14)
def conv(msb, lsb):
val = (msb << 8) | lsb
return val if val < 32768 else val - 65536
return {
"AcX": conv(raw_data[0], raw_data[1]),
"AcY": conv(raw_data[2], raw_data[3]),
"AcZ": conv(raw_data[4], raw_data[5]),
"Tmp": conv(raw_data[6], raw_data[7]) / 340.00 + 36.53,
"GyX": conv(raw_data[8], raw_data[9]),
"GyY": conv(raw_data[10], raw_data[11]),
"GyZ": conv(raw_data[12], raw_data[13])
}
from machine import I2C, Pin
import time
# 初始化 I2C (ESP32-S3 常用 GPIO 8/9)
i2c = I2C(0, scl=Pin(9), sda=Pin(8))
# 初始化传感器
sensor = MPU6050(i2c)
print("开始读取 MPU6050 数据...")
while True:
data = sensor.get_values()
# 打印加速度和陀螺仪数据
print("加速度: X:{}, Y:{}, Z:{} | 陀螺仪: X:{}, Y:{}".format(
data["AcX"], data["AcY"], data["AcZ"],
data["GyX"], data["GyY"]
))
time.sleep(0.5)