Forenkle bevegelsesdeteksjon ved å bruke ATtiny1627 Curiosity Nano
Bidrag fra DigiKeys nordamerikanske redaktører
2022-02-23
Behovet for bevegelsesdeteksjon fortsetter å vokse i mange industrielle, kommersielle, hjemlige og innebygde konstruksjoner. Problemet er at bevegelsesdeteksjon kan kreve dyre digitale sensorer som er vanskelige å la seg kombinere med. I tillegg, etter at dataene er mottatt, må algoritmer fortsatt utvikles for å detektere bevegelsen, noe som ikke er en simpel affære.
Flere løsninger kan detektere bevegelse, men infrarøde (IR) løsninger er de mest populære. Utviklere kan velge en aktiv løsning som er vanlig i mange frittstående digitale sensorer, men disse er dyrere og mer komplekse å implementere. Alternativet er å dra nytte av passive infrarøde sensorer (PIR), som er billigere og enklere å la seg kombinere med. En PIR gir et analogt grensesnitt som de fleste mikrokontrollere kan koble seg til.
Denne artikkelen tar for seg det grunnleggende om bevegelsesdeteksjon og viser deretter hvordan utviklere kan komme i gang med bevegelsesdeteksjon ved å bruke en PIR koblet til Microchip sin DM080104 ATtiny 1627 Curiosity Nano. Den viser så et alternativ til kompleks algoritmeutvikling for bevegelsesdeteksjon som utnytter maskinlæringsteknikker (ML – machine learning). Tips og triks for å komme i gang er inkludert.
Grunnleggende om bevegelsesdeteksjon
Det finnes mange sensorteknologier som kan detektere bevegelse, men IR er mest brukt. IR-sensorer er enten aktive eller passive. Aktive sensorer omfatter en IR LED-sender og en fotodiodemottaker. Aktive sensorer detekterer IR-signalet som reflekteres av objekter og bruker deretter det mottatte IR-signalet til å detektere om personen eller objektet har beveget seg. En aktiv sensor kan inneholde flere fotodioder for å se bevegelsesretningen, avhengig av konstruksjonen. For eksempel, ved å detektere hvilke IR-signaler som er forsinket eller ledende, kan fire fotodioder brukes til å detektere retningsgivende bevegelser som venstre, høyre, fremover, bakover, opp og ned.
Passive infrarøde sensorer kan ikke sende IR, bare motta. En PIR-sensor bruker IR-signalet som sendes av det aktuelle objektet til å detektere dets tilstedeværelse og alle bevegelser som er forbundet med det. For eksempel vil et sikkerhetssystem i hjemmet ofte ha bevegelsessensorer som detekterer IR som utstråles fra et menneske eller dyr, og fastsetter om det beveger seg gjennom synsfeltet. Figur 1 viser hva en analog PIR-sensor kan detektere under forskjellige forhold, for eksempel ingen IR, IR tilstede, stabil og forlater (kuttet av).
Figur 1: PIR-sensorer bruker IR som utstråles fra personer eller objekter til å detektere tilstedeværelsen av og bevegelsen til disse. De forskjellige deteksjonstrinnene vises: ingen IR, IR tilstede, stabil og forlater (kuttet av). (Bildekilde: Microchip Technology)
Når riktig IR-sensortype skal velges for en konstruksjon, må utviklere se nøye på avveiningene i forhold til følgende parametere:
- Sensorkostnader
- Innkapsling
- Mikrokontrollergrensesnitt
- Deteksjonsalgoritme og databehandlingskraft
- Sensorområde og energiforbruk
La oss undersøke et eksempel på et system for PIR-bevegelsesdeteksjon som bruker ATtiny1627.
Introduksjon til ATtiny1627 Curiosity Nano
En interessant mikrokontrollerløsning (MCU) for bevegelsesdeteksjon er Microchip Technology sin ATtiny1627. Denne 8-bits MCU-en har en integrert 12-bits analog-til-digital-omformer (ADC) som kan oversamples til 17 bits. Den inneholder også en programmerbar forsterker (PGA) som kan justere følsomheten. Ved å kombinere disse to funksjonene oppnås et prisgunstig system for bevegelsesdeteksjon som er egnet for mange konstruksjoner.
Den beste lavprisløsningen for å komme i gang er å bruke utviklingskortet DM080104 ATtiny1627 Curiosity Nano (figur 2). Utviklingskortet inneholder en AVR MCU som opererer på opptil 20 megahertz (MHz) med 16 kilobyte (kbyte) flash, 2 kbyte SRAM og 256 byte EEPROM. Kortet inkluderer en programmeringsenhet, LED og brukerbryter. Kanskje mest spennende er at kortet er konstruert for å enkelt kobles til via stiftlister for å gi rask prototyping, eller det kan loddes direkte på et prototypingskort eller produksjonskort.
Figur 2: ATtiny1627 Curiosity Nano har en integrert 8-bits programmerbar AVR MCU som opererer med hastigheter på opptil 20 MHz med 16 kbyte flash, 2 kbyte SRAM og 256 byte EEPROM. Utviklingskortet kan enkelt loddes eller brokobles med jumper-kabel til et større basiskort for å gjøre det enklere å utføre prototyping og lage produksjonssystemer. (Bildekilde: Microchip)
Kortet kommer også med noen ekstra funksjoner som kan være nyttige for utviklere. For det første har den to logiske analysatorkanaler, DGI og GPIO. Disse kanalene kan brukes til å feilsøke og administrere mikrokontrolleren. For det andre kan utviklere bruke en integrert virtuell COM-port (CDC) for feilsøking eller logging av meldinger. Til slutt kan flere verktøy brukes til å skrive og distribuere programvaren. Utviklere kan for eksempel bruke Microchip Studio 7.0, en GCC-kompilator eller MPLAB X, som bruker enten GCC eller XC8-kompilatoren.
Det er også omtrent et dusin kodearkiver som Microchip støtter med forskjellige eksempler for ATtiny1627. Disse kodelagrene har eksempler som spenner fra PIR-bevegelsesdeteksjon, temperaturmålinger, analoge konverteringer og mye mer.
Bygge en testbenk for bevegelsesdeteksjon
Igangsetting av en testbenk for bevegelsesdeteksjon er enkelt og ikke så alt for dyrt. Komponentene som er nødvendige for å bygge en testbenk, omfatter:
- DM080104 ATtiny1627 Curiosity Nano
- AC164162T Curiosity Nano Adapter
- MIKROE-3339 PIR-sensor fra MikroElektronika
Vi har allerede sett på ATtiny1627 Curiosity Nano. Curiosity Nano Adapter gir et bærerkort for ATtiny1627 Curiosity Nano som kan brukes til rask prototyping (figur 3). I tillegg gir den tre utvidelsesspor for MIKROE Click Board-kort sammen med tilgjengelige stiftlister for å avlese signaler eller legge til tilpasset maskinvare.
Figur 3: Curiosity Nano Adapter har tre utvidelsesspor for MIKROE Click Board-kort samt stiftlister som muliggjør tilgang til signaler og tillegging av tilpasset maskinvare. (Bildekilde: Microchip)
Til slutt forsyner MIKROE-3339 PIR-sensoren, som vises på figur 4, den passive KEMET PL-N823-01 IR-sensoren i en enkel, utvidbar form som kan kobles direkte til Curiosity Nano Adapter. Det er viktig å merke seg at MIKROE-3339 krever noen modifikasjoner når den skal brukes med Microchip-eksemplene for bevegelsesdeteksjon. Disse endringene finnes på side 10 i Microchip sitt AN3641-installasjonsnotat, «Kostnadseffektiv PIR-bevegelsesdeteksjon med lavt strømforbruk ved å bruke tinyAVR® 2-familien».
Figur 4: MIKROE-3339 Click Board-kortet forsyner en KEMET PL-N823-01 PIR-sensor i en enkel prototypeform. (Bildekilde: MikroElektronika)
Programvare for PIR-bevegelsesdeteksjon
Utviklere har flere alternativer de kan bruke til å lage programvareløsninger for bevegelsesdeteksjon. Den første løsningen er å bruke eksempelmaterialene som forsynes av Microchip i AN3641. Kodearkivet for eksempelprogramvaren for bevegelsesdeteksjon finnes på Github.
Konstruksjonen går gjennom noen få faser. Først vil konstruksjonen initialisere og varme opp PIR-sensoren. For det andre brukes en ADC-avbruddstjenesterutine til å periodisk ta samplinger av PIR-sensoren. For det tredje er ADC-dataene gjennomsnittlige. Til slutt brukes en deteksjonsalgoritme til å signalisere om bevegelse har blitt detektert. Hvis aktivitet detekteres, vil den innebygde lysdioden blinke og et deteksjonssignal sendes over seriellporten. Hele programflyten vises i figur 5.
Figur 5: Skjemaet representerer programvareflyten til Microchip sin konstruksjon for bevegelsesdeteksjon. (Bildekilde: Microchip)
Det andre alternativet for bevegelsesdeteksjon er å dra nytte av initialiseringen og ADC-avbruddsrutinen fra Microchip-eksemplene, men i stedet for å bruke deteksjonsalgoritmen deres, bruk ML. PIR-data kan samles inn og deretter brukes til å trene opp et nevralt nettverk. ML-modellen kan deretter konverteres til å kjøre på mikrokontrolleren med TensorFlow Lite for mikrokontrollere, noe den gjør ved å bruke fastpunktmatematikk med 8-bits vekter.
Det som er interessant med å bruke ML på denne måten, er at utviklere ikke trenger å utvikle en algoritme for det bestemte behovet de har. I stedet kan de rett og slett sample sensoren under de forventede forholdene og brukstilfellene de trenger for konstruksjonen sin. ML gjør det også mulig for utviklere å raskt skalere og justere modellene sine etter hvert som nye data blir tilgjengelige.
Tips og triks for bevegelsesdeteksjon ved å bruke ATtiny1627
Utviklere som er interessert i å komme i gang med bevegelsesdeteksjon, har mange tilgjengelige alternativer. «Tips og triks» som utviklere bør være klar over for å forenkle og fremskynde utviklingen, omfatter følgende:
- Bygge en prisgunstig prototypeplattform ved å bruke deler som ikke er hyllevare.
- Dra nytte av Microchip sitt eksempel på bevegelsesdeteksjon som finnes på GitHub.
- Utvikle prototype-maskinvare med ATtiny1627 Curiosity Nano-formatet og lodde kortet direkte på maskinvaren for å forenkle den innledende fasen av prototyping.
- For mindre, mer effektiv, optimalisert kode, kan Microchip sin XC8-kompilator brukes.
- Lese Microchip sin AN3641 Kostnadseffektiv PIR-bevegelsesdeteksjon med lavt strømforbruk ved å bruke tinyAVR® 2-familien før en konstruksjon for bevegelsesdeteksjon påbegynnes.
- Vurder seriøst å bruke ML for algoritmen for bevegelsesdeteksjon.
Utviklere som følger disse «tipsene og triksene» vil oppdage at de kan spare ganske mye tid og stress når de utfører prototyping på konstruksjonen sin.
Konklusjon
Bevegelsesdeteksjon er blitt en vanlig funksjon i mange konstruksjoner, spesielt der ikke-berøring er gunstig. Utviklere kan minimere materiallistekostnadene sine og forenkle konstruksjonen ved å dra nytte av en PIR-sensor og en prisgunstig mikrokontroller. Som vist er ATtiny1627 et utmerket utgangspunkt, og Microchip gir et bredt spekter av verktøy og installasjonsnotater for å hjelpe utviklere med å komme i gang. I tillegg, for å minimere kompleksiteten av algoritmeutvikling for deteksjon av bevegelse, kan ML brukes.
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.




