mirror of
https://github.com/m5stack/M5Stack_MicroPython.git
synced 2026-05-20 10:14:44 -07:00
Updated MicroPython scheduler functions Updated all affected modules esp-idf sdspi_host driver refactored Using SDCard in SPI mode and display at the same time now works Tested on M5Stack & Adafruit 2.4" TFT Featherwing Display module refactored uses (modified) esp-idf spi-master driver 16-bit color mode added low level display functions added get TP calibration constants function added Backlight on/off function added M5Stack & GENERIC display types added display initialization sequence for unknown display types can now be handled from MicroPython tpcalib frozen module updated I2C module refactored SLAVE mode added Low level I2C functions added esp-idf i2c driver modified SPI module updated UART module updated network module updated machine module: added method for reading internal ESP32 temperature sensor _thread module: status of the system tasks is now available in _thread.list() os module: SDCard mode can now be configured from MicroPython time.ticks_xx() functions now returns correct tick count after time update rtc module updated Added MPU9250 frozen module (available on M5Stack) Experimental Bluetooth support, not yet finished Experimental support for eve display modules, not yet finished License file added License information in many source files updated/added
71 lines
1.8 KiB
Python
71 lines
1.8 KiB
Python
#
|
|
# This file is part of MicroPython MPU9250 driver
|
|
# Copyright (c) 2018 Mika Tuupola
|
|
#
|
|
# Licensed under the MIT license:
|
|
# http://www.opensource.org/licenses/mit-license.php
|
|
#
|
|
# Project home:
|
|
# https://github.com/tuupola/micropython-mpu9250
|
|
#
|
|
|
|
"""
|
|
MicroPython I2C driver for MPU9250 9-axis motion tracking device
|
|
"""
|
|
|
|
# pylint: disable=import-error
|
|
from micropython import const
|
|
from mpu6500 import MPU6500
|
|
from ak8963 import AK8963
|
|
# pylint: enable=import-error
|
|
|
|
__version__ = "0.2.0-dev"
|
|
|
|
class MPU9250:
|
|
"""Class which provides interface to MPU9250 9-axis motion tracking device."""
|
|
def __init__(self, i2c, mpu6500 = None, ak8963 = None):
|
|
if mpu6500 is None:
|
|
self.mpu6500 = MPU6500(i2c)
|
|
else:
|
|
self.mpu6500 = mpu6500
|
|
|
|
if ak8963 is None:
|
|
self.ak8963 = AK8963(i2c)
|
|
else:
|
|
self.ak8963 = ak8963
|
|
|
|
@property
|
|
def acceleration(self):
|
|
"""
|
|
Acceleration measured by the sensor. By default will return a
|
|
3-tuple of X, Y, Z axis values in m/s^2 as floats. To get values in g
|
|
pass `accel_fs=SF_G` parameter to the MPU6500 constructor.
|
|
"""
|
|
return self.mpu6500.acceleration
|
|
|
|
@property
|
|
def gyro(self):
|
|
"""
|
|
Gyro measured by the sensor. By default will return a 3-tuple of
|
|
X, Y, Z axis values in rad/s as floats. To get values in deg/s pass
|
|
`gyro_sf=SF_DEG_S` parameter to the MPU6500 constructor.
|
|
"""
|
|
return self.mpu6500.gyro
|
|
|
|
@property
|
|
def magnetic(self):
|
|
"""
|
|
X, Y, Z axis micro-Tesla (uT) as floats.
|
|
"""
|
|
return self.ak8963.magnetic
|
|
|
|
@property
|
|
def whoami(self):
|
|
return self.mpu6500.whoami
|
|
|
|
def __enter__(self):
|
|
return self
|
|
|
|
def __exit__(self, exception_type, exception_value, traceback):
|
|
pass
|