Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:f3-accel-gyro

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2015:f3-accel-gyro [2016/01/17 17:03]
Jan Dvořák
2015:f3-accel-gyro [2016/01/17 19:11] (aktuální)
Jan Dvořák
Řádek 8: Řádek 8:
  
 == MEMS technologie == == MEMS technologie ==
-{{ :playground:​x2_mikrorezonator.jpg?​direct&​300|}}+{{ :2015:​f3-accel-gyro:​x2_mikrorezonator.jpg?​direct&​300|}} 
 Zkratka MEMS (Micro-Electro-Mechanical Systems) s sebou nese současně označení technologie výroby a současně označení produktů touto technologií vytvořených. Jedná se poměrně o novou technologii,​ kterou v dnešní době podpořila úroveň miniaturizace,​ úroveň technologických postupů a znalost materiálů. Její vývoj se ovšem zdaleka neblíží konci. Tato technologie je implementací mechanických struktur do jediného pouzdra společně s elektronikou. Tato elektronika většinou slouží k digitalizaci naměřené analogové veličiny, filtraci, případně dalšímu zpracování. Zkratka MEMS (Micro-Electro-Mechanical Systems) s sebou nese současně označení technologie výroby a současně označení produktů touto technologií vytvořených. Jedná se poměrně o novou technologii,​ kterou v dnešní době podpořila úroveň miniaturizace,​ úroveň technologických postupů a znalost materiálů. Její vývoj se ovšem zdaleka neblíží konci. Tato technologie je implementací mechanických struktur do jediného pouzdra společně s elektronikou. Tato elektronika většinou slouží k digitalizaci naměřené analogové veličiny, filtraci, případně dalšímu zpracování.
  
Řádek 16: Řádek 17:
  
 == Konstrukce MEMS akcelerometru== == Konstrukce MEMS akcelerometru==
-{{ :playground:2_princip_akcelerometru.png?​direct&​250|}}+{{ :2015:f3-accel-gyro:​2015project-nameobrazek.jpg.png?​direct&​250|}}
 Základem akcelerometru je seismická hmotnost (setrvačný prvek) o hmotnosti m, dále pružina (příp. pružná lamelka), na které je seismická hmotnost připevněna. ​ Základem akcelerometru je seismická hmotnost (setrvačný prvek) o hmotnosti m, dále pružina (příp. pružná lamelka), na které je seismická hmotnost připevněna. ​
 Výchylka seismické hmotnosti je poté vůči základně akcelerometru vyhodnocována. Snímání (měření) přesné polohy je poté prováděno pomocí měření kapacity struktury tvořící deskový kapacitor. Výše popisovaný akcelerometr měří zrychlení pouze v jednom směru (v jedné ose). Pro vznik akcelerometru,​ který měří ve dvou osách, je nutné přidat další dílčí strukturu akcelerometru,​ tentokrát pootočenou o 90°. Dnešní akcelerometry jsou běžně tříosé. U nich je nutné aplikovat jednu strukturu výškově pohyblivou. Výchylka seismické hmotnosti je poté vůči základně akcelerometru vyhodnocována. Snímání (měření) přesné polohy je poté prováděno pomocí měření kapacity struktury tvořící deskový kapacitor. Výše popisovaný akcelerometr měří zrychlení pouze v jednom směru (v jedné ose). Pro vznik akcelerometru,​ který měří ve dvou osách, je nutné přidat další dílčí strukturu akcelerometru,​ tentokrát pootočenou o 90°. Dnešní akcelerometry jsou běžně tříosé. U nich je nutné aplikovat jednu strukturu výškově pohyblivou.
  
 == Konstrukce MEMS gyroskopu== == Konstrukce MEMS gyroskopu==
-{{ :playground:​8_mems_gyro.png?​direct&​350|}}+{{ :2015:​f3-accel-gyro:​8_mems_gyro.png?​direct&​350|}}
 Typickou strukturou ​ jsou CVG gyroskopy. Obecně se využívá mechanicky rezonující struktura (těleso) o určité hmotnosti umístěná pomocí pružin v pevném mechanickém rámu (pouzdře). Pokud se začne s takovou strukturou otáčet, ovšem kolmo vůči vibracím, začne na toto pohybující se těleso působit Coriolisova síla. Ta je úměrná úhlové rychlosti otáčení. Poté při pohybu (vibrující) soustavy od vnitřního okraje kružnice směrem k vnějšímu okraji a současnému otáčení celého systému doprava, dochází k působení Coriolisovy síly směrem doleva. V opačném případě, pohybuje-li se (vibrující) soustava z vnějšího kraje, směrem k vnitřnímu okraji kružnice, ovšem se zachovaným směrem otáčení (tedy doprava) tohoto snímače, dochází k působení Coriolisovy síly směrem doprava. Tuto polohu zaznamenává snímač pracující na principu deskového kondenzátoru. Typickou strukturou ​ jsou CVG gyroskopy. Obecně se využívá mechanicky rezonující struktura (těleso) o určité hmotnosti umístěná pomocí pružin v pevném mechanickém rámu (pouzdře). Pokud se začne s takovou strukturou otáčet, ovšem kolmo vůči vibracím, začne na toto pohybující se těleso působit Coriolisova síla. Ta je úměrná úhlové rychlosti otáčení. Poté při pohybu (vibrující) soustavy od vnitřního okraje kružnice směrem k vnějšímu okraji a současnému otáčení celého systému doprava, dochází k působení Coriolisovy síly směrem doleva. V opačném případě, pohybuje-li se (vibrující) soustava z vnějšího kraje, směrem k vnitřnímu okraji kružnice, ovšem se zachovaným směrem otáčení (tedy doprava) tohoto snímače, dochází k působení Coriolisovy síly směrem doprava. Tuto polohu zaznamenává snímač pracující na principu deskového kondenzátoru.
  
Řádek 28: Řádek 29:
 ==== Použitý hardware ==== ==== Použitý hardware ====
 == STM32F3Discovery == == STM32F3Discovery ==
-{{ :playground:​stm32f3discovery.jpg?​direct&​150|}}+{{ :2015:​f3-accel-gyro:​stm32f3discovery.jpg?​direct&​150|}}
 Zvolený kit je založen na procesoru STM32F3VC. Jedná se o 32-bitový mikroprocesor s architekturou ARM a jádrem Cortex-M4. Zvolený kit je založen na procesoru STM32F3VC. Jedná se o 32-bitový mikroprocesor s architekturou ARM a jádrem Cortex-M4.
 Jádro série F3 podporuje DSP a FPU instrukce, které mohou být výhodné při zpracování rychlých logických dějů, nebo také při výpočtech s čísly s plovoucí řadovou čárkou. Jako zdroj hodinového signálu je možné použít interní RC oscilátor s rezonanční frekvencí 8MHz násobený PLL násobičem až 16x. Další možnost zdroje hodinového signálu je využití externího krystalového rezonátoru v rozsahu frekvencí 4 až 32MHz. I v tomto případě je možné využít násobení taktu PLL (fázovým závěsem). Maximální taktovací kmitočet procesoru může být ale nanejvýše 72 MHz. Jádro série F3 podporuje DSP a FPU instrukce, které mohou být výhodné při zpracování rychlých logických dějů, nebo také při výpočtech s čísly s plovoucí řadovou čárkou. Jako zdroj hodinového signálu je možné použít interní RC oscilátor s rezonanční frekvencí 8MHz násobený PLL násobičem až 16x. Další možnost zdroje hodinového signálu je využití externího krystalového rezonátoru v rozsahu frekvencí 4 až 32MHz. I v tomto případě je možné využít násobení taktu PLL (fázovým závěsem). Maximální taktovací kmitočet procesoru může být ale nanejvýše 72 MHz.
Řádek 44: Řádek 45:
 Program je psán v programu EmBitz a kompilován přiloženým kompilátorem ARM GCC. Pro samotný projekt bylo využito poměrně nových HAL knihoven uvedených výrobcem mikroprocesoru,​ které jsou více abstraktně orientované,​ než dosud standardní SPL knihovny. U těchto knihoven není nutné nastavovat periferie (časovače,​ komunikační rozhraní) na úrovni bitů, ale za pomocí již definovaných funkcí. Přerušení a jiné rutiny se zde realizují pomocí callbacků, namísto klasických obsluh přerušení. Původním záměrem byl vývoj vlastních knihoven pro oba MEMS senzory, nicméně po určitém čase zkoušení a experimentování byla zvolena taktika přepoužití již napsaných knihoven. Za tímto účelem byly využity vzorová řešení od STM. Tato vzorová řešení obsahují již pěkně napsané knihovny, ovšem struktura a zřetězení těchto knihoven pro obsluhu jednotlivých snímačů byla téměř žalostná. Z tohoto důvodu byly knihovny pro oba snímače upraveny s ohledem na univerzálnost následovně:​ Program je psán v programu EmBitz a kompilován přiloženým kompilátorem ARM GCC. Pro samotný projekt bylo využito poměrně nových HAL knihoven uvedených výrobcem mikroprocesoru,​ které jsou více abstraktně orientované,​ než dosud standardní SPL knihovny. U těchto knihoven není nutné nastavovat periferie (časovače,​ komunikační rozhraní) na úrovni bitů, ale za pomocí již definovaných funkcí. Přerušení a jiné rutiny se zde realizují pomocí callbacků, namísto klasických obsluh přerušení. Původním záměrem byl vývoj vlastních knihoven pro oba MEMS senzory, nicméně po určitém čase zkoušení a experimentování byla zvolena taktika přepoužití již napsaných knihoven. Za tímto účelem byly využity vzorová řešení od STM. Tato vzorová řešení obsahují již pěkně napsané knihovny, ovšem struktura a zřetězení těchto knihoven pro obsluhu jednotlivých snímačů byla téměř žalostná. Z tohoto důvodu byly knihovny pro oba snímače upraveny s ohledem na univerzálnost následovně:​
  
-{{ :playground:​bez_nazvu.png?​direct&​700 |}}+{{:2015:​f3-accel-gyro:​bez_nazvu.png?​direct&​600|}}
  
 Ke každému .c souboru je připojen hlavičkový soubor (.h). Obě knihovny vyšší vrstvy (L3GD20.c a LSM303DLHC.c) umožňují kompletní práci se snímači, jako vyčítání naměřených hodnot, konfiguraci měření, včetně konfigurace filtrů. Knihovny nižší vrstvy (L3GD20_SPI.c a LSM303DLHC_I2C.c) zprostředkovávají ​ komunikaci mezi snímači a mikrokontrolérem. Tímto způsobem je zde dosažená určitá míra univerzálnosti,​ kdy je možné při změně platformy přepsat pouze knihovnu nižší vrstvy (_SPI.C, příp. _I2C.c). Ke každému .c souboru je připojen hlavičkový soubor (.h). Obě knihovny vyšší vrstvy (L3GD20.c a LSM303DLHC.c) umožňují kompletní práci se snímači, jako vyčítání naměřených hodnot, konfiguraci měření, včetně konfigurace filtrů. Knihovny nižší vrstvy (L3GD20_SPI.c a LSM303DLHC_I2C.c) zprostředkovávají ​ komunikaci mezi snímači a mikrokontrolérem. Tímto způsobem je zde dosažená určitá míra univerzálnosti,​ kdy je možné při změně platformy přepsat pouze knihovnu nižší vrstvy (_SPI.C, příp. _I2C.c).
Řádek 95: Řádek 96:
  
 Aby SD karta byla čitelná i pro klasický počítač, musí se na ní implementovat souborový systém (např. FAT). V souladu s tímto souborovým systémem se na tuto kartu i zapisuje. K tomuto účelu je možné napsat vlastní knihovnu, případně využít volné knihovny dostupné na internetu. Jednou z nejznámějších dostupných knihoven, obsluhující souborový systém může bát FatFS, určená pro mikroprocesorové systémy. K ní je ovšem nutné dopsat kód obsluhující komunikaci SPI, mezi procesorem a kartou. Aby SD karta byla čitelná i pro klasický počítač, musí se na ní implementovat souborový systém (např. FAT). V souladu s tímto souborovým systémem se na tuto kartu i zapisuje. K tomuto účelu je možné napsat vlastní knihovnu, případně využít volné knihovny dostupné na internetu. Jednou z nejznámějších dostupných knihoven, obsluhující souborový systém může bát FatFS, určená pro mikroprocesorové systémy. K ní je ovšem nutné dopsat kód obsluhující komunikaci SPI, mezi procesorem a kartou.
 +
 +== Odkaz ke stažení funkčního projektu ==
 +http://​leteckaposta.cz/​358265658
  
 ==== Demonstrace funkčnosti knihoven ==== ==== Demonstrace funkčnosti knihoven ====
  
-{{:playground:​20160117_163127.mp4|}}+{{:2015:​f3-accel-gyro:​20160117_163127.mp4|}}
  
-{{:playground:​20160117_163157.mp4|}}+{{:2015:​f3-accel-gyro:​20160117_163157.mp4|}}
  
 ==== Závěr ==== ==== Závěr ====
2015/f3-accel-gyro.1453046590.txt.gz · Poslední úprava: 2016/01/17 17:03 autor: Jan Dvořák