Zjednodušte detekci pohybu pomocí desky ATtiny1627 Curiosity Nano

By Jacob Beningo

Contributed By DigiKey's North American Editors

Potřeba snímání pohybu v mnoha průmyslových, komerčních, domácích a vestavěných aplikacích stále roste. Problém je v tom, že snímání pohybu může vyžadovat drahé digitální senzory, se kterými je obtížná komunikace. Jakmile dojde k příjmu dat, je navíc stále třeba vyvinout algoritmy pro detekci pohybu, což není triviální úsilí.

Snímat pohyb dokáže několik řešení, ale nejoblíbenější jsou infračervená (IR) řešení. Vývojáři si mohou vybrat aktivní řešení, které je běžné u mnoha samostatných digitálních senzorů, ale je dražší a složitější na implementaci. Alternativou je využití pasivních infračervených senzorů (PIR), které jsou méně nákladné a jejich propojování je přímočařejší. PIR senzor poskytuje analogové rozhraní, ke kterému se může připojit většina mikrokontrolérů.

V tomto článku se pojednává o základech snímání pohybu a poté je zde ukázáno, jak mohou vývojáři začít se snímáním pohybu pomocí PIR senzoru připojeného k vyhodnocovací desce DM080104 ATtiny 1627 Curiosity Nano společnosti Microchip. Poté je zde ukázána alternativa vývoje komplexního algoritmu pro snímání pohybu, která využívá techniky strojového učení (ML). Součástí článku jsou i tipy a triky, jak začít.

Základy snímání pohybu

Existuje mnoho technologií snímání, které dokážou detekovat pohyb, ale nejrozšířenější z nich je IR. IR senzory jsou aktivní nebo pasivní. Aktivní senzory obsahují IR LED vysílač a přijímač s fotodiodou. Aktivní senzory snímají IR záření odražené od objektů a poté využívají přijaté záření k detekci, zda se subjekt nebo objekt přemístil. V závislosti na aplikaci může aktivní senzor obsahovat několik fotodiod pro sledování směru pohybu. Například detekcí toho, které IR signály se zpožďují nebo které jsou napřed, lze čtyři fotodiody použít ke snímání směrového pohybu, jako je doleva, doprava, vpřed, vzad, nahoru a dolů.

Pasivní infračervené senzory nedokážou infračervené záření vysílat, pouze jej přijímají. PIR senzor používá IR záření vysílané subjektem/objektem zájmu k detekci jeho přítomnosti a jakéhokoli pohybu s ním spojeného. Například domácí zabezpečovací systém bude mít často pohybové senzory, které detekují IR záření vyzařované člověkem nebo zvířetem a určují, zda se objekt pohybuje v jejich zorném poli. Na obrázku 1 je ukázáno, co může analogový PIR senzor detekovat za různých podmínek, jako je žádné IR záření, přítomnost IR záření, stabilní a mizející (přerušené) záření.

Obrázek – PIR senzory využívají IR záření vyzařované předměty nebo předměty.Obrázek 1: PIR senzory využívají IR záření vyzařované subjekty nebo objekty k detekci jejich přítomnosti a pohybu. Zobrazeny jsou různé stupně detekce: žádné IR záření, přítomnost IR záření, stabilní a mizející (přerušené) záření. (Zdroj obrázku: společnost Microchip Technology)

Při výběru správného typu IR senzoru pro danou aplikaci musí vývojáři pečlivě zvážit kompromisy ve vztahu k následujícím parametrům:

  • Cena senzoru
  • Balení
  • Rozhraní mikrokontroléru
  • Algoritmus detekce a výpočetní výkon
  • Dosah senzoru a spotřeba energie

Podívejme se na příklad systému PIR detekce pohybu, který používá mikrokontrolér ATtiny1627.

Úvod k desce ATtiny1627 Curiosity Nano

Zajímavým řešením mikrokontroléru (MCU) pro snímání pohybu je zařízení ATtiny1627 od společnosti Microchip Technology. Tento 8bitový MCU má vestavěný 12bitový analogově-digitální převodník (ADC), který lze převzorkovat na 17 bitů. Obsahuje také programovatelný zesilovač zesílení („Programmable Gain Amplifier“, PGA), který dokáže nastavit citlivost. Kombinace těchto dvou funkcí může poskytnout levný systém detekce pohybu vhodný pro mnoho aplikací.

Nejlepším nízkonákladovým řešením pro začátek je použití vývojové desky DM080104 ATtiny1627 Curiosity Nano (obrázek 2). Vývojová deska obsahuje MCU AVR, který běží až na 20 MHz s 16 kB flash paměti, 2 kB paměti SRAM a 256 B paměti EEPROM. Deska obsahuje programátor, LED diodu a uživatelský spínač. Snad nejzajímavější je, že deska je navržena tak, aby se dala snadno připojit pomocí patic pro rychlé prototypování, nebo ji lze přímo připájet na prototypovou nebo produkční desku.

Obrázek desky ATtiny1627 Curiosity Nano společnosti MicrochipObrázek 2: Deska ATtiny1627 Curiosity Nano má vestavěný 8bitový programovatelný MCU AVR běžící rychlostí až 20 MHz s 16kB flash paměti, 2 kB paměti SRAM a 256 B paměti EEPROM. Vývojovou desku lze snadno připájet na větší základní desku nebo ji s ní propojit pro usnadnění prototypování a produkčních systémů. (Zdroj obrázku: společnost Microchip)

Deska je dodávána s několika dalšími funkcemi, které mohou být pro vývojáře užitečné. Za prvé, má dva kanály logického analyzátoru, DGI a GPIO. Tyto kanály lze použít k ladění a správě mikrokontroléru. Za druhé, vývojáři mohou využít integrovaný virtuální port COM (CDC) pro ladění nebo protokolování zpráv. V neposlední řadě lze k zápisu a nasazení softwaru použít několik nástrojů. Vývojáři mohou například použít Microchip Studio 7.0, kompilátor GCC, popř. MPLAB X, který používá buď kompilátor GCC, nebo XC8.

Existuje také přibližně dvanáct úložišť kódů, které společnost Microchip podporuje různými příklady pro mikrokontrolér ATtiny1627. Tato úložiště kódů obsahují příklady od PIR detekce pohybu, měření teploty po analogovou konverzi a mnoho dalšího.

Sestavení zkušební stolice detekce pohybu

Uvedení zkušební stolice detekce pohybu do provozu je jednoduché a není příliš nákladné. Komponenty potřebné k sestavení zkušební stolice zahrnují následující:

Na desku ATtiny1627 Curiosity Nano jsme se již podívali. Curiosity Nano Adapter představuje nosnou desku pro zařízení ATtiny1627 Curiosity Nano, kterou lze použít pro rychlé prototypování (obrázek 3). Kromě toho poskytuje tři rozšiřující sloty pro rozšiřující desky click boards MIKROE spolu s přístupnými paticemi pro celou škálu signálů nebo přidání vlastního hardwaru.

Obrázek zařízení Curiosity Nano Adapter společnosti MicrochipObrázek 3: Curiosity Nano Adapter má tři rozšiřující sloty pro rozšiřující desky click boards MIKROE spolu s paticemi pro přístup k signálům a přidání vlastního hardwaru. (Zdroj obrázku: společnost Microchip)

Nakonec poskytuje PIR senzor MIKROE-3339, uvedený na obrázku 4, pasivní IR senzor PL-N823-01 společnosti KEMET v jednoduché, rozšiřitelné podobě, kterou lze připojit přímo k zařízení Curiosity Nano Adapter. Je důležité poznamenat, že senzor MIKROE-3339 vyžaduje při použití s příklady zařízení společnosti Microchip pro detekci pohybu určité úpravy. Tyto úpravy lze nalézt na straně 10 aplikační poznámky AN3641 společnosti Microchip „Cenově efektivní PIR detekce pohybu s nízkou spotřebou pomocí řady tinyAVR® 2“.

Obrázek rozšiřující desky click board MIKROE-3339 společnosti MikroElektronikaObrázek 4: Rozšiřující deska click board MIKROE-3339 poskytuje PIR senzor PL-N823-01 společnosti KEMET ve snadno prototypovatelné formě. (Zdroj obrázku: společnost MikroElektronika)

Software pro PIR detekci pohybu

Existuje několik možností, které mohou vývojáři použít k vytvoření svých softwarových řešení pro detekci pohybu. Prvním řešením je použití vzorových materiálů poskytnutých společností Microchip v aplikační poznámce AN3641. Úložiště kódu pro ukázkový software detekce pohybu lze nalézt na webu GitHub.

Aplikace probíhá v několika fázích. Nejprve aplikace inicializuje a zahřeje PIR senzor. Za druhé, k pravidelnému vzorkování PIR senzoru se použije obslužná rutina přerušení ADC. Za třetí, data ADC se zprůměrují. Nakonec se k signalizaci, zda byl detekován pohyb, použije algoritmus detekce. Pokud je detekována aktivita, bude blikat LED dioda na desce a přes sériový port se odešle signál detekce. Kompletní průběh programu je vidět na obrázku 5.

Obrázek toku softwaru pro aplikaci detekce pohybu společnosti Microchip (kliknutím zvětšíte)Obrázek 5: Graf představuje tok softwaru pro aplikaci detekce pohybu společnosti Microchip. (Zdroj obrázku: společnost Microchip)

Druhou možností pro detekci pohybu je využít inicializaci a rutinu přerušení ADC z příkladů společnosti Microchip, ale místo použití jejího algoritmu detekce využijte strojové učení. PIR data lze shromáždit a následně použít k trénování neuronové sítě. Model ML lze poté pomocí matematiky s pevnou řádovou čárkou s 8bitovými váhami převést ke spuštění na mikrokontroléru s TensorFlow Lite pro mikrokontroléry.

Na používání ML tímto způsobem je zajímavé, že vývojářům odpadá nutnost navrhovat algoritmus pro své specifické potřeby. Místo toho mohou pouze vzorkovat senzor za očekávaných podmínek a případů použití, které pro svou aplikaci potřebují. ML také umožňuje vývojářům rychle škálovat a upravovat své modely, jakmile jsou k dispozici nová data.

Tipy a triky pro snímání pohybu pomocí mikrokontroléru ATtiny1627

Vývojáři, kteří chtějí s detekcí pohybu začít, mají k dispozici mnoho možností. Mezi „tipy a triky“, které by vývojáři měli mít na paměti ke zjednodušení a urychlení vývoje, patří:

  • Vybudujte si nízkonákladovou platformu pro prototypování pomocí běžně dostupných dílů.
  • Využijte příklad detekce pohybu od společnosti Microchip, který najdete na webu GitHub.
  • Navrhněte prototypový hardware s velikostí desky ATtiny1627 Curiosity Nano a desku připájejte přímo k hardwaru, abyste počáteční prototypy zjednodušili.
  • Pro menší, efektivnější a optimalizovaný kód použijte kompilátor XC8 společnosti Microchip.
  • Před spuštěním aplikace detekce pohybu si přečtěte aplikační poznámku AN3641 společnosti Microchip „Cenově efektivní PIR detekce pohybu s nízkou spotřebou pomocí řady tinyAVR® 2.
  • Silně zvažte použití ML pro algoritmus detekce pohybu.

Vývojáři, kteří se budou těchto „tipů a triků“ držet, zjistí, že při prototypování své aplikace ušetří poměrně dost času a nervů.

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í. Vývojáři mohou minimalizovat své náklady na kusovníky a zjednodušit své návrhy využitím PIR senzoru a levného mikrokontroléru. Jak je zde ukázáno, je mikrokontrolér ATtiny1627 vynikajícím výchozím bodem a společnost Microchip poskytuje širokou škálu nástrojů a aplikačních poznámek, které vývojářům pomohou začít. Navíc lze k minimalizaci složitosti vývoje algoritmu pro detekci pohybu použít ML.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

About this publisher

DigiKey's North American Editors