Senzor detekce obličeje a osvětlení je vstupní modul pro Arduino. Tento modul obsahuje senzor TMD27713, který dokáže zpracovat hodnotu okolního osvětlení (ALS – Ambient Light Sensor) a zároveň přítomnost předmětů před senzorem. Co se týká okolního osvětlení, tak to je možné měřit od desetin až po tisíce luxů. Pro měření vzdálenosti předmětů je pak možné detekovat předměty od cca deseti centimetrů až po přibližně tři centimetry před senzorem. Výstup senzoru je pak takový, že u předmětu vzdáleného deset a více centimetrů je výstup 0, poté se digitální výstup zvětšuje až na maximální hodnotu 1023, kterou dosáhneme na přibližně zmíněných třech centimetrech před senzorem. A cokoliv mezi třemi centimetry a přímým dotykem se senzorem už zůstává na hodnotě 1023. Pro napájení senzoru TMD je nutné použít napětí o hodnotě 3,3 Voltu. Typická hodnota proudového odběru je 200-250 mikroampér, ale modul je také možné přepnout do režimu spánku, v kterém se můžeme dostat až na 2,5 mikroampér. Senzor má k dispozici i programovatelný přerušovací pin INT, ale ten není v tomto návodu použitý.

Senzor detekce obličeje a osvětlení TMD27713

Pro úspěšné propojení senzoru TMD27713 a Arduino desky stačí zapojit celkem 4 vodiče. Propojíme VCC s +3V3 Arduina, GND se zemí Arduina, SCL s pinem A5 a SDA s pinem A4. Datové piny SDA a SCL jsou zapojeny na sběrnici I2C Arduina. Seznam těchto pinů pro jednotlivé desky si můžete prohlédnout zde.

Schéma zapojení senzoru detekce obličeje a osvětlení TMD27713

Pro úspěšné nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu TMD277x, návod, jak na to je uveden zde. Ukázkový kód obsahuje na svém začátku připojení potřebné knihovny a inicializaci senzoru z knihovny. V podprogramu setup nastavíme komunikaci po sériové lince a následně zahájíme komunikaci s připojeným senzorem. Nekonečná smyčka loop je v tomto příkladu díky knihovně poměrně jednoduchá, kdy na jejím začátku vytvoříme proměnné pro ukládání výsledků. V dalším kroku do nich načteme měřené údaje ze senzoru a následně vytiskneme získané údaje po sériové lince. Na konci programu se nachází už jen pauza před novým měřením.

// Senzor obličeje a osvětlení TMD27713

// připojení potřebné knihovny
#include <TMD277x.h>
// inicializace senzoru z knihovny
TMD277x tmdSenzor;

void setup() {
  // inicializace komunikace po sériové lince
  // rychlostí 9600 baud
  Serial.begin(9600);
  // zahájení komunikace se senzorem
  tmdSenzor.begin();
}

void loop() {
  // vytvoření proměnných pro ukládání výsledků
  float osvetleni;
  int priblizeni;
  // načtení měřených údajů ze senzoru
  osvetleni = tmdSenzor.readLuminance();
  priblizeni = tmdSenzor.readProximity();
  // výpis naměřených dat po sériové lince
  Serial.print("Intenzita osvetleni v okoli: ");
  Serial.print(osvetleni);
  Serial.print(" lux | vzdalenost mezi senzorem a predmetem: ");
  Serial.println(priblizeni);
  // pauza před novým měřením
  delay(1000);
}

Po nahrání ukázkového kódu do Arduino desky s připojeným senzorem detekce obličeje a osvětlení dostaneme například tento výsledek:

Intenzita osvetleni v okoli: 27.09 lux | vzdalenost mezi senzorem a predmetem: 0
Intenzita osvetleni v okoli: 28.51 lux | vzdalenost mezi senzorem a predmetem: 0
Intenzita osvetleni v okoli: 17.82 lux | vzdalenost mezi senzorem a predmetem: 34
Intenzita osvetleni v okoli: 2.61 lux | vzdalenost mezi senzorem a predmetem: 1023
Intenzita osvetleni v okoli: 1.66 lux | vzdalenost mezi senzorem a predmetem: 1023
Intenzita osvetleni v okoli: 17.82 lux | vzdalenost mezi senzorem a predmetem: 0

Senzor detekce obličeje a osvětlení TMD27713 je zajímavý rozšiřovací modul pro Arduino, který nám umožňuje detekovat různé předměty v malé vzdálenosti před senzorem a zároveň měřit hodnotu okolního osvětlení. Jak z jeho popisu vyplývá, díky jeho malým rozměrům je vhodným modulem do malých zařízení jako například Arduino telefon, ovladač či jiné zařízení, kde chceme řídit podsvícení či výpis informací na displej s ohledem na okolní osvětlení či přítomnost uživatele. Zároveň je pro nás výhoda i jeho nízká spotřeba, takže se ho nemusíme bát použít v bateriově napájených zařízeních. Použitá knihovna obsahuje pouze základní funkce, které je ale pro pokročilejší uživatele jednoduché rozšířit pro využití všech funkcí tohoto senzoru.

 

Seznam použitých komponent:

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

https://dratek.cz/arduino/1660-senzor-detekce-obliceje-na-kratkou-vzdalenost-a-osvetleni-tmd27713-1499834364.html

FB tw

Další podobné články