Vereinfachte Bewegungserfassung mit dem ATtiny1627 Curiosity Nano
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2022-02-23
Der Bedarf an Bewegungserfassung wächst in vielen industriellen, kommerziellen, privaten und eingebetteten Anwendungen. Das Problem ist, dass für die Bewegungserfassung teure digitale Sensoren erforderlich sind, die sich nur schwer anschließen lassen. Außerdem müssen nach dem Empfang der Daten noch Algorithmen entwickelt werden, um die Bewegung zu erkennen, was ein nicht triviales Unterfangen ist.
Es gibt mehrere Lösungen für die Bewegungserkennung, wobei Infrarotlösungen (IR) am beliebtesten sind. Die Entwickler können sich für eine aktive Lösung entscheiden, die in vielen eigenständigen digitalen Sensoren üblich ist, aber teurer und komplexer zu implementieren ist. Die Alternative ist die Verwendung von Passiv-Infrarot-Sensoren (PIR), die weniger kostspielig und einfacher zu bedienen sind. Ein PIR bietet eine analoge Schnittstelle, an die die meisten Mikrocontroller angeschlossen werden können.
In diesem Artikel werden die Grundlagen der Bewegungserkennung besprochen, bevor gezeigt wird, wie Entwickler mit Hilfe eines PIR, der an den DM080104 ATtiny 1627 Curiosity Nano von Microchip angeschlossen ist, mit der Bewegungserkennung beginnen können. Anschließend wird eine Alternative zur Entwicklung komplexer Algorithmen für die Bewegungserfassung aufgezeigt, die sich Techniken des maschinellen Lernens (ML) zunutze macht. Tipps und Tricks für den Einstieg sind ebenfalls enthalten.
Grundlagen der Bewegungserfassung
Es gibt viele Sensortechnologien, die Bewegungen erkennen können, aber am häufigsten wird IR verwendet. IR-Sensoren sind entweder aktiv oder passiv. Aktive Sensoren bestehen aus einem IR-LED-Sender und einem Fotodiodenempfänger. Aktive Sensoren erfassen das von Objekten reflektierte Infrarot und erkennen anhand des empfangenen Infrarotlichts, ob sich die Person oder das Objekt bewegt hat. Je nach Anwendung kann der aktive Sensor mehrere Fotodioden enthalten, um die Bewegungsrichtung zu erkennen. Indem beispielsweise erkannt wird, welche IR-Signale nach- oder vorauseilen, können vier Fotodioden verwendet werden, um gerichtete Bewegungen wie links, rechts, vorwärts, rückwärts, hoch und runter zu erkennen.
Passiv-Infrarot-Sensoren können kein IR ausstrahlen, sondern nur empfangen. Ein PIR-Sensor nutzt das vom Objekt gesendete Infrarotlicht, um dessen Anwesenheit und jede damit verbundene Bewegung zu erkennen. Ein Haussicherheitssystem verfügt beispielsweise häufig über Bewegungssensoren, die die von einem Menschen oder einem Tier ausgesendeten IR-Strahlen erkennen und feststellen, ob es sich durch das Sichtfeld des Systems bewegt. Abbildung 1 zeigt, was ein analoger PIR-Sensor unter verschiedenen Bedingungen erkennen kann, z. B. kein IR, IR-Signal erscheint, IR-Signal stabil und IR-Signal verschwindet.
Abbildung 1: PIR-Sensoren nutzen die von Personen oder Objekten ausgesendeten Infrarotstrahlen, um deren Anwesenheit und Bewegung zu erkennen. Die verschiedenen Erkennungsstufen sind dargestellt: kein IR, IR-Signal erscheint, IR-Signal stabil und IR-Signal verschwindet. (Bildquelle: Microchip Technology)
Bei der Auswahl des richtigen IR-Sensortyps für eine Anwendung müssen die Entwickler die Kompromisse in Bezug auf die folgenden Parameter sorgfältig abwägen:
- Kosten für Sensoren
- Gehäuse
- Mikrocontroller-Schnittstelle
- Erkennungsalgorithmus und Rechenleistung
- Reichweite und Energieverbrauch der Sensoren
Schauen wir uns ein Beispiel für ein PIR-Bewegungserkennungssystem an, das den ATtiny1627 verwendet.
Einführung in den ATtiny1627 Curiosity Nano
Eine interessante Mikrocontroller(MCU)-Lösung für die Bewegungserfassung ist der ATtiny1627 von Microchip Technology. Diese 8-Bit-MCU verfügt über einen integrierten 12-Bit-Analog/Digital-Wandler (ADC), der auf 17 Bit überabgetastet werden kann. Er enthält auch einen programmierbaren Verstärker (PGA), mit dem die Empfindlichkeit eingestellt werden kann. Durch die Kombination dieser beiden Merkmale kann ein kostengünstiges Bewegungserkennungssystem für viele Anwendungen geschaffen werden.
Die beste und kostengünstigste Lösung für den Einstieg ist die Verwendung des Entwicklungsboards DM080104 ATtiny1627 Curiosity Nano (Abbildung 2). Das Entwicklungsboard enthält eine AVR-MCU, die mit bis zu 20 Megahertz (MHz) läuft und über 16 Kilobyte (KByte) Flash, 2 KByte SRAM und 256 Byte EEPROM verfügt. Die Platine enthält ein Programmiergerät, eine LED und einen Benutzerschalter. Am faszinierendsten ist vielleicht, dass die Platine so konzipiert ist, dass sie für ein schnelles Prototyping einfach über Stiftleisten angeschlossen oder direkt auf eine Prototyp- oder Produktionsplatine gelötet werden kann.
Abbildung 2: Der ATtiny1627 Curiosity Nano hat eine eingebaute programmierbare 8-Bit-AVR-MCU, die mit einer Geschwindigkeit von bis zu 20 MHz läuft und 16 KByte Flash, 2 KByte SRAM und 256 Byte EEPROM enthält. Das Entwicklungsboard kann leicht auf eine größere Basisplatine gelötet oder gejumpert werden, um die Entwicklung von Prototypen und Produktionssystemen zu erleichtern. (Bildquelle: Microchip)
Das Board verfügt außerdem über einige zusätzliche Funktionen, die für Entwickler hilfreich sein können. Erstens verfügt es über zwei Logikanalysekanäle, DGI und GPIO. Diese Kanäle können zum Debuggen und Verwalten des Mikrocontrollers verwendet werden. Zweitens können Entwickler einen integrierten virtuellen COM-Port (CDC) für das Debugging oder die Protokollierung von Nachrichten nutzen. Schließlich können verschiedene Tools zur Entwicklung und Bereitstellung der Software verwendet werden. So können Entwickler beispielsweise Microchip Studio 7.0, einen GCC-Compiler, oder MPLAB X verwenden, das entweder GCC oder den XC8-Compiler einsetzt.
Außerdem gibt es etwa ein Dutzend Code-Repositories, die Microchip mit verschiedenen Beispielen für den ATtiny1627 unterstützt. Diese Code-Repositories enthalten Beispiele für PIR-Bewegungserkennung, Temperaturmessungen, Analogumwandlungen und vieles mehr.
Einrichtung eines Prüfstands für die Bewegungserkennung
Die Einrichtung eines Prüfstands für die Bewegungserkennung ist einfach und nicht allzu teuer. Zu den Komponenten, die für den Bau eines Prüfstands erforderlich sind, gehören:
- Der DM080104 ATtiny1627 Curiosity Nano
- Der Adapter AC164162T Curiosity Nano
- Ein PIR-Sensor MIKROE-3339 von MikroElektronika
Wir haben uns bereits den ATtiny1627 Curiosity Nano angesehen. Der Curiosity-Nano-Adapter bietet eine Trägerplatine für den ATtiny1627 Curiosity Nano, die für das Rapid Prototyping verwendet werden kann (Abbildung 3). Darüber hinaus bietet sie drei Erweiterungssteckplätze für MIKROE-Click-Boards sowie zugängliche Steckleisten, um Signale zu skalieren oder eigene Hardware hinzuzufügen.
Abbildung 3: Der Curiosity-Nano-Adapter verfügt über drei Erweiterungssteckplätze für MIKROE-Click-Boards sowie über Steckleisten für den Zugriff auf Signale und das Hinzufügen von kundenspezifischer Hardware. (Bildquelle: Microchip)
Der in Abbildung 4 gezeigte PIR-Sensor MIKROE-3339 schließlich bietet den passiven IR-Sensor PL-N823-01 von KEMET in einer einfachen, erweiterbaren Form, die direkt an den Curiosity-Nano-Adapter angeschlossen werden kann. Es ist wichtig zu beachten, dass der MIKROE-3339 einige Modifikationen erfordert, wenn er mit den Microchip-Beispielen zur Bewegungserkennung verwendet wird. Diese Modifikationen finden Sie auf Seite 10 des Anwendungshinweises AN3641 von Microchip, „Kosteneffiziente PIR-Bewegungserkennung mit geringem Stromverbrauch unter Verwendung der Familie tinyAVR® 2“.
Abbildung 4: Das Click-Board MIKROE-3339 bietet einen PIR-Sensor PL-N823-01 von KEMET in einer einfach zu verwendenden Prototypenform. (Bildquelle: MikroElektronika)
PIR-Software zur Bewegungserkennung
Es gibt mehrere Optionen, die Entwickler nutzen können, um ihre Softwarelösungen für die Bewegungserkennung zu erstellen. Die erste Lösung besteht darin, die von Microchip in AN3641 bereitgestellten Beispielmaterialien zu verwenden. Das Code-Repository für die Beispielsoftware zur Bewegungserkennung ist auf Github zu finden.
Die Anwendung erfolgt in mehreren Phasen. Zunächst initialisiert die Anwendung den PIR-Sensor und wärmt ihn auf. Zweitens wird eine ADC-Interrupt-Service-Routine verwendet, um den PIR-Sensor periodisch abzutasten. Drittens wird aus den ADC-Daten ein Mittelwert gebildet. Schließlich wird ein Erkennungsalgorithmus verwendet, um zu signalisieren, ob eine Bewegung erkannt wurde. Wird Aktivität erkannt, blinkt die integrierte LED, und ein Erkennungssignal wird über die serielle Schnittstelle gesendet. Der vollständige Programmablauf ist in Abbildung 5 zu sehen.
Abbildung 5: Das Diagramm zeigt den Programmablauf für die Bewegungserkennungsanwendung von Microchip. (Bildquelle: Microchip)
Die zweite Option für die Bewegungserkennung besteht darin, die Initialisierung und die ADC-Interrupt-Routine aus den Microchip-Beispielen zu nutzen, aber anstelle ihres Erkennungsalgorithmus ML zu verwenden. PIR-Daten können gesammelt und dann zum Trainieren eines neuronalen Netzes verwendet werden. Das ML-Modell kann dann mit TensorFlow Lite für Mikrocontroller so konvertiert werden, dass es auf dem Mikrocontroller läuft, wobei Festkomma-Mathematik mit 8-Bit-Gewichten verwendet wird.
Das Interessante an der Verwendung von ML auf diese Weise ist, dass die Entwickler keinen Algorithmus für ihre spezifischen Anforderungen entwerfen müssen. Stattdessen können sie den Sensor einfach unter den erwarteten Bedingungen und Anwendungsfällen, die sie für ihre Anwendung benötigen, testen. ML ermöglicht es Entwicklern auch, ihre Modelle schnell zu skalieren und anzupassen, wenn neue Daten verfügbar werden.
Tipps und Tricks für die Bewegungserfassung mit dem ATtiny1627
Entwicklern, die sich für den Einstieg in die Bewegungserkennung interessieren, stehen zahlreiche Optionen zur Verfügung. Zu den „Tipps und Tricks“, die Entwickler beachten sollten, um ihre Entwicklung zu vereinfachen und zu beschleunigen, gehören:
- Richten Sie sich eine kostengünstige Prototyping-Plattform mit handelsüblichen Bausteinen ein.
- Nutzen Sie das Bewegungserkennungsbeispiel von Microchip, das auf GitHub zu finden ist.
- Entwerfen Sie Prototyp-Hardware mit dem Curiosity-Nano-Footprint ATtiny1627 und löten Sie das Board direkt auf die Hardware, um erste Prototypen zu vereinfachen.
- Für kleineren, effizienteren und optimierten Code verwenden Sie den XC8-Compiler von Microchip.
- Lesen Sie den Anwendungshinweis AN3641 Kosteneffiziente PIR-Bewegungserkennung mit geringem Stromverbrauch unter Verwendung der Familie tinyAVR® 2 von Microchip, bevor Sie eine Anwendung zur Bewegungserkennung starten.
- Erwägen Sie ernsthaft den Einsatz von ML für den Bewegungserkennungsalgorithmus.
Entwickler, die diese „Tipps und Tricks“ befolgen, werden feststellen, dass sie beim Prototyping ihrer Anwendung eine Menge Zeit und Ärger sparen.
Fazit
Die Bewegungserkennung wird in vielen Anwendungen immer häufiger eingesetzt, insbesondere dort, wo Berührungsfreiheit von Vorteil ist. Entwickler können ihre Stücklistenkosten minimieren und ihr Design vereinfachen, indem sie einen PIR-Sensor und eine preisgünstige MCU einsetzen. Wie gezeigt, ist der ATtiny1627 ein hervorragender Ausgangspunkt, und Microchip bietet eine breite Palette von Tools und Anwendungshinweisen, um Entwicklern den Einstieg zu erleichtern. Um die Komplexität der Algorithmenentwicklung zur Bewegungserkennung zu minimieren, kann außerdem ML verwendet werden.
Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.




