Im Labor Embbedded-Systems der Hochschule Anhalt in Köthen sollen die Studenten des Fachbereichs Elektrotechnik, Maschinenbau und Wirtschaftsingenieurwesen in den verschiedenen Studiengängen den Umgang mit einfachen Mikrocontrollern begleitend zur Vorlesung erlernen. Auch der Umgang mit aktiven und passiven Sensoren und Aktoren wird in verschiedenen Praktika erlernt.
In einem weiteren Schritt werden komplexere SoC-Systeme (System on Chip) mit dem Betriebssystem Linux inkl. Echtzeit-Linux-Systemen eingesetzt und für individuelle Projekte genutzt. Die verwendeten Hardware-Plattformen reichen von verschiedenen Arduino-Boards, Boards der ESP-Reihe, RaspBerry Pi oder Beaglebone bis zu komplexen Multiprozessor-Systemen. Der Vernetzung der SoC-Systeme auch unter Echtzeit-Bedingungen von einfachen Modbus RS-485 Systemen, CAN bis hin zu angepassten IP-Systemen kommt dabei eine besondere Bedeutung zu.
Die Programmierung dieser Systeme geschieht mittels Assembler, der Skriptsprache Python bis hin zu C und C++.
Wir fühlen uns der freien Software verpflichtet und benutzen daher ausschliesslich Open-Source-Werkzeuge wie Eclipse, git, Visual Studio Code, GNU Octave, KiCad eda etc. Als Betriebssystem auf den Labor- und Entwicklungsrechner kommt das freie OS Linux (Debian, Linux Mint) zum Einsatz.
Darüber hinaus werden gemeinsam mit industriellen Partnern BMBF-Projekte, ZIM-Vorhaben und weitere Kooperationen auf dem Gebiet des Einsatzes von Linux-basierten SoC-Systemen zu Monitoring-, Steuerungs- und Regelzwecken im Industrie 4.0 Umfeld sowie der Steuerung von regenerativer Energieerzeugung und deren Verteilung durchführt. Mehr Details finden sich im Forschungsflyer sowie auf weiteren Seiten eine Auswahl aktueller Projekte.
Lehre
Die praktisch orientierte Arbeit mit den Studenten unseres Fachbereichs ist uns sehr wichtig. Unsere Studenten werden in folgenden Fächern im Bachelor- und Masterstudiengang unterrichtet. Die jeweiligen Vorlesungen werden durch praktische Arbeiten im Labor unterstützt.
- Bachelor: Mikrocomputer und Mikrocontroller (Arduino basierend)
- Bachelor: Programmierung eingebetteter Systeme (Projektarbeiten)
- Master: Hardware-Software-CoDesign (FPGA’s mit Altera/Intel Komponenten)
- Master: Softwaredesign
- Master: Echtzeitsysteme (Linux und Zephyr)
- Master: Systemprogrammierung (Linux)
- Bachelor / Master: Internet-Sicherheit / Datenschutz und Internet-Sicherheit
Für alle Vorlesungen sind Skripte als Download verfügbar. Die Vorlesungen im Masterstudiengang werden in Englisch abgehalten.
Python
Python ist eine sehr einfach zu erlernende Programmiersprache. Trotz der Einfachheit bietet Python die Möglichkeit auch komplexe Programme für die vielfältigsten Anwendungsgebiete zu schreiben. Dies schließt sowohl Programme, die von der Kommandozeile bedient werden als auch komplexe grafische Benutzeroberflächen ein. Auch viele grafische Benutzeroberfläche sind komplett in Python realisiert.
Python bietet aus unserer Sicht folgende Vorteile:
- Einfache und eindeutige Syntax mit klaren Anweisungen.
- Klare Strukturen für gut strukturierten und gut lesbaren Code. Die Anordnung der Programmzeilen ergibt gleichzeitig die logische Struktur des Programms.
- Gute Wiederverwendbarkeit des Codes: Python unterstützt sehr gut das Zerlegen eines großen Problems in kleine separierte Probleme und deren Lösung in Python.
- Konsequente Objektorientierung: Objektorientierte Entwurfsmuster (Design Pattern) werden hervorragend unterstützt.
- Automatische Speicherverwaltung: Der Entwickler muss sich nicht um Reservierung und Wiederfreigabe von Speicherplatz kümmern.
- Python-Programme werden unmittelbar interpretiert, was einen schnellen Wechsel zwischen Codierungs- und Testphase gestattet.
- Hohe Ausführungsgeschwindigkeit.
- Python ist sowohl als Kommandozeilenanwendung als auch bei Verwendung von grafischen Benutzeroberflächen unabhängig vom Betriebssystem.