Kapitel 5. Zusammenfassung

5.1. Vergleich gpioserver, scratchClient

CPU usage

gpioserver verwendet seit 2016-05 den 'pigpio'-Server. Dieser wird beim Start von scratch gestartet.

Mit 'top' kann man in einem Terminal die CPU-Auslastung ansehen.

Auf einem PI-B benötigt pigpiod ca 10% CPU.

Auf einem PI-B benötigt scratchClient ca 5% CPU.

Geschwindigkeit

Einfache GPIO Kommandos werden über den gpioserver schneller ausgeführt.

Eine detaillierte Analyse ist hier zu finden: scratch io response times .

gpioserver reagiert etwa 4 mal schneller auf externe Tastendrücke als wenn scratchClient verwendet wird.

Bei komplexeren Szenarien relativiert sich dieser Vorteil. Die Reaktion auf Tastendrücke erfordert einen Flankendetektor, der mit gpioserver in scratch programmiert werden muss; in scratchClient gibt es entsprechende Adapter.

Oder die Ansteuerung von Schrittmotoren, die low-level in scratch extrem langsam ist. Hier stellt ein Schrittmotoradapter in schratchClient eine etwa 40 mal größere Performance zur Verfügung. gpioServer and scratchClient performance comparison for stepper driving signals

Robustheit, einfache Bedienung

Mit gpioserver gibt es spezielle Probleme. Der Server 'merkt' sich die empfangenen Befehle, so dass der sichtbare scratch-Code (die broadcast-Blöcke) nicht unbedingt die Konfiguration im Server wiederspiegeln. Das macht die Fehleranalyse in Schüleraufbauten kompliziert. Im Prinzip muß man alle scratch-Programm beenden und dann neu starten, um die Funktion eines Programmes zu verifizieren.
Aktuell (2016-05) ist es so, dass der gpioserver das IO-Verhalten der GPIO einfach umstellt, wenn z.B. für einen Input-Pin ein write-Befehl abgeschickt wird. Je nach angeschlossener Peripherie kann das Beschädigungen der Hardware zur Folge haben.

Vorkonfigurierte Konfigurationen bei scratchClient haben im Schulbetrieb den Vorteil, dass Fehlerquellen ausgeschlossen werden und die Schüler schneller einen funktionierenden Aufbau erhalten.

scratchClient ermöglicht die Abfrage der aktuellen Konfiguration; über die Weboberfläche können Hardwareprobleme in Schüleraufbauten einfach analysiert werden.

Erweiterbarkeit

Als Bestandteil von scratch ist gpioserver in smalltalk geschrieben. Diese Sprache ist nicht mehr sehr verbreitet. Änderungen sind deshalb praktisch nur über die Raspberry Pi Foundation und über Tim Rowledge durchzuführen.

scratchClient ist in python geschrieben und einigermassen gut dokumentiert. Für Python gibt es viel know how; Anpassungen sind einfach durchzuführen..