Mikrovlnný radar
Zo stránky SensorWiki
Autori: | Boris Dobrovič, Filip Jančík | |
Študijný odbor: | Aplikovaná mechatronika a elektromobilita | 1. Ing. (2019) |
Zadanie
- Oboznámiť sa s mikrovlnným radarom MC420S
- Otestovanie funkcie radaru
- Vytvorenie praktického programu
Literatúra:
- Arduino návody
- Doska PBMCUSLK:MCU Project Board (Datasheet)
- Operačný zosilňovač Texas Instruments LM324 (Datasheet)
Analýza
- Po zapojení senzora priamo na Arduino podľa tohto návodu sme narazili na problém (pravdepodobne chybu senzora): v Arduino programe sme čítali nulovú hodnotu na analógovom vstupe (pin A1).
- Osciloskopom sme zistili, že mikrovlnný senzor vracia na výstup záporné napätie v intervale -200 až -100mV.
- Použili sme v literatúre spomínanú dosku a invertujúci zosilňovač na pretransformovanie záponého napätia na interval 2 až 5V (Arduino dokáže detegovať napätie na analógovom vstupe od 0V do 5V).
- Osciloskopom sme otestovali správne zapojenie a funkčnosť senzora.
- Vytvorili sme Arduino program, ktorý dokáže efektívne detegovať pohyb pred senzorom
Popis riešenia
Podľa návodu bolo zapojenie senzora jednoznačné. Potrebovali sme zapojiť 4 piny zo senzora na Arduino dosku: 2 uzemnenia, napájanie a výstupný analógový signál.
Schéma zapojenia snímača podľa návodu
Arduino program avšak detegoval nulovú hodnotu na pine A1. Neštandardné správanie sa senzora sme si overili osciloskopom. Na výstupe zo senzora sme namerali -160mV ustálené napätie, ktoré sa správne menilo pri manipulovaní senzorom. Overili sme teda funkčnosť senzora, ale museli sme napätie dostať do intervalu 0 až 5V, ktorý je interval detekcie Arduina na analógovom vstupe.
Na "kalibráciu" signálu sme použili invertujúci zosilňovač. Použili sme dosku PBMCUSLK:MCU Project Board a operačný zosilňovač Texas Instruments LM324. Z príslušných datasheetov a odporov sme zostavili vhodný zosilňovač. Funkčnosť sme najprv overili osciloskopom.
Týmto zapojením sme namerali následné hodnoty:
- Pri pomalom priblížení objektu k senzoru spôsobí zmenu výstupnej hodnoty. Senzor dokáže detegovať pohyb smeriaci k senzoru a od senzora:
- Senzor deteguje, ak je ľubovoľný objekt priamo pred snímanou oblasťou. V konkrétnom prípade je senzor zakrytý objektom vo vzdialenosti 1cm:
- Senzor ostro deteguje vertikálny a horizontálny pohyb v snímanej oblasti. Nasledujúcu zmenu spôsobilo kývanie rukou vo vzdialenosti 1m:
Z našich meraní sme zistili, že senzor sníma v oblasti tvaru valca, do približne 25cm. Vo väčšej vzdialenosti než 25cm je senzor nespoľahlivý. Na povrchu snímača je detegovaný aj pohyb 1mm širokého objektu (spojovací káblik).
Senzor je vhodný na vyslanie signálu k spustenie systému pri detegovaní ľubovoľného pohybu, napr. pri automatickom zapnutí osvetlenia priestoru pri detekcií vstupu osoby alebo vypnutí po dlhšom čase bez detekcie. Senzor nedokáže rozpoznávať gestá.
Algoritmus a program
Vytvorili sme jednoduchý program na prácu s mikrovlnným radarom. Program je naprogramovaný v jazyku C a vytvorení bol pomocou vývojového prostredia Arduino IDE. Princíp programu spočíva v získavaní hodnôt, ktoré vstupujú cez pin A1 umiestnenom na arduine a následné spracovanie a vyhodnotenie dát v reálnom čase. Pri testovaní sme zistili, že v prípade ak sa v snímacej zóne mikrovlnného radaru nenachádza žiaden objekt, hodnoty vracajúce arduinom sa nachádzajú v rozmedzí 740-800. Tieto dve hodnoty sme sa rozhodli nastaviť ako hraničné hodnoty pri porovnávaní. Arduino vráti nižšiu hodnotu ak sa objekt od radaru vzďaľuje a väčšiu hodnotu ak sa objekt približuje. V prípade, že arduino vráti mimo našich hraničných hodnôt náš program vypíše, či sa daný objekt vzďaľuje, alebo približuje. Toto rozhodovanie sa nerobí z jedného údaju, ale vyhodnocuje sa priemer hodnoty z 10-tich vzoriek pre lepšiu presnosť.
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:
/* A nezabudnite zdroják hojne komentovať */
int main(void) {
printf("Hello, World!\n");
return(0);
}
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
Zdrojový kód: serial.h a main.c
Overenie
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje). Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, odfotografujte ho.
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.