Forenkling af bevægelsesdetektering ved hjælp af ATtiny1627 Curiosity Nano
Bidraget af DigiKeys nordamerikanske redaktører
2022-02-23
Behovet for bevægelsesregistrering fortsætter med at vokse i mange industrielle, kommercielle, hjemlige og indlejrede applikationer. Problemet er, at bevægelsesaflæsning kan kræve dyre digitale sensorer, som er vanskelige at få en grænseflade med. Når dataene først er modtaget, skal der desuden stadig udvikles algoritmer til at registrere bevægelsen, hvilket er en ikke-triviel opgave.
Flere løsninger kan registrere bevægelse, men infrarøde (IR) løsninger er de mest populære. Udviklerne kan vælge en aktiv løsning, som er almindelig i mange selvstændige digitale sensorer, men som er dyrere og mere kompleks at implementere. Alternativet er at benytte passive infrarøde sensorer (PIR), som er billigere og mere enkle at forbinde med. En PIR giver en analog grænseflade, som de fleste mikrocontrollere kan tilsluttes.
I denne artikel gennemgås grundlæggende principper for bevægelsesregistrering, før det vises, hvordan udviklere kan komme i gang med bevægelsesregistrering ved hjælp af en PIR, der er forbundet med Microchips DM080104 ATtiny 1627 Curiosity Nano. Derefter vises et alternativ til kompleks algoritmeudvikling til bevægelsesregistrering, som udnytter maskinlæringsteknikker (ML). Der er også tips og tricks til at komme i gang.
Grundlæggende principper for bevægelsesregistrering
Der findes mange sensorteknologier, der kan registrere bevægelse, men IR er den mest udbredte. IR-sensorer er enten aktive eller passive. Aktive sensorer består af en IR LED-sender og en fotodiode-modtager. Aktive sensorer registrerer den IR, der reflekteres fra objekter, og bruger derefter den modtagne IR til at registrere, om personen eller objektet har bevæget sig. Afhængigt af applikationen kan den aktive sensor indeholde flere fotodioder til at se bevægelsesretningen. Ved f.eks. at registrere, hvilke IR-signaler der er bagud eller foran, kan fire fotodioder bruges til at registrere retningsbestemt bevægelse som f.eks. venstre, højre, fremad, bagud, opad og nedad.
Passive infrarøde sensorer kan ikke sende IR, men kun modtage det. En PIR-sensor bruger den IR-stråling, der udsendes af det pågældende emne/objekt, til at registrere dets tilstedeværelse og enhver bevægelse i forbindelse med det. Et sikkerhedssystem til hjemmet har f.eks. ofte bevægelsessensorer, der registrerer IR-stråler fra et menneske eller et dyr og afgør, om det bevæger sig gennem dets synsfelt. Figur 1 viser, hvad en analog PIR-sensor kan registrere under forskellige forhold, f.eks. ingen IR, IR til stede, stabilt og afgående (afbrudt).
Figur 1: PIR-sensorer bruger IR-signaler, der udsendes af personer eller genstande, til at registrere deres tilstedeværelse og bevægelse. De forskellige detektionsstadier er vist: ingen IR, IR til stede, stabilt, og udgå (cut off). (Billedkilde: Microchip Technology)
Når man skal vælge den rigtige IR-sensortype til en applikation, skal udviklerne nøje overveje afvejningerne i forhold til følgende parametre:
- Omkostninger til sensorer
- Emballage
- Iterface til mikrocontroller
- Detektionsalgoritme og regnekraft
- Sensors rækkevidde og energiforbrug
Lad os undersøge et eksempel på et PIR-bevægelsesdetekteringssystem, der bruger ATtiny1627.
Introduktion til ATtiny1627 Curiosity Nano
En interessant mikrocontroller (MCU) løsning til bevægelsesaflæsning er Microchip Technologys ATtiny1627. Denne 8-bit MCU har en indbygget 12-bit analog-til-digital-konverter (ADC), der kan oversamples til 17 bits. Den indeholder også en programmerbar forstærker (PGA), der kan justere følsomheden. Ved at kombinere disse to funktioner kan man opnå et billigt bevægelsesdetekteringssystem, der er velegnet til mange anvendelser.
Den bedste billige løsning for at komme i gang er at bruge DM080104 ATtiny1627 Curiosity Nano udviklingskortet (Figur 2). Udviklingskortet indeholder en AVR MCU, der kører op til 20 megahertz (MHz) med 16 kilobyte (Kbytes) flash, 2 Kbyte SRAM og 256 bytes EEPROM. Kortet indeholder en programmør, en LED og en brugerkontakt. Det mest spændende er måske, at kortet er designet til nemt at blive tilsluttet via headers til hurtig prototypefremstilling, eller det kan loddes direkte på et prototype- eller produktionskort.
Figur 2: ATtiny1627 Curiosity Nano har en indbygget 8-bit programmerbar AVR MCU, der kører med hastigheder på op til 20 MHz med 16 Kbyte flash, 2 Kbyte SRAM og 256 bytes EEPROM. Udviklingskortet kan let loddes eller jumperes på et større bundkort for at lette prototype- og produktionssystemer. (Billedkilde: Microchip)
Kortet har også et par ekstra funktioner, som kan være nyttige for udviklere. For det første har den to logikanalysatorkanaler, DGI og GPIO. Disse kanaler kan bruges til at fejlfinde og styre mikrocontrolleren. For det andet kan udviklere udnytte en indbygget virtuel COM-port (CDC) til debugging eller logning af meddelelser. Endelig kan der bruges flere værktøjer til at skrive og implementere softwaren. For example, developers can use the Microchip Studio 7.0, en GCC-kompiler, eller MPLAB X, som bruger GCC eller XC8-kompiler.
Der er også ca. et dusin kodeeksempler, som Microchip understøtter med forskellige eksempler til ATtiny1627. Disse kodelagre indeholder eksempler på alt fra PIR-bevægelsesdetektering, temperaturmålinger, analoge konverteringer og meget mere.
Opbygning af en testbænk til bevægelsesdetektion
Det er nemt og ikke særlig dyrt at få en testbænk til bevægelsesdetektion op at køre. De komponenter, der er nødvendige for at bygge en testbænk, omfatter:
- DM080104 ATtiny1627 Curiosity Nano
- The AC164162T Curiosity Nano Adapter
- MIKROE-3339 PIR-sensor fra MikroElektronika
Vi har allerede kigget på ATtiny1627 Curiosity Nano. Curiosity Nano Adapter giver et bærekort til ATtiny1627 Curiosity Nano, der kan bruges til hurtig prototypefremstilling (Figur 3). Derudover har den tre udvidelsespladser til MIKROE klik kort samt tilgængelige headers til at scope signaler eller tilføje brugerdefineret hardware.
Figur 3: Curiosity Nano Adapter har tre udvidelsespladser til MIKROE-klikkort samt stik til at få adgang til signaler og tilføje brugerdefineret hardware. (Billedkilde: Microchip)
Endelig giver MIKROE-3339 PIR-sensoren, som er vist i figur 4, KEMET PL-N823-01 passiv IR-sensor i en enkel, udvidelig form, der kan tilsluttes direkte til Curiosity Nano Adapter. Det er vigtigt at bemærke, at MIKROE-3339 kræver nogle ændringer, når den bruges sammen med Microchip-eksemplerne til bevægelsesdetektion. Disse ændringer kan findes på side 10 i Microchips AN3641 Application Note, "Low-Power, Cost-Efficient PIR Motion Detection using the tinyAVR® 2 Family" (lav effekt, omkostningseffektiv PIR-bevægelsesdetektion ved hjælp af tinyAVR® 2-familien).
Figur 4: MIKROE-3339-klikkortet indeholder en KEMET PL-N823-01 PIR-sensor i en form, der er let at lave prototyper af. (Billedkilde: MikroElektronika)
PIR-software til registrering af bevægelser
Der er flere muligheder, som udviklere kan bruge til at skabe deres softwareløsninger til bevægelsesregistrering. Den første løsning er at bruge de eksempelmaterialer, som Microchip har leveret i AN3641. Kodelageret for eksempelsoftwaren til bevægelsesregistrering findes på Github.
Anvendelsen foregår i et par faser. Først initialiserer programmet PIR-sensoren og varmer den op. For det andet bruges en ADC-afbrydelsesservicerutine til periodisk at prøve PIR-sensoren. For det tredje dannes der et gennemsnit af ADC-dataene. Endelig anvendes en detektionsalgoritme til at signalere, om der er registreret bevægelse. Hvis der registreres aktivitet, blinker den indbyggede LED-diode, og der sendes et registreringssignal over den serielle port. Det komplette programforløb kan ses i figur 5.
Figur 5: Diagrammet viser softwarestrømmen for Microchips bevægelsesregistreringsprogram. (Billedkilde: Microchip)
Den anden mulighed for bevægelsesdetektion er at udnytte initialiseringen og ADC-afbrydelsesrutinen fra Microchip-eksemplerne, men i stedet for at bruge deres detektionsalgoritme skal du bruge ML. PIR-data kan indsamles og derefter bruges til at træne et neuralt netværk. ML-modellen kan derefter konverteres til at køre på mikrocontrolleren med TensorFlow Lite for Microcontrollers ved hjælp af fastpunktsmatematik med 8-bit vægte.
Det interessante ved at bruge ML på denne måde er, at det fjerner behovet for, at udviklerne skal designe en algoritme til deres specifikke behov. I stedet kan de blot prøve sensoren under de forventede betingelser og i de brugssituationer, de har brug for i deres applikation. ML giver også udviklere mulighed for hurtigt at skalere og justere deres modeller, efterhånden som nye data bliver tilgængelige.
Tips og tricks til bevægelsesaflæsning med ATtiny1627
Der er mange muligheder for udviklere, der er interesserede i at komme i gang med bevægelsesregistrering. "Tips og tricks", som udviklere bør huske på for at forenkle og fremskynde deres udvikling, omfatter:
- Byg en billig prototypeplatform ved hjælp af standarddele.
- Udnyt eksemplet til bevægelsesregistrering fra Microchip, der findes på GitHub.
- Design prototypehardware med ATtiny1627 Curiosity Nano-fodaftrykket og lodde kortet direkte på hardwaren for at forenkle de første prototyper.
- Hvis du vil have mindre, mere effektiv, optimeret kode, skal du bruge Microchips XC8-compiler.
- Læs Microchips AN3641 Low-Power, omkostningseffektiv PIR-bevægelsesdetektion med tinyAVR® 2-familien, før du starter et program til bevægelsesdetektion.
- Overvej seriøst at bruge ML til algoritmen til bevægelsesdetektion.
Udviklere, der følger disse "tips og tricks", vil opdage, at de sparer en hel del tid og ærgrelse, når de laver prototyper af deres applikation.
Konklusion
Bevægelsesregistrering er ved at blive en almindelig funktion i mange applikationer, især hvor det er en fordel at være berøringsfri. Udviklere kan minimere deres BOM-omkostninger og forenkle deres design ved at udnytte en PIR-sensor og en MCU til lav pris. Som det fremgår, er ATtiny1627 et fremragende udgangspunkt, og Microchip tilbyder en lang række værktøjer og applikationsnoter til at hjælpe udviklere med at komme i gang. Desuden kan ML anvendes for at minimere kompleksiteten af algoritmeudviklingen til at registrere bevægelse for at minimere kompleksiteten af algoritmeudviklingen.
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.




