Hallo zusammen, ich habe ein universelles Multifuntions I/O-Gerät (DAQ, Datenlogger,...) namens "RTMC" (Real-Time Measure & Control) entwickelt, das ich Euch gerne vorstellen möchte. Man kann Daten von 8 Sensoren zeitsynchron und mit präzisem Timing mit einer Taktrate von bis zu ca. 4,4 kHz aufzeichnen. https://github.com/markusgruen/RTMC Sowas gibt es natürlich schon seit vielen Jahren von Open Source bis teuer zu kaufen, aber alle bisherigen Geräte können ausschließlich analoge Daten aufzeichnen, man kann also nur Sensoren mit analogem Ausgang auswerten. Heutzutage gibt es aber immer mehr Sensoren mit digitaler Schnittstelle (I²C, SPI, UART,...) und hierfür gab es bisher keine einfache Möglichkeit, Daten von mehrern digitalen Sensoren zeitsynchron aufzuzeichnen. Mit dem RTMC lassen sich Daten von jeder beliebigen Schnittstelle (es müssen ja nicht unbedingt "Sensoren" sein) aufzeichnen: - analog - I2C - SPI - UART - RS232 - RS422/485 - CAN - Profibus - und beliebige andere, auch proprietäte Interfaces. Mit dem RTMC lassen sich aber nicht nur die Daten von Sensoren aufzeichnen, sondern auch Aktoren zeitsynchron ansprechen, so dass man einfach einen geschlossenen Regelkreis implementieren kann. Mir war bei der Entwicklung insbesondere wichtig, dass die Daten zeitsynchron aufgezeichnet werden und dass es sich einfach bedienen lässt. Mittlerweile habe ich das schon mehrfach im professionellen Umfeld bei mir auf der Arbeit eingesetzt (ich arbeite in der Vorentwicklung, da möchte man immer "schnell mal was messen") und es hat sich einwandfrei bewährt. Überblick Das RTMC ist ein Master-Slave System, mit dem RTMC-hub als Basisgerät und den RTMC-nodes an die die Sensoren angeschlossen werden. Die Nodes lesen die Sensoren aus und geben die Daten über eine RS485-Schnittstelle an den RTMC-hub weiter. Der RTMC-hub erzeugt ein präzises Trigger-Signal mit einem benutzerdefinierten Intervall, das bei den Nodes das Auslesen der Sensoren anstößt. Der RTMC-hub liest die Daten der bis zu 8 angeschlossenen Nodes aus, aggregiert sie und streamt sie via USB zum Host-PC oder auf eine SD-Karte, wo man sie dann anschließend auswerten kann. Software Die RTMC-nodes lassen sich direkt mit der Arduino-IDE programmieren, das gesamte Handling des Triggerns und Übertragens der Daten passiert für den Nutzer nicht sichtbar im Hintergrund, so dass die eigentliche Programmierung der Nodes so einfach wie möglich ist. Auf dem RTMC-hub wird sogar gar kein nutzerspezifischer Code benötigt. Man kann die Nodes einfach anschließen und loslegen. Die maximale Abtastrate wird automatisch anhand des "langsamsten" Nodes ermittelt; man kann den Wert für die Abtastrate aber auch überschreiben und sogar schnellere Abtastraten wählen. (wenn man z.B. einen schnellen und einen langsamen Sensor hat, kann man die Abtastrate an den schnellen Sensor anpassen, der langsame Sensor übermittelt dann die Messwerte nur jedes n-te Mal) Jeder Node kann bis zu 8 Werte übermitteln, man kann also problemlos einen 3-Achs Beschleunigungssensor anschließen oder auch zwei Sensoren pro Node, falls man mehr als 8 Eingänge benötigt. Maximal lassen sich 64 Werte aufzeichnen. Die maximale Abtastrate hängt von der Zeitdauer ab, die es benötigt den angeschlossenen Sensor auszulesen und von der Anzahl an zu übertragenden Werten je Node. Da der RTMC-hub die Daten der Nodes parallel einliest ist es für die Abtastrate egal, ob man nur einen oder acht Sensoren anschließt. Hardware Ich habe die Hardware so gestaltet, dass die Nodes möglichst kostengünstig sind. Die Bauteile für einen RTMC-node liegen unter 10 €. Der RTMC-node basiert auf einem Raspberry Pi pico und hat außer einem RS485 Transceiver und einer RJ45 Buchse nur wenig Hühnerfutter auf der Platine. Der RPi bietet alle gängigen Schnittstellen und nahezu alle GPIOs lassen sich auch noch nutzen, wenn man sie denn braucht. Auf der Platine gibt es auch einen Breadboard-Bereich, um dort direkt einen Sensor aufzulöten oder einen Levelshifter unterzubringen. Der RTMC-hub basiert auf einem Teensy 4.1, da dieser 8 separate UARTs besitzt, an die die Nodes über RS485 Transceiver angeschlossen werden. Auf der Platine ist ausser dem Teensy und den Transceivern nur noch ein bißchen Spannungsregelung und ein paar Taster und Schalter für die Bedienung. Sowohl der RPi, als auch der Teensy lassen sich ohne Aufwand direkt in der Arduino-IDE programmieren. Mehr Details findet ihr in meinem Repo. Oder fragt mich einfach.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.