Auch auf 5x5 Pixeln lässt sich ein EKG darstellen, vereinfacht natürlich, aber immerhin! Entweder man misst dafür mit einem Grove-Heart Rate-Sensor den eigenen Puls oder lässt sich mit Taste B probehalber vom Calliope einen simulierten "Herzschlag" generieren. Taste A schaltet den Ton ein (oder aus, aber wer will das schon :-)). Pin 2 und Pin 3 erlauben es, den generierten Puls zu verlangsamen bzw. zu beschleunigen.
Zentral ist die folgende Schleife: Alle 100 ms wird ein neuer Bildpunkt des EKGs gezeichnet. Bei jedem Herzschlag wird (an anderer Stelle) ein Zähler auf 0 gesetzt. Auf den Inhalt dieser Variablen wird hier zugegriffen, um den typischen Ausschlag zu zeichnen: Zähler = 0: Kurve geht leicht nach oben; Zähler = 1: senkrechte Linie; Zähler = 2: Ausschlag nach unten. Danach läuft der Zähler einfach immer weiter, bis ein neuer Puls erfolgt. Bis zum nächsten Puls bleibt das EKG eine flache Linie ("ansonsten"-Fall). Wenn der rechte Bildschirmrand erreicht ist (x = 4), wird der Bildschirm gelöscht und es geht wieder am linken Rand los (x = 0).
Verwendet man den Sensor (anzuschließen an Grove-Port A1), ist jeder Herzschlag an Pin C16 für den Calliope erkennbar. Ein solcher schaltet den automatisch generierten Puls (s. weiter unten) ab, signalisiert über das Zurücksetzen der Zählervariablen, dass ein Herzschlag erfolgte und spielt, sofern der Ton eingeschaltet ist, ein kurzes "Beep" ab.
Hat man keinen Sensor, so lässt sich ein Herzschlag zumindest simulieren: Dieser nachgebaute Puls wird beim Start auf 100 Schläge pro Minute gesetzt (Variable bpm). Eine Minute hat 60 Sekunden, also 60*1000 Millisekunden. 60000/bpm ist daher genau die Zeitspanne zwischen zwei Schlägen. Immer, wenn eine solche abgelaufen ist, wird der Zähler auf 0 gesetzt und auch hier ein Ton abgespielt. Für die Hauptschleife, die das EKG zeichnet, ist nicht erkennbar, ob ein "richtiger" Herzschlag vorliegt oder ein simulierter; alles was dort interessiert, ist der Stand der Zählervariablen!
Keine Folge einer Krankenhausserie ohne Herzstillstand. Man kann das nachstellen, indem man ab einem gewissen Zählerstand (entspricht hier ca. 2 Sek. ohne Puls) einen Dauerton abspielt. Oder es mit genau so viel Berechtigung makaber finden und den folgenden Block weglassen.
Mit den Knöpfen A und B lassen sich der Ton bzw. der simulierte Puls ein- und ausschalten (die entsprechende Variable wird negiert, ein eventuell gerade ausgegebener Ton wird durch die Pause unterbrochen). Beim Programmstart werden übrigens beide Variablen (implizit) mit "falsch" initialisiert.
Wenn man die Pins P2 bzw. P3 und gleichzeitig den Minus-Pin berührt (und wieder loslässt) kann man die Herzfrequenz in Zehnerschritten verlangsamen bzw. beschleunigen.
Fertig ist der EKG-Monitor! Wer weiter damit "basteln" möchte, könnte z. B. noch die Herzschlagfrequenz ausrechnen und anzeigen, wie bei: https://www.hackster.io/hansamann/calliope-heart-rate-sensor-82cc92 , dessen erster Schritt der Ausgangspunkt für dieses Projekt war. Inspiration für den Plotter war das großartige micro:bit-Oszilloskop: http://www.elektronik-labor.de/Microbit/Microbit9.html . Aber vielleicht gibt es ja sogar noch mehr Erweiterungen? Die RGB-LED in Abhängigkeit schnellem oder langsamen Pulsschlag stufenlos von rot über orange und gelb zu grün wechseln lassen etwa? Viel Spaß! :-)
Comments