Lernziele
Aufgrund der klaren und überschaubaren Syntax gilt Python als einfach zu erlernen und wird in der Industrie zunehmend zur Erfassung von Messdaten im Internet (IoT) vernetzter Messgeräte und deren Auswertung eingesetzt aber auch zur Programmierung einfacher Systeme- z.B. basierend auf dem Raspberry - im Automatisierungs- und Instandhaltungsbereich.
Aufgrund der freien Open Source Community sind eine Vielzahl erprobter Programme verfügbar. Die Studierenden erhalten fundierte Kenntnisse/Fertigkeiten zur:
- Umsetzung der Datenerfassung und Auswertung im Produktentstehungs- und Instandhaltungsprozess mit einer objektorientierten Programmiersprache
- Realisierung von Beispielen an einer Testumgebung im Labor
Lehrinhalte
Im Modul werden die Teilnehmer im ersten Teil mit den Grundlagen von Python vertraut gemacht. Im Anschluss wird vertieft auf Python-Bibliotheken für Grafik, wissenschaftliches Rechnen, Datenanalyse und GUI (Grafische Benutzeroberfläche) eingegangen. Zudem werden die Teilnehmer mit der Tools der Code-Qualitätssicherung vertraut gemacht.
Das Modul schließt mit Applikationen ab, welche die Ansteuerung von Messgeräten über TCP und UART ermöglichen, Messwerte verarbeiten und in gängige Dateiformate speichern und diese in einem Messprotokoll ausgeben. Weiterführende Punkte wie C-Anbindung, Image Processing, Machine-Learning, etc. können je nach Zeit und Interesse vorgestellt werden.
Gliederung:
- Grundlagen von Python:
- Erstellung Python Environment
- Entwicklungsumgebungen für Python
- Datentypen in Python
- Kontrollstrukturen
- Datentypen detailliert
- Dokumentation, Aufbau Script
- Fortgeschrittenes Python:
- Klassen und Vererbung
- Python Standardbibliotheken
- Reguläre Ausdrücke
- Oberfläche mit tkinter
- Modularisierung
- Python Annotations und Docstrings
- Qualitätssicherung mittels statischer und dynamischer Code-Analyse
- Bug-Hunting: Debugging, Profiling, Testing
- Versionsverwaltung mittels SVN und GIT
- Wissenschaftliches Rechnen:
- Wissenschaftliches Rechnen mit numpy, scipy und sympy
- Grafikausgabe mit matplotlib
- Daten- und Zeitreihenanalyse mit pandas
- Praktische Anwendung
- Kommunikation mit Oszilloskop über VX11
- Kommunikation mit Messgerät über RS232
- Messwertspeicherung in CSV bzw. JSON (oder auch SQlite)
- Messwertverarbeitung, grafische Aufbereitung und Ausgabe in und Excel-Dokument
- Automatische Erstellung eines Reports als Word-Dokument
- Weiterführendes (je nach Zeit / Interesse)
- Parallele Programmierung
- Image Processing
- Web-Scaping
- Kommunikation zu C-Bibliotheken
- Machine-Learning
- Trainer/in: Heiko Wolfram