Die Sensoren für die Messung am Antrieb − der Treibscheibe − sind zuständig für die Ermittlung:
Aus den Daten lässt sich ebenfalls das aktuelle Stockwerk der Fahrstuhlkabine berechnen. Um diese Betriebsparameter ermitteln zu können, werden einige Daten der Motoranlage benötigt, die im Einstellungsmenü des Programms festgelegt werden, wie der Scheibenradius, die durchschnittliche Stockwerkshöhe und das Aufhängungsverhältnis des Motors zur Kabine. Auf der Motortreibscheibe sind entsprechende Markierungen notwendig, die von den Sensoren erfasst werden.
Grundsätzlich eignen sich für die Detektierung optische und magnetische Verfahren. Beide Methoden sind mit verschiedenen Sensortypen erprobt worden. Für die Signalaufnahme mithilfe von Hallsensoren sind Magnete und für den Lichtsensor stark reflektierende Markierungen, die auf der Motortreibscheibe zu befestigen sind, notwendig. Für die Testmessungen wurden silbrig glänzende Magnete verwendet, die leicht vom Lichtsensor erkannt werden, sodass keine weiteren Markierungen auf der Treibscheibe notwendig sind. Die Signale vom Hallsensor, z.B. Grove Hallsensor von Seed Studio, oder vom Lichtsensor, z.B. TSL2561 von TAOS, mit zwei zusätzlich angebrachten LEDs als Lichtquelle werden am GPIO-Port des Raspberry Pi angeschlossen.
Außerdem können akustische Signa¬le vom Antrieb aufgezeichnet und für eine weitere Analyse genutzt werden, um im Frequenzspektrum Abweichungen vom Normalbetrieb zu erkennen. Die akustischen Signale werden per Mikrofon aufgenommen und für die spätere Auswertung abgespeichert. Hierfür kommen ein einfaches Mikrofon und ein USB-Audio-Ein-/Ausgang vom Typ UA0053 der Firma LogiLink zum Einsatz, der an einen USB-Port des Raspberry Pi angeschlossen wird.
Die gemessenen Werte werden sowohl in einer Protokolldatei auf einem angeschlossenen USB-Stick gespeichert als auch per Powerline-Kommunikation an den Raspberry Pi, der sich im Basissystem auf dem Kabinendach befindet, übertragen. Die jeweils neu errechneten Motordaten werden kontinuierlich in die Protokolldatei geschrieben. Um die Ausgaben dabei zeitlich einordnen zu können, wird ein Zeitstempel vorangestellt, wofür die nachgerüstete Uhr erforderlich ist. Die kleine Platine mit der Uhr wird auf die Pfostenleisten des Raspberry Pi aufgesteckt und durch eine CR1220-Knopfzelle gepuffert. Über ein vom Hersteller zur Verfügung gestelltes Skript wird eine I2C-Abfrage beim Startvorgang des Raspberry Pi in das System eingetragen, sodass die interne Uhr des Raspberry Pi bei jedem Start korrekt gestellt wird.
Für die Bedienung des Raspberry Pi wird ein Touch-Farbdisplay (7“-Pi-Display) eingesetzt, womit sämtliche Eingaben und Anzeigen durchgeführt werden können. Das Display wird über den auf der Platine verfügbaren DSI-Anschluss (Display Serial Interface) mit dem Raspberry Pi und der 5-V-Spannungsversorgung verbunden. Passende Bohrungen auf der Rückseite des Displays gestatten das direkte Anschrauben des Raspberry Pi an das Display (Bild 4) und erleichtern so den gemeinsamen Einbau in ein Gehäuse. Eine separate Software-Installation ist für das Display nicht notwendig; es wird direkt vom Raspberry-Pi-Betriebssystem erkannt und unterstützt. Die grafische Oberfläche, die die Anzeige von Kalibrier-, Test- und Messfunktionen sowie die gemessenen und berechneten Werte anzeigt, ist mithilfe der Software QT Designer erstellt worden. Im laufenden Betrieb werden die Rohdaten der Sensoren sowie die berechneten Motorkennzahlen angezeigt (Bild 5).
Oben rechts ist eine Darstellung der Amplitude des Mikrofonsignals implementiert. Über das Konfigurationsfenster lassen sich die jeweiligen Antriebsdaten, z.B. Radius, Stockwerkshöhe sowie Messoptionen – Abtastrate, Abspeichern – per Touch-Display festlegen. Die Einstellungen können mit OK übernommen werden und dann unmittelbar und auch nach einem Neustart in Kraft treten.
In der finalen Version des Demonstrators wird diese Konfiguration nicht mehr eingesetzt, sondern durch einen leistungsfähigeren ARM-Mikrocontroller – LPC4330 von NXP – ersetzt. Er überträgt die Daten per TCP/IP-Verbindung über Powerline an das Basissystem auf dem Kabinendach, dessen Raspberry Pi die Daten dann über den integrierten Webserver zur Verfügung stellt.
Durch Messungen im Betrieb wurde deutlich, dass der Raspberry Pi den Lichtsensor an der Treibscheibe im schnellsten Modus minimal alle 22 ms abfragen kann und den Hallsensor in Intervallen von 5–10 ms. Die Schwankungen resultieren aus der Prozesspriorisierung des Betriebssystems, weil die Abfrage des Sensors über Dateisystemoperationen erfolgt. Bis zu einer Geschwindigkeit von einer halben Umdrehung pro Sekunde, bei einem Treibscheibendurchmesser von 40 cm, funktioniert das System mit dem Raspberry Pi einwandfrei und ermöglicht einen kompletten Datensatz bei jeder Viertelumdrehung. Höhere Drehzahlen sowie kleinere Treibscheiben können aufgrund der begrenzten Abtastgeschwindigkeit des Raspberry Pi jedoch nicht mehr erfasst werden. Deshalb wurde eine verbesserte Version mit einem Mikrocontroller vom Typ LPC4330 realisiert.
Der in den Testmessungen ermittelte Geschwindigkeitsvorteil der Hallsensoren gegenüber den Lichtsensoren wiegt die Nachteile der aufzubringenden Magnete und der etwas aufwendigeren Elektronik nicht auf. Im finalen Demonstrator werden deshalb zwei optische Sensoren (Reflexkoppler) eingesetzt, die lediglich aufgeklebte Markierungen auf der Treibscheibe benötigen.
Als Mikrocontroller im Maschinenraum kommt ein LPC4330 der Firma NXP zum Einsatz, der einen Cortex M4 und einen Cortex M0 als Coprozessor sowie die weiteren notwendigen Komponenten und Schnittstellen – Audio, ADU, GPIO, I2C, Ethernet, SD-Card – in einem einzigen Chip enthält. Für die Entwicklung wurde ein NGX Xplorer Board mit der Entwicklungsumgebung LPCXpresso sowie ein LPC-Link2 Flash-Adapter für die Programmierung und das Debugging verwendet.
Mit Hilfe der GPIO-Pins und der Anwendung von GPIO-Interrupts werden die Drehzahl, die Drehrichtung und die Geschwindigkeit der Treibscheibe bestimmt. Durch die Hardware-gesteuerte Interrupt-Verarbeitung, die in dieser Form beim Raspberry Pi nicht möglich ist, ergibt sich für die Signalerkennung ein enormer Geschwindigkeitsvorteil. Das I2S- und das I2C-Interface erlauben die Kommunikation mit einem externen Audiochip (CODEC) auf dem Mikrocontrollermodul, der für die Aufnahme der akustischen Signale am Motorblock eingesetzt wird. Die gemessenen Signale werden über das SD/MMC-Interface auf einer SD-Karte gespeichert und dabei mit einem Zeitstempel der internen Uhr (RTC) versehen.
Die beiden an die GPIO-Pins angeschlossenen optischen Sensoren sind jeweils über einen Schmitt-Trigger mit dem Mikrocontroller verbunden. Die Schmitt-Trigger sind notwendig, um dem Mikrocontroller LPC4330 pegel- und flankenstabile Eingangssignale zur Verfügung zu stellen. Das Mikrofonsignal wird mithilfe eines Vorverstärkers an den Aussteuerbereich des CODECs angepasst (Bild 6).