Abitur Hessen Technische Informatik 2022 · LK
Abiturprüfung Technische Informatik in Hessen 2022, LK: 21 Aufgaben mit Lösungen. Themen: Use-Case-Diagramme und UML-Klassendiagramme und Objektdiagramme.
Themen der Prüfung: Use-Case-Diagramme · UML-Klassendiagramme und Objektdiagramme · Klassen und Methoden implementieren · Sequenzdiagramme und Netzwerkkommunikation · Schaltnetze: KV-Diagramm und NAND-Technik · Flipflops und Schieberegister · Struktogramme für Mikrocontroller-Steuerungen · Assemblerprogrammierung und Mikrocontrolleraufbau · Sensoren und Aktoren
Aufgabe Vorschlag A - 1 - Use-Case-Diagramme · Use-Case-Diagramme
Traktorfuhrpark
Die Digitalisierung hält schon seit vielen Jahren Einzug in die moderne Landwirtschaft. So sind Traktoren heutzutage oft vernetzte Fahrzeuge, die mittels GPS-Navigation automatisch die Spur halten können und Informationen über die eingesetzte Saatgut- und Düngemittelmenge sammeln und diese an eine Zentrale zur Auswertung weiterleiten. Solche Traktoren bedeuten eine hohe Investition für landwirtschaftliche Betriebe, so dass sich viele Betriebe die Traktoren bei Fuhrparks mieten.
Ziel ist es, einen Teil einer Online-Verwaltungssoftware für den Fuhrpark zu entwickeln. Kundinnen und Kunden (im Folgenden Kunden genannt) des Fuhrparks benötigen zunächst Registrierungsdaten, bestehend aus Username und Passwort, die sie von einer Sachbearbeiterin oder einem Sachbearbeiter (im Folgenden Sachbearbeiter genannt) des Fuhrparks erhalten. Bei dem Registrierungsvorgang werden auch Anschriftsdaten und eine Abbuchungserlaubnis für ein Bankkonto mit IBAN erfasst.
Um eine Buchung durchzuführen meldet sich der Kunde auf der Webseite an. Er wählt auf der Webseite einen Traktor nach Hersteller und Leistungsklasse aus und entscheidet, ob er einen Anhänger hinzubuchen möchte. Zur Auswahl stehen Transportanhänger und Saatgutverteiler. Die Transportanhänger sind nach unterschiedlichem Zuladegewicht auswählbar, die Saatgutverteiler nach der Saatkapazität in Quadratmetern pro Stunde. Jeder Traktor und jeder Anhänger haben einen Mietpreis pro Tag.
Als weiterer Service wird auch Saatgut mit einem Preis pro Zentner verkauft, welches einem Buchungsvorgang hinzugefügt werden kann. Die Verwaltungssoftware ermittelt aus den ausgewählten Traktoren und Anhängern sowie den zusätzlich gewünschten Saatgutmengen einen Angebotspreis. Der Kunde wählt einen freien Termin und kann den Angebotspreis akzeptieren und damit den Termin buchen.
Material 1: UML-Klassendiagramm
1.1 Entwickeln Sie unter Berücksichtigung der obigen Beschreibung ein aussagekräftiges Use-Case-Diagramm und bestimmen Sie die Akteure, Beziehungen zwischen Akteuren und Anwendungsfällen und eventuell vorhandene include- bzw. extend-Beziehungen. [10 BE]
Ihre Zeichnung wurde übermittelt. Vergleichen Sie Ihre Lösung mit der Musterlösung.
Aufgabe Vorschlag A - 1 - UML-Klassendiagramme und Objekt… · UML-Klassendiagramme und Objektdiagramme
Traktorfuhrpark
Die Digitalisierung hält schon seit vielen Jahren Einzug in die moderne Landwirtschaft. So sind Traktoren heutzutage oft vernetzte Fahrzeuge, die mittels GPS-Navigation automatisch die Spur halten können und Informationen über die eingesetzte Saatgut- und Düngemittelmenge sammeln und diese an eine Zentrale zur Auswertung weiterleiten. Solche Traktoren bedeuten eine hohe Investition für landwirtschaftliche Betriebe, so dass sich viele Betriebe die Traktoren bei Fuhrparks mieten.
Ziel ist es, einen Teil einer Online-Verwaltungssoftware für den Fuhrpark zu entwickeln. Kundinnen und Kunden (im Folgenden Kunden genannt) des Fuhrparks benötigen zunächst Registrierungsdaten, bestehend aus Username und Passwort, die sie von einer Sachbearbeiterin oder einem Sachbearbeiter (im Folgenden Sachbearbeiter genannt) des Fuhrparks erhalten. Bei dem Registrierungsvorgang werden auch Anschriftsdaten und eine Abbuchungserlaubnis für ein Bankkonto mit IBAN erfasst.
Um eine Buchung durchzuführen meldet sich der Kunde auf der Webseite an. Er wählt auf der Webseite einen Traktor nach Hersteller und Leistungsklasse aus und entscheidet, ob er einen Anhänger hinzubuchen möchte. Zur Auswahl stehen Transportanhänger und Saatgutverteiler. Die Transportanhänger sind nach unterschiedlichem Zuladegewicht auswählbar, die Saatgutverteiler nach der Saatkapazität in Quadratmetern pro Stunde. Jeder Traktor und jeder Anhänger haben einen Mietpreis pro Tag.
Als weiterer Service wird auch Saatgut mit einem Preis pro Zentner verkauft, welches einem Buchungsvorgang hinzugefügt werden kann. Die Verwaltungssoftware ermittelt aus den ausgewählten Traktoren und Anhängern sowie den zusätzlich gewünschten Saatgutmengen einen Angebotspreis. Der Kunde wählt einen freien Termin und kann den Angebotspreis akzeptieren und damit den Termin buchen.
Material 1: UML-Klassendiagramm
1.2
Das UML-Klassendiagramm in Material 1 zeigt einen Ausschnitt aus der Verwaltungssoftware. Beschreiben und erläutern Sie das dargestellte Klassendiagramm unter Verwendung folgender Stichworte: Klasse, Referenzvariablen (Objektreferenzen), Operation (Methode), Datentyp, Sichtbarkeit, Vererbung, abstrakte Klasse, Parameter, Assoziation und Multiplizität.
Hinweis: Die Attribute vom Datentyp int, double und String sowie alle Konstruktoren sind nicht zu beschreiben. [10 BE]
1.3
Der Kunde Heimeler hat für den 27.7.2021 einen Traktor des Herstellers Schwerlast mit einer Leistung von 700 kW sowie einen Saatgutverteiler mit einer Saatkapazität von 6000 Quadratmetern pro Stunde für zwei Tage bestellt. Als Saatgut wurden 20 Zentner Saatgut hinzugefügt. Die Angebotspreise betragen für den Traktor € 450,-/Tag, für den Saatgutverteiler € 180,-/Tag und für den Zentner Saatgut € 130,-.
Entwickeln Sie ein Objektdiagramm für das angegebene Szenario. Ergänzen Sie fehlende Informationen durch sinnvolle Werte. [6 BE]
1.6
Erläutern Sie den Begriff Polymorphie anhand des Klassendiagramms in Material 1. [5 BE]
1.7
In dem Klassendiagramm in Material 1 gibt es Optimierungspotenzial hinsichtlich der Vererbung. Entwickeln und erläutern Sie einen Änderungsvorschlag. [5 BE]
Antworten übermittelt. Vergleichen Sie Ihre Ausarbeitungen mit den Musterlösungen.
Aufgabe Vorschlag A - 1 - Klassen und Methoden implementi… · Klassen und Methoden implementieren
Traktorfuhrpark
Die Digitalisierung hält schon seit vielen Jahren Einzug in die moderne Landwirtschaft. So sind Traktoren heutzutage oft vernetzte Fahrzeuge, die mittels GPS-Navigation automatisch die Spur halten können und Informationen über die eingesetzte Saatgut- und Düngemittelmenge sammeln und diese an eine Zentrale zur Auswertung weiterleiten. Solche Traktoren bedeuten eine hohe Investition für landwirtschaftliche Betriebe, so dass sich viele Betriebe die Traktoren bei Fuhrparks mieten.
Ziel ist es, einen Teil einer Online-Verwaltungssoftware für den Fuhrpark zu entwickeln. Kundinnen und Kunden (im Folgenden Kunden genannt) des Fuhrparks benötigen zunächst Registrierungsdaten, bestehend aus Username und Passwort, die sie von einer Sachbearbeiterin oder einem Sachbearbeiter (im Folgenden Sachbearbeiter genannt) des Fuhrparks erhalten. Bei dem Registrierungsvorgang werden auch Anschriftsdaten und eine Abbuchungserlaubnis für ein Bankkonto mit IBAN erfasst.
Um eine Buchung durchzuführen meldet sich der Kunde auf der Webseite an. Er wählt auf der Webseite einen Traktor nach Hersteller und Leistungsklasse aus und entscheidet, ob er einen Anhänger hinzubuchen möchte. Zur Auswahl stehen Transportanhänger und Saatgutverteiler. Die Transportanhänger sind nach unterschiedlichem Zuladegewicht auswählbar, die Saatgutverteiler nach der Saatkapazität in Quadratmetern pro Stunde. Jeder Traktor und jeder Anhänger haben einen Mietpreis pro Tag.
Als weiterer Service wird auch Saatgut mit einem Preis pro Zentner verkauft, welches einem Buchungsvorgang hinzugefügt werden kann. Die Verwaltungssoftware ermittelt aus den ausgewählten Traktoren und Anhängern sowie den zusätzlich gewünschten Saatgutmengen einen Angebotspreis. Der Kunde wählt einen freien Termin und kann den Angebotspreis akzeptieren und damit den Termin buchen.
Material 1: UML-Klassendiagramm
1.4
Implementieren Sie die Klassen Buchung, Ware, Saatgut und Traktor in einer in Ihrem Unterricht verwendeten objektorientierten Programmiersprache.
Hinweis: Die Operationen myKosten() und angebotBerechnen() sind nicht zu implementieren. [9 BE]
1.5
Die Operation angebotBerechnen() in der Klasse Buchung berechnet den Angebotspreis für eine Buchung. Hierbei werden die Dauer der geplanten Miete in Tagen und die Kosten pro Tag sowie die Menge des bestellten Saatguts in Zentnern und die Kosten pro Zentner berücksichtigt. Implementieren Sie die Operation angebotBerechnen() in der Klasse Buchung und die Operationen myKosten() in den Klassen Ware, Traktor und Saatgut. [5 BE]
Code eingereicht. Vergleichen Sie Ihre Implementierung mit der Musterlösung.
Aufgabe Vorschlag A - 2 · Schaltnetze: KV-Diagramm und NAND-Technik
2 In Material 2 ist ein Saatgutbehälter dargestellt. Der Füllstand des Saatguts im Saatgutbehälter wird überwacht. Für die Überwachung wird ein Niveausensor „N“ eingesetzt, welcher eine „1“ liefert, wenn er mit Saatgut bedeckt ist. Zusätzlich wird ein Durchflusssensor „D“ verwendet, welcher überprüft, ob Saatgut durch die Förderorgane fließt. Ist Durchfluss vorhanden, liefert dieser eine „1“.
Außerdem wird die Drehung des Särads, das sich im Dosierorgan befindet, überwacht. Hierfür wird geprüft, ob das Särad eine Geschwindigkeit „V“ hat, wenn es eingeschaltet wird. Die Betätigung des Ein-Schalters „E“ liefert eine „1“. Dreht sich daraufhin das Särad, so liefert das Geschwindigkeitssignal „V“ eine „1“.
2.1
In Material 3 ist eine Wahrheitstabelle für sämtliche Sensorkombinationen abgebildet. Eine Störleuchte „S“ soll anzeigen, wenn der Saatgutbehälter leer ist (N = 0) oder wenn sich das Särad trotz Einschaltens nicht dreht (E=1 und V=0). Außerdem handelt es sich ebenfalls um eine Störung, wenn sich das Särad dreht, obwohl es nicht eingeschaltet ist (E=0 und V=1). Zusätzlich ist die Funktion gestört, wenn trotz Einschaltens (E=1) kein Durchfluss (D=0) vorhanden ist oder umgekehrt, wenn Durchfluss (D=1) ohne Einschalten (E=0) auftritt.
Ergänzen Sie die Wahrheitstabelle: tragen Sie die Ausgangswerte für das Störsignal S (0 oder 1) ein.
N
D
E
V
S
2.2
Ermitteln Sie die Funktionsgleichung für das Störsignal S in konjunktiver (KNF) und disjunktiver Normalform (DNF).
Hinweis: Bei der Niederschrift der disjunktiven Normalform kann auf die Notation der UND-Zeichen verzichtet werden.
2.3
Zeigen Sie mithilfe des KV-Diagramms in Material 4 auf, dass die vereinfachte disjunktive Gleichung
gültig ist.
2.4
Ermitteln Sie die Gleichung für NAND-Technik zu der Gleichung aus Aufgabe 2.3 und zeichnen Sie die Schaltung mit Logiksymbolen.
2.5
Zur allgemeinen Betrachtung der Realisierung einer NAND-Schaltung mit integrierten Bauelementen wird die NAND-Schaltung zugrunde gelegt. Für die Umsetzung stehen integrierte Bauelemente vom Typ 74LS00 zur Verfügung (Material 5). Leiten Sie für X eine Gleichung her, die nur NAND-Verknüpfungen mit jeweils zwei Elementen enthält und zeichnen Sie den Verdrahtungsplan in Material 6.
Aufgabe Vorschlag A - 3 - Struktogramme für Mikrocontroll… · Struktogramme für Mikrocontroller-Steuerungen
Die Steuerungs- und Überwachungsorgane (Material 2) arbeiten über einen Mikrocontroller. Dieser verarbeitet ein Start/Stopp-Signal und das Störsignal aus Aufgabe 2. Je nachdem, welche Sorte Saatgut auszubringen ist, ist die Dosierung einzustellen. Grobes Saatgut benötigt eine weitere Öffnung des Schiebers als feines Saatgut. Zudem ist die Geschwindigkeit des Särads einstellbar, um in Kurven nicht zu viel Saatgut auszubringen. Ergänzend ist es erforderlich, das restliche Saatgut komplett ablassen zu können. Dafür kann die Bodenklappe des Saatgutbehälters geöffnet werden. Die Steuerung wird über die Ein- und Ausgänge des Mikrocontrollers vorgenommen (Material 7).
Zu Beginn der Traktorfahrt startet das Mikrocontrollerprogramm automatisch über die Spannungsversorgung. Der Funktionsablauf wird im Folgenden beschrieben:
Solange keine Störung (Störung bei Eingangssignal LOW) vorliegt wird der Funktionsablauf fortgesetzt.
Zuerst wird der Saatguttyp abgefragt (Grobes Saatgut entspricht HIGH, feines Saatgut entspricht LOW).
Erst wenn der Bediener mit dem Start/Stopp-Schalter das Säen startet (Start bei HIGH), wird der Schieber geöffnet. Der Schieber wird über zwei Bits gesteuert. Die Bitkombination LOW-LOW sorgt für ein komplettes Schließen des Schiebers.
Die Bitkombination LOW-HIGH sorgt für die Öffnung für feines Saatgut.
Die Bitkombination HIGH-LOW sorgt für die Öffnung für grobes Saatgut.
Die Bitkombination HIGH-HIGH sorgt für das vollständige Öffnen des Schiebers.
Das Särad wird in Bewegung gesetzt. Das erfolgt, solange das Signal für die Kurvenfahrt LOW ist, mit dem Aufruf des Unterprogramms SOW_STRAIGHT.
Bei einer Kurvenfahrt erhält der Mikrocontroller ein HIGH-Signal. Während der Kurvenfahrt wird die Geschwindigkeit des Särads gedrosselt. Das erfolgt über den Aufruf des Unterprogramms SOW_CURVE.
Bei Stopp (Start/Stopp-Schalter LOW) wird der Schieber geschlossen (LOW-LOW) und das Särad angehalten. Das Anhalten erfolgt über die Ausgabe von vier LOW-Signalen an den entsprechenden Ausgangsbits.
Der geschlossene Schieber wird durch einen Endlagenschalter zurückgemeldet.
Nachdem der Motor des Särads gestoppt wurde und die Schieberendlage erreicht wurde, ist es möglich die Bodenklappe zu öffnen, um das Saatgut komplett abzulassen. Der Bediener schaltet „Saatgut ablassen“ ein (HIGH). Daraufhin wird die Bodenklappe mit einem HIGH-Signal für 30 s geöffnet. Das Unterprogramm WAIT_30s sorgt für eine Pause von 30 s.
Material 2
Saatgutbehälter und Dosierorgane
https://tu-dresden.de/ing/maschinenwesen/int/ast/ressourcen/dateien/publikationen/Vorlesungsskripte/drillmaschinen.pdf?lang=de (abgerufen am 26.01.2021).
Material 7
Portbelegung
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· ↓ · ↓ · ↓ · ↓ · ↓ · ↓ · ↓
· Schieber
Bit 1 · Schieber
Bit 0 · Bodenklappe · Motorbit 3 · Motorbit 2 · Motorbit 1 · Motorbit 0
Port 2 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· · ↑ · ↑ · ↑ · ↑ · ↑ · ↑
· · Störung · Start/Stopp · Saatguttyp · Kurvenfahrt · Saatgut
ablassen · Endlage
Schieber
Material 8
Struktogramm des Unterprogramms SOW_CURVE
3.2 Entwickeln Sie ein Struktogramm nach Nassi-Shneiderman, das die beschriebene Funktionalität der Mikrocontroller-Steuerung der Sämaschine abbildet.
Hinweis: Die Unterprogramme SOW_STRAIGHT, SOW_CURVE und WAIT_30s sind als gegeben vorauszusetzen.
Aufgabe Vorschlag A - 3 - Assemblerprogrammierung und Mik… · Assemblerprogrammierung und Mikrocontrolleraufbau
Die Steuerungs- und Überwachungsorgane (Material 2) arbeiten über einen Mikrocontroller. Dieser verarbeitet ein Start/Stopp-Signal und das Störsignal aus Aufgabe 2. Je nachdem, welche Sorte Saatgut auszubringen ist, ist die Dosierung einzustellen. Grobes Saatgut benötigt eine weitere Öffnung des Schiebers als feines Saatgut. Zudem ist die Geschwindigkeit des Särads einstellbar, um in Kurven nicht zu viel Saatgut auszubringen. Ergänzend ist es erforderlich, das restliche Saatgut komplett ablassen zu können. Dafür kann die Bodenklappe des Saatgutbehälters geöffnet werden. Die Steuerung wird über die Ein- und Ausgänge des Mikrocontrollers vorgenommen (Material 7).
Zu Beginn der Traktorfahrt startet das Mikrocontrollerprogramm automatisch über die Spannungsversorgung. Der Funktionsablauf wird im Folgenden beschrieben:
Solange keine Störung (Störung bei Eingangssignal LOW) vorliegt wird der Funktionsablauf fortgesetzt.
Zuerst wird der Saatguttyp abgefragt (Grobes Saatgut entspricht HIGH, feines Saatgut entspricht LOW).
Erst wenn der Bediener mit dem Start/Stopp-Schalter das Säen startet (Start bei HIGH), wird der Schieber geöffnet. Der Schieber wird über zwei Bits gesteuert. Die Bitkombination LOW-LOW sorgt für ein komplettes Schließen des Schiebers.
Die Bitkombination LOW-HIGH sorgt für die Öffnung für feines Saatgut.
Die Bitkombination HIGH-LOW sorgt für die Öffnung für grobes Saatgut.
Die Bitkombination HIGH-HIGH sorgt für das vollständige Öffnen des Schiebers.
Das Särad wird in Bewegung gesetzt. Das erfolgt, solange das Signal für die Kurvenfahrt LOW ist, mit dem Aufruf des Unterprogramms SOW_STRAIGHT.
Bei einer Kurvenfahrt erhält der Mikrocontroller ein HIGH-Signal. Während der Kurvenfahrt wird die Geschwindigkeit des Särads gedrosselt. Das erfolgt über den Aufruf des Unterprogramms SOW_CURVE.
Bei Stopp (Start/Stopp-Schalter LOW) wird der Schieber geschlossen (LOW-LOW) und das Särad angehalten. Das Anhalten erfolgt über die Ausgabe von vier LOW-Signalen an den entsprechenden Ausgangsbits.
Der geschlossene Schieber wird durch einen Endlagenschalter zurückgemeldet.
Nachdem der Motor des Särads gestoppt wurde und die Schieberendlage erreicht wurde, ist es möglich die Bodenklappe zu öffnen, um das Saatgut komplett abzulassen. Der Bediener schaltet „Saatgut ablassen“ ein (HIGH). Daraufhin wird die Bodenklappe mit einem HIGH-Signal für 30 s geöffnet. Das Unterprogramm WAIT_30s sorgt für eine Pause von 30 s.
Material 2
Saatgutbehälter und Dosierorgane
https://tu-dresden.de/ing/maschinenwesen/int/ast/ressourcen/dateien/publikationen/Vorlesungsskripte/drillmaschinen.pdf?lang=de (abgerufen am 26.01.2021).
Material 7
Portbelegung
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· ↓ · ↓ · ↓ · ↓ · ↓ · ↓ · ↓
· Schieber
Bit 1 · Schieber
Bit 0 · Bodenklappe · Motorbit 3 · Motorbit 2 · Motorbit 1 · Motorbit 0
Port 2 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· · ↑ · ↑ · ↑ · ↑ · ↑ · ↑
· · Störung · Start/Stopp · Saatguttyp · Kurvenfahrt · Saatgut
ablassen · Endlage
Schieber
Material 8
Struktogramm des Unterprogramms SOW_CURVE
3.1
Implementieren Sie die vollständige Portinitialisierung.
3.3
Erläutern Sie den Nutzen, eine Störung mit einem LOW-Signal zu melden.
3.4
Das Unterprogramm SOW_CURVE steuert den Motor des Särads über eine Vier-Bit-Kombination an und ist durch das Struktogramm in Material 8 beschrieben. Implementieren Sie das Unterprogramm SOW_CURVE.
Hinweis: Das Unterprogramm WAIT_10ms ist als gegeben vorauszusetzen.
Aufgabe Vorschlag A - 3 - Sensoren und Aktoren · Sensoren und Aktoren
Die Steuerungs- und Überwachungsorgane (Material 2) arbeiten über einen Mikrocontroller. Dieser verarbeitet ein Start/Stopp-Signal und das Störsignal aus Aufgabe 2. Je nachdem, welche Sorte Saatgut auszubringen ist, ist die Dosierung einzustellen. Grobes Saatgut benötigt eine weitere Öffnung des Schiebers als feines Saatgut. Zudem ist die Geschwindigkeit des Särads einstellbar, um in Kurven nicht zu viel Saatgut auszubringen. Ergänzend ist es erforderlich, das restliche Saatgut komplett ablassen zu können. Dafür kann die Bodenklappe des Saatgutbehälters geöffnet werden. Die Steuerung wird über die Ein- und Ausgänge des Mikrocontrollers vorgenommen (Material 7).
Zu Beginn der Traktorfahrt startet das Mikrocontrollerprogramm automatisch über die Spannungsversorgung. Der Funktionsablauf wird im Folgenden beschrieben:
Solange keine Störung (Störung bei Eingangssignal LOW) vorliegt wird der Funktionsablauf fortgesetzt.
Zuerst wird der Saatguttyp abgefragt (Grobes Saatgut entspricht HIGH, feines Saatgut entspricht LOW).
Erst wenn der Bediener mit dem Start/Stopp-Schalter das Säen startet (Start bei HIGH), wird der Schieber geöffnet. Der Schieber wird über zwei Bits gesteuert. Die Bitkombination LOW-LOW sorgt für ein komplettes Schließen des Schiebers.
Die Bitkombination LOW-HIGH sorgt für die Öffnung für feines Saatgut.
Die Bitkombination HIGH-LOW sorgt für die Öffnung für grobes Saatgut.
Die Bitkombination HIGH-HIGH sorgt für das vollständige Öffnen des Schiebers.
Das Särad wird in Bewegung gesetzt. Das erfolgt, solange das Signal für die Kurvenfahrt LOW ist, mit dem Aufruf des Unterprogramms SOW_STRAIGHT.
Bei einer Kurvenfahrt erhält der Mikrocontroller ein HIGH-Signal. Während der Kurvenfahrt wird die Geschwindigkeit des Särads gedrosselt. Das erfolgt über den Aufruf des Unterprogramms SOW_CURVE.
Bei Stopp (Start/Stopp-Schalter LOW) wird der Schieber geschlossen (LOW-LOW) und das Särad angehalten. Das Anhalten erfolgt über die Ausgabe von vier LOW-Signalen an den entsprechenden Ausgangsbits.
Der geschlossene Schieber wird durch einen Endlagenschalter zurückgemeldet.
Nachdem der Motor des Särads gestoppt wurde und die Schieberendlage erreicht wurde, ist es möglich die Bodenklappe zu öffnen, um das Saatgut komplett abzulassen. Der Bediener schaltet „Saatgut ablassen“ ein (HIGH). Daraufhin wird die Bodenklappe mit einem HIGH-Signal für 30 s geöffnet. Das Unterprogramm WAIT_30s sorgt für eine Pause von 30 s.
Material 2
Saatgutbehälter und Dosierorgane
https://tu-dresden.de/ing/maschinenwesen/int/ast/ressourcen/dateien/publikationen/Vorlesungsskripte/drillmaschinen.pdf?lang=de (abgerufen am 26.01.2021).
Material 7
Portbelegung
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· ↓ · ↓ · ↓ · ↓ · ↓ · ↓ · ↓
· Schieber
Bit 1 · Schieber
Bit 0 · Bodenklappe · Motorbit 3 · Motorbit 2 · Motorbit 1 · Motorbit 0
Port 2 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· · ↑ · ↑ · ↑ · ↑ · ↑ · ↑
· · Störung · Start/Stopp · Saatguttyp · Kurvenfahrt · Saatgut
ablassen · Endlage
Schieber
Material 8
Struktogramm des Unterprogramms SOW_CURVE
3.5
Das Störsignal aus Aufgabe 2 wird u. a. mit einem Niveausensor ermittelt. Erläutern Sie einen Sensortyp, mit dem die Erfassung des Füllstands des Saatguts im Saatgutbehälter umgesetzt werden kann.
Aufgabe Vorschlag B - 1 - Use-Case-Diagramme · Use-Case-Diagramme
Rasenmähroboter
Roboter, die selbstständig den Rasen mähen können, sogenannte Rasenmähroboter, erfreuen sich in Deutschland immer größerer Beliebtheit. Sie werden nicht ferngesteuert, sondern mähen autonom die vorgegebene Fläche in geraden Bahnen. Die meisten Systeme nutzen zum Abgrenzen der zu mähenden Fläche ein Begrenzungskabel, durch das elektrische Signale geleitet werden, die der Rasenmähroboter beim Überfahren sensorisch erfassen kann (Material 1). Erkennt er die Begrenzung, dreht sich der Rasenmähroboter in einem zufälligen Winkel vom Kabel weg und fährt erneut in einer geraden Bahn weiter, bis er wieder an eine Begrenzung stößt. Nach diesem sogenannten Chaosprinzip erreicht und mäht der Rasenmähroboter, über eine gewisse Zeit betrachtet, alle Bereiche der Rasenfläche. Der Rasenmähroboter ist akkubetrieben und lädt sich selbstständig an einer in der Rasenfläche befindlichen Ladestation wieder auf. Die abgeschnittenen Grashalme werden nicht aufgefangen, sondern fallen einfach zu Boden.
1 Der Hersteller eines Rasenmähroboters plant ein Simulationsprogramm zu entwerfen, um den Fahralgorithmus des Rasenmähroboters zu testen und zu verbessern. Es haben zwei Personengruppen Zugriff auf dieses Simulationsprogramm: Die Entwickler oder Entwicklerinnen (im Folgenden Entwickler genannt) und die Simulatoren oder die Simulatorinnen (im Folgenden Simulatoren genannt). Die Entwickler erstellen neue Algorithmen oder optimieren bereits vorhandene Algorithmen. Die Simulatoren können Simulationen entwerfen, durchführen und löschen. Um eine Simulation durchzuführen muss sie zunächst entworfen werden, sofern sie noch nicht vorhanden ist. Zum Entwerfen einer Simulation ist es zwingend nötig, vorher einen Rasenmähroboter und eine Rasenfläche anzulegen. Außerdem können die Simulatoren vor dem Durchführen einer Simulation einen Algorithmus importieren.
Die zentrale Klasse Simulation ist vorgegeben (Material 2). Eine Simulation kann mehrere Algorithmen verwalten, während der einzelne Algorithmus in mehreren Simulationen verwendet werden kann. Die abstrakte Klasse Algorithmus beinhaltet die Informationen über den Namen des Algorithmus und den Namen des Erstellers sowie einen Wahrheitswert, ob sich der Algorithmus derzeit im Einsatz befindet. Des Weiteren ist ein statisches Attribut idAlgo vom Datentyp int enthalten, welches als Objektzähler fungiert. Zusätzlich liegt ein Attribut vom Typ String mit dem Bezeichner algorithmus vor, in dem die Fahrbefehle des Algorithmus verkettet als String gespeichert werden. Die Klasse Algorithmus beinhaltet Bewegungsmethoden, also je eine void-Methode für die Vorwärts- und Rückwärtsbewegung und je eine Methode für das Links- bzw. Rechtsdrehen. Die Methoden für die Vorwärts- und Rückwärtsbewegung erhalten als Parameter einen int-Parameter zeitS für die Angabe der Fahrzeit in Sekunden. Die Drehmethoden bekommen beim Aufruf einen int-Parameter mit einem Winkel übergeben. Zuletzt zählt noch die Methode pruefeHindernisVorne zu den Fahrbefehlen. Diese überprüft, ob sich vor dem Rasenmähroboter ein Hindernis befindet und gibt einen Wahrheitswert zurück. Eine weitere Methode zufallswinkel gibt nach Aufruf einen int-Wert zwischen 0 und 180 Grad zurück. Die zwei Klassen rekursiverAlgorithmus und iterativerAlgorithmus erben von der Klasse Algorithmus. Für rekursive Algorithmen wird in einem Attribut die Rekursionstiefe gespeichert. Für iterative Algorithmen wird in einem Attribut die Anzahl der Schritte gespeichert.
Material 1: Schaubild Funktion Rasenmähroboter
Material 2: UML-Klassendiagramm
1.1 Entwickeln Sie unter Berücksichtigung der obigen Beschreibung ein aussagekräftiges Use-Case-Diagramm (Anwendungsfalldiagramm). Bestimmen Sie dabei die menschlichen Akteure, die Beziehungen zwischen Akteuren und Anwendungsfällen und eventuell vorhandene include- bzw. extend-Beziehungen. [10 BE]
Aufgabe Vorschlag B - 1 - UML-Klassendiagramme und Objekt… · UML-Klassendiagramme und Objektdiagramme
Rasenmähroboter
Roboter, die selbstständig den Rasen mähen können, sogenannte Rasenmähroboter, erfreuen sich in Deutschland immer größerer Beliebtheit. Sie werden nicht ferngesteuert, sondern mähen autonom die vorgegebene Fläche in geraden Bahnen. Die meisten Systeme nutzen zum Abgrenzen der zu mähenden Fläche ein Begrenzungskabel, durch das elektrische Signale geleitet werden, die der Rasenmähroboter beim Überfahren sensorisch erfassen kann (Material 1). Erkennt er die Begrenzung, dreht sich der Rasenmähroboter in einem zufälligen Winkel vom Kabel weg und fährt erneut in einer geraden Bahn weiter, bis er wieder an eine Begrenzung stößt. Nach diesem sogenannten Chaosprinzip erreicht und mäht der Rasenmähroboter, über eine gewisse Zeit betrachtet, alle Bereiche der Rasenfläche. Der Rasenmähroboter ist akkubetrieben und lädt sich selbstständig an einer in der Rasenfläche befindlichen Ladestation wieder auf. Die abgeschnittenen Grashalme werden nicht aufgefangen, sondern fallen einfach zu Boden.
1 Der Hersteller eines Rasenmähroboters plant ein Simulationsprogramm zu entwerfen, um den Fahralgorithmus des Rasenmähroboters zu testen und zu verbessern. Es haben zwei Personengruppen Zugriff auf dieses Simulationsprogramm: Die Entwickler oder Entwicklerinnen (im Folgenden Entwickler genannt) und die Simulatoren oder die Simulatorinnen (im Folgenden Simulatoren genannt). Die Entwickler erstellen neue Algorithmen oder optimieren bereits vorhandene Algorithmen. Die Simulatoren können Simulationen entwerfen, durchführen und löschen. Um eine Simulation durchzuführen muss sie zunächst entworfen werden, sofern sie noch nicht vorhanden ist. Zum Entwerfen einer Simulation ist es zwingend nötig, vorher einen Rasenmähroboter und eine Rasenfläche anzulegen. Außerdem können die Simulatoren vor dem Durchführen einer Simulation einen Algorithmus importieren.
Die zentrale Klasse Simulation ist vorgegeben (Material 2). Eine Simulation kann mehrere Algorithmen verwalten, während der einzelne Algorithmus in mehreren Simulationen verwendet werden kann. Die abstrakte Klasse Algorithmus beinhaltet die Informationen über den Namen des Algorithmus und den Namen des Erstellers sowie einen Wahrheitswert, ob sich der Algorithmus derzeit im Einsatz befindet. Des Weiteren ist ein statisches Attribut idAlgo vom Datentyp int enthalten, welches als Objektzähler fungiert. Zusätzlich liegt ein Attribut vom Typ String mit dem Bezeichner algorithmus vor, in dem die Fahrbefehle des Algorithmus verkettet als String gespeichert werden. Die Klasse Algorithmus beinhaltet Bewegungsmethoden, also je eine void-Methode für die Vorwärts- und Rückwärtsbewegung und je eine Methode für das Links- bzw. Rechtsdrehen. Die Methoden für die Vorwärts- und Rückwärtsbewegung erhalten als Parameter einen int-Parameter zeitS für die Angabe der Fahrzeit in Sekunden. Die Drehmethoden bekommen beim Aufruf einen int-Parameter mit einem Winkel übergeben. Zuletzt zählt noch die Methode pruefeHindernisVorne zu den Fahrbefehlen. Diese überprüft, ob sich vor dem Rasenmähroboter ein Hindernis befindet und gibt einen Wahrheitswert zurück. Eine weitere Methode zufallswinkel gibt nach Aufruf einen int-Wert zwischen 0 und 180 Grad zurück. Die zwei Klassen rekursiverAlgorithmus und iterativerAlgorithmus erben von der Klasse Algorithmus. Für rekursive Algorithmen wird in einem Attribut die Rekursionstiefe gespeichert. Für iterative Algorithmen wird in einem Attribut die Anzahl der Schritte gespeichert.
Material 1: Schaubild Funktion Rasenmähroboter
Material 2: UML-Klassendiagramm
1.2 Ergänzen Sie das UML-Klassendiagramm in Material 2 entsprechend der in Aufgabe 1 stehenden Beschreibung. Modellieren Sie dazu geeignete Attribute, Datentypen, Multiplizitäten, Methoden und Navigierbarkeiten im Design-Modell. [10 BE]
1.3 Im gegenwärtigen Zustand wurde im System noch kein Algorithmus erstellt. Der Rasenmähroboter mit dem Namen „EasyCutter42“, der Typennummer „1337“, mit vollem Akku, wobei die Integer-Werte 0-100 als Prozentwerte zu betrachten sind, und einer Messeranzahl von 3 wurde jedoch bereits angelegt. Zusätzlich existieren folgende zwei Rasenflächen:
– Rasenfläche1: Länge 10 m, Breite 55 m, eingefasst
– Rasenfläche2: Länge 4 m, Breite 9 m, offen
Die Simulation trägt den Namen „EpsilonP4“ und wurde von Edwin B. Budding am 05.02.2021 erstellt.
Überführen Sie den oben beschriebenen Sachverhalt in ein Objektdiagramm. [7 BE]
Aufgabe Vorschlag B - 1 - Klassen und Methoden implementi… · Klassen und Methoden implementieren
Rasenmähroboter
Roboter, die selbstständig den Rasen mähen können, sogenannte Rasenmähroboter, erfreuen sich in Deutschland immer größerer Beliebtheit. Sie werden nicht ferngesteuert, sondern mähen autonom die vorgegebene Fläche in geraden Bahnen. Die meisten Systeme nutzen zum Abgrenzen der zu mähenden Fläche ein Begrenzungskabel, durch das elektrische Signale geleitet werden, die der Rasenmähroboter beim Überfahren sensorisch erfassen kann (Material 1). Erkennt er die Begrenzung, dreht sich der Rasenmähroboter in einem zufälligen Winkel vom Kabel weg und fährt erneut in einer geraden Bahn weiter, bis er wieder an eine Begrenzung stößt. Nach diesem sogenannten Chaosprinzip erreicht und mäht der Rasenmähroboter, über eine gewisse Zeit betrachtet, alle Bereiche der Rasenfläche. Der Rasenmähroboter ist akkubetrieben und lädt sich selbstständig an einer in der Rasenfläche befindlichen Ladestation wieder auf. Die abgeschnittenen Grashalme werden nicht aufgefangen, sondern fallen einfach zu Boden.
1 Der Hersteller eines Rasenmähroboters plant ein Simulationsprogramm zu entwerfen, um den Fahralgorithmus des Rasenmähroboters zu testen und zu verbessern. Es haben zwei Personengruppen Zugriff auf dieses Simulationsprogramm: Die Entwickler oder Entwicklerinnen (im Folgenden Entwickler genannt) und die Simulatoren oder die Simulatorinnen (im Folgenden Simulatoren genannt). Die Entwickler erstellen neue Algorithmen oder optimieren bereits vorhandene Algorithmen. Die Simulatoren können Simulationen entwerfen, durchführen und löschen. Um eine Simulation durchzuführen muss sie zunächst entworfen werden, sofern sie noch nicht vorhanden ist. Zum Entwerfen einer Simulation ist es zwingend nötig, vorher einen Rasenmähroboter und eine Rasenfläche anzulegen. Außerdem können die Simulatoren vor dem Durchführen einer Simulation einen Algorithmus importieren.
Die zentrale Klasse Simulation ist vorgegeben (Material 2). Eine Simulation kann mehrere Algorithmen verwalten, während der einzelne Algorithmus in mehreren Simulationen verwendet werden kann. Die abstrakte Klasse Algorithmus beinhaltet die Informationen über den Namen des Algorithmus und den Namen des Erstellers sowie einen Wahrheitswert, ob sich der Algorithmus derzeit im Einsatz befindet. Des Weiteren ist ein statisches Attribut idAlgo vom Datentyp int enthalten, welches als Objektzähler fungiert. Zusätzlich liegt ein Attribut vom Typ String mit dem Bezeichner algorithmus vor, in dem die Fahrbefehle des Algorithmus verkettet als String gespeichert werden. Die Klasse Algorithmus beinhaltet Bewegungsmethoden, also je eine void-Methode für die Vorwärts- und Rückwärtsbewegung und je eine Methode für das Links- bzw. Rechtsdrehen. Die Methoden für die Vorwärts- und Rückwärtsbewegung erhalten als Parameter einen int-Parameter zeitS für die Angabe der Fahrzeit in Sekunden. Die Drehmethoden bekommen beim Aufruf einen int-Parameter mit einem Winkel übergeben. Zuletzt zählt noch die Methode pruefeHindernisVorne zu den Fahrbefehlen. Diese überprüft, ob sich vor dem Rasenmähroboter ein Hindernis befindet und gibt einen Wahrheitswert zurück. Eine weitere Methode zufallswinkel gibt nach Aufruf einen int-Wert zwischen 0 und 180 Grad zurück. Die zwei Klassen rekursiverAlgorithmus und iterativerAlgorithmus erben von der Klasse Algorithmus. Für rekursive Algorithmen wird in einem Attribut die Rekursionstiefe gespeichert. Für iterative Algorithmen wird in einem Attribut die Anzahl der Schritte gespeichert.
Material 1: Schaubild Funktion Rasenmähroboter
Material 2: UML-Klassendiagramm
1.4 Implementieren Sie die Klassen Simulation, Rasenmähroboter und Rasenfläche gemäß dem UML-Klassendiagramm in Material 2 so, dass zum Anlegen von Rasenmährobotern und Rasenflächen die Methoden rasenmähroboterAnlegen(...) und rasenflächeAnlegen(...) verwendet werden und mindestens je eine Instanz der Klassen Rasenmähroboter und Rasenfläche erzeugt wird. [13 BE]
Hinweise: In der Klasse Simulation sind die Attribute, der Konstruktor und die von Ihnen benötigten Methoden zu implementieren. Die beiden Instanzen sind selbst zu erstellen. Get- und set-Methoden sind generell nicht zu erstellen.
Aufgabe Vorschlag B - 2 · Flipflops und Schieberegister
Aufgabe 2
Auf der Hauptplatine des Rasenmähroboters ist es an einer Stelle nötig, seriell eintreffende Binärdaten in parallele Binärdaten umzuwandeln. Zur Konvertierung der Daten (seriell zu parallel) wird als Grundbaustein das in Material 3 dargestellte Bauteil „ MC74HC112A “ benötigt.
Material 3: Datenblatt Flip-Flop MC74HC112A
2.1
Analysieren Sie das Bauteil und beschreiben Sie dessen Funktion. [6 BE]
2.2
Dokumentieren Sie die Umwandlung des in Material 3 gezeigten Flipflops hin zu einem D-Flipflop schriftlich und als Schaltung. [5 BE]
2.3
Entwerfen Sie in Material 4 unter Verwendung der dort zu sehenden Bauteile ein 4-Bit-Schieberegister mit seriellem Eingang und parallelem Ausgang.
Hinweis: Die Pins für V CC und GND müssen nicht belegt werden. [7 BE]
Material 4: Schaltung Schieberegister
2.4
Der Datenstrom kann auch weiterhin seriell abgegriffen werden. Geben Sie den Zeitpunkt und den Ausgang an, an dem der serielle Abgriff am Schieberegister möglich ist. [2 BE]
2.5
Die Wahrheitstabelle in Material 5 zeigt die benötigte Logik zum Auslesen der parallelen Binärdaten. Vereinfachen Sie die Ausgänge , und durch die Verwendung von KV-Diagrammen. [6 BE]
Material 5: Wahrheitstabelle für paralleles Auslesen
Index · · · · · ·
0 · 0 · 0 · 0 · 0 · 0 · 1
1 · 0 · 0 · 1 · 0 · 1 · 0
2 · 0 · 1 · 0 · 0 · 1 · 1
3 · 0 · 1 · 1 · 1 · 0 · 0
4 · 1 · 0 · 0 · 0 · 0 · 0
5 · 1 · 0 · 1 · X · X · X
6 · 1 · 1 · 0 · X · X · X
7 · 1 · 1 · 1 · X · X · X
Aufgabe Vorschlag B - 3 - Struktogramme für Mikrocontroll… · Struktogramme für Mikrocontroller-Steuerungen
Ein Assembler auf einem Mikrocontroller im Rasenmähroboter steuert das Mähwerk, an dem an einer drehenden Scheibe drei kleine Klingen angebracht sind, die die Grashalme schneiden. Für die Rotationsbewegung wird ein Gleichstrommotor verwendet. Solange der Mikrocontroller auf Pin 0 ein HIGH-Signal erhält, ist das Mähwerk eingeschaltet. Im normalen Mähbetrieb wird am Motor der Rechtslauf aktiviert und der Rasenmähroboter fährt vorwärts. Zum Zwecke der Reinigung des Rasenmähroboters von Schnittgut im Mähwerkbereich steht ein Reinigungsmodus zur Verfügung. Um den Reinigungsmodus zu aktivieren, erhält der Assembler auf Pin 6 über einen internen Zähler, der die Betriebsstunden zählt, ein kurzes HIGH-Signal. Ist dies der Fall und das Mähwerk ist noch eingeschaltet, wird der Rechtslauf zunächst ausgeschaltet und der Mikrocontroller wartet 10 Sekunden, bis das Mähwerk zum Stillstand gekommen ist. Danach wird am Motor der Linkslauf aktiviert, um die Verschmutzungen von den Messerklingen zu entfernen. Endet der Reinigungsmodus nach 15 Sekunden, wird der Linkslauf abgeschaltet und der Mikrocontroller wartet 10 Sekunden. Sollte Pin 0 kein HIGH-Signal erhalten, werden sowohl Links- als auch Rechtslauf deaktiviert und das Mähwerk ist ausgeschaltet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· ↑ · · · · ↓ · ↓ · ↑
· Reinigungsmodus · · · · Rechtslauf · Linkslauf · Mähwerk ein
Material 1 – Schaubild Funktion Rasenmähroboter
3.2 Stellen Sie die beschriebene Mikrocontroller-Steuerung für die Mähfunktion inklusive Reinigungsmodus des Rasenmähroboters in einem Struktogramm dar.
Hinweis: Sämtliche erforderliche Verzögerungsschleifen können als gegeben angenommen und als Unterprogramme (z. B. warten20ms etc.) verwendet werden.
Aufgabe Vorschlag B - 3 - Assemblerprogrammierung und Mik… · Assemblerprogrammierung und Mikrocontrolleraufbau
Ein Assembler auf einem Mikrocontroller im Rasenmähroboter steuert das Mähwerk, an dem an einer drehenden Scheibe drei kleine Klingen angebracht sind, die die Grashalme schneiden. Für die Rotationsbewegung wird ein Gleichstrommotor verwendet. Solange der Mikrocontroller auf Pin 0 ein HIGH-Signal erhält, ist das Mähwerk eingeschaltet. Im normalen Mähbetrieb wird am Motor der Rechtslauf aktiviert und der Rasenmähroboter fährt vorwärts. Zum Zwecke der Reinigung des Rasenmähroboters von Schnittgut im Mähwerkbereich steht ein Reinigungsmodus zur Verfügung. Um den Reinigungsmodus zu aktivieren, erhält der Assembler auf Pin 6 über einen internen Zähler, der die Betriebsstunden zählt, ein kurzes HIGH-Signal. Ist dies der Fall und das Mähwerk ist noch eingeschaltet, wird der Rechtslauf zunächst ausgeschaltet und der Mikrocontroller wartet 10 Sekunden, bis das Mähwerk zum Stillstand gekommen ist. Danach wird am Motor der Linkslauf aktiviert, um die Verschmutzungen von den Messerklingen zu entfernen. Endet der Reinigungsmodus nach 15 Sekunden, wird der Linkslauf abgeschaltet und der Mikrocontroller wartet 10 Sekunden. Sollte Pin 0 kein HIGH-Signal erhalten, werden sowohl Links- als auch Rechtslauf deaktiviert und das Mähwerk ist ausgeschaltet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· ↑ · · · · ↓ · ↓ · ↑
· Reinigungsmodus · · · · Rechtslauf · Linkslauf · Mähwerk ein
Material 1 – Schaubild Funktion Rasenmähroboter
3.1
Erläutern Sie die Portbelegung für Ihren im Unterricht verwendeten Mikrocontroller und zeichnen Sie ein entsprechendes Technologieschema. [4 BE]
3.3
Implementieren Sie Ihr Struktogramm aus Aufgabenteil 3.2 bzw. die beschriebene Mikrocontroller-Steuerung aus Aufgabe 3 in der von Ihnen im Unterricht verwendeten Assemblersprache. [10 BE]
Hinweis: Die als Unterprogramme zur Verfügung gestellten Verzögerungsschleifen müssen nicht implementiert werden.
Aufgabe Vorschlag B - 3 - Sensoren und Aktoren · Sensoren und Aktoren
Ein Assembler auf einem Mikrocontroller im Rasenmähroboter steuert das Mähwerk, an dem an einer drehenden Scheibe drei kleine Klingen angebracht sind, die die Grashalme schneiden. Für die Rotationsbewegung wird ein Gleichstrommotor verwendet. Solange der Mikrocontroller auf Pin 0 ein HIGH-Signal erhält, ist das Mähwerk eingeschaltet. Im normalen Mähbetrieb wird am Motor der Rechtslauf aktiviert und der Rasenmähroboter fährt vorwärts. Zum Zwecke der Reinigung des Rasenmähroboters von Schnittgut im Mähwerkbereich steht ein Reinigungsmodus zur Verfügung. Um den Reinigungsmodus zu aktivieren, erhält der Assembler auf Pin 6 über einen internen Zähler, der die Betriebsstunden zählt, ein kurzes HIGH-Signal. Ist dies der Fall und das Mähwerk ist noch eingeschaltet, wird der Rechtslauf zunächst ausgeschaltet und der Mikrocontroller wartet 10 Sekunden, bis das Mähwerk zum Stillstand gekommen ist. Danach wird am Motor der Linkslauf aktiviert, um die Verschmutzungen von den Messerklingen zu entfernen. Endet der Reinigungsmodus nach 15 Sekunden, wird der Linkslauf abgeschaltet und der Mikrocontroller wartet 10 Sekunden. Sollte Pin 0 kein HIGH-Signal erhalten, werden sowohl Links- als auch Rechtslauf deaktiviert und das Mähwerk ist ausgeschaltet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
· ↑ · · · · ↓ · ↓ · ↑
· Reinigungsmodus · · · · Rechtslauf · Linkslauf · Mähwerk ein
Material 1 – Schaubild Funktion Rasenmähroboter
Um den Rasenmähroboter zukünftig noch „smarter“ zu machen, soll eine intelligente Ladungssteuerung verbaut werden. Aus diesem Grund ist es notwendig zu wissen, ob sich der Rasenmähroboter aktuell auf der Ladestation befindet (Material 1). Dazu soll die Ladestation mit einem zusätzlichen Sensor ausgestattet werden.
3.4.1
Erläutern Sie das generelle Funktionsprinzip eines kapazitiven Sensors. [4 BE]
3.4.2
Entwickeln Sie mit einer Ihnen aus dem Unterricht bekannten Sensortechnik ein Konzept für die genannte Anforderung an den Sensor und skizzieren Sie dieses Konzept. [6 BE]
Aufgabe Vorschlag C - 1 - Use-Case-Diagramme · Use-Case-Diagramme
Gewächshaus
Ein Gewächshaushersteller möchte eine Serie automatisierter Gewächshäuser herausbringen. Hierzu benötigt er eine Software, die die Sensoren im Gewächshaus überwacht und abhängig von den erfassten Werten und den von den Benutzerinnen bzw. Benutzern (im Folgenden Benutzer genannt) eingestellten Schwellwerten verschiedene Prozesse im Gewächshaus steuert.
Material 1: UML-Klassendiagramm
Material 2: ServerSocket und Socket
Material 3: UML-Sequenzdiagramm für Client-Server-Kommunikation
1.1 Zusätzlich zu den in Material 1 bereits gegebenen Anwendungsfällen liegt folgende Anwendungsbeschreibung vor:
Die Gärtnerin bzw. der Gärtner (im Folgenden Gärtner genannt) kann das Bewässerungssystem (im Folgenden Bewässerung genannt) konfigurieren. Dazu wählt er die Wassermenge und einen Modus, nach dem bewässert werden soll, aus. Für die Modi „täglich“ und „wöchentlich“ muss eine Uhrzeit gewählt werden und für den Modus „wöchentlich“ der Wochentag. Für den Modus „Bodenfeuchte“ muss der Schwellwert für die Bodenfeuchte ausgewählt werden, bei dem die Bewässerung starten soll.
Neben dem Gärtner gibt es noch eine Hilfsgärtnerin bzw. einen Hilfsgärtner (im Folgenden Hilfsgärtner genannt). Sowohl Gärtner als auch Hilfsgärtner können die Lichtverhältnisse und die Temperaturen im Gewächshaus abfragen. Der Hilfsgärtner kann allerdings keine Konfiguration vornehmen. Um das System benutzen zu können, müssen sich alle Akteurinnen bzw. Akteure (im Folgenden Akteure genannt) mit Benutzername und Passwort einloggen.
Entwickeln Sie ein aussagekräftiges Anwendungsfalldiagramm (Use-Case-Diagramm) für diese Anwendungsbeschreibung. Bestimmen Sie dabei die menschlichen Akteure, die Beziehungen zwischen Akteuren und Anwendungsfällen und eventuell vorhandene Vererbungs-, include- oder extend-Beziehungen.
Aufgabe Vorschlag C - 1 - UML-Klassendiagramme und Objekt… · UML-Klassendiagramme und Objektdiagramme
Gewächshaus
Ein Gewächshaushersteller möchte eine Serie automatisierter Gewächshäuser herausbringen. Hierzu benötigt er eine Software, die die Sensoren im Gewächshaus überwacht und abhängig von den erfassten Werten und den von den Benutzerinnen bzw. Benutzern (im Folgenden Benutzer genannt) eingestellten Schwellwerten verschiedene Prozesse im Gewächshaus steuert.
Material 1: UML-Klassendiagramm
Material 2: ServerSocket und Socket
Material 3: UML-Sequenzdiagramm für Client-Server-Kommunikation
1.2 Das Gesamtsystem besteht aus zwei Teilen. Der eine Teil, das Gewächshaus, ist bereits im UML-Klassendiagramm in Material 1 vorgegeben. Der zweite Teil, die Verwaltung der Benutzer, gestaltet sich wie folgt.
Die zentrale Klasse ist die Benutzerverwaltung. Es gibt zwei Arten von Benutzern, die Administratorin bzw. den Administrator (im Folgenden Administrator genannt) und den Gärtner. Beide besitzen einen Benutzernamen und ein Passwort. Der Hilfsgärtner wird über ein Attribut typ in der Klasse Benutzer unterschieden.
Ein Administrator kennt die Benutzerverwaltung und besitzt zusätzlich zu den Eigenschaften, die er als Benutzer hat, drei Methoden. Eine Methode legt einen neuen Benutzer mit Benutzername, Passwort und Typ an. Eine Methode dient dazu, das Passwort zu ändern, das zu einem Benutzer gehört, der durch seinen Benutzernamen identifiziert wird. Die dritte Methode ändert den Typ des Benutzers ebenfalls anhand des Benutzernamens.
Der Gärtner kennt die Gewaechshaussteuerung (Material 1) und besitzt Methoden zum Konfigurieren des Gewächshauses und zum Abfragen der Sensoren analog zu denen der Gewaechshaussteuerung, allerdings ohne dass er den Benutzer explizit übergeben muss. Für den Hilfsgärtner aus Aufgabe 1.1 wird keine eigene Klasse angelegt, seine Berechtigungen werden über die Gruppenzuordnung geregelt.
Modellieren Sie zu der obenstehenden Beschreibung ein UML-Klassendiagramm mit geeigneten Datentypen, Multiplizitäten sowie den Getter- und Setter-Methoden, die in der Beschreibung explizit verlangt werden, im Design-Modell.
Hinweise: Konstruktoren sind nicht zu modellieren. Übernehmen Sie nur notwendige Klassen aus Material 1 ohne Methoden.
Aufgabe Vorschlag C - 1 - Klassen und Methoden implementi… · Klassen und Methoden implementieren
Gewächshaus
Ein Gewächshaushersteller möchte eine Serie automatisierter Gewächshäuser herausbringen. Hierzu benötigt er eine Software, die die Sensoren im Gewächshaus überwacht und abhängig von den erfassten Werten und den von den Benutzerinnen bzw. Benutzern (im Folgenden Benutzer genannt) eingestellten Schwellwerten verschiedene Prozesse im Gewächshaus steuert.
Material 1: UML-Klassendiagramm
Material 2: ServerSocket und Socket
Material 3: UML-Sequenzdiagramm für Client-Server-Kommunikation
1.3 Zur Konfiguration der Bewässerung im Modus „Bodenfeuchte“ dient die Methode konfiguriereBewaesserung(Benutzer benutzer, int wassermenge, int schwellwert). Sie fragt zuerst bei der Benutzerverwaltung nach, ob der Benutzer berechtigt ist, die Bewässerung zu konfigurieren. Ist er berechtigt, werden die Wassermenge und der Schwellwert gesetzt. Damit ist die Konfiguration abgeschlossen.
Die Methode holeFeuchtigkeit(Benutzer benutzer) berechnet den Mittelwert der Messwerte aller Feuchtigkeitssensoren und gibt ihn zurück. Auch diese Methode prüft zuerst die Berechtigung des Benutzers. Besitzt der Benutzer keine Berechtigung, gibt sie als Ergebnis den Wert -1 zurück.
Implementieren Sie die Klasse Gewaechshaussteuerung mit allen Attributen, dem Konstruktor und den oben beschriebenen Methoden gemäß dem UML-Klassendiagramm in Material 1 so, dass die beschriebenen Vorgänge durchgeführt werden können.
Hinweise: Die übrigen Methoden sind nicht zu implementieren. Die Berechtigungen sind Aufgabe 1.1 zu entnehmen.
Aufgabe Vorschlag C - 1 - Sequenzdiagramme und Netzwerkko… · Sequenzdiagramme und Netzwerkkommunikation
Gewächshaus
Ein Gewächshaushersteller möchte eine Serie automatisierter Gewächshäuser herausbringen. Hierzu benötigt er eine Software, die die Sensoren im Gewächshaus überwacht und abhängig von den erfassten Werten und den von den Benutzerinnen bzw. Benutzern (im Folgenden Benutzer genannt) eingestellten Schwellwerten verschiedene Prozesse im Gewächshaus steuert.
Material 1: UML-Klassendiagramm
Material 2: ServerSocket und Socket
Material 3: UML-Sequenzdiagramm für Client-Server-Kommunikation
1.4 Die Gewächshaussteuerung ruft in regelmäßigen Abständen auf allen Sensoren die Methode initialisieren() auf. Diese Methode initialisiert den jeweiligen Sensor für eine neue Messung, lässt den Sensor die Messung durchführen und speichert das Messergebnis in dem Attribut wert ab.
Im Folgenden ist der Ablauf anhand eines konkreten Temperatursensors genauer beschrieben:
Ein Objekt der Klasse Temperatursensor baut als Client eine Netzwerkverbindung zu dem physikalischen Temperatursensor ( physTempS) auf, der als Server fungiert.
Der Server mit der Adresse 192.168.5.8 lauscht auf Port 4321 auf Verbindungen.
Sobald eine Verbindung aufgebaut ist, erwartet er vom Client das Schlüsselwort „Temp“.
Hat der Client das Schlüsselwort gesendet, so sendet der Server den Temperaturwert, den er in der Variable temperatur gespeichert hat, an den Client.
Wurde ein falsches Schlüsselwort gesendet, so wird der Wert „-999“ übertragen.
Der Client konvertiert den übertragenen Wert mittels einer eigenen Methode convert(...) in das Zahlenformat, das er benötigt und speichert ihn in der Variablen wert ab.
Anschließend wird die Verbindung wieder abgebaut.
Modellieren und zeichnen Sie gemäß der obenstehenden Beschreibung für einen Temperatursensor unter der Verwendung der Klassen ServerSocket und Socket (Material 2) ein vollständiges UML-Sequenzdiagramm (Client- und Serverseite) in Material 3.
Aufgabe Vorschlag C - 2 - Struktogramme für Mikrocontroll… · Struktogramme für Mikrocontroller-Steuerungen
Für die Bewässerung wird eine Pumpe in Kombination mit einem Durchflusssensor verwendet. Die Pumpe wird von einem Gleichstrommotor angetrieben, der ein- (1) und ausgeschaltet (0) werden kann. Der Durchflusssensor gibt 8 Pulse pro Liter Flüssigkeit, die ihn durchfließt, ab. Die steigende Flanke des Pulses gibt jeweils an, dass ein weiterer achtel Liter den Sensor passiert hat. Die Dauer des High-Pegels hängt dabei von der Durchflussgeschwindigkeit ab und ist somit unbestimmt.
Die Pumpe wird über das Unterprogramm bewaesserung gesteuert. Zu Beginn des Unterprogramms befindet sich die zu pumpende Wassermenge in Litern in einem festgelegten Register. Das Unterprogramm sorgt dafür, dass der Motor der Pumpe so lange läuft, bis die geforderte Menge Wasser den Durchflusssensor passiert hat.
Die Bedeutung der Signale und die Belegung des Mikrocontrollerports entnehmen Sie der folgenden Tabelle:
2.2
Entwickeln und zeichnen Sie ein Struktogramm für das Unterprogramm bewaesserung.
[9 BE]
Aufgabe Vorschlag C - 2 - Assemblerprogrammierung und Mik… · Assemblerprogrammierung und Mikrocontrolleraufbau
Für die Bewässerung wird eine Pumpe in Kombination mit einem Durchflusssensor verwendet. Die Pumpe wird von einem Gleichstrommotor angetrieben, der ein- (1) und ausgeschaltet (0) werden kann. Der Durchflusssensor gibt 8 Pulse pro Liter Flüssigkeit, die ihn durchfließt, ab. Die steigende Flanke des Pulses gibt jeweils an, dass ein weiterer achtel Liter den Sensor passiert hat. Die Dauer des High-Pegels hängt dabei von der Durchflussgeschwindigkeit ab und ist somit unbestimmt.
Die Pumpe wird über das Unterprogramm bewaesserung gesteuert. Zu Beginn des Unterprogramms befindet sich die zu pumpende Wassermenge in Litern in einem festgelegten Register. Das Unterprogramm sorgt dafür, dass der Motor der Pumpe so lange läuft, bis die geforderte Menge Wasser den Durchflusssensor passiert hat.
Die Bedeutung der Signale und die Belegung des Mikrocontrollerports entnehmen Sie der folgenden Tabelle:
Die Bedeutung der Signale und die Belegung des Mikrocontrollerports entnehmen Sie der folgenden Tabelle:
2.1
Wählen Sie das Register bei dem von Ihnen im Unterricht verwendeten Mikrocontroller aus, in dem die zu pumpende Wassermenge gespeichert ist.
(2 BE)
2.3
Überführen und implementieren Sie das Unterprogramm bewaesserung sowie die Initialisierung der verwendeten Ports in den von Ihnen im Unterricht verwendeten Assembler.
(9 BE)
Aufgabe Vorschlag C - 3 · Schaltnetze: KV-Diagramm und NAND-Technik
Die Temperatur soll auch im Gewächshaus mittels 7-Segment-Anzeigen angezeigt werden. Die Messwerte des Temperatursensors (Material 1) werden von einer Auswerteschaltung in einen BCD-Code mit zwei Dezimalstellen übersetzt. Um damit die 7-Segment-Anzeigen anzusteuern, wird ein BCD-zu-7-Segment-Decoder benötigt (Material 4).
Material 4: BCD-zu-7-Segment-Decoder
3.1
Entwickeln Sie die Tabelle für die Umwandlung des BCD-Codes in einen 7-Segment-Code in der Funktionstabelle in Material 5.
[7 BE]
Material 5: Funktionstabelle (Ziffern 0–9 als 0/1, Pseudotetraden 10–15 als X oder 0/1)
BCD-Code
7-Segment-Anzeige
a
b
c
d
e
f
g
3.2
Vereinfachen Sie die Schaltfunktionen für die Segmente a, b und c in den KV-Diagrammen in Material 6.
[12 BE]
3.3
Überführen Sie die Schaltfunktionen für die Segmente a, b und c in NAND-Form und zeichnen Sie diese.
[9 BE]
Du kannst auch nach Themen lernen
Übe ein Thema mit gemischten Aufgaben aus den Prüfungen aller Jahre.
- Use-Case-Diagramme · 6 Aufgaben
- UML-Klassendiagramme und Objektdiagramme · 6 Aufgaben
- Klassen und Methoden implementieren · 6 Aufgaben
- Struktogramme für Mikrocontroller-Steuerungen · 6 Aufgaben
- Assemblerprogrammierung und Mikrocontrolleraufbau · 6 Aufgaben
- Sequenzdiagramme und Netzwerkkommunikation · 4 Aufgaben