bmi270 — BMI270 6-akselinen IMU¶
Ajuri Bosch BMI270 -pienitehoiselle 6-akseliselle inertiamittausyksikölle (3-akselinen kiihtyvyysanturi ja 3-akselinen gyroskooppi) I2C-väylän kautta. Ajuri suorittaa täyden BMI270-alustussekvenssin muodostuksen yhteydessä — pehmeä nollaus, virransäästön poiskytkentä, konfiguraatio-blobin lataus ja tilan varmennus — ennen kuin se asettaa pyydetyt ulostulodataajat ja täysasteikkoalueet.
Luokka voidaan valinnaisesti liittää ulkoiseen bmm150.BMM150-magnetometri-instanssiin, jolloin kutsujat voivat käsitellä BMI270 + BMM150 -paria yhtenä 9-akselisena laitteena magnet()-metodin kautta.
Muista
Tämä ajuri ei tue SPI-tilaa; muun kuin I2C-väylän antaminen nostaa virheen ValueError.
Esimerkki:
import time
from machine import Pin, I2C
from bmi270 import BMI270
imu = BMI270(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.accel()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
Luokat¶
- class bmi270.BMI270(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x68, gyro_odr: float = 100, gyro_scale: int = 2000, accel_odr: float = 100, accel_scale: int = 4, bmm_magnet: BMM150 | None = None)¶
Muodostaa
BMI270-instanssin ja suorittaa täyden konfiguraation latausalustussekvenssin. Nostaa virheenOSError, jos sirun tunnus ei täsmää tai jos latausekvenssi epäonnistuu.busKonfiguroitu
machine.I2C-väylä, johon sensori on liitetty.csVarattu SPI-tilaa varten. Täytyy jättää arvoon
None; SPI:tä ei ole tällä hetkellä toteutettu, ja muun kuin I2C-väylän antaminen nostaa virheenValueError.addressLaitteen 7-bittinen I2C-osoite. Oletuksena
0x68; jotkin kortit kytkevät SDO-nastan ylös, mikä valitsee osoitteen0x69.gyro_odrGyroskoopin ulostulodataaja hertseinä. Täytyy olla yksi seuraavista:
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800tai1200.gyro_scaleGyroskoopin täysasteikkoalue asteina sekunnissa. Täytyy olla yksi seuraavista:
125,250,500,1000tai2000.accel_odrKiihtyvyysanturin ulostulodataaja hertseinä. Sama arvojoukko kuin
gyro_odr.accel_scaleKiihtyvyysanturin täysasteikkoalue g-yksiköissä. Täytyy olla yksi seuraavista:
2,4,8tai16.bmm_magnetValinnainen
bmm150.BMM150-instanssi. Kun se annetaan,magnet()-metodi delegoi sille; muutoinmagnet()palauttaa nollia.
- reset() None¶
Lähettää BMI270:n pehmeän nollauskomennon. Tämän kutsumisen jälkeen laite täytyy alustaa uudelleen ennen jatkokäyttöä.
- gyro() tuple[float, float, float]¶
Palauttaa gyroskoopin vektorin
(x, y, z)asteina sekunnissa, skaalattunagyro_scale-arvon mukaisesti.