CALLIOPE Beschleunigung messen - Sprünge zählen

Sprüngezähler

1. Sprüngezähler

CALLIOPE kann in der Hosentasche stecken und dabei Bewegungen zählen, zum Beispiel die Sprünge mit dem Springseil. Das Programm im Titelbild kann durch klicken auf das Titelbild herunter geladen und mit dem USB-Kabel auf den CALLIOPE kopiert werden. Dann wird CALLIOPE vom PC getrennt und die Batterie eingeschaltet. Wenn ein Symbol zu sehen ist, kann CALLIOPE in die Hosentasche gesteckt werden und zählt die Sprünge. Dabei wird das Strichmännchen-Symbol angezeigt.

Die gezählten Sprünge können durch drücken von Knopf A oder B auf dem "Bildschirm" angezeigt werden. Um die Zähler auf 0 zu stellen, müssen A+B gleichzeitig gedrückt werden. Dann kann der Nächste springen.

Ein Problem ist, welche Bewegung als Sprung gezählt wird und welche nicht. Und wie wird verhindert, dass ein Sprung doppelt gezählt wird? Es sind zwei verschiedene Zähler programmiert, 'SprüngeY' und 'Sprünge3g', die wahrscheinlich verschiedene Ergebnisse liefern.

Mit dem Editor MakeCode kann die .hex-Datei importiert und weiter bearbeitet werden. Der Parameter für die Beschleunigung (die Zahl 1500) kann verändert werden, um eine möglichst exakte Zählung der Sprünge zu erreichen.

Sensoren messen die Beschleunigung

Auf der Leiterplatte des CALLIOPE sind verschiedene Sensoren vorhanden, die im Programmcode einfach abgefragt werden können. Jeder Sensor liefert eine Zahl und das Problem ist, diese Zahl sinnvoll auszuwerten. Wenn ein Körper gerade runter auf die Erde fällt, fängt er langsam an und wird immer schneller. Die Zunahme der Geschwindigkeit nennt man Beschleunigung. (g) ist eine Konstante für die Beschleunigung auf der Erde. Die vom Beschleunigungssensor gemessene Zahl hat die Einheit (mg). Das bedeutet Milli-Erdbeschleunigung (und nicht Milligramm). Der Wert 1000mg entspricht 1g und das entspricht 9,81m/s². Wikipedia kennt auch noch die Einheit Gal, benannt nach Galileo Galilei.

Es gibt zwei Möglichkeiten, die Zahl (den Messwert) aus einem Sensor zu bekommen. Entweder wird im Programmcode der Sensor abgefragt - oder der Sensor selbst löst ein Ereignis aus. Im Beispiel auf dem Titelbild gibt es beides. Im Block 'dauerhaft' wird die Beschleunigung in einer Endlosschleife abgefragt. Das Ereignis 'wenn 3g' wird ausgelöst, wenn ein bestimmter Wert für die Beschleunigung erreicht wird. Ein Ereignis ist daran zu erkennen, dass es einen eigenen Block bildet und nicht in einem anderen drin ist.

2. Schrittezähler

Im Internet bei CALLIOPE.CC gibt es eine ausführliche Anleitung (pdf), wie ein Schrittzähler mit den Blöcken programmiert werden kann. Wer mit den Blöcken nicht vertraut ist, kann es dort mit vielen Bildern lernen. Dort ist auf Seite 11 erklärt, dass der Beschleunigungssensor, wenn er "Stärke" misst, im Ruhezustand den Wert 1024 zurück gibt. Wenn er sich bewegt, schwankt der Wert in beide Richtungen. Wenn CALLIOPE beim laufen oder springen hoch bewegt wird, wird die Zahl kleiner als 1024, runter wird sie größer. Wie groß die Differenz ist, hängt von der Beschleunigung ab. Ein Schritt wird im folgenden Beispiel gezählt, wenn der Wert kleiner als 880 ist.

Schrittezähler

Ich habe das Programm aus der pdf-Anleitung noch robuster gemacht. Damit nicht eine Bewegung mehrmals gezählt wird, wartet die Endlos-Schleife 'dauerhaft' erst eine Bewegung in der entgegengesetzten Richtung ab, bevor wieder in Zähl-Richtung gemessen wird.

Bei 'zeige Zahl' gibt es das Problem, dass Zahlen ab 10 durch die Anzeige laufen und das so lange dauert, dass inzwischen keine Schritte gezählt werden. Außerdem ist die Anzeige dann leer, wenn man die Zahl ablesen will.

Hier wird während der Messung von der Variable 'Schritte' nur die letzte Stelle (Einer) angezeigt (mit Rest von Division durch 10). Eine Ziffer (das letzte Digit) steht immer in der Anzeige und reicht um zu erkennen, ob der Schritt einmal, zweimal oder gar nicht gezählt wurde.

Die Anzahl der Schritte wird vollständig angezeigt, 'wenn Knopf B gedrückt'. Die Zahl läuft bei jedem drücken einmal durch die LED Matrix.

Der Zähler (die Variable 'Schritte') wird auf 0 gestellt 'wenn Knopf A gedrückt'. Hier wird - weil das ja auch interessant ist - der aktuelle Beschleunigungswert abgefragt und einmal angezeigt. Bei jedem drücken schwankt der Wert von ungefähr 1000 bis 1030. Welcher Wert wird angezeigt, wenn CALLIOPE beim drücken von A beschleunigt oder abgebremst wird?

Ob eine Bewegung als Schritt gezählt wird, hängt nicht nur davon ab, wie schnell CALLIOPE beschleunigt wird. Es kommt auch darauf an in welcher Achse (x, y oder z) CALLIOPE bewegt wird.

Ein Spiel funktioniert mit dem Schrittezähler aber richtig gut: Bewege CALLIOPE so vorsichtig, dass er nicht zählt. Dabei kannst du heraus finden, in welcher Richtung der Beschleunigungssensor am wenigsten empfindlich ist. Mit dem Display nach oben, zur Seite oder welche von den 6 Ecken in Bewegungsrichtung vorn ist.

Auf den Seiten Funk und Display-Module kommen wir auf den Beschleunigungssensor zurück. Über Funk kann die Anzahl der Sprünge oder Schritte auf einem zweiten CALLIOPE als Empfänger angezeigt werden und auf einem richtigen Display kann mehr als ein Digit angezeigt werden.

Kontakt und Impressum