bmi270 — BMI270 6 eksenli IMU¶
Bosch BMI270 düşük güç tüketimli 6 eksenli ataletsel ölçüm birimi (3 eksenli ivmeölçer artı 3 eksenli jiroskop) için I2C üzerinden çalışan sürücü. Sürücü, yapıcıda istenen çıktı veri hızlarını ve tam ölçek aralıklarını yapılandırmadan önce eksiksiz BMI270 başlatma dizisini gerçekleştirir — yazılımsal sıfırlama, güç tasarrufunu devre dışı bırakma, yapılandırma bloğunun (blob) yüklenmesi ve durum doğrulaması.
Sınıf, isteğe bağlı olarak harici bir bmm150.BMM150 manyetometre örneğine bağlanabilir; böylece çağıranlar bir BMI270 + BMM150 çiftini magnet() yöntemi aracılığıyla tek bir 9 eksenli aygıt olarak ele alabilir.
Not
SPI modu bu sürücü tarafından desteklenmez; I2C olmayan bir veri yolu geçirmek ValueError hatası oluşturur.
Örnek:
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)
Sınıflar¶
- 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)¶
Bir
BMI270örneği oluşturur ve eksiksiz yapılandırma yükleme başlatma dizisini çalıştırır. Yonga kimliği eşleşmezse veya yükleme dizisi başarısız olursaOSErrorhatası oluşturur.busSensörün bağlı olduğu, yapılandırılmış bir
machine.I2Cveri yolu.csSPI modu için ayrılmıştır.
Noneolarak bırakılmalıdır; SPI şu anda uygulanmamıştır ve I2C olmayan bir veri yolu sağlamakValueErrorhatası oluşturur.addressAygıtın 7 bitlik I2C adresi. Varsayılan değer
0x68‘dir; bazı kartlar SDO pinini yüksek seviyeye bağlayarak0x69adresini seçer.gyro_odrHz cinsinden jiroskop çıktı veri hızı.
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800veya1200değerlerinden biri olmalıdır.gyro_scaleSaniyede derece cinsinden jiroskop tam ölçek aralığı.
125,250,500,1000veya2000değerlerinden biri olmalıdır.accel_odrHz cinsinden ivmeölçer çıktı veri hızı.
gyro_odrile aynı değer kümesi.accel_scaleg cinsinden ivmeölçer tam ölçek aralığı.
2,4,8veya16değerlerinden biri olmalıdır.bmm_magnetİsteğe bağlı
bmm150.BMM150örneği. Sağlandığında,magnet()yöntemi ona devreder; aksi takdirdemagnet()sıfır döndürür.
- reset() None¶
BMI270 yazılımsal sıfırlama komutunu yayınlar. Bunu çağırdıktan sonra, aygıtın daha fazla kullanılmadan önce yeniden başlatılması gerekir.
- gyro() tuple[float, float, float]¶
Jiroskop vektörünü
(x, y, z)saniyede derece cinsinden,gyro_scaledeğerine göre ölçeklenmiş olarak döndürür.