Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:hb100-radar

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
2019:hb100-radar [2020/01/20 10:23]
Tuan Ha
2019:hb100-radar [2020/01/20 16:48] (aktuální)
Tuan Ha
Řádek 5: Řádek 5:
 Přenos je realizován pomocí virtuálního COM portu. Přenos je realizován pomocí virtuálního COM portu.
  
-====Realizace====  +=====Realizace===== 
-Na obrázku je schéma externí destičky. Velikost zesílení byla zvolena tak, aby bylo možné detekovat pohyb v přímé blízkosti senzoru pro jednodušší testování.\\+====Destička==== 
 +Na obrázku je schéma externí destičky. Velikost zesílení byla zvolena tak, aby bylo možné detekovat pohyb v přímé blízkosti senzoru pro jednodušší testování.Výsledný analogový signál ze senzoru je přiveden na AD převodník ADC 1 (pin PA1)\\
 {{2019:​tha:​schema.png?​350}} ​  ​{{2019:​tha:​tha_deska.png?​250}}\\ {{2019:​tha:​schema.png?​350}} ​  ​{{2019:​tha:​tha_deska.png?​250}}\\
-K vytvoření firmwaru sloužil nástroj STM32CubeMX,​ schopný generovat kód s již nakonfigurovanými ​periferiemy ​(ADC, VCP ..). Jako uživatelské rozhraní posloužilo IDE od IAR EW, které ​mají knihovnu CMSIS - DSP v základu.\\ +====FFT==== 
-CMSIS nabízí mnoho způsobů výpočtu spektra mezi nejpoužívanější patří výpočet komplexní (CFFT) a reálného (RFFT) FFT kódu jsou implementovány oba způsoby a na následujících obrázcích je jejich srovnání. Obě dvě spektra jsou měřeny bez pohybu ve vnějším okolí.\\+K vytvoření firmwaru sloužil nástroj STM32CubeMX,​ schopný generovat kód s již nakonfigurovanými ​periferiemi ​(ADC, VCP ..). Jako uživatelské rozhraní posloužilo IDE od IAR EW, které ​má knihovnu CMSIS - DSP v základu.\\ 
 +CMSIS nabízí mnoho způsobů výpočtu spektramezi nejpoužívanější patří výpočet komplexní (CFFT) a reálného (RFFT) FFT. V kódu jsou implementovány oba způsoby a na následujících obrázcích je jejich srovnání. Obě dvě spektra jsou měřeny bez pohybu ve vnějším okolí.\\
  
 {{2019:​tha:​RFFT.png?​350}} ​  ​{{2019:​tha:​CFFT.png?​350}}\\ {{2019:​tha:​RFFT.png?​350}} ​  ​{{2019:​tha:​CFFT.png?​350}}\\
-Na levém obrázku je spektrum RFFT a na pravém CFFT (resp. jeho modul). Oproti CFFT má RFFT jednodušší výpočet, ale vykazuje vyšší zašumění spektra. Pro realizaci byl vybrán CFFT s výpočtem modulu Data byly vyextrahovány z debuggeru IAR a vykresleny v matlabu.\\+Na levém obrázku je spektrum RFFT a na pravém CFFT (resp. jeho modul). Oproti CFFT má RFFT jednodušší výpočet, ale vykazuje vyšší zašumění spektra. Pro realizaci byl vybrán CFFT s výpočtem moduluData byly vyextrahovány z debuggeru IAR a vykresleny v matlabu.\\
  
-Pro přesné určení frekvence z modulu je nutné nastavit rozlišení spekrta. Toto rozlišení je dané velikostí tzv. "​Binu"​. Bin je disktrétní elementátrní hodnota vypočteného spektra . Výpočet binu se realizuje podílem ​= (vzorkovací frekvence/​počet prvků), kde maximální hodnota prvků je 2048 a vzorkovací frekvence je dána nstavenou rychlostí ADC. Miniální ​vzorkovací frekvence ADC je 1,3125 MHz (předdělička 16 pro PCLK2 a 8 pro samotné ADC). +Pro přesné určení frekvence z modulu je nutné nastavit rozlišení spekrta. Toto rozlišení je dané velikostí tzv. "​Binu"​. Bin je disktrétní elementátrní hodnota vypočteného spektra. Výpočet binu se realizuje podílem ​vzorkovací frekvence/​počet prvků, kde maximální hodnota prvků je 2048 a vzorkovací frekvence je dána nstavenou rychlostí ADC. Minimální ​vzorkovací frekvence ADC je 1,3125 MHz (předdělička 16 pro PCLK2 a 8 pro samotné ADC). 
-S touto frekvencí vychází velikost binu (tedy i minimální rozlišení) na 641 Hz, takto hrubá velikost je nevhodná (chůze = 100Hz). Proto je mezi vzorky vloženo úmělé zpoždění k snížení vzorkovací frekvence. Nevýhodou je, že nelze přesně určit velikost vzorkovací frekvence, ta je nyní dána zpožděním HAL_delay a dobou provedení instrukcí (navzorkování ADC, uložení atd.). Předpokládám vyšší uplatnění doby zpoždění HAL_delay(0.8).Vzorkovací frekvence bude tedy 1250 Hz a velikost binu 0.61 Hz.+S touto frekvencí vychází velikost binu (tedy i minimální rozlišení) na 641 Hz, takto hrubá velikost je nevhodná (chůze = 100Hz). Proto je mezi vzorky vloženo úmělé zpoždění k snížení vzorkovací frekvence. Nevýhodou ​této metody ​je, že nelze přesně určit velikost vzorkovací frekvence, ta je nyní dána zpožděním HAL_delay a dobou provedení instrukcí (navzorkování ADC, uložení atd.). Předpokládám vyšší uplatnění doby zpoždění HAL_delay(0.8). Vzorkovací frekvence bude tedy 1250 Hz a velikost binu 0.61 Hz.
 <code c> <code c>
     for(int i = 0;i < TEST_LENGTH_SAMPLES;​i++){ ​ //delka 2048     for(int i = 0;i < TEST_LENGTH_SAMPLES;​i++){ ​ //delka 2048
Řádek 26: Řádek 28:
 </​code>​ </​code>​
  
 +====Detekce====
 Po navzorkovaní je na vstupní data aplikována CFFT a kde je poté detekován bin s nejvyšší hodnotou pomocí arm_max_f32(). Před detekcí je navíc nulována stejnosměrná složka, aby nedošlo k její detekci. Pokud maximální hodnota vyhovuje podmínce tresholdu je poslána pomocí VCP do PC. Podmínka treshold se uplatní v případě, že v okolí není detekován pohyb. Potom do PC vyšle hodnotu 0. Po navzorkovaní je na vstupní data aplikována CFFT a kde je poté detekován bin s nejvyšší hodnotou pomocí arm_max_f32(). Před detekcí je navíc nulována stejnosměrná složka, aby nedošlo k její detekci. Pokud maximální hodnota vyhovuje podmínce tresholdu je poslána pomocí VCP do PC. Podmínka treshold se uplatní v případě, že v okolí není detekován pohyb. Potom do PC vyšle hodnotu 0.
 <code c> <code c>
Řádek 43: Řádek 45:
     position = testIndex; ​     position = testIndex; ​
 </​code>​ </​code>​
 +====VCP (Virtual COM port)====
 Dalším krokem je poslání výsledku pomocí sériové linky do PC, kde jsou data zpracovány. Ty jsou ve firmwaru poslány následovně. Dalším krokem je poslání výsledku pomocí sériové linky do PC, kde jsou data zpracovány. Ty jsou ve firmwaru poslány následovně.
 <code c> <code c>
Řádek 59: Řádek 61:
  
  
-====Výsledky====+=====Výsledky=====
 Ukázka videa:​https://​www.youtube.com/​watch?​v=JGoTKWbEG4E&​feature=youtu.be Ukázka videa:​https://​www.youtube.com/​watch?​v=JGoTKWbEG4E&​feature=youtu.be
  
-Pro kontrolu byly navzorkovány data stejného pohybu a transformována do spektra v Matlabu. Na obrázku je znázorněné spektrum pohybu větráku. Spektrální čára ​(binodpovídá rychlosti a spektrální +Pro kontrolu byly navzorkovány data stejného pohybu a transformována do spektra v Matlabu. Na obrázku je znázorněné spektrum pohybu větráku. Spektrální čára ​654.bin odpovídá rychlosti ​20,48 km/h 327.bin odpovídá 10,24 km/h. Na binu 1024 dochází k zrcadlení spektra. Detektor není vytvořen k detekci kruhového pohybu, proto dochází ke generaci dvou harmonických signálů. 
-{{2019:​tha:​spektrum.png}}+{{ 2019:​tha:​spektrum.png }}
 ====Zdrojové kódy==== ====Zdrojové kódy====
- +https://​mega.nz/#​F!L0cUwKLJ!BFwxEzVCoT_sDPsceQKR3Q
-====Závěr====+
2019/hb100-radar.1579512234.txt.gz · Poslední úprava: 2020/01/20 10:23 autor: Tuan Ha