Doppler radar HB100 10,525 GHz

Doppler radar je mikrovlnný senzor, který umožňuje uživateli monitorovat dění okolo Arduina. Tento senzor typu HB100 pracuje na frekvenci 10,525 GHz. Pro jeho napájení je nutné použít napětí 5V a proudový odběr pak dosahuje maximálně hodnoty 40 mA. Celý modul má rozměry 37 x 45 x 8 mm. Na výstupu senzoru HB100 se při detekci pohybu mění jak stejnosměrná, tak střídavá složka napětí. A právě ze střídavé složky je také možné vypočítat rychlost pohybu předmětu. Ale pro přesné měření je nutné doplnit měřící senzor dalšími součástkami. Pro jednoduchou ukázku se tedy tento návod věnuje pouze detekci stejnosměrného napětí, a tedy získání informace o detekci pohybu jako takové. Pokud máte zájem, zde je pokročilejší článek v angličtině, který pojednává o výpočtu rychlosti, kde se využívá střídavé složky napětí.

Pro úspěšné propojení radaru s Arduino deskou propojíme celkem 4 vodiče. Připojíme +5V na 5V Arduina, IF na pin A0 a obě strany GND na zem Arduina.

Ukázkový kód obsahuje na svém začátku nastavení čísla propojovacího pinu a vytvoření proměnných pro uložení dat a počtu měřených vzorků. V podprogramu setup je provedena inicializace komunikace po sériové lince. V nekonečné smyčce loop vždy v prvním kroku vynulujeme proměnnou s výsledky. Následně pomocí for smyčky postupně načteme počet nastavených měřících vzorků do proměnné s 1ms odstupem. Poté vypočteme průměr z naměřených dat a přejdeme ke kontrolní podmínce. V této podmínce je dobré nejprve dle komentáře nastavit detekci všech hodnot větších než nula, čímž najdeme naši klidovou hodnotu. U mě to byl rozptyl hodnot 15 až 17 a po zanesení těchto hodnot do podmínky mohu tedy spolehlivě detekovat pohyb nebo překážky před senzorem. Pokud totiž bude naměřená hodnota jiná, provede se vytištění informací o detekci po sériové lince.

// Doppler radar 10.525GHz

// nastavení propojovacího pinu
#define pinIF A0
// vytvoření proměnné pro načtení dat
// a proměnné s počtem měřených vzorků
int data;
const int pocetMereni = 100;

void setup() {
  // inicializace komunikace po sériové lince
  // rychlostí 9600 baud
  Serial.begin(9600);
}
void loop() {
  // vynulování proměnné s výsledky
  data = 0;
  // postupné načtení nastaveného počtu vzorků
  // do proměnné s 1ms odstupem
  for (int i = 0; i < pocetMereni; i++) {
    data += analogRead(pinIF);
    delay(1);
  }
  // vytvoření průměru z počtu provedených měření
  data = data / pocetMereni;
  // pokud je načtená hodnota menší nebo větší než klidová,
  // vypiš informace o detekci pohybu po sériové lince,
  // pro hledání klidové hodnoty stačí vyměnit
  // podmínku za: if (data > 0)
  if (data < 15 | data > 17) {
    Serial.println("Detekovana prekazka!");
    Serial.print("Nactena hodnota: ");
    Serial.println(data);
    Serial.println();
  }
}

Po nahrání ukázkového kódu do Arduino desky s připojeným Doppler radarem dostaneme například tento výsledek:

Detekovan pohyb!
Nactena hodnota: 22

Detekovan pohyb!
Nactena hodnota: 20

Detekovan pohyb!
Nactena hodnota: 18

Detekovan pohyb!
Nactena hodnota: 13

Detekovan pohyb!
Nactena hodnota: 10

Doppler radar je podle mého názoru zajímavý senzor, který pomocí detekce stejnosměrného napětí umožňuje velmi spolehlivě detekovat jakýkoliv předmět ve vzdálenosti přibližně 1 až 150 milimetrů. Pokud ale vytvoříte zmíněný dodatkový obvod, můžete se dostat až na vzdálenost 20 metrů. Díky vysoké měřící frekvenci ale tento senzor dokáže pracovat i s přidáním tlustších předmětů – já jsem úspěšně otestoval například i detekci doteku ruky po přiložení radaru na dřevotřískový stůl o tloušťce 3 centimetry. Hodí se tak tedy do různých projektů jako například dotykový senzor, senzor přiblížení a podobně.

 

Seznam použitých komponent:

https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html

https://dratek.cz/arduino/1067-doppler-radar-10525ghz-mikrovlnny-senzor-1500635976.html

Další podobné články