Yksinkertaista liikkeentunnistusta ATtiny1627 Curiosity Nanon avulla
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2022-02-23
Liikkeentunnistuksen tarve kasvaa jatkuvasti monissa teollisuuden, kaupan ja kotien sovelluksissa sekä sulautetuissa sovelluksissa. Liikkeentunnistuksessa on kuitenkin se ongelma, että siihen saatetaan tarvita kalliita digitaalisia antureita, jotka on vaikea yhdistää. Datan vastaanottamisen lisäksi täytyy myös kehittää liikkeentunnistusalgoritmit, mikä ei olekaan ihan helppo homma.
Liikettä voidaan tunnistaa monin eri tavoin, mutta infrapunasäteilyyn (IR) perustuvat ratkaisut ovat suosituimpia. Suunnittelijat voivat valita aktiivisen ratkaisun, jollaisia käytetään monissa digitaalisissa erillisantureissa, mutta tämä vaihtoehto on kalliimpi ja monimutkaisempi toteuttaa. Toinen vaihtoehto on hyödyntää passiivisia infrapuna-antureita (PIR), jotka ovat edullisempia ja jotka on helpompi yhdistää. PIR-anturit tarjoavat analogisen rajapinnan, jota useimmat mikrokontrollerit pystyvät käyttämään.
Tässä artikkelissa käsitellään liikkeentunnistuksen perusteita. Sen jälkeen artikkelissa esitetään miten suunnittelijat pääsevät alkuun käyttämällä Microchipin DM080104 ATtiny 1627 Curiosity Nano ‑mikrokontrolleriin kytkettyä PIR-anturia. Sen jälkeen artikkelissa esitellään monimutkaisten algoritmien kehittämiselle vaihtoehto, jossa hyödynnetään koneoppimisen (ML) tekniikoita. Kerromme myös aloitusta helpottavia vinkkejä ja niksejä.
Liikkeentunnistuksen perusteet
Liikettä voi tunnistaa monilla teknologioilla, mutta yleisimmin käytetään infrapunaa (IR). IR-anturit voivat olla aktiivisia tai passiivisia. Aktiivisissa antureissa on IR-ledilähetin ja valodiodivastaanotin. Aktiiviset anturit tunnistavat objekteista heijastuvan infrapunasäteilyn ja päättelevät vastaanottamansa infrapunasäteilyn perusteella, onko kohde tai objekti liikahtanut. Aktiivisessa anturissa voi sovelluksesta riippuen olla useita valodiodeja, joiden avulla voidaan tunnistaa liikkeen suunta. Esimerkiksi neljällä valodiodilla, jotka tunnistavat, missä IR-signaaleissa on viivettä ja mitkä tulevat nopeammin, voidaan tunnistaa esimerkiksi liike vasemmalle, oikealle, eteenpäin, taaksepäin, ylös ja alas.
Passiiviset infrapuna-anturit eivät pysty lähettämään infrapunasäteilyä. Ne vain vastaanottavat sitä. PIR-anturi tunnistaa kohde-esineen/objektin lähettämän infrapunasäteilyn perusteella kohteen läsnäolon ja mahdollisen liikkeen. Esimerkiksi kotihälytysjärjestelmien liikeanturit tunnistavat usein ihmisen tai eläimen lähettämän infrapunasäteilyn ja päättelevät sen perusteella, liikkuuko kohde anturin näkökentässä. Kuvassa 1 näytetään mitä analoginen PIR-anturi näkee erilaisissa tilanteissa: ei IR-tunnistusta, IR-tunnistus, vakaa, poistuminen (katkaisu).
Kuva 1: PIR-anturit hyödyntävät läsnäolon ja liikkeen tunnistamisessa kohteiden tai objektien lähettämää infrapunasäteilyä. Kuvassa on esitetty eri vaiheet: ei IR-tunnistusta, IR-tunnistus, vakaa, poistuminen (katkaisu). (Kuvan lähde: Microchip Technology)
Sovellukseen sopivan IR-anturityypin valinnassa on harkittava huolellisesti seuraavia parametreja:
- anturin hinta
- pakkaustapa
- mikrokontrollerirajapinta
- tunnistusalgoritmi ja laskentateho
- anturin tunnistusalue ja energiankulutus.
Tutustutaanpa esimerkkiin ATtiny1627-mikrokontrolleria hyödyntävästä PIR-liikkeentunnistusjärjestelmästä.
ATtiny1627 Curiosity Nano ‑mikrokontrollerin esittely
Microchip Technologyn ATtiny1627-mikrokontrolleri on kiinnostava ratkaisu liikkeentunnistuksen tarpeisiin. Tässä 8-bittisessä mikrokontrollerissa on integroitu 12-bittinen analogia-digitaalimuunnin (ADC), jonka voi ylinäytteistää 17-bittiseksi. Laite sisältää myös ohjelmoitavan vahvistimen (PGA), jolla voi säätää herkkyyttä. Näiden kahden ominaisuuden yhdistelmällä voidaan toteuttaa edullinen liikkeentunnistusjärjestelmä, jota voidaan käyttää monissa erilaisissa sovelluksissa, .
Edullisen ratkaisun toteutuksessa pääsee parhaiten alkuun DM080104 ATtiny1627 Curiosity Nano ‑kehityskortin avulla (kuva 2). Kehityskortti tarjoaa AVR-mikroprosessorin, jonka kellotaajuus on jopa 20 megahertsiä (MHz). Siinä on 16 kilotavua (kt) flash-muistia, 2 kt SRAM-muistia ja 256 tavua EEPROM-muistia. Kortti sisältää myös ohjelmointilaitteen, ledin ja käyttökytkimen. Kenties kiinnostavin ominaisuus on se, että kortti on suunniteltu kytkettäväksi helposti liittimien kautta, jolloin sitä voidaan käyttää nopeassa prototyyppikehityksessä. Sen voi myös juottaa suoraan kiinni prototyyppiin tai tuotantokorttiin.
Kuva 2: ATtiny1627 Curiosity Nano käyttää integroitua ohjelmoitavaa 8-bittistä AVR-mikroprosessoria, jonka kellotaajuus on jopa 20 MHz. Siinä on 16 kt flash-muistia, 2 kt SRAM-muistia ja 256 tavua EEPROM-muistia. Kehityskortin voi juottaa tai kytkeä hyppyjohdoilla kiinni suurempaan pääkorttiin, joten sitä on helppo käyttää prototyyppikehityksessä ja tuotantojärjestelmissä. (Kuvan lähde: Microchip)
Kortti tarjoaa muitakin kehittäjille hyödyllisiä lisäominaisuuksia. Siinä on ensinnäkin kaksi loogista analysaattorikanavaa, DGI ja GPIO. Näitä kanavia voidaan käyttää virheenkorjaukseen ja mikrokontrollerin ohjaukseen. Lisäksi kehittäjät voivat hyödyntää kortin virtuaalista COM-porttia (CDC) virheenkorjauksessa tai sanomien lokikirjauksessa. Käytettävissä on myös useita työkaluja, joiden avulla ohjelmisto voidaan kirjoittaa ja ottaa käyttöön. Kehittäjät voivat käyttää esimerkiksi seuraavia vaihtoehtoja: Microchip Studio 7.0, GCC-kääntäjä tai MPLAB X, joka käyttää joko GCC- tai XC8-kääntäjää.
Käytettävissä on myös tusinan verran Microchip tukemia koodirepositorioita, jotka sisältävät lukuisia ATtiny1627-mikroprosessorille suunniteltuja esimerkkejä. Näiden koodirepositorioiden esimerkit vaihtelevat PIR-liikkeentunnistuksesta lämpötilan mittaukseen ja analogimuunnoksiin ja niin edelleen.
Liiketunnistusratkaisun testausjärjestelmän rakentaminen
Liikkeentunnistusratkaisun testausjärjestelmän rakentaminen on helppoa ja melko edullista. Testausjärjestelmän rakentamiseen tarvitaan muun muassa seuraavat komponentit:
- DM080104 ATtiny1627 Curiosity Nano
- AC164162T Curiosity Nano ‑adapteri
- MikroElektronikan MIKROE-3339-PIR-anturi.
ATtiny1627 Curiosity Nanoa käsiteltiin jo edellä. Curiosity Nano ‑adapteri tarjoaa ATtiny1627 Curiosity Nanolle kantajakortin, jota voidaan käyttää nopeassa prototyyppikehityksessä (kuva 3). Se tarjoaa myös kolme laajennuspaikkaa MIKROE Click ‑korteille ja helppokäyttöiset liittimet, joihin voi kytkeä oskilloskoopin signaalien seuraamista varten tai lisätä räätälöityjä laitteita.
Kuva 3: Curiosity Nano ‑adapterissa on kolme laajennuspaikkaa MIKROE Click ‑korteille ja liittimet, joiden kautta pääsee käsiksi signaaleihin ja joihin lisätä räätälöityjä laitteita. (Kuvan lähde: Microchip)
Kuvassa 4 esitetty MIKROE-3339-PIR-anturi on puolestaan KEMET-yhtiön passiivinen PL-N823-01-IR-anturi yksinkertaisessa, laajennettavassa muodossa, jonka voi kytkeä suoraan Curiosity Nano ‑adapteriin. On tärkeää huomata, että MIKROE-3339-anturiin täytyy tehdä joitakin muutoksia, jotta sitä voidaan käyttää Microchipin liikkeentunnistusesimerkeissä. Nämä muutokset on esitetty sivulla 10 Microchipin sovellusohjeessa AN3641, “Low-Power, Cost-Efficient PIR Motion Detection using the tinyAVR® 2 Family.”
Kuva 4: MIKROE-3339 Click ‑kortti helpottaa KEMET PL-N823-01 PIR-anturin käyttöä prototyyppien kehittämisessä. (Kuvan lähde: MikroElektronika)
PIR-liikkeentunnistusohjelmisto
Kehittäjät voivat luoda omat liikkeentunnistuksen ohjelmistoratkaisunsa useiden vaihtoehtojen avulla. Ensimmäinen vaihtoehto on käyttää Microchipin tarjoamia AN3641-esimerkkiaineistoja. Liikkeentunnistuksen esimerkkiohjelmisto sisältyy Githubista löytyvästä koodirepositoriosta.
Sovellukseen kuuluu muutama vaihe. Ensin sovellus alustaa PIR-anturin ja lämmittää sen. Sen jälkeen PIR-anturista luetaan näyte säännöllisin väliajoin ADC-keskeytyspalvelurutiinissa. Kolmanneksi ADC-data keskiarvoistetaan. Lopuksi tunnistusalgoritmi kertoo, onko liikettä havaittu. Jos liikettä havaitaan, kortin ledimerkkivalo vilkkuu ja tunnistussignaali lähetetään sarjaporttiin. Koko ohjelmavuo on esitetty kuvassa 5.
Kuva 5: Kaaviossa on esitetty Microchipin liikkeentunnistussovelluksen ohjelmistovuo. (Kuvan lähde: Microchip)
Toinen vaihtoehto liikkeentunnistuksen toteutukseen on hyödyntää Microchipin esimerkkien alustusta ja ADC-keskeytysrutiinia, mutta käyttää Microchipin tunnistusalgoritmin sijaan koneoppimista. PIR-data voidaan yhdistää ja käyttää neuroverkon kouluttamiseen. Sen jälkeen koneoppimismalli voidaan muuntaa TensorFlow Liten avulla suoritettavaksi mikrokontrollerilla käyttäen kiintolukulaskentaa 8 bitin painoarvoilla.
Koneoppimisessa on kiinnostavaa se, että näin käytettynä se poistaa tarpeen kehittää erillinen algoritmi tiettyyn käyttötarkoitukseen. Kehittäjät voivat sen sijaan näytteistää anturin odotettavissa olevissa olosuhteissa ja käyttää sovelluksessa tarvittavia tapauksia. Lisäksi kehittäjät voivat koneoppimisen avulla skaalata ja mukauttaa mallejaan nopeasti, kun uutta dataa tulee saataville.
Vinkkejä liikkeentunnistukseen ATtiny1627-piirin avulla
Liikkeentunnistuksesta kiinnostuneille kehittäjille on tarjolla paljon erilaisia vaihtoehtoja. Alla on useita ”vinkkejä ja niksejä”, jotka kehittäjien on hyvä pitää mielessä ja jotka voivat yksinkertaistaa ja nopeuttaa kehitystä, kuten:
- Edullinen prototyyppialusta kannattaa rakentaa valmisosista.
- GitHubista löytyvää Microchipin liikkeentunnistusesimerkkiä kannattaa käyttää kehittämisen tukena.
- Prototyyppilaitteiston voi suunnitella ATtiny1627 Curiosity Nanon avulla ja kortin voi juottaa suoraan kiinni laitteistoon ensimmäisiä prototyyppejä varten.
- Microchipin XC8-kääntäjän avulla voi tehdä tiiviimpää, tehokkaampaa ja optimoidumpaa koodia.
- Lue Microchipin sovellusohje AN3641 Low-Power, Cost-Efficient PIR Motion Detection Using the tinyAVR® 2 Family ennen liikkeentunnistussovelluksen aloittamista.
- Harkitse vakavasti koneoppimisen hyödyntämistä liikkeentunnistusalgoritmissa.
Kehittäjät, jotka noudattavat näitä ”vinkkejä ja niksejä”, huomaavat säästävänsä melkoisesti aikaa ja vaivaa sovelluksen prototyyppien suunnittelussa.
Yhteenveto
Liikkeentunnistus on nykyään yleinen ominaisuus monissa sovelluksissa ja etenkin tilanteissa, joissa on hyödyllistä, ettei mihinkään tarvitse koskea. Suunnittelijat voivat minimoida osakustannukset ja yksinkertaistaa suunnittelua hyödyntämällä PIR-anturia ja edullista mikrokontrolleria. Kuten artikkelissa edellä on esitetty, ATtiny1627 on erinomainen lähtökohta, ja Microchip tarjoaa kehittäjien käyttöön laajan valikoiman työkaluja ja sovellusohjeita. Liikkeentunnistusalgoritmin kehittämistä voi myös yksinkertaistaa koneoppimisen avulla.
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.




