MPU6050 korvaaja: mikä IMU tilalle vanhentuneen jälkeen?

Kysymys tulee vastaan yhä useammin, yleensä kesken projektin: onko MPU6050 vanhentunut, ja tarvitsenko sille korvaajan? Lyhyt vastaus on kaksiosainen. Kyllä, MPU-6050-piiri on TDK:n omassa tuotetietokannassa merkitty vanhentuneeksi (Obsolete), eikä sitä suositella uusiin suunnitteluihin. Ei, sinun ei tarvitse tehdä yhtään mitään: moduuleja valmistetaan edelleen suuria määriä, ne ovat helposti saatavilla, ja aloittelijalle MPU-6050 on yhä helpoin 6-akselinen IMU saada toimimaan. Siksi mpu6050 korvaaja kannattaa hankkia vasta silloin, kun projekti sitä oikeasti vaatii.

Vaihtaminen kannattaa vain silloin, kun projektisi tarvitsee jotain, mitä MPU-6050 ei koskaan osannut: joko pelkkää kiihtyvyyttä murto-osalla virrankulutuksesta, tai todellisen kompassisuunnan ilman että kirjoitat itse suodatinkoodia. Tässä artikkelissa käydään läpi kumpikin polku, kerrotaan rehellisesti mitä EOL ja NRND oikeasti tarkoittavat harrastajalle, ja selitetään miksi TDK:n oma suositus ICM-42670-P ei ole se mpu6050 korvaaja, jota useimmat luulevat etsivänsä.

Sisällysluettelo

  1. Lyhyt vastaus: mikä on vanhentunut
  2. Mitä EOL ja NRND tarkoittavat
  3. Milloin MPU-6050 on yhä oikea
  4. ADXL345: pelkkä kiihtyvyys
  5. BNO055: todellinen kompassisuunta
  6. Entä ICM-42670-P?
  7. Vertailutaulukko: kolme vaihtoehtoa
  8. Kloonipiirit ja WHO_AM_I
  9. Kaikki kolme vaihtoehtoa kerralla
  10. Valintapuu ja yhteenveto

Lyhyt vastaus: mikä tarkalleen on vanhentunut

TDK InvenSense on lopettanut MPU-6050-piirin valmistuksen eikä suosittele sitä uusiin tuotesuunnitteluihin. Saman tuotesivun ”Recommended Alternate” -kohdassa on ICM-42670-P, mutta TDK lisää itse varauksen: vaihtokelpoisuutta ei taata. Myös jakelijat, kuten DigiKey, merkitsevät osan vanhentuneeksi ja evaluointikortin lopetetuksi.

Moduulitaso on eri asia. GY-521-tyyppisiä MPU-6050-kortteja valmistetaan edelleen volyymituotantona, ne ovat varastossa, eikä piirin elinkaaripäätös tee olemassa olevista korteista yhtään huonompia siinä, mitä ne tekevät. Jos rakennat luokkasarjan, prototyypin tai yksittäisen harrasteprojektin, kymmenen vuoden aikana kertynyt opetusmateriaali, kytkentäkuvat ja kirjastotuki tekevät MPU-6050:stä yhä helpoimman 6-akselisen anturin.

Riski on todellinen vain yhdessä tapauksessa: jos suunnittelet tuotetta, jota valmistetaan useita vuosia, lopetetun piirin varaan rakentaminen tarkoittaa saatavuusriskiä. Se ei ole harrastajan ongelma.

Mitä EOL ja NRND oikeasti tarkoittavat harrastajalle

Elinkaaritermit kannattaa avata, koska niitä käytetään verkkokeskusteluissa väärin. NRND tarkoittaa ”not recommended for new designs”: osa on edelleen tuotannossa ja ostettavissa, valmistaja vain ohjaa uudet suunnittelut muualle. Se on varhaisin muodollinen varoitus, usein vuosia ennen mitään lopetusilmoitusta.

Kolme asiaa, joita NRND ei tarkoita:

  • Se ei ole EOL-ilmoitus. Viimeistä ostopäivää ei ole olemassa ennen muodollista lopetusilmoitusta.
  • Se ei ole laatuvika. Osa täyttää edelleen datalehtensä arvot.
  • Se ei ole tiedossa olevan pituinen lähtölaskenta. Jotkin osat pysyvät NRND-tilassa vuosikymmenen ajan, ja toimitukset jatkuvat.

Sanasto vaihtelee valmistajittain: TI käyttää ketjua Preview–Active–NRND–Last Time Buy–Obsolete, ST:llä on Active/NRND/EOL/Obsolete, NXP päättää ”No Longer Manufactured” -tilaan, Microchipillä ei ole NRND-vaihetta vaan ”Mature”, ja Renesas puhuu ”Non-Promotion” -tilasta. Kun lopetusilmoitus on annettu, JEDEC-standardi J-STD-048 asettaa vähintään kuusi kuukautta viimeisille tilauksille ja 12 kuukautta viimeiselle toimitukselle.

Tässä on tärkeä perspektiivi: ”vanhentunut” on MEMS-antureissa normaalitila, ei vika. BNO055 on Bosch Sensortecin omalla tuotesivulla NRND. BMI160 on EOL. MPU-9250 on EOL, ja ICM-20948 on niin ikään matkalla ulos. Toisin sanoen klassinen neuvo ”osta vain MPU-9250 tilalle” ei enää päde. Ainoa näistä, jonka elinkaaritila on tällä hetkellä täysin terve, on ADXL345 (Analog Devices listaa sen tuotannossa olevaksi).

Milloin MPU-6050 on edelleen oikea valinta

MPU-6050 kiihtyvyysanturi- ja gyroskooppimoduuli
MPU-6050 kiihtyvyysanturi- ja gyroskooppimoduuli – GY-521-tyyppinen kortti valmiiksi juotetuilla riviliittimillä, oma 3,3 V:n regulaattori ja I2C-ylösvedot paikallaan.

Useimmille lukijoille rehellinen vastaus on: pysy siinä missä olet. MPU-6050 kiihtyvyysanturi- ja gyroskooppimoduuli on edullinen, ja siinä on valmiiksi juotetut riviliittimet, oma 3,3 V:n regulaattori (toimii siis suoraan 5 V:n Arduinolla) ja ylösvetovastukset SDA/SCL-linjoilla. Kiihtyvyyttä mitataan kolmella akselilla ±16 g:hen asti ja gyroskoopilla ±2000 °/s:aan asti, molemmille 16-bittisellä AD-muuntimella.

Pidä MPU-6050, jos:

  • Opettelet I2C-väylää tai anturifuusiota. Oppimateriaalin ja kirjastojen määrä on vertaansa vailla.
  • Rakennat luokkasarjoja tai STEM-paketteja: halvin mahdollinen 6-akselinen, valmiiksi juotettu, 5 V:lle turvallinen.
  • Teet itsestään tasapainottuvaa robottia, luet kallistuskulmaa ja kiertonopeutta, tunnistat eleitä tai mittaat tärinää. Rautatasolla mikään ei ole muuttunut.
  • Sinulla on jo toimiva MPU-6050-koodi. Vaihdon todellinen kustannus on ohjelmisto, ei kytkentä: uusi kirjasto, uusi rekisterikartta ja suodattimen uudelleenviritys.

Kytkentä Arduino Nanoon on yksinkertainen: VCC→5V, GND→GND, SDA→A4, SCL→A5 ja halutessa INT→D2. Kytkentä, raakadatan luku, komplementaarisuodatin ja PID-tasapainotus käydään vaihe vaiheelta läpi oppaassa MPU-6050 Arduino-opas: kytkentä, koodi ja kallistuskulmat — tämä artikkeli on sen syventävä jatko-osa, ei korvaaja.

Yksi tavallisimmista aloittelijan kompastuskivistä kannattaa mainita: MPU-6050 käynnistyy unitilaan. Rekisteri PWR_MGMT_1 (0x6B) on nollattava käynnistyksessä, muuten kaikki mittaukset lukevat nollaa. Samasta rekisteristä kannattaa valita kellolähteeksi gyron PLL (arvo 0x01) sisäisen 8 MHz:n oskillaattorin sijaan — se vähentää lämpöryömintää mitattavasti. Mittausalueet asetetaan rekistereistä GYRO_CONFIG (0x1B) ja ACCEL_CONFIG (0x1C), ja oletusskaalat ovat ±2 g → 16384 LSB/g sekä ±250 °/s → 131 LSB/(°/s).

Vaihtoehto 1: ADXL345, jos tarvitset vain kiihtyvyyttä

Yllättävän suuri osa MPU-6050-projekteista ei lue gyroskooppia koskaan. Jos sketsissäsi luetaan vain kiihtyvyysarvoja, Fermion ADXL345 3-akselinen kiihtyvyysanturi on parempi työkalu.

Fermion ADXL345 3-akselinen kiihtyvyysanturi
Fermion ADXL345 3-akselinen kiihtyvyysanturi – ±16 g, 13-bittinen resoluutio, I2C ja SPI sekä alle 40 µA:n mittausvirta.

Miksi se voittaa MPU-6050:n omalla alueellaan:

  • Virrankulutus: ~40 µA mitatessa ja 0,1 µA valmiustilassa, kun MPU-6050 vetää noin 3,9 mA. Ero on lähes satakertainen — ratkaiseva paristokäyttöisissä ja puettavissa laitteissa.
  • Tapahtumat raudassa: yksöis- ja kaksoisnaputus, vapaa pudotus sekä aktiivisuus/passiivisuus omilla kynnysarvoilla tulevat keskeytyksinä INT1/INT2-nastoihin. Mitään ei tarvitse laskea silmukassa.
  • Tarkkuus staattisessa kallistuksessa: 13 bittiä ±16 g:llä, 4 mg/LSB, erottaa alle yhden asteen kallistusmuutokset.
  • 3D-tulostimen resonanssimittaus: ADXL345 on Klipperin input shaper -virityksen de facto -standardiosa.
  • SPI vaihtoehtona: jos I2C-väylä on täynnä tai häiriöinen, sekä 32-tasoinen FIFO.
  • Näytteenottotaajuus 0,1–3200 Hz BW_RATE-rekisteristä (0x2C). Klipperin resonanssimittaus ajaa osan 3200 Hz:llä SPI:n yli; kallistusmittaukseen riittää 12,5–50 Hz, mikä pudottaa kulutuksen alle 40 µA:iin.

Kaksi rehellistä varausta. Ensinnäkin ADXL345 ei korvaa MPU-6050:tä missään, jossa gyroskooppia luetaan — se on 6-akselisen ratkaisun kiihtyvyyspuolikas. Toiseksi se on 2,0–3,6 V:n osa, eli 5 V:n Arduino Unolla tai Nanolla tarvitset BSS138-tyyppisen kaksisuuntaisen tasonmuuntimen SDA/SCL-linjoille. ESP32- tai Pico-alustalla kytket sen suoraan 3,3 V:iin. Fermion-korttien riviliitin on irrallinen, joten juottaminen on pakollista.

Tässä on kallistuskulman laskenta pelkällä Wire-kirjastolla, osoitteessa 0x53:

#include <Wire.h>
#define DEVICE (0x53)   // ADXL345 I2C-osoite
#define TO_READ (6)
byte buff[TO_READ];
int regAddress = 0x32;  // DATAX0
int x, y, z;
double roll = 0.0, pitch = 0.0;

void setup() {
  Wire.begin(); Serial.begin(9600);
  writeTo(DEVICE, 0x2D, 0);
  writeTo(DEVICE, 0x2D, 16);
  writeTo(DEVICE, 0x2D, 8);   // POWER_CTL -> mittaustila
}

void loop() {
  readFrom(DEVICE, regAddress, TO_READ, buff);
  x = (((int)buff[1]) << 8) | buff[0];
  y = (((int)buff[3]) << 8) | buff[2];
  z = (((int)buff[5]) << 8) | buff[4];
  roll  = atan2((double)y, (double)z) * 57.3;              // 57.3 = 180/pi
  pitch = atan2(-(double)x, sqrt((double)y*y + (double)z*z)) * 57.3;
  Serial.print("Roll: ");  Serial.print(roll);
  Serial.print("  Pitch: "); Serial.println(pitch);
  delay(50);
}

void writeTo(int device, byte address, byte val) {
  Wire.beginTransmission(device); Wire.write(address); Wire.write(val);
  Wire.endTransmission();
}

void readFrom(int device, byte address, int num, byte buff[]) {
  Wire.beginTransmission(device); Wire.write(address); Wire.endTransmission();
  Wire.beginTransmission(device); Wire.requestFrom(device, num);
  int i = 0; while (Wire.available()) { buff[i] = Wire.read(); i++; }
  Wire.endTransmission();
}

Huomaa mitä koodi ei tuota: yaw-kulmaa. Pelkällä kiihtyvyysanturilla saat rollin ja pitchin, mutta ei koskaan kiertoa pystyakselin ympäri. Painovoima ei anna siitä mitään informaatiota. Tämä on selkein tapa ymmärtää koko jatkumo MPU-6050:stä BNO055:een.

Vaihtoehto 2: BNO055, jos tarvitset todellisen suunnan

MPU-6050:n vaikein ongelma ei koskaan ollut rauta vaan se, miten raaka gyro ja kiihtyvyys muutetaan vakaaksi asennoksi. Komplementaari- tai Kalman-suodatin, ryöminnän hallinta — ja koska magnetometria ei ole, absoluuttista suuntaa ei saa lainkaan. Numerona: Z-akselin (yaw) ryömintä on gyron integrointivirheestä noin 0,05–0,1 °/s eli 3–6 astetta minuutissa. Navigointiin se on käyttökelvoton.

Fermion BNO055 9-akselinen IMU-anturi
Fermion BNO055 9-akselinen IMU-anturi – kiihtyvyys, gyro ja magnetometri sekä Cortex-M0+, joka laskee kvaterniot puolestasi.

Fermion BNO055 9-akselinen IMU-anturi ratkaisee juuri tämän. Kotelon sisällä on 14-bittinen kiihtyvyysanturi, 16-bittinen gyroskooppi, geomagneettinen anturi ja 32-bittinen ARM Cortex-M0+ -ydin, joka ajaa Boschin anturifuusio-ohjelmistoa. NDOF-tilassa se yhdistää magneettisen pohjoisen, painovoiman ja kiertonopeuden itse, ja sinä luet valmiin kvaternion tai Euler-kulmat rekistereistä. Isäntämikrokontrolleri ei suodata mitään.

Adafruitin kirjastolla koko silmukka on kuusi riviä eikä suodatinta näy missään:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>

Adafruit_BNO055 bno = Adafruit_BNO055(55);

void setup() {
  Serial.begin(9600);
  if (!bno.begin()) {
    Serial.println("BNO055 ei loytynyt - tarkista kytkenta ja I2C-osoite");
    while (1);
  }
  delay(1000);
  bno.setExtCrystalUse(true);
}

void loop() {
  sensors_event_t event;
  bno.getEvent(&event);
  Serial.print("Suunta: ");   Serial.print(event.orientation.x, 2);  // heading
  Serial.print("\tRoll: ");   Serial.print(event.orientation.y, 2);
  Serial.print("\tPitch: ");  Serial.println(event.orientation.z, 2);
  delay(100);
}

Kytkentä, osoitteet ja tunnetut sudenkuopat

Kytkentä 5 V:n Arduinoon: Vin→5V, GND→GND, SDA→A4, SCL→A5. Syöttö on 3,3–5,5 V ja I2C 5 V -yhteensopiva, oletusosoite 0x28 (juotoshyppy vaihtaa 0x29:ään, mikä on pakollista esimerkiksi Arduino Zerolla, jossa sisäinen debuggeri varaa 0x28:n).

Rehelliset varaukset: BNO055 on Boschilla NRND ja OEM-polku on BHI260AB + BMM150, mutta osaa on hyvin varastossa ja se on harrastajille selvästi parhaiten tuettu fuusio-IMU. I2C:n clock stretching on todellinen kiusa — sisäinen prosessori pitää SCL:ää alhaalla laskiessaan, ja Arduinon Wire.h sekä osa ESP32-ajureista käsittelevät sen huonosti. Korjaus 1: käytä anturia UART-tilassa. Korjaus 2: valvo Wire.endTransmission()-aikakatkaisuja ja nykäise RST-nastaa GPIO:sta.

Magnetometri vaatii kalibroinnin ja puhtaan magneettisen ympäristön: pidä kortti kaukana moottoreista, kaiuttimista ja suurivirtaisista johdotuksista. Fuusio päällä kulutus on noin 13 mA, eli tämä ei ole paristosäästöosa. Eikä se ole tarkempi raa’an kiertonopeuden mittaaja — ostat fuusion ja suunnan, et parempaa gyroa.

Entä ICM-42670-P, TDK:n oma suositus?

ICM-42670-P on hieno piiri: 6-akselinen, LGA-14-kotelo 2,5 × 3,0 mm, I3C 12,5 MHz / I2C 1 MHz / SPI 24 MHz, jopa 2,25 kB FIFO, 0,55 mA kulutus vähäkohinaisessa tilassa ja 3,5 µA unessa. Se on tuotannossa ja oikea valinta, jos suunnittelet omaa piirilevyä.

Mutta se ei ole se päivitys, jota useimmat etsivät, kolmesta syystä. Ensinnäkin sen APEX Motion Functions -toiminnot eivät ole anturifuusiota: askelmittari, kallistuksen tunnistus, low-g, vapaa pudotus ja liikkeestä herääminen antavat tapahtumalippuja, ei kvaternioita eivätkä Euler-kulmia. Jos haluat pitch/roll/yaw, kirjoitat edelleen komplementaari-, Mahony-, Madgwick- tai Kalman-suodattimen itse. Ironista kyllä, MPU-6050:n DMP osaa i2cdevlibin kanssa syöttää 6-akselisen kvaternion, kun sille ladataan käynnistyksessä noin 3 kB:n laiteohjelmisto — tässä mielessä 426xx on askel taaksepäin, eikä se missään tapauksessa korvaa BNO055:tä.

Toiseksi rekisterikartta ja WHO_AM_I-arvo ovat täysin erilaiset kuin MPU-6000-sarjassa, joten vanha ajuri ei tunnista piiriä lainkaan. TDK:n oma varaus ”interchangeability is not guaranteed” kannattaa lukea kirjaimellisesti. Kolmanneksi valmiita moduuleja ei käytännössä ole: virallinen Arduino-kirjasto (invensenseinc/ICM42670P) on olemassa, mutta sen omat ohjeet toteavat, ettei Arduino-shieldiä ole ja kytkentä on tehtävä käsin evaluointikortille. Adafruitin, SparkFunin tai DFRobotin valtavirtakorttia ei ole, eikä oppaita. Aloittelijalle se on tukitason lasku.

MPU6050 korvaaja vertailussa: MPU-6050 vs ADXL345 vs BNO055

Ominaisuus MPU-6050 Fermion ADXL345 Fermion BNO055
Anturit kiihtyvyys + gyro (6 akselia) vain kiihtyvyys (3 akselia) kiihtyvyys + gyro + magnetometri (9 akselia)
Anturifuusio piirillä DMP, vaatii firmware-blobin ei ole täysi NDOF-fuusio, kvaternio ja Euler suoraan
Absoluuttinen kompassisuunta ei ei kyllä
Väylä I2C 0x68/0x69 I2C 0x53 + SPI I2C 0x28/0x29 tai UART
Jännite 3–5 V, oma LDO, 5 V turvallinen 2,0–3,6 V, tasonmuunnin 5 V:n järjestelmässä 3,3–5,5 V, I2C 5 V -yhteensopiva
Virrankulutus ~3,9 mA ~40 µA / 0,1 µA ~13 mA fuusio päällä
Piirin elinkaari Obsolete (moduulit tuotannossa) Production NRND
Riviliittimet valmiiksi juotettu juotettava itse juotettava itse
Parhaimmillaan opiskelu, tasapainorobotit, budjetti kallistus, naputus, tärinä, Klipper, paristo AHRS, gimbalit, dronet, AR/VR

Käytännön ongelma joka ei liity elinkaareen: kloonipiirit

Harrastajan arjessa tämä aiheuttaa enemmän harmaita hiuksia kuin EOL-status. Koska piiri on vanhentunut, moduulimarkkinoilla liikkuu klooneja sekä kierrätettyjä ja uudelleenmerkittyjä piirejä.

Tyypillinen oire: I2C-skanneri löytää laitteen osoitteesta 0x68, mutta Adafruit_MPU6050 kaatuu virheeseen ”Failed to find MPU6050 chip”. Syy on WHO_AM_I-rekisteri osoitteessa 0x75, jonka pitäisi palauttaa 0x68; kloonit palauttavat esimerkiksi 0x98 tai 0x70. ”MPU-6050A”-merkityt kortit ovat tunnettu ongelmaerä. Kiertotie on käyttää i2cdevlibiä tai suoraa Wire-rekisterinlukua, jotka eivät tarkista tunnistetta — tai ostaa kortti toimittajalta, joka pitää varastossa tunnetusti toimivia levyjä.

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.beginTransmission(0x68);
  Wire.write(0x75);              // WHO_AM_I
  Wire.endTransmission(false);
  Wire.requestFrom(0x68, 1);
  byte id = Wire.read();
  Serial.print("WHO_AM_I = 0x");
  Serial.println(id, HEX);
  // 0x68 = aito MPU-6050. 0x98 / 0x70 / muu = klooni tai eri piiri.
}

void loop() {}

Regulaattori, ylösvedot ja I2C-väylän kuormitus

Kaksi muuta klooniongelmaa. Halvan GY-521-kortin heikko regulaattori voi päästää yli 4 V piirille, jonka VDD-alue on 2,375–3,46 V: seurauksena gyron kohinaa, lämpenemistä ja epävakautta. Joistain klooneista puuttuvat SDA/SCL-ylösvetovastukset, jolloin Wire.h jumittuu. Protocachen moduulissa ylösvedot ovat paikallaan.

Älä myöskään pinoa monta korttia omine ylösvetoineen samalle väylälle. GY-521 käyttää 4,7 kΩ ja moni moderni kortti 10 kΩ; rinnakkain kokonaisylösveto voi pudota alle 2 kΩ, mikä rikkoo I2C:n 3 mA:n nieluvirtarajan ja kaataa yleensä nirsoimman anturin alustuksen — käytännössä BNO055:n. Jätä vain yksi ylösvetosarja aktiiviseksi. Aloita aina valikosta File → Examples → Wire → i2c_scanner: odotettu tuloste on 0x68 (MPU-6050), 0x53 (ADXL345) tai 0x28 (BNO055).

Kaikki kolme vaihtoehtoa kerralla

Alla kolme korttia, joista tämä vertailu koostuu. Halvin polku on pysyä MPU-6050:ssä, virransäästöpolku on ADXL345 ja valmiin asennon polku on BNO055. Kaikki kolme ovat I2C-laitteita, joten sama kolmen johtimen kytkentä toimii kaikilla – vain kirjasto vaihtuu.

Jos rakennat 3,3 V:n alustalle, ADXL345 ja BNO055 kytkeytyvät suoraan ilman tasonmuunninta esimerkiksi ESP32 DevKitC -kehityskortilla, jossa I2C-nastat ovat vapaasti valittavissa (Wire.begin(SDA, SCL)).

Valintapuu ja yhteenveto

Parempi kysymys kuin ”mikä korvaa MPU-6050:n” on: tarvitseeko projekti kiihtyvyysanturin, täyden IMU:n vai valmiiksi lasketun asennon? Kolme eri vastausta johtavat kolmeen eri korttiin.

  • Luen vain kiihtyvyyttä — kallistus, naputus, tärinä, vapaa pudotus, paristokäyttö, Klipper-resonanssi → ADXL345.
  • Tarvitsen kiihtyvyyden ja kiertonopeuden — tasapainorobotti, kallistuskulma suodattimella, eleet, opiskelu → pysy MPU-6050:ssä.
  • Tarvitsen absoluuttisen suunnan tai en halua kirjoittaa suodatinta — AHRS, kompassisuuntaa käyttävä rover, gimbal, robottivarsi, VR-seuranta → BNO055.
  • Suunnittelen omaa piirilevyä monivuotiseen tuotantoon → ICM-42670-P, ja varaa aikaa fuusiokoodin kirjoittamiseen.

Yhteenveto ja mistä jatkaa

Tärkein oivallus IMU-päivityksestä: vaihdon hinta on ohjelmistossa, ei kytkennässä. Kolme johdinta menee samoihin nastoihin, mutta uusi kirjasto, uusi rekisterikartta ja suodattimen uudelleenviritys vievät illan tai kaksi. Tee vaihto siksi, että saat jotain uutta — 100-kertaisen virransäästön tai ryömimättömän kompassisuunnan — et siksi, että jokin tuotetietokannan kenttä lukee ”Obsolete”.

Käytännön järjestys on yleensä tämä: aloita halvalla MPU-6050-moduulilla, opettele I2C ja komplementaarisuodatin sen kanssa, ja siirry BNO055:een vasta kun huomaat kirjoittavasi suodatinkoodia, jota et halua ylläpitää – tai ADXL345:een kun paristo alkaa loppua kesken. Tutustu koko anturi- ja IMU-valikoimaamme Protocachen verkkokaupassa.