Herzschrittmacher für den Raspberry Pi – Teil 1: Konzept

Herzschrittmacher Projekt LogoDer Raspberry Pi ist ein sehr stabiles Computersystem – für BOINC und SETI@Home ist bei mir ein Raspberry Pi 2 einmal über ein Jahr lang ohne Unterbrechung und Reboot gelaufen. Aber so ein RasPi ist halt auch nur ein Computer und dessen Software kann sich schon mal aufhängen, so wie am heimischen PC eben auch. Am PC merkt man es gleich und kann einen Neustart des Computers veranlassen, aber was ist, wenn der Raspberry Pi irgendwo ohne Monitor und Tastatur als Server läuft? Dafür gibt es jede Menge Anwendungsfälle, wie File- oder Webserver, BOINC- oder Kamera-Computer. Wenn sich so ein System aufhängen sollte, dann wird man es in der Regel gar nicht gleich merken und der Reboot ist auch nicht so einfach wie am Personal Computer. Wie wäre es also, wenn wir ein Stück Hardware bauen, das die Vitalfunktion eines angeschlossenen Raspberry Pi überwacht und im Fall der Fälle eine Wiederbelebung durchführt? Also quasi ein Herzschrittmacher oder EKG mit integriertem Defibrillator?

Natürlich ginge es auch eine Nummer kleiner, man könnte es einer Software überlassen, die wichtigen Programme zu überwachen oder täglich vorsorglich bereits einen Reboot durchführen, wie ich es bei meinem Raspberry Video Camera Projekt gemacht habe. Eine solche Lösung hat aber den Nachteil, dass sie nur funktioniert, so lange zumindest das Betriebssystem noch aktiv ist. Sollte sich Raspbian selbst aufgehängt haben, bleibt nur die Möglichkeit den RasPi von Hand kurz vom Strom zu trennen.

Idee

Wie wäre es nun, einen harten Power-Off-On Zwangsreboot mit einer kleinen Hardwareschaltung zu realisieren? Die bestünde aus zwei Komponenten:

Herzschrittmacher BlockschaltbildHerzschlag-Überwachung

Zuerst muss der Raspberry Pi erst einmal einen Herzschlag abgeben. Das lässt sich leicht durch ein einfaches Python-Programm realisieren, das im Sekundentakt einen GPIO-Pin abwechselnd mit HI und LOW beschaltet. Ein kleiner Mikrocontroller kann dann diesen Puls-Takt abgreifen und überwachen. Sollte für eine vorgegebene Zeit – sagen wir einmal eine Minute – kein Herzschlag mehr spürbar sein, dann kann angenommen werden, dass der RasPi den Löffel abgegeben hat.

Reaktivierung durch Zwangsabschaltung

Jetzt kommt die zweite Komponente zum Einsatz: Der Mikrocontroller veranlasst, dass die Stromversorgung zum Raspberry Pi für ein paar Sekunden aufgetrennt wird. Dann wird dem RasPi Zeit für einen Reboot gegeben und anschließend die Herzschlagüberwachung erneut aufgenommen.

Herzschrittmacher-Schaltung auf einem Raspberry Pi 3Realisierung

Diese Überwachungsaufgabe ist nicht sonderlich anspruchsvoll, es kann also ein kleiner und billiger Mikrocontroller verwendet werden, wie der ATtiny13A von Atmel. Ein Dateneingang wird mit einem GPIO-Ausgang des Raspberry Pi verbunden – darüber lauscht der ATtiny auf den Pulstakt des RasPi. Ein Ausgang des Mikrocontrollers steuert die Stromversorgung des Raspberry Pi, damit die bei Bedarf unterbrochen werden kann. Die Hardware wird ergänzt durch zwei MOSFETs. Einer schaltet die Stromzuführung des Raspberry Pi ein und aus, quasi wie ein Relais, aber elektronisch. Das kann der Mikrocontroller nicht selbst tun, da ein Raspberry Pi bis zu 2A Strom ziehen kann. Ein zweiter MOSFET übernimmt die Pegelanpassung vom RasPi mit 3,3V auf die 5V des Mikrocontrollers. Dazu kommt eine LED, die den Pulstakt anzeigt und ein paar passive Bauteile. Mehr dazu im nächsten Artikel zum Thema Hardware.

Es braucht natürlich auch Software: Einmal ein paar Pythonzeilen, die den Herzschlag erzeugen und sich geschickt in das oder die wichtigen Programme integrieren, die die Funktion des Raspberry Pi ausmachen. Und natürlich die Software für den Mikrocontroller. Die ist nicht sonderlich kompliziert, muss aber in C geschrieben werden. Und wir brauchen einen Programmer um die kompilierte Software auf den Mikrocontroller flashen zu können. Zu all diesen Punkten gibt es in dieser Serie eigene Artikel, die alles genau beschreiben, so dass ein Nachbau kein Problem darstellen sollte.

 


Weitere Artikel in dieser Kategorie:

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert