Náklonoměr MPU6050 - pomoc s matematikou
Napsal: 03 črc 2022, 14:26
Zdravím.
Potřebuji poradit s matematikou.
Mám náklonoměr (MPU6050), ze kterého přes I2C vyčítám tíhové zrychlení ve 3 osách jako 3 nezávislá INT čísla.
Náklonoměr je v krabičce vlepený "obecně" - může tam být vtěsnaný i nějak našikmo.
Mám v plánu provést kalibraci, při které řeknu že TEĎ krabička míří svisle vzhůru (k zenitu).
Získám tím hodnoty zrychlení pro nulový náklon ze všech os ('X0', 'Y0' a 'Z0').
Když pak krabičku někam namířím, přečtu aktuální hodnoty tíhového zrychlení z každé osy ('Xa', 'Ya' a 'Za').
Jak mám těchto 6 čísel přepočítat, abych získal jen jednu hodnotu, která bude udávat odchylku ve stupních od vertikální (zkalibrované) polohy?
Odchylka bude vždycky kladná - směr mě nezajímá.
Potřebuju něco jako:
Našel jsem nějaké vzorce, které ale počítají každou osu zvlášť a spoléhají na to, že je náklonoměr uložený v krabičce vodorovně.
Odkazy:
https://arduino8.webnode.cz/news/lekce- ... -mpu-6050/
https://dronebotworkshop.com/mpu-6050-level/
To ale neřeší můj požadavek.
Potřebuji poradit s matematikou.
Mám náklonoměr (MPU6050), ze kterého přes I2C vyčítám tíhové zrychlení ve 3 osách jako 3 nezávislá INT čísla.
Náklonoměr je v krabičce vlepený "obecně" - může tam být vtěsnaný i nějak našikmo.
Mám v plánu provést kalibraci, při které řeknu že TEĎ krabička míří svisle vzhůru (k zenitu).
Získám tím hodnoty zrychlení pro nulový náklon ze všech os ('X0', 'Y0' a 'Z0').
Když pak krabičku někam namířím, přečtu aktuální hodnoty tíhového zrychlení z každé osy ('Xa', 'Ya' a 'Za').
Jak mám těchto 6 čísel přepočítat, abych získal jen jednu hodnotu, která bude udávat odchylku ve stupních od vertikální (zkalibrované) polohy?
Odchylka bude vždycky kladná - směr mě nezajímá.
Potřebuju něco jako:
Kód: Vybrat vše
float odchylka(int X0, int Y0, int Z0, int Xa, int Ya, int Za)
{
odchylka = ...........; // odchylka ve stupnich od zenitu
return odchylka;
}
Našel jsem nějaké vzorce, které ale počítají každou osu zvlášť a spoléhají na to, že je náklonoměr uložený v krabičce vodorovně.
Odkazy:
https://arduino8.webnode.cz/news/lekce- ... -mpu-6050/
https://dronebotworkshop.com/mpu-6050-level/
To ale neřeší můj požadavek.