Arbeit mit externen Sensoren und Aktoren

Sensor

Ein Sensor ist wie ein Sinn – er merkt z.B., ob es hell oder warm ist, und gibt diese Information an den Calliope mini weiter. Von einem Sensor werden über die Pins Daten empfangen/gelesen.


Beispiele: Tasten, Temperatursensor, Bewegungssensor

Aktor

Ein Aktor ist wie eine Hand oder ein Mund – er macht etwas, wenn der Calliope mini ihm Bescheid sagt.
Zu einem Aktor werden Daten über die Pins gesendet/geschrieben.


Beispiele: Motoren, LED-Anzeige, Lautsprecher

Hier geht es direkt zur Übersicht der verschiedenen Sensoren und Aktoren:
Sensoren und Aktoren anzeigen


Stromversorgung

Bevor ein Aktor oder Sensor angeschlossen wird, sollte zuerst beachtet werden, welche Betriebsspannung dieser benötigt. Der Calliope mini liefert regulär eine maximale Spannung von 3,3 V, wodurch viele 5V Sensoren und Aktoren nicht betrieben werden können. Informationen zu der Versorgungsspannung steht im Datenblatt des Sensors, bzw. Aktors.

Nähere Information zu der Stromversorgung findest du in der Technischen Dokumentation


Datenübertragung

Grundsätzlich gibt es zwei verschiedene Formen der Datenübertragung, dazu zählen analoge und digitale Signale. Als dritte Form gibt es noch die PWM Signale (Analoges Schreiben), womit eine analoge Signal, bzw. Spannung über ein digitales Signal nachgebildet wird.

Digital

Ein digitales Signal ist ein abgestuftes, abzählbares Signal. Es ist oft verlustbehaftet und muss in vielen Fällen interpretiert werden, wenn es keinen binären Zustand beschreibt.

Analog

Ein Analogsignal hat keine festen Werte, sondern einen kontinuierlichen, stufenlosen Verlauf. Allerdings werden durch den Analog-Digital-Umsetzer meistens Werte im Bereich 0 bis 1023 angezeigt.

PWM

Für die Steuerung von Motoren oder Ventilatoren über die Spannung, wird ein analoges Signal über die Länge der an/und aus Phasen eines nachgebildet. Das Verfahren nennt sich Pulsweitenmodulation (PWM).

Serielle Protokolle

Einige Sensoren verwenden für die Übertragung der Daten serielle Protokolle. Seriell bedeutet, dass die einzelnen Informationen des digitalen Signals in Bits nacheinander übertragen und verarbeitet werden. Der Calliope mini verfügt über die Protokolle I²C, UART, sowie SPI.

Jacdac

Der Calliope mini V3 ist mit zwei Jacdac Anschlüssen ausgestattet. Über diese lassen sich durch einfaches Verbinden diverse Module beliebig kombiniert und in Reihe verwenden.
Eine ausführlichere Dokumentation über diesen Verbindungstyp findet sich hier


Anschluss an den Calliope mini

Calliope mini

Es gibt zwei Grove Anschlüsse an dem Calliope mini, die jedoch nicht identisch sind. Die Pins für die beiden Anschlüsse A0 und A1 können direkt über die Bezeichnung der Pins programmiert werden:

Der linke A0 -Anschluss verwendet das I²C-Protokoll.

Der rechte A1-Anschluss verwendet das UART-Protokoll.

Für den Calliope mini V3 können die Sensoren auch direkt über die Pinleiste programmiert werden, wenn diese keinen Grove-Adapter besitzen. Über die Pinleiste kann auch das SPI-Protokoll verwendet werden.

Weitere Informationen zu den Anschlüssen und das Datenblatt sind hier zu finden Technischen Dokumentation

Es gibt zwei Grove Anschlüsse an dem Calliope mini, die jedoch nicht identisch sind. Die Pins für die beiden Anschlüsse A0 und A1 können direkt über die Bezeichnung der Pins programmiert werden:

Der linke A0 -Anschluss verwendet das I²C-Protokoll.

Der rechte A1-Anschluss verwendet das UART-Protokoll.

Weitere Informationen zu den Anschlüssen und das Datenblatt sind hier zu finden Technischen Dokumentation


Programmierung in MakeCode


Lesen/Schreiben von analogen und digitalen Sensoren/Aktoren

Allgemein können die digitalen und analogen Sensoren/Aktoren angesprochen werden, indem auf dem Reiter Pins ausgewählt wird. Mit dem Block digitale/analoge Werte von Pin können die Sensordaten ausgelesen werden. Für die Aktoren können die Werte mit dem Block schreibe digital/analogen Wert von Pin auf 0 gesendet werden.
Weil die meisten Sensoren permanent Daten generieren, sollte das Auslesen im dauerhaft Block aus den Grundlagen stattfinden. Dort können die Daten beispielsweise in einer Variabel gespeichert werden, die immer neu überschrieben wird. Außerdem ist es möglich, die Daten zu analysieren, indem sie zeitlich in einer Liste erfasst werden.

Weitere Informationen zu den Pins können auf der Calliope Docs-Seite nachgelesen werden.

Erweiterungen laden

Für einige komplexere Sensoren können die Sensordaten nicht so einfach ausgelesen werden. Dafür gibt es Pakete, die uns das Programmieren des Sensors vereinfachen und direkt eine umgerechnete Ausgabe in einer Einheit wie Zentimeter bei Distanz, PPM für CO2-Konzentration oder RGBW für Farbe ausgibt.
Diese können hinzugefügt werden, wenn unten bei den Komponenten + Erweiterungen ausgewählt und in die Suchleiste oben z.B. "Grove" eingegeben wird. Anschließend sind die neuen Blöcke unter dem Reiter mit dem Name des hinzugefügten Paketes zu finden. Im Falle des Grove-Paketes lassen sich dann Gestenerkennung, Ultraschallsensoren usw. bedienen.

Weitere Informationen zu den Erweiterungen finden sich hier

Auslesen von Sensorwerten über den seriellen Monitor

Falls die Funktionstüchtigkeit eines Sensors getestet werden soll, kann es hilfreich sein, die Daten erst über einen seriellen Port auszulesen. MakeCode besitzt einen integrierten seriellen Monitor, an dem die Daten über WebUSB gesendet werden. Weitere Informationen zu dem seriellen Monitor können hier nachgelesen werden:

Falls du einen Calliope mini V1 oder V2 ohne WebUSB verwendest, findest du weitere serielle Monitore hier.

Datalogger: Speichern von Sensordaten

Die Datalogger-Erweiterung bietet die Möglichkeit, Daten des Calliope mini 3 zu protokollieren, speichern und auszuwerten. Die gesammelten Daten können in einer .htm-Datei auf dem Calliope mini Laufwerk eingesehen werden.

Sensordaten auf dem Ipad

Informationen zum Auslesen der Sensordaten auf dem Ipad finden sich hier.


python

Programmierung in Python


Programmierung über die Calliope mini API

Sensoren und Aktoren können über die Calliope mini Schnittstelle (Application Programming Interface) ausgelesen und programmiert werden. Dazu gibt es verschiedene Funktionen, um sowohl digitale und analoge Werte der Pins sowohl zu lesen und zu schreiben, als auch die Funktionen zum Auslesen und Schreiben von verschiedenen Protokollen, wie I²C, SPI oder UART.

Importieren von Micropython Modulen

Externe Sensoren können als separate Python-Dateien zum bestehenden Projekt hinzugefügt und anschließend importiert werden.
Dabei kannst du entweder selbst eine Python-Datei erstellen oder ein vorhandenes Python-Modul in dein Projekt einbinden.
Wichtig ist, dass die Sensoransteuerung speziell für MicroPython entwickelt ist, die Methoden der Calliope mini API nutzt und die richtigen Pin-Bezeichnungen verwendet, damit der Sensor korrekt funktioniert.

Auslesen der Sensordaten im seriellen Monitor

Ist der Calliope mini mit dem USB-Kabel verbunden, kann über den Befehl "print" die Werte des Sensors in dem integrierten seriellen Monitor angezeigt werden.

Aufzeichnen der Sensordaten

Unter dem Reiter "Daten aufzeichnen" finden sich Funktionen um die Sensordaten aufzuzeichnen. Die Daten werden anschließend auf dem Laufwerk des Calliope mini als htm.-Datei gespeichert und können in einem Browser angezeigt werden oder als csv. Datei exportiert werden.

Sensoren und Aktoren Übersicht