kramann.info
© Guido Kramann

Login: Passwort:










Archiv
2 SoSe2022
..2.1 MIK
..2.2 SRT
..2.3 HDL
..2.4 AUT
..2.5 SLE
2 WS2020_21
..2.1 RTS
....2.1.1 day_by_day
..2.2 IE
....2.2.1 day_by_day
..2.3 ES
..2.4 EFSEE
....2.4.1 day_by_day
..2.5 KF
....2.5.1 day_by_day
....2.5.2 Haikus
....2.5.3 Haikus_en
..2.6 CC
....2.6.1 day_by_day
2 WS2021_22
..2.1 RTS
....2.1.1 day_by_day
....2.1.2 Versuch002
....2.1.3 Versuch003
....2.1.4 Versuch004
....2.1.5 Versuch005
....2.1.99 Material
..2.2 FTS
....2.2.1 day_by_day
..2.3 ESY
....2.3.1 day_by_day
..2.4 INFmecha5
....2.4.1 day_by_day
..2.5 REGmecha5
....2.5.1 day_by_day
2 WS2023_24
..2.1 day_by_day_RST
..2.2 day_by_day_SRT
..2.3 day_by_day_FTS
..2.4 day_by_day_KF
3 SoSe2021
..3.1 STR
....3.1.1 day_by_day
..3.2 SLE
....3.2.1 day_by_day
..3.3 HDL
....3.3.1 day_by_day
..3.4 MIK
....3.4.1 day_by_day
3 SoSe2024
..3.1 Mik_21_03_2024
..3.2 Mik_04_04_2024
..3.3 Mik_11_04_2024
..3.4 Mik_18_04_2024
..3.5 Mik_25_04_2024
..3.6 Mik_02_05_2024
..3.7 Mik_16_06_2024
..3.8 Mik_23_05_2024
..3.9 Mik_30_05_2024
..3.10 Mik_05_06_2024
..3.11 Mik_13_06_2024
3 WS2022_23
..3.1 day_by_day_RST_3MB
..3.2 day_by_day_RT2_5MT
..3.3 day_by_day_EMB_7MT
..3.4 day_by_day_ABP_7MT
..3.5 day_by_day_FTS_MMB
..3.6 day_by_day_KF
4 SoSe2023
..4.2 RTS_day_by_day
..4.3 MIK_day_by_day
..4.4 AUT_day_by_day
..4.5 HDL_day_by_day
4 WS2024_25
..4.1 ING_day_by_day
....4.1.1 ING_Do_26_09_2024
....4.1.2 ING_Do_10_10_2024
....4.1.3 ING_Do_17_10_2024
....4.1.4 ING_Do_24_10_2024
....4.1.5 ING_Do_07_11_2024
....4.1.6 ING_Do_14_11_2024
....4.1.7 ING_Do_21_11_2024
....4.1.8 ING_Do_28_11_2024
....4.1.9 ING_Do_05_12_2024
....4.1.10 ING_Do_12_12_2024
....4.1.11 ING_Do_19_12_2024
..4.2 INF_day_by_day
....4.2.1 INF_Fr_27_09_2024
....4.2.2 INF_Fr_04_10_2024
....4.2.3 INF_FR_18_10_2024
....4.2.4 INF_Fr_25_10_2024
....4.2.5 INF_Fr_08_11_2024
....4.2.6 INF_Fr_15_11_2024
....4.2.7 INF_Fr_22_11_2024
....4.2.8 INF_Fr_29_11_2024
....4.2.9 INF_Fr_06_12_2024
....4.2.10 INF_Fr_13_12_2024
....4.2.11 INF_Fr_20_12_2024
....4.2.12 INF_Fr_10_01_2025
..4.3 FTS_day_by_day
....4.3.1 FTS_Mi_25_09_2024
....4.3.2 FTS_Mi_02_10_2024
....4.3.3 FTS_Mi_09_10_2024
....4.3.4 FTS_Mi_16_10_2024
....4.3.5 FTS_Mi_23_10_2024
....4.3.6 FTS_Mi_30_10_2024
....4.3.7 FTS_Mi_06_11_2024
....4.3.8 FTS_Mi_13_11_2024
....4.3.9 FTS_Mi_20_11_2024
....4.3.10 FTS_Mi_27_11_2024
....4.3.11 FTS_Mi_04_12_2024
....4.3.12 FTS_Mi_11_12_2024
....4.3.13 FTS_Mi_18_12_2024
6 Ing
..6.1 Bauplan
....6.1.1 Bootstick
....6.1.2 Xubuntu
....6.1.3 Webserver
....6.1.4 Hotspot
....6.1.5 Videostream
....6.1.6 Lampe
....6.1.7 Chassis
....6.1.8 Akku
....6.1.9 Motore
....6.1.10 Laborsteckboard
....6.1.11 Antriebstest
7 007
..7.1 Einschalten
..7.2 Vorversuche
kramann.info
© Guido Kramann

Login: Passwort:




Inhalte zur Vorlesungswoche #3, Entwicklung fehlertoleranter Software für eingebettete Echtzeitsysteme im Wintersemester 2024/25

(EN google-translate)

(PL google-translate)

Beschäftigung im Falle einer Verspätung wie letzte Woche:
  • Arbeiten Sie sich in die Java-basierte Entwicklungsumgebung Processing ein.

Nutzen Sie chatGPT, um sich die Programme erklären zu lassen.



Sammeln Sie Fragen zur Programmentwicklung mit Processing.


processing.org
  • Gehen Sie dazu die folgenden Beispiele praktisch am PC unter Xubuntu durch:
78_Processing/02_Erste_Schritte
  • Gehen Sie in Processing die verschiedenen Testbeispiele aus den Libraries durch (z.B. Datei->Beispiele->Basics->Image->LoadDisplayImage).
  • Gehen Sie diesen Beitrag zu Objektorientierung mit Processing durch und sammeln Fragen dazu:
10_Informatik1/05_Softwareentwicklung/03_Objektorientierung
  • Versuchen Sie hier die Aufgabe 6.3 und später eventuell auch 6.4 zu lösen:
10_Informatik1/01_day_by_day/06_LV_06_05_2024

Themen heute:

  1. Quiz
  2. Präsentation und Diskussion zu 3 Redundancy, 2 Recovery Block, GRUPPE C
  3. Programmiertechnik: Datentypen, Klassen und Objekte in Java
  4. Theoretische Behandlung von Zustandsmaschinen als Grundlage für die Lösung der Aufgabe 2 von letzter Woche
  5. Präsentation einer möglichen Lösung zur Aufgabe 2 von letzter Woche: Erfassen der Boxgeschwindigkeit
  6. ÜBUNG

1 Quiz

  • Erläutern Sie den Begriff Mitigation
  • Erläutern Sie den Begriff Correcting Audits

2 Präsentation und Diskussion zu 3 Redundancy, 2 Recovery Block, GRUPPE C

  • Bitte bereiten Sie Folien ggf. als pdf-Dokument vor.
  • Nutzen Sie bitte die Möglichkeit die Folien bei Moodle hochzuladen.
  • So kann die Präsentation vom Dozenten-PC erfolgen.

3 Programmiertechnik: Datentypen, Klassen und Objekte in Java

Einfache Datentypen in Java: 30_Informatik3/09_Java/02_GettingStarted
Klassen und Objekte allgemein: 30_Informatik3/01_Vom_struct_zur_Klasse/06_Objektabstraktion
  • Java-Beispiel: Eine selbst geschriebene Klasse "Knopf" und die Erzeugung und Verwendung zweier ihrer Objekte
Knopf knopf1;
Knopf knopf2;
int x;
public void setup()
{
  size(600,300);
  frameRate(30);
  knopf1 = new Knopf(10,10,200,50);
  knopf2 = new Knopf(10,70,200,50);
}

public void draw()
{
   background(255);
   knopf1.draw();
   knopf2.draw();
}

public void mousePressed()
{
   knopf1.clicked(mouseX,mouseY);
   knopf2.clicked(mouseX,mouseY);
}

Code 0-1: Hauptteil des Sketches

public class Knopf
{
    private int x,y,breite,hoehe;
    private boolean an;
    public Knopf(int x,int y,int breite,int hoehe)
    {
        this.an = false;
        this.x = x;
        this.y = y;
        this.breite = breite;
        this.hoehe = hoehe;
    }
    
    public void draw()
    {
        if(this.an)
            fill(0,255,0);
        else    
            fill(255,0,0);
        rect(x,y,breite,hoehe);
    }
    
    public void clicked(int x, int y)
    {
        if(x>this.x && x<this.x+this.breite && y>this.y && y<this.y+this.hoehe)
        {
             this.an=!this.an;
        }
    }       
}

Code 0-2: Klasse Knopf in extra Tab.

4 Theoretische Behandlung von Zustandsmaschinen als Grundlage für die Lösung der Aufgabe 2 von letzter Woche

67_Echtzeitsysteme/12_Zustandsmaschine

5 Präsentation einer möglichen Lösung zur Aufgabe 2 von letzter Woche: Erfassen der Boxgeschwindigkeit

96_Arduino/30_Arduino_33_nano_IoT/01_Snippet_Boxschnelle

6 ÜBUNG

  • Es werden die Laptops 1 bis 7 verwendet.
  • An Laptop 1 arbeitet Gruppe A, 2 B, 3 C, 4 D, 5 E, 6 F, 7 G.
Aufgabe 1
  • Vollziehen Sie das Snippet zur Boxschnelle praktisch nach.
  • Überlegen Sie sich dann ein Konzept, dass ohne Drücken der Computertaste auskommt, sondern rein über die Sensordaten funktioniert.
  • Setzen Sie dieses Konzept um.
Aufgabe 2
  • Die räumlichen Orientierung des Arduino relativ zur Richtung der Erdbeschleunigung ist eindeutig zwei Winkeln zuzuordnen.
  • Man kann sich das so vortellen, dass die Spitze von Vektor Z (Senkrechte auf Arduino-Board) immer eindeutig auf einen Punkt einer gedachten ihn umhüllenden Sphere zeigt.
  • Die Abweichung dieses aktuellen Punktes von der Position in Nulllage, kann über zwei orthogonale Winkel beschrieben werden.
  • Überlegen Sie sich die mathematische Umrechnung des aktuellen Beschleunigungsvektors in zwei orthogonale Winkel in dem hier beschriebenen Sinn.
  • Setzen Sie das Ganze als Programm um und zeigen die Winkel in Grad als Zahlenwerte im Processing-Programmteil an.

Überlegen Sie, wie sich das Konzept des Recoveryblocks auf das Erfordernis die beiden Winkel bereitzustellen anwenden lässt.