VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘÍCÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF CONTROL AND INSTRUMENTATION MRBT Robotika PROJEKT - Integrace rychlostního radaru do robotu Autoři práce: Jan Posekaný Jaromír Polák Vedoucí práce: Ing. František Burian 7. 5. 2012
Obsah 1. Zadání... 3 2. Čidlo KMY 24... 4 4. Korelace... 6 5. Implementace do kitu STM32FVL discovery... 7 6. Implementace pomocí timeru... 8 7. Závěr... 10 Seznam obrázků Obrázek 1: Zapojení pinů čidla... 4 Obrázek 2: Udávané průběhy čidla dle výrobce... 4 Obrázek 1: STM32FVL discovery... 5 Obrázek 2: Korelace... 6 Obrázek 3: Schéma zapojení pro řešení pomocí korelace... 7 Obrázek 4: Blokové schéma časovače... 8 Obrázek 5: Schéma zapojení pro řešení pomocí timeru... 9 Obrázek 6: Zarušený signál na osciloskopu... 10 Obrázek 7: Zapojení na nepájivém poli... 11
1. Zadání Seznamte se s mikrovlnným radarem KMY-24. Vyrobte jednoduchý přípravek s mikroprocesorem, který digitálně zpracovává data z tohoto radaru a přeposílá je po sběrnici do počítače nebo robotu. Pokuste se co nejvíce funkcí řešit integrovaně (tedy v mikrokontroleru).
2. Čidlo KMY 24 KMY 24 je mikrovlnný Radar zrychlení, fungující na základě Dopplerova jevu. Přenáší nízkoenergetické mikrovlnné záření o frekvenci 2,45 GHz. Toto záření objekty odrážejí. Pokud se objekt relativně pohybuje k senzoru, nastane posun díky Dopplerovu efektu. Vlna, která se posune tak se také smíchá s původní vlnou, výsledkem je výstupní napětí dvou signálů. Posun mezi těmito dvěma signály je buď negativní, nebo pozitivní a to podle toho zda se cíl blíží nebo vzdaluje od detektoru. Obrázek 1: Zapojení pinů čidla Napájecí napětí čidla je minimálně 10,8V maximálně 15,6V Obrázek 2: Udávané průběhy čidla dle výrobce Celý datascheat je volně přístupný na internetu.
3. Výběr kitu Zvolili jsme vývojový kit STM32FVL discovery a to z toho důvodu, že jsme ho vlastnili díky předchozím zkušenostem. Obrázek 3: STM32FVL discovery
4. Korelace K řešení naší úlohy bylo třeba si podrobně nastudovat korelaci. Korelace je matematický nástroj, který určuje podobnost signálů. Při řešení jsme použili vzorec: Poté, abychom otestovali, zda tento postup opravdu funguje, jsme využili programu Matlab. Zde jsme vytvořili dva vůči sobě posunuté signály, které jsme i zašuměli. Poté použili funkce korelace. Tento test jak je možné vidět na obrázku, dopadl dobře. Obrázek 4: Korelace Periodu signálu jsme nalezli následovně. Hledali jsme prvek, u kterého byl předchozí prvek menší než nula a následující prvek byl větší jak nula. Poté jsme určili pozici takového prvku. Dále jsme určili následující prvek se stejnými parametry. Rozdíl pozic těchto prvků vytváří hodnotu periody. Pro zjištění posuvu mezi signály jsme určili pozici maxima korelace mezi signálem jedna a dva a také naopak, mezi signálem dva a jedna. Rozdíl těchto dvou hodnot je pak roven posuvu mezi signály. Výsledná fáze ve stupních je:
5. Implementace do kitu STM32FVL discovery Poté co jsme funkčnost korelace pro naše použití otestovali v prostředí matlab, začali jsme se snažit o implementaci programu do kitu STM32FVL discovery. Tato implementace se nám zdařila a poté jsme na nepájivém poli vytvořili zapojení pro připojení čidla KMY 24 ke kitu STM32FVL discovery. Obrázek 5: Schéma zapojení pro řešení pomocí korelace Poté co jsme toto zrealizovali, začali jsme testovat funkčnost našeho zařízení pro měření zrychlení. Při testování funkčnosti jsme narazili na problém, že signál vycházející z čidla má velmi nízkou frekvenci (jednotky KHz). Z tohoto důvodu jsme museli rychlost vzorkování snížit na absolutní minimum, které kit STM32FVL discovery dovoluje. Nicméně to nebyl jediný problém, jelikož jsme narazili na druhý a tím je operační paměť procesoru. I při jejím plném využití jsme se dostali na pouhých 80 vzorků pro oba kanály a to i při nejnižší možné vzorkovací periodě. To bylo málo pro postihnutí celé periody zkoumaného signálu. Potřebovali bychom minimálně 10x větší operační paměť, nebo 10x menší vzorkovací periodu. Z výše popsaného důvodu tento způsob řešení není funkční. Program sám o sobě je funkční a pokud by byl použit jiný kit, který by tyto nedostatky odstranil tak by zařízení bylo plně funkční.
6. Implementace pomocí timeru Jelikož jsme disponovali pouze kitem STM32FVL discovery, tak jsme hledali jiná řešení, jak úkol splnit bez nutnosti použití jiného kitu. Jediné řešení, které nás napadlo a které jsme i zrealizovali bylo použití timeru. Obrázek 6: Blokové schéma časovače Schéma zapojení jsme doplnili o komparátory.
Obrázek 7: Schéma zapojení pro řešení pomocí timeru Princip je jednoduchý. Použili jsme jeden timer a dva vstupní záchytné registry. Do prvního záchytného registru se ukládala hodnota v případě, kdy na prvním signálu vznikla náběžná hrana. Do druhého registru se také ukládala hodnota při vzniku náběžné hrany, ale od druhého signálu. Poté co jsme tyto dvě hodnoty od sebe odečetli, získali jsme posuv. Pak jsme museli určit délku periody, což je hodnota registru v kroků n méně hodnota v kroku n-1. Další postup pro získání fáze je stejný jako v předchozím řešení. Nicméně, ani při tomto způsobu řešení jsme se nedostali ke smyslu plným výsledkům a to z důvodu míry zarušení signálu, se kterou si tato metoda nedovede poradit. Míru zarušení je možné vidět na obrázku 6.
Obrázek 8: Zarušený signál na osciloskopu 7. Závěr Při realizaci našeho projektu jsme narazili na mnoho problémů, některé se nám podařilo odstranit. Nicméně některé jsme eliminovat nedokázali. Ale, doufáme, že i ty které jsme nevyřešili, se nám povedlo popsat tak, aby se jim ostatní, kteří budou toto čidlo používat, dokázali vyvarovat. Při první zvolené metodě řešení jsme neměli problémy se zašumnělým signálem. To proto, že korelace dokáže s takovým signálem dobře pracovat a je vůči zarušení velice odolná. Nevýhoda této metody spočívá v náročnosti na potřebnou paměť, které se nám nedostávalo v použitém kitu STM32FVL discovery. U druhé zvolené metody jsme měli přesně opačný problém než u první. Zarušený signál nám nedovolil změřit pomocí čítačů reálné hodnoty fáze. V tomto případě by možná pomohl kvalitní zdroj, který by pouštěl minimální rušení ze sítě. My jsme se pokoušeli rušení co nejvíce vyfiltrovat, ale neúspěšně. Další způsob řešení by byl, posílání navzorkovaných signálů do počítače, kde by se následně provedla korelace a výpočet fáze. Touto možností jsme se nezabývali, jelikož v zadání byl požadavek, na co nejvíce integrované řešení a toto řešení ho nesplňuje ani minimálně.
Myslíme si, že nejlepším řešením je hned první. To nefunguje pouze z důvodu špatně zvoleného hardware. Ale druhé řešení by při minimalizaci rušení mělo fungovat také. Obrázek 9: Zapojení na nepájivém poli