Existuje mnoho technologií snímání, které dokážou detekovat pohyb, ale nejrozšířenější je využití infračerveného záření IR. IR senzory mohou být aktivní nebo pasivní.
Tento článek pojednává o základech snímání pohybu, a pak představí řešení pomocí DM080104 ATtiny 1627 Curiosity Nano od Microchipu. Součástí článku je také popis komplexního algoritmu pro snímání pohybu, který využívá techniky strojového učení.
Základy snímání pohybu
Aktivní senzory obsahují IR LED vysílač a fotodiodový přijímač. Aktivní senzory snímají odražené infračervené záření od objektů a pokud odražené IR světlo nepřistane do přijímače, znamená to, že někdo vstoupil do snímaného prostoru. V závislosti na aplikaci může aktivní senzor obsahovat několik fotodiod pro sledování směru pohybu. Na základě zpoždění v jednotlivých přijímačích vyvolané pohybem lze detekovat pomocí čtyř fotodiod následující směry: doleva, doprava, vpřed, vzad, nahoru a dolů. Nevýhodou tohoto aktivního přístupu, je to, že nerozezná, zda se jedná o předmět nebo o živého tvora.
Pasivní infračervené senzory nedokážou infračervené světlo vysílat, ale pouze je přijímat. PIR senzor využívá infračervené záření pohybujícího se objektu v zorném poli. Pokud se IR objekt v zorném poli zastaví, pasivní detektor není schopen tento subjekt detekovat.
Obrázek 1 ukazuje, výstup analogového PIR senzor. 1. Není přítomno IR záření, 2. Pohybující se IR objekt, 3. Objekt v zorném poli, ale nepohybuje se, 4, Objekt opouští zorné pole, 5. v zorném poli není IR objekt.
Obrázek 1: PIR senzory využívají infračervené záření detekovaného objektu. Na obrázku jsou znázorněny různé stupně detekce. (Zdroj obrázku: Microchip Technology)
Při výběru správného typu IR senzoru se musí pečlivě zvážit kompromisy ve vztahu k následujícím parametrům:
- Cena senzoru
- Typ pouzdra
- Rozhraní mikrokontroleru
- Detekční algoritmus a výpočetní výkon
- Dosah snímače
- Spotřeba energie
Podívejme se na příklad systému detekce pohybu PIR, který používá ATtiny1627 Curiosity Nano.
Úvod do ATtiny1627 Curiosity Nano
Pro snímání pohybu lze využít mikrokontroler ATtiny1627 od Microchip Technology. Tento 8bitový MCU má vestavěný 12bitový analogově-digitální převodník (ADC), a díky hardwarové akumulaci 1024 vzorků lze dosáhnout až 17 bitů. Obsahuje také programovatelný zesilovač (PGA), který dokáže nastavit adekvátní citlivost. Kombinace těchto dvou vlastností ho činí ideálním kandidátem pro systém s detekcí pohybu.
Pro rychlou stavbu prototypu nebo i finálního řešení je vhodné použít vývojovou desku DM080104 ATtiny1627 Curiosity Nano (obrázek 2). Vývojová deska obsahuje AVR mikrokontroler, který běží na frekvenci až 20 MHz s 16 Kbytes Flash, 2 kB SRAM a 256 bajty EEPROM pamětí. Deska má integrován programátor, LED diodu a uživatelské tlačítko. Vývojová deska je navržena tak, aby se dala snadno připojit pomocí „hřebínkového“ konektoru a vytvořit tak v krátké časové době prototyp nebo ji rychle integrovat do základové desky finálního řešení.
Obrázek 2: ATtiny1627 Curiosity Nano má vestavěný 8bitový programovatelný AVR MCU běžící na frekvenci až 20 MHz s 16 Kbytes Flash, 2 Kbytes SRAM a 256 bajty EEPROM. Vývojovou desku lze snadno připájet nebo zapojit do větší základní desky pro vytvoření prototypu nebo finálního řešení. (Zdroj obrázku: Microchip)
Vývojová deska má dva kanály logického analyzátoru, DGI a GPIO. Tyto kanály lze použít k ladění a správě mikrokontroleru. Lze využít integrovaný virtuální COM port (CDC) pro ladění nebo logování dat. Jako vývojové prostředí lze použít Microchip Studio 7.0 a jako kompilátor si můžeme vybrat z GCC nebo XC8 MPLAB X. Microchip nabízí několik softwarových balíčků, které naleznete v úložišti kódu, kde naleznete příklady kódu pro analogovou konverzi dat, měření teploty a komunikaci s PIR senzorem.
Rychlé vytvoření prototypu s detekcí pohybu
Vytvoření prototypu s detekcí pohybu je jednoduchou a ne příliš nákladnou záležitostí. Komponenty potřebné k sestavení prototypu obsahují:
- DM080104 ATtiny1627 Curiosity Nano
- AC164162T Curiosity Nano adaptér
- PIR senzor MIKROE-3339 od MikroElektronika
ATtiny1627 Curiosity Nano jsme si již představili. Curiosity Nano Adapter poskytuje tři rozšiřující sloty pro desky MIKROE a další „hřebínkové“ konektory pro přístup k jednotlivým signálům nebo pro přidání dalšího hardware.
Obrázek 3: Curiosity Nano Adapter má tři rozšiřující sloty pro desky MIKROE a další konektory pro přidání rozšiřujícího hardware. (Zdroj obrázku: Microchip)
Poslední a nejdůležitější komponentou je deska MIKROE-3339, znázorněný na obrázku 4, který osahuje PIR senzor PL-N823-01 od KEMET a lze ho jednoduše připojit k nano adaptéru Curiosity.
Je důležité poznamenat, že MIKROE-3339 vyžaduje určité úpravy, abychom mohli použít příklad pro detekci pohybu z uložiště Microchipu. Tyto úpravy lze nalézt na straně 10 aplikační poznámky AN3641 společnosti Microchip, „Nízkoenergetická, nákladově efektivní detekce pohybu PIR pomocí řady tinyAVR 2“.
Obrázek 4: Zacvakávací deska MIKROE-3339 obsahuje PIR senzor KEMET PL-N823-01, která umožňuje jednoduše vytvořit prototyp. (Zdroj obrázku: MikroElektronika)
Software pro detekci pohybu PIR
Existuje několik možností pro tvorbu software. První možností je využtí vzorových příkladů poskytnutých společností Microchip v aplikační poznámce AN3641. Uložiště těchto příkladů lze nalézt na Githubu .
Ukázkový kód probíhá v několika fázích. Nejprve se inicializuje a zahřeje PIR senzor. Pak obslužná rutina přerušení ADC převodníku se použije k pravidelnému vzorkování PIR senzoru. Tyto data se zprůměrují a nakonec se použije detekční algoritmus k vyhodnocení, zda byl detekován pohyb či ne. Pokud je detekován pohyb, LED na desce se rozbliká a přes sériový port se odešlou příslušná data. Kompletní průběh programu je vidět na obrázku 5.
Obrázek 5: Graf představuje vývojový diagram software pro detekci pohybu. (Zdroj obrázku: Microchip)
Druhou možností je využít inicializaci a rutiny přerušení ADC z příkladů Microchip, ale místo použití jejich detekčního algoritmu použít strojového učení. PIR data lze shromáždit a následně je použít k trénování neuronové sítě. Model strojového učení lze převést do mikrokontroleru s podporou TensorFlow Lite for Microcontrollers pomocí matematiky s pevným bodem a s 8 bitovými váhami.
Strojové učení vyniká v tom, že odpadá nutnost navrhovat algoritmus pro jejich specifické potřeby. Místo toho se jim předají data, aby se neuronová síť naučila tento algoritmus sama. Strojové učení umožňuje rychle škálovat a upravovat své modely, jakmile jsou k dispozici nová data.
Rady při vývoji zařízení s detekcí pohybu pomocí ATtiny1627
- Využijte příklad detekce pohybu od Microchip, který najdete na GitHubu
- Navrhněte si hardware, kde lze jednoduše připájet desku ATtiny1627 Curiosity Nano
- Pro menší, efektivnější a optimalizovaný kód použijte kompilátor XC8 od Microchip.
- Před spuštěním aplikace si přečtěte „AN3641 Low-Power, Cost-Efficient PIR Motion Detection Using the tinyAVR“
- Zvažte použití strojového učení pro algoritmus k detekci pohybu
Závěr
Detekce pohybu se stává běžnou funkcí v mnoha aplikacích, zejména tam, kde je výhodné bezdotykové ovládání. ATtiny1627 je vynikající výchozí bod a Microchip poskytuje širokou škálu nástrojů a aplikačních poznámek, které pomohou vytvořit funkční prototyp. Pokud bychom se nechtěli pouštět do vývoje algoritmu pro detekci pohybu, lze použít strojové učení.
Článek vyšel v originále na webu DigiKey.com, autorem je Jacob Bening.