DVA Praktikum für TI

Willkommen zum DVA Praktikum für Technische Informatiker. Die Veranstaltung soll dazu dienen, dass Sie ...

1   Ablauf

http://hhoegl.informatik.hs-augsburg.de/dva/workflow/workflow1.png

Diese Menschen und Dienste sind beim DVA Praktikum beteiligt.

Am Anfang werden wir die Gruppen und Teams einteilen. Alle Studierenden werden wahrscheinlich in drei Gruppen eingeteilt. Jede Gruppe wird aus höchstens 16 Personen bestehen. Jede Gruppe wird aus mehreren Teams bestehen, jedes Team umfasst zwei bis drei Personen.

Jedes Team sucht sich einen Versuch aus einer Liste von Versuchen (DVATI_Versuche) aus und bearbeitet ihn in der vorgegebenen Zeit (siehe Abschnitt Termine). Jedes Team schreibt im Semester einen Bericht, der für jeden Versuch ein Kapitel enthält. Der Bericht wird mit Sphinx geschrieben und in einem Gitlab Repository fortlaufend aktualisiert. Der Bericht existiert nur in elektronischer Form. Auch die pro Versuch angefertigten Quelltexte werden in gitlab abgespeichert.

In der Bearbeitungszeit des Versuchs arbeiten alle Team-Mitglieder zusammen. Typische Tätigkeiten sind Recherche, Planung, Hardware aufbauen, Programmierung, Fehlersuche, Test und Dokumentation. Sie können entweder ausserhalb der Hochschule oder in den Laboren der Hochschule (G2.16, G2.17) arbeiten. Dazu sind die Labore täglich geöffnet von ca. 8:00 bis 17 Uhr.

Die Abgabe erfolgt nach der ein- oder zweiwöchigen Bearbeitungszeit. Es ist unter Umständen nicht zwingend erforderlich, dass Sie bei der Abgabe persönlich anwesend sind, die Anwesenheit kann jedoch von Ihren Betreuern jederzeit gefordert werden.

Eine Abgabe ohne Anwesenheit würde wie folgt ablaufen: Nach der Bearbeitungszeit befindet sich im Repository des Teams das entsprechende Versuchskapitel und alle sonstigen benötigten Dateien, Quelltexte, etc. Falls der Versuch vom Betreuer ohne Probleme aus dem Bericht nachvollzogen werden kann, und auch sonst alle Vorgaben erfüllt werden, dann kann der Versuch auch ohne Anwesenheit abgenommen werden. Dazu ist natürlich ein sehr gut geschriebener Bericht erforderlich. Verbesserungsvorschläge werden über Gitlab Issues an die Teams übermittelt. Auf diese Weise wäre es auch möglich, dass Studierende, die sich zu der Zeit nicht an der Hochschule aufhalten (z.B. Auslandssemester), am Praktikum teilnehmen können.

Die Abgabe mit Anwesenheit findet im zuständigen Labor statt, z.B. G2.16. Bei der Abgabe hält das Projektteam einen kurzen Vortrag und zeigt eine Versuchsvorführung. Der Berichts kann dabei über einen Beamer an die Wand projeziert werden. In der Regel werden zur Vorführung und zum Bericht Verbesserungsvorschläge gemacht, die innerhalb der darauffolgenden Woche umgesetzt werden müssen.

Bei einer zweiwöchigen Bearbeitungszeit kann der Zwischentermin für eine "Lagebesprechung" vor Ort im Labor oder virtuell über Videokonferenz genutzt werden. Jedes Team kann von den Betreuern dazu in die Labore eingeladen werden.

Die Versuche werden je Team als bestanden oder nicht bestanden gewertet. Die Betreuer führen je Versuch und Team einen "Zustandsautomaten", der wie folgt funktioniert:

http://hhoegl.informatik.hs-augsburg.de/dva/workflow/dvafsm.png

Der Zustandsautomat der Bewertung.

Jedes Team muss bei allen Versuchen den Zustand "bestanden" erreichen.

2   Anleitung zur Abgabe der DVA Berichte

Gilt nur für meine Gruppe. Bei den anderen Gruppen regelt das der eingeteilte Betreuer.

  1. Oktober 2020
  1. Alle Teams schreiben Ihren Bericht mit "Sphinx". Es gibt einen Demo-Bericht, den Sie hier finden:

    http://hhoegl.informatik.hs-augsburg.de/dva/sphinxbericht

    Diesen sollen Sie lesen und an Ihre Gruppe anpassen, so dass ein leerer initialer Bericht entsteht.

  2. Diesen Bericht verwalten Sie auf Gitlab in Ihrem Repository für Ihr Team. Der Teamname besteht nur aus einer Zahl, z.B. 31, so dass sich dann der Link auf das Repository ergibt:

    https://r-n-d.informatik.hs-augsburg.de:8080/dvati/berichte-ws20/31

    Nehmen Sie nur die Quelldateien in das Repository auf, nicht das Verzeichnis für die HTML Ausgabe _build/html/!

    Jedes Repository soll eine Datei README.md enthalten, ein Muster sieht so aus:

    # DVA Praktikum für Technische Informatiker
    
    Hochschule Augsburg \
    Fakultät für Informatik \
    Wintersemester 2020/2021 \
    Prof. Dr. Hubert Högl
    
    **Gruppe: 1**
    
    <!-- Nr   Name       MatrNr  Studiengang+Sem,   E-mail -->
    1. Hans Maier, #123456, INF6, <Hans.Maier@hs-augsburg.de>
    2. Anna Huber, #126987, INF6, <Anna.Huber@hs-augsburg.de>
    3. Franz Xaver, #349816, INF8, <Franz.Xaver@hs-augsburg.de>
    4. Isolde Weber, #432190, INF8, <Isolde.Weber@hs-augsburg.de>
    
    Das Gitlab Repository dieses Berichts ist unter
    https://r-n-d.informatik.hs-augsburg.de:8080/dvati/berichte-ws19/XXX/
    
    Der Bericht im HTML Format liegt hier: http://www.hs-augsburg.de/~xxx/xxx.

    Diese Datei ist in "Markdown" formatiert. Die Dokumentation für diese Formatierungssprache ist hier: https://github.github.com/gfm.

    Es wird nur ein Sphinx-Bericht abgegeben. Jeder Versuch, den Sie durchführen, ist ein Kapitel in diesem Bericht.

  3. Die HTML Ausgabe (_build/html/) soll auf den Webspace des Rechenzentrum hochgeladen werden. Wie das geht, steht im Demo-Bericht auf Kapitel 4.7 (Auf Webspace übertragen). Es genügt, wenn der Bericht in dem Web-Verzeichnis eines einzigen Gruppenmitglieds liegt und dieser URL in die README.md Datei aufgenommen wird.
  4. Hier ist ein Beispiel aus dem Sommersemester 2019 (DVA für Informatiker):

4   Anregungen für einen besseren Ablauf

H. Hoegl, 21.11.2019

Planen Sie ihren Versuch so, dass nach einer Woche schon ein Teil des Berichtes in lesbarer Form im Gitlab Repository ist (also bis zum 27.11.). Dadurch kann man am 27.11. über mögliche Probleme beim Versuch reden. Der finale Versuchsbericht soll bereits am 4.12. fertig sein.

Damit die Versuche variabler werden, bitte ich Sie, in den aktuellen Versuchen folgende Anregungen aufzunehmen:

GPS (Team 31)

GPS beschreiben, d.h. Funktionsprinzip, Beschreibung der Segmente, zu erreichende Genauigkeit.

Auswertung der Rohdaten (NMEA-Sentences) durch Parsen -> Extraktion der Zeit und Position -> Bestimmen der aktuellen Geschwindigkeit

Verwenden einer passenden Python-Bibliothek, die das Parsen schon übernimmt -> aus der gewonnenen Position die Entfernung zu einer nahen und auch einer weit entfernten Position bestimmen.

MBed (Team 32)

Das MBed Board bietet viel mehr Möglichkeiten als lediglich eine Ampelsteuerung mit drei LEDs zu programmieren. Dem Anschlussplan unter https://os.mbed.com/platforms/mbed-LPC1768 können Sie auch Analogeingänge, PWM-Ausgänge, Signale für eine Ethernet-Schnittstelle, eine SPI und eine I2C Schnittstelle entnehmen.

Interessante Aufgaben sind z.B. das Ansprechen von Sensoren über I2C (z.B. Temperatursensoren oder WII Nunchuck Fernbedienungen - beide sind im Labor). Über PWM kann man z.B. Servos ansteuern.

Die Signale SCL und SDA kann man mit Oszilloskop oder Saleae Logikanalysator ansehen. Man kann die Pull-Ups variieren und die Signalverläufe untersuchen. Welche Auswirkungen ergeben sich?

Statt dem Online-Compiler kann man auch die Offline-Toolchain verwenden.

Leistungsaufnahme: wie viel Strom benötigt ein das Board (evtl. verschiedene Betriebsmodi?) Wie lange würde Akkubetrieb rechnerisch klappen?

STM32 Nucleo Board (Team 33)

Dieses Board werden Sie auch im 5. Semester in Embedded Systems II verwenden. Deshalb ist die Zeit gut investiert, sich schon jetzt damit zu beschäftigen. Besorgen Sie sich von der CPU (STM32L476) das Reference Manual und verschaffen Sie sich einen Überblick über die Funktionsblöcke des Mikrocontrollers.

Das STM32 Nucleo Board bietet ähnliche Möglichkeiten wie das MBed Board. Tatsächlich ist das Nucleo Board auch "MBed enabled", so dass man die MBed Programmierumgebung verwenden könnte. Es gibt allerdings noch einige andere Umgebungen, die sie ausprobieren können:

Anregungen für Experimente sind z.B. das Auslesen des internen Temperatursensors oder das Einlesen von Analogwerten. Auch die Servo-Ansteuerung ist möglich.

RS485 Team 34)

Untersuchen der Leitungen (A/B) mittels Oszilloskop. Beschreibung der Vorteile von RS485 gegenüber z.B. RS232.

Ansprechen des seriellen Anschlusses mittels Python-Programm, z.B. Implementierung eines automatisch antwortenden Gegenstelle

RPi-HAT (Team 35)

Mindestens einer der Sensoren des Sense-Hats verwenden (Temperatur/Luftfeuchtigkeit/Luftdruck, IMU/Kompass) um z.B. ein Spiel selbst zu implementieren (die Spielidee darf es auch schon mal gegeben haben).

Entwicklung eines Erbeben-Detektors mit Hilfe des IMU-Sensors -> kleine Messungenauigkeiten müssen gefiltert werden. Dazu sind kleine Experimente zur Filterung der Daten nötig. Bei einer entsprechenden Erschütterung soll das Display eine Warnung ausgeben.

Entwicklung einer Wetterstation - mit Hilfe eines Frameworks oder einer selbst implementierten Lösung sollen Temperatur/Luftfeuchtigkeit/Luftdruck über einen längeren Zeitraum beobachtet werden können. Gerne auch mit Web-Interface oder unter Verwendung von MQTT und (freien) IoT-Diensten.

CAN (Team 37)

Arduino (Team 38)

Messen von Analogwerten (beiliegender Poti).

Ansprechen eines Servo-Motors.

Entfernungsbestimmung mit Hilfe eines Ultraschall-Sensors.

DVATI_Praktikum (last edited 2020-10-04 18:47:55 by HubertHoegl)