Messwerterfassung in LibreOffice Calc direkt

Hallo,

auf Fortbildungen wurde immer wieder der Wunsch geäußert, die per seriellem Port übertragenen Messwerte von Calliope (oder Microbit) direkt in LibreOffice Calc einlesen zu können. Auf der Seite von KYchem wurde ein Script veröffentlich, welches ich nun angepasst zur Diskussion/Verbesserung freigeben möchte.

Alle Erläuterungen und Skripte wurden unter Windows-Systemen getestet.

Hier geht es zum Skript und den notwendigen Erweiterungen für LibreOffice.

„Installation“ - getestet mit LibreOffice portable 7.4 - nur einmalig erforderlich:

  1. Entpacken des ZIP-Ordners site-packages.zip
    Damit erhält man die zwei Ordner serial und PyQt5 in denen sich die Standard-Scripte PySerial und PyQt5 befinden.

  2. Kopieren der beiden Ordner serial und PyQt5 in den Python-Site-Packages-Ordner von LibreOffice. Dieser befindet sich im (portablen) Installationsordner … libreoffice\program\python-core-3.x.x\lib\site-packages und enthält zunächst nur eine README.txt

  3. Anlegen der notwendigen Ordnerstruktur Scripts\python im Nutzerordner von LibreOffice.
    In der portablen Version liegt dieser unter
    „…\LibreOfficePortable\Data\settings\user“ und bei Installation unter „C:\Users\BENUTZER\AppData\Roaming\LibreOffice\4\user“

  4. Kopieren des Skripts Messertwerfassung.py in den angelegten Ordner Scripts\python.

Anmerkungen: Normalerweise würde man die Pakte für Python mit pip installieren. Leider klappt das mit der LibreOffice-Python-Version nicht so einfach. Erst mithilfe der Extension APSO ist dies möglich. Als Admin in der Schule habe ich aber die einfachere Option, die fertigen Pakete via Server zu kopieren bzw. über die portable LibreOffice-Version zu verteilen. Dies gilt ebenso für das Anlegen des Nutzerordners für Python und das Kopieren des Scripts.

Benutzung
Auf dem Calliope muss natürlich eine serielle Datenübertragung eingerichtet sein und der Controller am Rechner angeschlossen sein. Hier ein einfaches Beispielprogramm:

  1. Start LibreOffice Calc

  2. Extras - Makros - Makros ausführen

  3. Bibliothek - Meine Makros - Messwerterfasser - StartMesswerterfassung
    Skriptstart
    Ist kein Skript gelistet, hat das mit dem Nutzerordner nicht geklappt. Es ist zu prüfen, ob der Ordner „Scripts“ wirklich im Nutzerordner liegt (bei identischer Schreibweise) und in ihm der Ordner „python“.

Nun sucht das Script die serielle Schnittstelle des Gerätes. Wenn er eine findet, wird diese eingestellt. Bei mehreren Schnittstellen ist die korrekte aus der Liste zu wählen. Die Baudrate ist zu prüfen/korrigieren. Standardmäßig arbeitet Calliope/Microbit mit 115200 Baud. Mit Senorenzahl wird die Zahl der parallel übermittelten Sensordaten angegeben. Hier im Beispiel sind dies die Temperatur und die Helligkeit, also 2. Je mehr Sensoren parallel senden, desto anfälliger/lückenhaft wird Messreihe! Wird nun ein Sensor verwendet, kann statt der Listenübermittlung auch der Block „serielle Zeile ausgeben“ genutzt werden.
skript

Mit Start startet die Aufzeichnung, mit Stopp endet diese. Das Fenster sollte stets mit Ende geschlossen werden.

Im Screenshot sieht man, dass es zu Beginn Probleme gab, der Rest klappt aber.

Das Skript benötigt keine veränderte Sicherheitseinstellung. Feedback ist nun gern willkommen!

ToniTaste

3 „Gefällt mir“