Začínáme se senzory pohybu a orientace založenými na MEMS pomocí rozvodných desek Arduino
Contributed By DigiKey's North American Editors
2020-11-25
Konstruktéři musí ve vzrůstající míře zabudovávat do svých systémů funkce orientace a pohybu. Naštěstí jsou k dispozici senzory založené na polovodičových technologiích a technologiích mikroelektromechanických systémů (MEMS), které jim s tímto úkolem pomohou. Jejich malá velikost a nízká cena umožňují použití snímání pohybu a orientace v široké řadě systémů včetně dronů, robotů a samozřejmě i příručních zařízení, jako jsou chytré telefony a tablety. Tyto senzory se využívají také v systémech prediktivní údržby průmyslového internetu věcí (IIoT), a poskytují tak na druhém konci data pro analýzu pomocí umělé inteligence (AI) a strojového učení (ML).
Hlavními typy senzorů MEMS používaných k detekci pohybu a orientace jsou akcelerometry, gyroskopy, magnetometry a jejich různé kombinace. O vestavění senzorů pohybu a orientace do svých návrhů se zajímá mnoho konstruktérů, ale mnoho z nich si však není jistých, kde začít.
Jednou z možností je využít vyhodnocovací a vývojové sady, které dodavatelé senzorů MEMS poskytují jako podporu svých řešení. Za předpokladu, že úroveň této podpory je dobrá, se jedná o perfektní řešení. Znamená to však také, že je konstruktér omezen na využití senzorů pouze od jednoho daného dodavatele, nebo že se musí naučit pracovat se softwarovými nástroji několika dodavatelů senzorů.
Alternativou pro konstruktéry, kteří nejsou zvyklí se senzory pohybu a orientace pracovat, je zkusit experimentovat a prototypovat pomocí cenově přijatelných vývojových desek mikrokontroléru s otevřeným zdrojem značky Arduino spolu s jejím jedním integrovaným vývojovým prostředím (IDE) a použít je ve spojení s cenově přijatelnými rozvodnými deskami (BOB) senzorů s otevřeným zdrojem, které jsou vybaveny senzory od několika dodavatelů.
Tento článek si klade za cíl pomoct konstruktérům v začátcích. Je v něm uveden slovníček terminologie senzorů a dále je i stručně rozebrána role senzorů pohybu a orientace. Poté je zde představen výběr těchto BOB senzorů od společnosti Adafruit a jejich použití.
Slovníček terminologie senzorů
Dvěma termíny, které se ve spojitosti se senzory pohybu a orientace běžně používají, jsou „počet os“ a „stupně volnosti“ (DOF). Bohužel se tyto dva termíny často zaměňují jako synonyma, čímž dochází k nejasnostem.
Obecně řečeno lze termín osa (v množném čísle osy) použít k popisu rozměrnosti dat, která jsou v systému použita. V kontextu pohybu a orientace máme tři osy zájmu – X, Y a Z.
Způsob, jakým jsou tyto osy vizualizovány, závisí na dotčeném systému. V případě chytrého telefonu s orientací na výšku je například osa X ve vztahu k displeji horizontální a směřuje doprava, osa Y je ve vztahu k displeji vertikální a směřuje nahoru a osa Z, která je k oběma předchozím osám kolmá, se považuje za vycházející z displeje (obrázek 1).
Obrázek 1: Fyzický systém může mít vždy maximálně pouze šest stupňů volnosti, protože je možných pouze šest způsobů, jakými se v 3D prostoru může pohybovat. Tři z nich jsou lineární a tři jsou úhlové. (Zdroj obrázku: společnost Max Maxfield)
V souvislosti se zařízením, jakým je například chytrý telefon, jsou dva typy pohybu zájmu: lineární a úhlový. V případě lineárního pohybu se systém může pohybovat ze strany na stranu po ose X, nahoru a dolů po ose Y a dopředu a dozadu po ose Z. V případě úhlového pohybu se systém může otáčet kolem jedné nebo více ze tří os.
V kontextu pohybu se stupně volnosti vztahují na jakékoli směry, ve kterých může docházet k nezávislému pohybu. Fyzický systém může mít podle tohoto základu vždy maximálně pouze šest stupňů volnosti (6DOF), protože je možných pouze šest způsobů, jakými se v 3D prostoru může pohybovat. Tři z nich jsou lineární a tři jsou úhlové.
Termín „orientace“ se vztahuje k fyzickému umístění nebo směru čehokoli ve vztahu k něčemu jinému. V případě chytrého telefonu orientace určuje, zda leží telefon položený zadní částí dolů, zda stojí na jedné z hran (v režimu buď na výšku, nebo na šířku), nebo zda se nachází v nějaké poloze mezi těmito dvěma.
Jedním ze způsobů, jak se na to dívat, je, že orientaci zařízení lze určit hodnotami všech možných DOF v nějakém čase tX. Pro porovnání je pohyb zařízení určen rozdíly mezi hodnotami všech možných DOF mezi časy t0 a t1.
Senzory jako akcelerometry, gyroskopy a magnetometry jsou dostupné s jednou, dvěma nebo třemi osami. Jednoosý akcelerometr tak bude například detekovat pouze změny podél té ze tří os, se kterou bude vyrovnán. Dvouosý senzor bude detekovat změny na dvou ze tří os a tříosý senzor bude detekovat změny na všech třech osách.
Pokud je senzorová platforma popsána jako sledování více než šesti os, znamená to, že poskytuje vyšší stupeň přesnosti sledování několika datových bodů podél (nebo v blízkosti) os X, Y a Z. Příkladem je sada 12osého akcelerometru, která využívá měření lineární akcelerace ze čtyř 3osých akcelerometrů.
Bohužel se termín DOF běžně zaměňuje za počet os. Kupříkladu kombinaci 3osého akcelerometru, 3osého gyroskopu a 3osého magnetometru mohou někteří dodavatelů popisovat jako senzor 9DOF, přestože by správnější popis byl 9osý senzor 6DOF.
Souhrn údajů senzorů
Akcelerometr může kromě měření akcelerace měřit také gravitaci. Například u chytrého telefonu může 3osý akcelerometr určit, který směr je dolů, a to dokonce i v případě, že uživatel nehybně stojí a zařízení se nepohybuje.
Tříosý akcelerometr lze také použít k určení vertikální a horizontální orientace zařízení. Zařízení pak může tuto informaci použít k zobrazení displeje v režimu na výšku nebo na šířku. Akcelerometr však nelze sám o sobě použít k určení orientace chytrého telefonu ve vztahu k magnetickému poli Země. Tato funkce je nezbytná například pro planetární aplikace, které uživatelům umožňují identifikovat a lokalizovat na noční obloze hvězdy, planety a konstelace prostým namířením zařízení směrem k oblasti zájmu. Pro takové případy je vyžadován magnetometr. Pokud by chytré telefony byly neustále položeny na stole, byl by 1osý magnetometr dostačující. Protože se však chytré telefony používají v jakékoli orientaci, je nezbytné použít 3osý magnetometr.
Akcelerometry nejsou ovlivňovány okolním magnetickým polem, ale ovlivňuje je pohyb a vibrace. Magnetometry nejsou ve srovnání s nimi samy o sobě ovlivněny pohybem ani vibracemi, ale mohou je ovlivňovat magnetické materiály a elektromagnetická pole v jejich blízkosti.
Přestože lze k získání dat o rotaci použít také 3osý akcelerometr, poskytuje 3osý gyroskop ve vztahu k úhlové rychlosti mnohem přesnější data. Gyroskopy fungují velmi dobře právě při měření rotační rychlosti a neovlivňuje je akcelerace v lineárním směru ani magnetická pole. Gyroskopy však mají tendenci generovat malou „zbytkovou“ rotační rychlost, dokonce i když se dostanou do stacionární polohy. Tento jev je známý jako „posun nuly“. K problému dochází, když se uživatel pokouší pomocí gyroskopu určit absolutní úhel. V takovém případě je k získání úhlové polohy nutné zahrnout rotační rychlost. Potíž s integrací spočívá v tomto scénáři v tom, že se chyby kumulují. Například malá chyba pouhé 0,01 stupně při prvním měření může vést po 100 měřeních až k celému stupni. Tento jev je známý jako „posun gyroskopu“.
Termín „souhrn údajů senzorů“ se vztahuje ke kombinování dat senzorů získaných z různorodých zdrojů. Výsledná informace tak zahrnuje nižší míru neurčitosti, než by byla možná v případě, že by data z těchto zdrojů byla použita samostatně.
V případě pole senzorů sestávajícího ze 3osého akcelerometru, 3osého gyroskopu a 3osého magnetometru lze například data z akcelerometru a magnetometru využít k potlačení posunu gyroskopu. A naopak data z gyroskopu lze použít ke kompenzaci případného šumu vyvolaného vibracemi z akcelerometru a ke kompenzaci šumu vyvolaného magnetickým materiálem/polem z magnetometru.
Výsledkem souhrnu údajů senzorů je, že přesnost výstupu je vyšší než přesnost jednotlivých senzorů.
Představení několika ukázkových senzorů
V závislosti na aplikaci se může konstruktér rozhodnout použít pouze jeden typ senzoru pohybu/orientace v podobě akcelerometru, gyroskopu nebo magnetometru.
Dobrým akcelerometrem na začátek je BOB 2019 od společnosti Adafruit, který je vybaven 3osým akcelerometrem se 14bitovým analogově-digitálním převodníkem (ADC) (obrázek 2).
Obrázek 2: BOB 2019 BOB od společnosti Adafruit je vybaven 3osým akcelerometrem, který lze použít k detekci pohybu, náklonu a základní orientace. (Zdroj obrázku: společnost Adafruit)
Vysoce přesný 3osý senzor má široký rozsah ±2 g až ±8 g a lze jej použít k detekci pohybu, náklonu a základní orientace. Senzor vyžaduje napájení 3,3 V, ale BOB zahrnuje regulátor napětí 3,3 V s nízkým úbytkem a obvod posouvání úrovní, proto je používání logiky a napájení 3 V nebo 5 V bezpečné. Komunikace mezi BOB a Arduino (nebo jiným mikrokontrolérem) probíhá prostřednictvím sběrnice I2C.
Pro aplikace, které k detekci stáčivých a otáčivých pohybů vyžadují pouze gyroskopický senzor, je dobrou deskou pro začátek BOB 1032 společnosti Adafruit s 3osým gyroskopem L3GD20H od společnosti STMicroelectronics. Gyroskop L3GD20H podporuje pro Arduino (nebo jiný mikrokontrolér) rozhraní I2C a SPI a lze jej nastavit na škálu v rozsahu od ±250, ±500 nebo ±2000 stupňů za sekundu pro velký rozsah citlivosti. Senzor opět vyžaduje napájení 3,3 V, ale BOB zahrnuje regulátor napětí 3,3 V a obvod posouvání úrovní, proto je možné desku použít s logikou a napájením 3 V nebo 5 V.
Podobně je u aplikací vyžadujících pouze magnetický senzor dobrou volbou ke zvážení BOB 4479 od společnosti Adafruit, který je vybaven 3osým magnetometrem LIS3MDL od společnosti STMicroelectronics. Magnetometr LIS3MDL je schopný snímat v rozsahu od ±4 gaussů (G) (±400 mikrotesel (µT)) až do ±16 gaussů (±1600 µT nebo 1,6 militesly (mT)). Komunikace mezi BOB a Arduino (nebo jiným mikrokontrolérem) probíhá prostřednictvím sběrnice I2C. I zde BOB zahrnuje regulátor napětí 3,3 V a obvod posouvání úrovní, proto je možné desku bezpečně použít s logikou a napájením 3 V nebo 5 V.
Je velmi běžné, že se používá několik senzorů se vzájemným propojením. Akcelerometr lze například použít ve spojení s gyroskopem k provádění úloh, jako jsou 3D snímání pohybu a inerciální měření. Uživatel tak dokáže určit, jak se objekt pohybuje ve 3D prostoru. Jedním příkladem takové kombinace je BOB 4480 společnosti Adafruit (obrázek 3), který je vybaven senzorovým čipem LSM6DS33 od společnosti STMicroelectronics.
Obrázek 3: BOB 4480 od společnosti Adafruit je vybaven 3osým akcelerometrem LSM6DS33TR a 3osým gyroskopem, které lze použít k provádění úloh, jako jsou 3D snímání pohybu a inerciální měření. (Zdroj obrázku: společnost Adafruit)
Tříosý akcelerometr může díky měření gravitace poskytovat data o tom, který směr je k Zemi a jak rychle deska v 3D prostoru akceleruje. A 3osý gyroskop zároveň měří rotaci a stočení. Stejně jako u výše uvedených senzorických BOB desek zahrnuje i BOB 4480 regulátor napětí 3,3 V a obvod posouvání úrovní, proto je možné desku bezpečně použít s logikou a napájením 3 V nebo 5 V. K datům senzorů lze přistupovat pomocí rozhraní I2C nebo SPI, což umožňuje použití s Arduino (nebo jiným mikrokontrolérem) bez jakéhokoli komplikovaného nastavení hardwaru.
Dalším příkladem BOB se dvěma senzory je deska 1120 od společnosti Adafruit, vybavená kombinací 3osého akcelerometru a 3osého magnetometru ve formě senzorového čipu LSM303 od společnosti STMicroelectronics. Komunikace mezi mikrokontrolérem a deskou 1120 probíhá prostřednictvím rozhraní I2C. BOB zahrnuje regulátor napětí 3,3 V a obvod posouvání úrovní, proto je možné desku bezpečně použít s logikou a napájením 3 V nebo 5 V.
Některé aplikace vyžadují použití akcelerometrů, gyroskopů a magnetometrů. V takovém případě je užitečnou počáteční deskou BOB 3463 společnosti Adafruit, která je vybavena dvěma senzorovými čipy: 3osým gyroskopem a 3osým akcelerometrem s 3osým magnetometrem. Komunikace mezi deskou BOB a mikrokontrolérem probíhá prostřednictvím rozhraní SPI. I zde jsou součástí regulátor napětí 3,3 V a obvod posouvání úrovní, proto je možné desku bezpečně použít s logikou a napájením 3 V nebo 5 V.
Výhodou desky BOB 3463 je, že konstruktér má přímý přístup k datům ze tří senzorů. Tomu odpovídající nevýhodou je, že používání tohoto senzoru (manipulace a zpracovávání dat) vyžaduje přibližně 15 kilobajtů paměti flash mikrokontroléru a spotřebovává mnoho cyklů hodin.
Jako alternativu lze použít desku BOB 2472 společnosti Adafruit vybavenou senzorovým čipem BNO055 od společnosti Bosch. Produkt BNO055 zahrnuje 3osý akcelerometr, 3osý gyroskop a 3osý magnetometr, vše v jednom jediném balení (obrázek 4).
Obrázek 4: Kromě 3osého akcelerometru, 3osého gyroskopu a 3osého magnetometru obsahuje senzor BNO055 na desce BOB 2472 společnosti Adafruit také procesor Cortex-M0 Arm, který zpracovává souhrn údajů senzorů. (Zdroj obrázku: společnost Adafruit)
Senzor BNO055 navíc obsahuje 32bitový procesor Arm Cortex-M0, který shromažďuje nezpracovaná data ze tří senzorů, provádí sofistikovaný souhrn údajů senzorů a poskytuje konstruktérům zpracované informace v použitelné formě kvaternionů, Eulerových úhlů a vektorů. Konkrétně mohou konstruktéři prostřednictvím rozhraní I2C desky BOB 2472 rychle a snadno přistoupit k následujícím informacím:
- Absolutní orientace (Eulerův vektor, 100 Hz): data tříosé orientace založená na 360° kouli
- Absolutní orientace (kvaternion, 100 Hz): výstup ve formě čtyřbodového kvaternionu pro přesnější manipulaci s daty
- Vektor úhlové rychlosti (100 Hz): tříosá „rychlost rotace“ v rad/s
- Vektor zrychlení (100 Hz): tříosá akcelerace (gravitace + lineární pohyb) v metrech za sekundu na druhou (m/s2)
- Vektor síly magnetického pole (20 Hz): tříosé snímání magnetického pole (v µT)
- Vektor lineární akcelerace (100 Hz): data tříosé lineární akcelerace (akcelerace minus gravitace) v m/s2
- Vektor gravitace (100 Hz): tříosé gravitační zrychlení (minus jakýkoli pohyb) v m/s2
- Teplota (1 Hz): okolní teplota ve stupních Celsia
Provádění souhrnu údajů senzorů na čipech uvolňuje hlavní paměť mikrokontroléru a výpočetní cykly, což je ideální pro konstruktéry vytvářející systém v reálném čase s nízkými náklady. Algoritmy souhrnu údajů senzorů mohou být navíc složité a jejich vykonávání je časově náročné. Provádí-li se souhrn údajů senzorů na čipech, umožňuje to vývojářům systémů pracovat v řádu minut oproti dnům či týdnům v případě, že by implementovali algoritmy zcela od začátku.
Závěr
O vestavění senzorů pohybu a orientace do svých návrhů se zajímá mnoho konstruktérů, ale nejsou si jistí, kde začít. Pokud nejsou konstruktéři na práci s těmito zařízeními zvyklí, může být seznamování se senzory různých výrobců náročné. Jedním ze způsobů, jak s experimentováním a prototypováním začít, je použít cenově přijatelné vývojové desky mikrokontroléru s otevřeným zdrojem jako Arduino spolu s cenově přijatelnou BOB senzorů s otevřeným zdrojem vybavenou senzory od několika dodavatelů.
K dalšímu čtení:
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




