A mozgásérzékelés egyszerűsítése az ATtiny1627 Curiosity Nano segítségével
Contributed By DigiKey's North American Editors
2022-02-23
A mozgásérzékelés iránti igény folyamatosan növekszik számos ipari, kereskedelmi, otthoni és beágyazott eszköz és készülék esetében. A gond az, hogy a mozgásérzékeléshez drága digitális érzékelőkre van szükség, amelyekhez nehéz kapcsolódni. Ezenkívül miután az adatok beérkeztek, még algoritmusokat is ki kell fejleszteni a mozgás érzékelésére, ami nem a legegyszerűbb feladat.
A mozgás érzékelésére számos módszer van, de az infravörös (IR) érzékelést használó megoldások a legnépszerűbbek. A fejlesztők választhatnak valamilyen aktív érzékelős megoldást is, amely számos önálló digitális érzékelő esetében hétköznapinak számít, de drágább és bonyolultabb a megvalósítása. Az alternatíva a passzív infravörös érzékelők (PIR) használata, amelyek kevésbé költségesek, és egyszerűbb a csatlakoztatásuk. A passzív infravörös érzékelők analóg csatlakozást tesznek lehetővé, és a legtöbb mikrovezérlőhöz csatlakoztathatóak.
Ez a cikk elmagyarázza a mozgásérzékelés alapjait, majd bemutatja, hogyan kezdhetnek bele a fejlesztők a mozgásérzékelés használatába a Microchip DM080104 ATtiny 1627 Curiosity Nano fejlesztőkártyához csatlakoztatott passzív infravörös érzékelők segítségével. Ezután ismerteti, hogyan lehet kiváltani a mozgásérzékeléshez szükséges összetett algoritmusok fejlesztését a gépi tanulási (ML) módszerek előnyeit kihasználva. A kezdéshez hasznos tanácsokat és trükköket is közreadunk.
A mozgásérzékelés alapjai
Számos mozgásérzékelési technika létezik, de a legelterjedtebb az infravörös (IR) érzékelők használata. Az infravörös érzékelők lehetnek aktívak vagy passzívak. Az aktív érzékelők egy infravörös LED-et tartalmazó adóból és egy fotodiódás vevőből állnak. Az aktív érzékelők érzékelik a tárgyakról visszaverődő infravörös fényt, majd a kapott infravörös fényt arra használják, hogy észleljék, ha a tárgy vagy az alany elmozdult. A felhasználási területtől függően az aktív érzékelő több fotodiódát is tartalmazhat a mozgás irányának érzékelésére. Például annak érzékelésével, hogy mely infravörös jelek késnek vagy érkeznek be hamarabb, a főbb irányokba (balra, jobbra, előre, hátra, fel és le) történő mozgások érzékelése négy fotodiódával oldható meg.
A passzív infravörös érzékelők nem képesek infravörös jelet kisugározni, csak érzékelik az infravörös jeleket. A passzív infravörös érzékelő a tárgy vagy alany által kibocsátott infravörös fényt használja a jelenlét és minden ahhoz kapcsolódó mozgás érzékelésére. Egy lakás biztonsági rendszere például gyakran olyan mozgásérzékelőkkel van ellátva, amelyek érzékelik az emberek vagy állatok által kibocsátott infravörös sugarakat, és megállapítják, hogy az alany mozog-e az érzékelő látómezején belül. Az 1. ábra azt mutatja, hogy mit érzékelhet egy analóg passzív infravörös érzékelő különböző körülmények között, például: nincs infravörös jel, van infravörös jel, a jel stabilan érzékelhető vagy eltűnik (megszűnik).
1. ábra: A passzív infravörös érzékelők az alanyok vagy tárgyak által kibocsátott infravörös sugarakat használják a jelenlét és a mozgás érzékelésére. Az ábra bemutatja a különböző érzékelési szakaszokat: nincs infravörös jel, van infravörös jel, a jel stabilan érzékelhető és a jel eltűnik (megszűnik) (kép: Microchip Technology)
A felhasználási célnak megfelelő infravörös érzékelő típusának kiválasztásakor a fejlesztőknek gondosan mérlegelniük kell a következő paraméterekkel kapcsolatos kompromisszumokat:
- Az érzékelő költsége
- Ez érzékelő tokozása
- A mikrovezérlő csatlakoztatási lehetőségei
- Érzékelési algoritmus és számítási teljesítmény
- Az érzékelő hatótávolsága és fogyasztása
Vizsgáljunk meg egy az ATtiny1627 mikrovezérlőt használó passzív infravörös mozgásérzékelő rendszert bemutató példát.
Az ATtiny1627 Curiosity Nano bemutatása
Egy érdekes mikrovezérlős (MCU) mozgásérzékelési megoldást kínál a Microchip Technology cég ATtiny1627 jelű termékének használata. Ez a 8 bites mikrovezérlő tartalmaz egy beépített 12 bites analóg-digitális átalakítót (ADC), amely 17 bites túlmintavételezésre képes. Ezenkívül található benne egy programozható erősítésű erősítő (PGA) is, amellyel az érzékenységet lehet beállítani. Ennek a két funkciónak a kombinálásával számos felhasználási területre alkalmas, alacsony költségű mozgásérzékelő rendszer alakítható ki.
A legjobb olcsó megoldás az induláshoz a DM080104 ATtiny1627 Curiosity Nano fejlesztőkártya használata (2. ábra). A fejlesztőkártya egy AVR mikrovezérlőt tartalmaz, amely legfeljebb 20 MHz frekvencián működik, és 16 kB (kilobájt) flash-, 2 kB SRAM és 256 bájt EEPROM memóriával van ellátva. A kártya egyebek mellett tartalmaz egy programozóeszközt, egy LED-et és egy felhasználó által működtethető kapcsolót is. Talán a legérdekesebb, hogy a kártyát úgy tervezték, hogy a gyors prototípuskészítés érdekében csatlakozótüskék segítségével egyszerűen lehessen csatlakoztatni, vagy közvetlenül a prototípus- vagy sorozatgyártási kártyára lehessen forrasztani.
2. ábra: Az ATtiny1627 Curiosity Nano egy beépített 8 bites, programozható AVR mikrovezérlőt tartalmaz, amely maximum 20 MHz frekvencián működik, és 16 kB flash-, 2 kB SRAM és 256 bájt EEPROM memóriával van ellátva. A fejlesztőkártya a prototípusok és a sorozatgyártási rendszerek kialakításának megkönnyítése érdekében könnyen forrasztható nagyobb alaplapra vagy köthető össze azzal (kép: Microchip)
A kártyának van néhány további olyan funkciója is, amelyek hasznosak lehetnek a fejlesztők számára. Először is van két logikai elemzőcsatornája, a DGI és a GPIO. Ezek a csatornák a mikrovezérlő hibakeresésére és kezelésére használhatók. Ezenkívül a fejlesztők kihasználhatják a beépített virtuális COM portot (CDC) hibakeresésre vagy üzenetek naplózására. Végül pedig néhány eszköz a szoftver megírásához és telepítéséhez nyújt segítséget. A fejlesztők használhatják például a Microchip Studio 7.0-t, a GCC fordítót vagy az MPLAB X-et, amely a GCC vagy az XC8 fordítót használja.
A Microchip emellett körülbelül egy tucatnyi, az ATtiny1627 mikrovezérlőhöz használható különböző mintakódokat tartalmazó kódtárat is támogat. Ezek a kódtárak a passzív infravörös mozgásérzékeléstől kezdve a hőmérsékletmérésen át az analóg átalakításig számos felhasználási területhez tartalmaznak mintakódokat.
Mozgásérzékelő ellenőrzőpad építése
Egy mozgásérzékelő ellenőrzőpad kialakítása és működtetése egyszerű és nem túl drága. Az ellenőrzőpad felépítéséhez szükséges alkatrészek a következők:
- A DM080104 ATtiny1627 Curiosity Nano
- Az AC164162T Curiosity Nano adapter
- A MikroElektronika cég MIKROE-3339 passzív infravörös érzékelője
Az ATtiny1627 Curiosity Nano mikrovezérlőről már volt szó. A Curiosity Nano adapter egy hordozókártya az ATtiny1627 Curiosity Nano számára, amely a gyors prototípuskészítéshez használható (3. ábra). Ezenkívül az adapteren van három bővítőhely a MIKROE bepattintható kártyák számára, valamint jól hozzáférhető érintkezőtüskék a jelek oszcilloszkópra való kivezetéséhez vagy egyéni hardver hozzáadásához.
3. ábra: A Curiosity Nano adapteren van három bővítőhely a MIKROE bepattintható kártyák számára, valamint érintkezőtüskék a jelek kivezetéséhez és egyéni hardver hozzáadásához (kép: Microchip)
Végül a 4. ábrán látható MIKROE-3339 passzív infravörös érzékelőegység a KEMET PL-N823-01 passzív infravörös érzékelőt tartalmazza egyszerű, bővíthető formában, és közvetlenül csatlakoztatható a Curiosity Nano adapterhez. Fontos megjegyezni, hogy a MIKROE-3339 igényel némi módosítást, ha a Microchip-mintakódokkal használják mozgásérzékelésre. Ezek a módosítások a Microchip AN3641 jelű, Low-Power, Cost-Efficient PIR Motion Detection Using the tinyAVR® 2 Family (Kis fogyasztású, költségtakarékos passzív infravörös mozgásérzékelés a tinyAVR® 2 termékcsalád használatával) című használati ismertetőjének (application note) 10. oldalán találhatók.
4. ábra: A MIKROE-3339 bepattintható kártya egy KEMET PL-N823-01 passzív infravörös érzékelőt tartalmaz prototípuskészítésre könnyen használható formában kép: MikroElektronika)
A passzív infravörös mozgásérzékelés szoftvere
A fejlesztők többféle megoldást használhatnak a mozgásérzékelésre szolgáló szoftverek kialakításához. Az első lehetőség a Microchip által az AN3641 használati ismertetőben megadott mintakódok használata. A mozgásérzékelő szoftvereket tartalmazó mintakódtárat a GitHub webhelyen találja.
Az érzékelés több lépésre bontható. Az alkalmazás első lépésben inicializálja és bemelegíti a passzív infravörös érzékelőt. Második lépésben az alkalmazás egy analóg-digitális átalakítótól kapott megszakítási rutint használ a passzív infravörös érzékelő jelének rendszeres időközönkénti mintavételezésére. Harmadik lépésben az alkalmazás átlagolja az analóg-digitális átalakító adatait. Végezetül egy érzékelőalgoritmus szolgál annak jelzésére, hogy észlelt-e mozgást az érzékelő. Ha mozgást észlel az érzékelő, a kártyán lévő LED villog, és a rendszer a soros porton keresztül érzékelési jelet küld. A teljes programfolyamatot az 5. ábra szemlélteti.
5. ábra: Az ábrán a Microchip mozgásérzékelő eszköz szoftveres folyamatábrája látható (kép: Microchip)
A második lehetőség a mozgásérzékelésre szintén a Microchip mintakódjai közt megtalálható inicializálási és analóg-digitális átalakítós megszakítási rutin felhasználása, ám ezeknek az érzékelési algoritmusa helyett a gépi tanulás használata. A passzív infravörös jelekből származó adatok összegyűjthetőek, majd felhasználhatóak egy neurális hálózat betanítására. A gépi tanulási modell ezután a TensorFlow Lite for Microcontrollers alkalmazás segítségével átalakítható mikrovezérlőn történő futtatásra, fixpontos matematikát használva 8 bites súlyozással.
A gépi tanulás ilyen módon történő használatának érdekessége, hogy a fejlesztőknek nem kell az egyedi igényeiknek megfelelő algoritmust tervezniük. Ehelyett elég, ha csak mintát vesznek az érzékelőből az annak használata során várható körülmények között, az adott felhasználáshoz szükséges felhasználási eseteket szem előtt tartva. A gépi tanulás azt is lehetővé teszi a fejlesztők számára, hogy gyorsan átméretezzék és kiigazítsák a modelljeiket, amint új adatok válnak elérhetővé.
Tanácsok és trükkök az ATtiny1627 felhasználásával végzett mozgásérzékeléshez
Azon fejlesztők számára, akik érdeklődést mutatnak az iránt, hogy belevágjanak a mozgásérzékelésbe, számos lehetőség áll rendelkezésre. Néhány tanács és trükk, amelyet a fejlesztőknek a fejlesztés egyszerűsítése és gyorsítása érdekében érdemes szem előtt tartaniuk:
- Építsen olcsó prototípuskészítő platformot boltban kapható alkatrészek felhasználásával.
- Használja fel a Microchip mozgásérzékelési mintakódjait, amelyeket a GitHub webhelyen érhet el.
- Tervezze meg a hardver prototípusát az ATtiny1627 Curiosity Nano fejlesztőkártyával, és az első prototípusok egyszerűsítése érdekében forrassza a kártyát közvetlenül a hardverre.
- Ha kisebb, hatékonyabb, optimalizált kódot szeretne, használja a Microchip XC8 fordítóját.
- A mozgásérzékelő eszköz tervezésének megkezdése előtt olvassa el a Microchip AN3641 jelű, Low-Power, Cost-Efficient PIR Motion Detection Using the tinyAVR® 2 Family (Kis fogyasztású, költségtakarékos passzív infravörös mozgásérzékelés a tinyAVR® 2 termékcsalád használatával) című használati ismertetőjét.
- Komolyan fontolja meg mozgásérzékelő algoritmus helyett a gépi tanulás használatát.
Az ezeket a „tanácsokat és trükköket” megfogadó fejlesztők sok időt megtakaríthatnak, és sokkal kevesebb keserűségben lesz részük a prototípusaik fejlesztése során.
Befejezés
A mozgásérzékelés számos felhasználási területen egyre elterjedtebbé válik, különösen ott, ahol előnyös az érintésmentesség. A fejlesztők egy passzív infravörös érzékelő és egy olcsó mikrovezérlő felhasználásával minimálisra csökkenthetik az alkatrészköltségeket, és egyszerűsíthetik a tervezést. Mint látható, az ATtiny1627 kiváló kiindulópont, és a Microchip sokféle eszközt és számos használati ismertetőt kínál a fejlesztők számára, hogy segítsen nekik az indulásban. Ezen túlmenően lehet gépi tanulást is használni, így csökkentve minimálisra a mozgás észlelésére szolgáló algoritmusok fejlesztésének bonyolultságát.
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.




