Escape Game: Memory-Safe: Das Farbcode-Rätsel: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Delmas.ngoumtsa@stud.hshl.de (Diskussion | Beiträge)
Delmas.ngoumtsa@stud.hshl.de (Diskussion | Beiträge)
Zeile 278: Zeile 278:


====Programm_Code====
====Programm_Code====
Die Hauptblöcke in Abb.13 stellt die MATLAB Function dar. Mithilfe dieser Funktion werden Aktoren und Sensoren über eine bestimmte Spannung miteinander verbunden.
Die Hauptblöcke in Abb.13 stellt die MATLAB-function dar. Mithilfe dieser Funktion werden Aktoren und Sensoren über eine bestimmte Spannung miteinander verbunden.  
Das Programmcode der Schnittstelle dieser MATLAB-function ist wie folgt:


[[Datei:MATLAB Function.png.png|mini|zentriert|'''Abb.13 :''' MATLAB Function]]
[[Datei:MATLAB Function.png.png|mini|zentriert|'''Abb.13 :''' MATLAB Function]]

Version vom 29. Dezember 2025, 21:54 Uhr

Autoren: Delmas Ngoumtsa , Christian Teyou, Raoul Yemtsa
Betreuer: Prof. Krome

Einleitung

Im Rahmen des Fachpraktikums an der Hochschule Hamm-Lippstadt im Studiengang Mechatronik soll jede Gruppe ein mechatronisches Rätsel entwickeln, das innerhalb von ca. fünf Minuten lösbar ist. Die entwickelten Rätsel verbleiben an der HSHL und werden zu einem Escape-Game kombiniert, das von Schülern und Studierenden gespielt werden kann.

Das vorliegende Rätsel trägt den Titel „Memory-Safe: Das Farbcode-Rätsel“. Ziel des Spiels ist es, einen Safe zu öffnen, indem sich der Spieler eine zufällig generierte Farbreihenfolge merkt und diese anschließend in der richtigen Reihenfolge über entsprechende Taster eingibt. Der Safe öffnet sich nur, wenn die eingegebene Farbfolge vollständig bei jeden Levels(Schwierigkeitsstufen) korrekt ist. Im Rahmen dieses Projekts werden fünf LEDs unterschiedlicher Farben (rot, grün, blau, gelb und weiß) eingesetzt, die jeweils einem eigenen Taster mit der selben Farbe zugeordnet sind. Sobald eine oder mehrere LED(s) einer oder mehrere bestimmten Farbe aufleuchtet, dann gibt der Buzzer einen kurzen Ton aus. Der Spieler muss daraufhin den oder die passenden Taster betätigen, um die Sequenz korrekt nachzubilden. Der Safe wird mithilfe eines Servomotors verriegelt und durch einen Infrarotsensor überwacht. Sollte ein Spieler versuchen, die Tür des Safes gewaltsam oder ohne die richtige Farbreihenfolge zu öffnen, reagiert das System sofort, indem der Buzzer alarmiert.

Das gesamte Spiel umfasst 60 Sequenzen deren 20 Sequenzen in 4 Zyklen pro Level und wird wie folgt geteilt:

• Level 1 (Leicht):

- Zyklus 1 (nur eine LED leuchtet) in dieser Reihenfolge :[rot] ,[grün],[blau], [gelb],[weiß];

- Zyklus 2 ( zwei LEDs leuchten) in dieser Reihenfolge :[rot, weiß],[gelb, grün],[blau, weiß],[grün, weiß],[rot, blau];

- Zyklus 3 ( drei LEDs leuchtet) in dieser Reihenfolge :[rot, grün, blau],[grün, blau, gelb],[blau, gelb, weiß],[rot, blau, weiß],[rot, grün, gelb];

- Zyklus 4 ( vier LEDs leuchtet) in dieser Reihenfolge :[rot, gelb, grün, blau],[grün, blau, gelb, weiß],[rot, blau, gelb, weiß],[rot, grün, gelb, weiß],[rot ,grün, blau, weiß]. Werden die 20 Sequenzen richtig in Reihenfolge eingegeben, leuchten zuerst alle fünf LEDs in einer Sekunde, dann gibt der Buzzer gleichzeitig einen Ton aus.

• Level 2 (Mittel): - Zyklus 1 ( eine oder mehrere LED(s) leuchten) in dieser Reihenfolge :[rot, blau, weiß],[gelb],[blau],[rot, blau],[rot, grün, blau, weiß];

- Zyklus 2 ( eine oder mehrere LED(s) leuchten) in dieser Reihenfolge :[rot, grün, gelb, weiß],[rot, gelb, grün, blau],[blau, gelb, weiß],[grün],[grün, weiß];

- Zyklus 3 ( eine oder mehrere LED(s) leuchten) in dieser Reihenfolge :[rot, grün, gelb],[rot, blau, gelb, weiß],[blau, weiß],[rot, weiß],[grün, blau, gelb, weiß];

- Zyklus 4 ( eine oder mehrere LED(s) leuchten) in dieser Reihenfolge :[weiß],[gelb, grün],[grün, blau, gelb],[rot, grün, blau],[rot] Werden die 20 Sequenzen richtig in Reihenfolge eingegeben, leuchten zuerst alle fünf LEDs in einer Sekunde und schalten sie sich aus ,nach halber Sekunde leuchten sie wieder in einer Sekunde , dann gibt der Buzzer gleichzeitig einen Ton aus.

• Level 3 (Schwierig) : Die Sequenzen des Levels 3 sollten vorher nicht bekannt werden ,da die Sequenz der Leuchte einer oder mehrerer LED(s) wird oder werden zufällig generiert.

- Zyklus 1 (nur eine LED leuchtet zufällig): Beispielsweise [weiß] ,[grün],[blau], [gelb],[weiß] oder [rot] ,[rot],[rot], [gelb],[weiß] usw.

- Zyklus 2 ( zwei LEDs leuchten zufällig): Beispielsweise [rot, weiß],[weiß, rot],[blau, weiß],[grün, weiß],[rot, blau] oder [rot, weiß],[gelb, grün],[blau, weiß],[grün, weiß],[rot, blau] usw.

- Zyklus 3 ( drei LEDs leuchtet zufällig): Beispielsweise [rot, grün, blau],[grün, blau, rot],[blau, gelb, weiß],[rot, blau, weiß],[rot, grün, gelb] oder [rot, grün, blau],[grün, blau, gelb],[blau, gelb, weiß],[rot, gelb, weiß],[rot, grün, gelb] usw.

- Zyklus 4 ( vier LEDs leuchtet zufällig): Beispielsweise [rot, gelb, grün, blau],[rot, gelb, grün, blau],[rot, gelb, grün, blau],[rot, grün, gelb, weiß],[rot ,grün, blau, weiß] oder [rot, gelb, grün, blau],[grün, blau, gelb, weiß],[grün, blau, gelb, weiß],[grün, blau, gelb, weiß],[rot ,grün, blau, weiß]usw. Werden die 20 Sequenzen richtig in Reihenfolge eingegeben, blinken alle fünf LEDs in einer Sekunde und der Buzzer gibt gleichzeitig einen Ton aus, um den Erfolg zu signalisieren. Parallel desaktiviert sich die Sicherung der Infrarotsensor und der Servomotor entriegelt den Safe.

• Wird eine falsche Reihenfolge eingegeben, leuchtet die rote LED, gibt der Buzzer einen Ton aus und der Spieler muss einen neuen Versuch starten.


Das Spiel kann in verschiedenen Schwierigkeitsstufen gespielt werden, abhängig von der Geschwindigkeit der fünf Farbreihenfolge. Man kann folgenden Farbreihenfolge Situationen haben:

Der Spieler hat pro Sequenz maximal 2,5 Sekunden Zeit, um die korrekte Kombinationsfarbe(n) zu finden. Nach dieser Zeit ohne den oder die richtigen Taster zu drücken , leuchtet(en) die richtige LED(s) Standardmäßig ,dann gibt der Buzzer gleichzeitig einen Ton aus und das Spiel geht zum Ende: Der Spieler hat verloren und muss einen neuen Versuch starten.

Das Ziel dieses Rätsels ist es, das Kurzzeitgedächtnis, die Reaktionsfähigkeit und die Aufmerksamkeit des Spielers zu trainieren.

• Die unterschiedlichen Schwierigkeitsstufen ermöglichen ein gezieltes Training von Merkfähigkeit, Aufmerksamkeit und Konzentration, da das präzise Beobachten der Farbkombinationen die visuelle Wahrnehmung sowie Mustererkennung und Reaktionsgeschwindigkeit fördert. Im hohen Schwierigkeitsgrad treten mehrere Farben gleichzeitig auf, wodurch die parallele Informationsverarbeitung gefordert und Multitasking-Fähigkeit, Kurzzeitgedächtnis sowie Entscheidungsfähigkeit unter Zeitdruck gestärkt werden. Durch die schrittweise Steigerung der Anforderungen wird die Konzentrationsfähigkeit systematisch aufgebaut und gefestigt. Gleichzeitig vermittelt das Spiel ein praxisnahes Verständnis für Wahrnehmungs-, Reaktions- und Informationsverarbeitungsprozesse in mechatronischen Systemen und verdeutlicht das Zusammenspiel von Sensorik, Aktorik und Benutzerinteraktion.

• Lernziele: Die Studierenden lernen, Sensoren und Aktoren wie LEDs, Taster, Servomotor und Infrarotsensor gezielt einzusetzen. Durch die Programmierung eines Mikrocontrollers wird das Verständnis für logische Steuerungen und Zustandsmaschinen vertieft. Gleichzeitig trainiert das Spiel das Kurzzeitgedächtnis, die Reaktionsgeschwindigkeit und die Konzentrationsfähigkeit der Spieler. Die Signalauswertung und Fehlersignalisierung vermitteln praxisnah den Aufbau sicherer und robuster Systemarchitekturen.


• Bezug zum MTR Studium: Das Projekt „Memory-Safe“ verknüpft praxisnah die drei Kernbereiche der Mechatronik: Mechanik, Elektronik und Informatik. Im mechanischen Teil wird der Safe konstruiert und über einen Servoantrieb verriegelt und entriegelt. Die elektronische Ebene umfasst die Signalverarbeitung durch Taster, LEDs, Sensoren und Aktoren. Im Bereich der Informatik wird die Steuerungs- und Sicherheitslogik mithilfe eines Mikrocontrollers programmiert. Dadurch lernen die Studierenden, mechanische, elektrische und softwaretechnische Komponenten zu einem funktionalen System zu integrieren. Das Projekt fördert somit systemorientiertes Denken und vermittelt zentrale Kompetenzen der mechatronischen Systementwicklung.

• Woraus besteht das Rätsel?

Das Rätsel besteht aus mehreren mechatronischen Komponenten, die gemeinsam das Spielsystem bilden. Die Eingabeeinheit umfasst fünf Farbtaster, über die der Spieler die Farbreihenfolge eingibt. Zur Anzeige dienen fünf LEDs, die die Sequenz und den Systemstatus visualisieren. Ein Servomotor übernimmt die Verriegelung und Entriegelung des Safes, während ein Infrarotsensor die Türbewegung überwacht. Ein Buzzer gibt akustisches Feedback bei Erfolg, Fehler oder unzulässiger Aktion. Die gesamte Steuerung und Signalverarbeitung erfolgen über einen Arduino-Mikrocontroller, der alle Komponenten koordiniert.

Anforderungen

Tabelle 1: Anforderungen
Nr. Inhalt Ersteller Erstellungsdatum Geprüft von Prüfungsdatum
1 Das Farbcode-Rätsel wird gebaut, sodass man es in 5 min lösen kann . Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.10.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
2 Das Rätsel beginnt am Startpunkt mit dem Verschluss des Tresors und die Aktivierung der Sicherheit durch den Infrarotsensor. Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.10.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
3 Dann fängt an mit einer gleichzeitig blinkenden LED und seiner Tonausgabe :das ist die erste Aufgabe ,um der Weg zur Lösung des Rätsel zu finden . Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.10.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
4 Betätigt der Spieler/in auf dem richtigen Farbknopf der vorherigen geblinkten LED, gibt der Buzzer gleichzeitig den selben vorherigen Ton aus. Hingegen betätigt der Spieler/in auf dem falschen Farbknopf der vorherigen geblinkten LED, gibt der Buzzer gleichzeitig einen kurzfristigen (2,5 s) Niederlageton aus und signalisiert somit das Ende des Spiels. Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
5 Die Betätigungen auf den richtigen Farbknöpfe in der Reihenfolge alle Levels wird gleichzeitige mit dem Blinken von allen LEDs und einem Sieg-Ton signalisiert. Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
6 und bezeichnet somit das Ende des Spiels bzw. des Schwierigkeitslevel. Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
7 Danach wir der Tür der Tresor von dem Infrarotesensor entsichert und das Türverriegelungsmechanismus entriegelt Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
8 Man muss das Rätsel konzipiert ,dass das in einer Schulkarton reinpasst Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
9 Das Rätselprinzip und Lösungsprinzip muss sowohl für Kinder als auch Erwachsene geeignet sein Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
10 Die Musterlösung und Tipps müssen von der Herstellergruppe zur Verfügung gestellt werden Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025
11 Die Herstellergruppe muss aufpassen, dass die Lösung des Rätsel sich nicht im Internet befindet sondern in Fachbücher Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 08.11.2025 Delmas Ngoumtsa ; Christian Teyou & Raoul Yemtsa 29.12.2025

Funktionaler Systementwurf

Der in der Abb.1 dargestellten Verlauf zeigt schrittweise wie das Memory-Safe: Das Farbcode-Rätsel systematisch funktioniert.

Zuerst: das ganzes System befindet sich Außerbetrieb.

Zweiten: Klappt der Spieler/in der Tresortür zu, dann wird das System sofort in Betrieb und der Arm der Servomotor rotiert um 90° um die Tresortür zu riegeln .Gleichzeitig nach dem Türverriegelungsmechanismus aktiviert sich das Sicherheitssystem durch den Infrarotsensor.

Drittens: Dann fängt an (Startpunk) mit einer gleichzeitig blinkenden LED und seiner Tonausgabe :das ist die erste Aufgabe ,um der Weg zur Lösung des Rätsel zu finden .

4.:Betätigt der Spieler/in auf dem richtigen Farbknopf der vorherigen geblinkten LED, gibt der Buzzer gleichzeitig den selben vorherigen Ton aus. Hingegen betätigt der Spieler/in auf dem falschen Farbknopf der vorherigen geblinkten LED, gibt der Buzzer gleichzeitig einen kurzfristigen (3s) Niederlageton aus und signalisiert somit das Ende des Spiels.

5.:Die Betätigungen auf den richtigen Farbknöpfe in der Reihenfolge eines Spielzyklus wird gleichzeitige mit dem Blinken von allen LEDs und einem Sieg-Ton signalisiert.

6.:Dieser Signal bezeichnet somit das Ende des Spiels bzw. des Schwierigkeitslevel.

7.: Zum Schluss wird der Tür der Tresor von dem Infrarotesensor entsichert und das Türverriegelungsmechanismus entriegelt .

Abb.1 : Funktionaler Systementwurf einer Farbcode Memory-Safe

Technischer Systementwurf

Die folgende Abb.2 darstellt den Aussicht den Verbindungen zwischen Bauteilen und den MiKrocontroller mit der Hilfe des Breadboards (Steckbrett) als Test-Platine.Aber Für die Form des fertigen Rätsels,wird Lochrasterplatine für eine stabile und dauerhafte Lötverbindungen und zur mechanischen Befestigung der Bauteile wie auf den Abb.9 zu sehen ist.

Abb.2 : Technischer Systementwurf eines Farbcode Memory-Safe mit Hilfe des Programms fritzing

Materialliste

- Das Mikrocontroller-Board Arduino Uno R3 als zentrale Steuereinheit

- Der Servomotor als Tresorverriegelung.

- Der Infrarotsensor als Sicherheit des Systems

- Der Buzzer als Meldungsalarm

- Die 5 LEDs(rot, grün, blau, gelb, weiß) als Leuchtmeldung

- Die 5 Taster(rot, grün, blau, gelb, weiß) als Steuerungsmittel

- Lochrasterplatine für dauerhafte Lötverbindungen und zur mechanischen Befestigung der Bauteile

- Breadboard Jumper / Überbrückungskabel für Verbindungselemente zwischen Komponenten

Tabelle 2: Materialliste
Nr. Stückzahl Beschreibung Abbildung
1 1 Mikrocontroller-Board Arduino Uno R3
Abb.3: Mikrocontroller-Board Arduino Uno R3
2 1 Servomotor MS18 180°
Abb.:4 Servomotor MS18 180°
3 1 INFRAROT Sharp GP2Y0A21YK0F, 10-80cm, Distanzsensor/Abstandsmesser mit Anschlussleitung
Abb.5:Infrarotsensor Sharp GP2Y0A21YK0F
4 1 TC-10475816 Piezo-Signalgeber
Abb. 6: TC-10475816 Piezo-Signalgeber
5 5 Emittierenden 5mm Leuchtdioden mit der Farben:(rot, grün, blau, gelb, weiß)
Abb. 7: 5 Emittierenden 5mm Leuchtdioden
6 5 Taster mit Farbkappen rot, grün, blau, gelb, weiß
Abb. 8: 5 Taster mit Farbkappen rot, grün, blau, gelb, weiß
7 1 PCB Board Lochrasterplatine bzw. Lochrasterplatte Einseitige Kupfer Leiterplatte 18,5x2,5 CM
Abb. 9:PCB Board KupferLochplatine
8 20 Breadboard Jumper und Überbrückungskabel
Abb. 10:Breadboard Jumper und Überbrückungskabel

Komponentenspezifikation

Für eine weitere Durchführung dieses Projekts ist es wichtig die Spezifikation von Hauptkomponenten zu erwähnen.

Die sich in der Tabelle 3 befundeten Komponentenspezifikation:

Tabelle 3: Komponentenspezifikation
Komponenten Spezifikationen
Mikrocontroller Arduino Uno (Rev3) dient zur Steuerung aller elektronischen Komponenten (Taster, LEDs, Servo, Sensor etc.).Spannung: 5 V

Eingangsspannung: 7–12 V (empfohlen) Digitale Pins: 14 (davon 6 PWM) Analoge Eingänge: 6 Taktfrequenz: 16 MHz Schnittstellen: USB, UART, SPI, I²C

Servomotor Tresorverriegelung (Verriegelung der Safe-Tür) mit der Betriebsspannung: 5 V, dem Drehmoment: ca. 2–3 kg·cm, dem Stellwinkel: 0–180°, der Steuerung: PWM
IR-Sensor Entfernung 0–10 cm, 5 V, Türüberwachung (Tresorverriegelung-Status-Erkennung: offen/geschlossen).Versorgung: 5 V, Reichweite: 2–10 cm, Ausgang: Digital (HIGH/LOW)
Buzzer (aktiv) Akustisches Signal (z. B. Warnung oder Alarm).Spannung: 5 V, Stromaufnahme: 30 mA, Frequenz: ~2 kHz und Geräusch-Entwicklung: 85 dB
LED(rot, grün, blau, gelb, weiß) Leuchtmeldung bzw. Anzeigeelemente zur Signalisierung von Zuständen (z. B. Status, Fehler, Freigabe etc.).Typ: 5 mm, Betriebsspannung: ca. 2 V (rot, gelb), 3 V (grün, blau, weiß), Strom: 20 mA
Taster 12 mm Drucktaster, Schließer, 5 V, Bedienereingabe oder Steuerungsmittel
Lochrasterplatine Dient als stabile Trägerplatine für dauerhafte Lötverbindungen und zur mechanischen Befestigung der Bauteile. Material: FR4 Epoxidharz ;Rastermaß: 2,54 mm ;Größe: z. B. 7 × 9 cm oder 10 × 15 cm ;Bohrungsdurchmesser: 1 mm
Breadboard Jumper / Überbrückungskabel Verbindungselemente zwischen Komponenten und Steckpunkten auf der Lochrasterplatine bzw. dem Breadboard oder zum Arduino. Typen: Male–Male, Male–Female, Female–Female ;Längen: 10 – 30 cm ;Leiterquerschnitt: AWG 22–24

Umsetzung (SW/HW)

Umsetzung der Software

Programmierugsplan:

Der folgende Programmierugsplan für den Programmablauf dieses Projekts in Abb.11 wurde von dem Programm PapDisigner erstellt.


Abb.11 :Programmablauf

Simulink Modell:

Das in Abb. 12 dargestellte Simulink-Modell stellt die Blöcke dar, die anhand des in Abb. 11 dargestellten Gesamtablaufs des Programms erstellt wurden.

Abb.12 :Gesamtsystem Simulink Modell

Programm_Code

Die Hauptblöcke in Abb.13 stellt die MATLAB-function dar. Mithilfe dieser Funktion werden Aktoren und Sensoren über eine bestimmte Spannung miteinander verbunden. Das Programmcode der Schnittstelle dieser MATLAB-function ist wie folgt:

Abb.13 : MATLAB Function
 
%****************************************************************************************
%       Hochschule Hamm-Lippstadt - Studiengang Mechatronik - WS25-26                   *
%****************************************************************************************
%  Modul           : Fachpraktikum Mechatronik                                          *                                                                           
%  Datum           : 25. September 2025 - 16. Januar 2026                               *                                                                           
%  Funktion        : Escape Game: Memory-Safe: Das Farbcode-Rätsel                      *
%  Hardware        : Matlab Simulink                                                    *                                               
%  Implementation  : Arduino Micro-controller UNO_R3                                    *                                                                            
%  Device          : LEDs,Schalter,Infrarotsensor,Servo_Motor,Buzzer                    *                                                         
%  Prüfer          : Prof. Dr.-Ing. Krome                                               *                                                                            
%  Authoren        : Delmas Ngoumtsa,Christian Teyou & Raoul Yemtsa                     *
%****************************************************************************************

function [T,Servo_Motor,IR_Buzzer,Buzzer,rote_LED, gruene_LED,blaue_LED,gelbe_LED,weisse_LED,roter_Taster,gruener_Taster,blauer_Taster,gelber_Taster,weisser_Taster]= fcn(Time, U_Buzzer, U_LED,U_roter_Taster,U_gruener_Taster,U_blauer_Taster,U_gelber_Taster,U_weisser_Taster,U_Infra_Rot_Sensor)
 persistent lastTrigger phase_1 phase_2 phase_3 phase_4 phase_5
 if isempty(lastTrigger)
  lastTrigger = 0;   % Startwert: außerhalb des Intervalls
   phase_1 = 0;
    phase_2 = 0;
     phase_3 = 0;
      phase_4 = 0;
       phase_5 = 0;
 end
 
 % --- Konstante Parameter ---
lockTime  = 5;       % Sperrzeit: 10 s und abhängig mit zeile 37
dt = 5;           % Zeitschritt für Simulation (1 ms)und abhängig mit zeile 37
N = round(lockTime / dt); % Anzahl Schritte pro 10 s
rote_LED = 0 ;
gruene_LED= 0;
blaue_LED = 0;
gelbe_LED = 0;
weisse_LED =0;
Buzzer = 0 ;
roter_Taster = U_roter_Taster ;
gruener_Taster = U_gruener_Taster ;
blauer_Taster = U_blauer_Taster;
gelber_Taster = U_gelber_Taster;
weisser_Taster = U_weisser_Taster;
T=Time;

Servo_Motor =  U_LED*90; % Tür Schliessen
while U_Infra_Rot_Sensor ~= 2 % Infrarotsensor aktualisieren

if Time >= 9 && Time <= 10
  rote_LED = U_LED;
  Buzzer= U_Buzzer;
  phase_1 = 1;
end

 switch phase_1

     case 1
 % if U_gruener_Taster == 1 || U_blauer_Taster == 1 || U_gelber_Taster == 1 || U_weisser_Taster == 1 && Time > 20 && Time <= 28 
 %rote_LED = U_LED;
 %Buzzer= U_Buzzer;  % auf dem Bildschirm " bitte der richtige Taster Drücken" zeigen lassen
 %end
   for i1 = 1:N
    t = Time + (i1-1)*dt;
    % Bedingung: Taster gedrückt + 10s seit letztem Trigger vorbei
    % von 10 bis 10 hat ma N=round 1 also jede 10 s kann ein round gespiel und abhängig mit Zeile 11 und 12
    if U_roter_Taster == 1 && Time >= 10 && Time <= 20 && (t - lastTrigger) >= lockTime
        rote_LED = U_LED;
        Buzzer= U_Buzzer;
        lastTrigger = t;
        phase_1 = 2; 
        
       else
    
       if (Time >= 21 && Time <= 21.5)
  rote_LED = U_LED;
  Buzzer= U_Buzzer;
       end
     if (Time >= 23 && Time <= 23.5)
  rote_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 25 && Time <= 25.5)
  rote_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 27 && Time <= 27.5)
 rote_LED = U_LED;
  Buzzer= U_Buzzer;
     end

   end
  end

   
  case 2
       if Time > 20 && Time <= 21
   gruene_LED = U_LED;
  Buzzer= U_Buzzer;
  phase_2 = 1;
       end
 end


  switch phase_2

     case 1
       for i2 = 1:N
    t = Time + (i2-1)*dt;
    % Bedingung: Taster gedrückt + 10s seit letztem Trigger vorbei
    if U_gruener_Taster == 1 && Time >= 22 && Time <= 32 && (t - lastTrigger) >= lockTime
        gruene_LED = U_LED;
        Buzzer= U_Buzzer;
        lastTrigger = t;
        phase_2 = 2;

       else
     
        if (Time >= 33 && Time <= 33.5)
 gruene_LED = U_LED;
  Buzzer= U_Buzzer;
       end
     if (Time >= 35 && Time <= 35.5)
gruene_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 37 && Time <= 37.5)
gruene_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 39 && Time <= 39.5)
 gruene_LED = U_LED;
  Buzzer= U_Buzzer;
     end
    end 
       end
     case 2
       if Time > 32 && Time <= 33
   blaue_LED = U_LED;
  Buzzer= U_Buzzer;
  phase_3 = 1;
       end
 
 switch phase_3
     case 1
        for i3 = 1:N
    t = Time + (i3-1)*dt;
    % Bedingung: Taster gedrückt + 10s seit letztem Trigger vorbei
    if U_blauer_Taster == 1 && Time >= 34 && Time <= 44 && (t - lastTrigger) >= lockTime
        blaue_LED = U_LED;
        Buzzer= U_Buzzer;
        lastTrigger = t;
        phase_3 = 2;

       else
     
        if (Time >= 45 && Time <= 45.5)
 blaue_LED = U_LED;
  Buzzer= U_Buzzer;
       end
     if (Time >= 47 && Time <= 47.5)
blaue_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 49 && Time <= 49.5)
blaue_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 51 && Time <= 51.5)
 blaue_LED = U_LED;
  Buzzer= U_Buzzer;
     end
    end 
        end

     case 2
       if Time > 45 && Time <= 46
   gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
  phase_4 = 1;
       end  
 end
 
 switch phase_4
     case 1
        for i4 = 1:N
    t = Time + (i4-1)*dt;
    % Bedingung: Taster gedrückt + 10s seit letztem Trigger vorbei
    if U_gelber_Taster == 1 && Time >= 46 && Time <= 56 && (t - lastTrigger) >= lockTime
       gelbe_LED = U_LED;
        Buzzer= U_Buzzer;
        lastTrigger = t;
        phase_4 = 2;

       else
     
        if (Time >= 57 && Time <= 57.5)
gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
       end
     if (Time >= 59 && Time <= 59.5)
gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 61 && Time <= 61.5)
gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 63 && Time <= 63.5)
 gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
     end
    end 
        end

     case 2
       if Time > 57 && Time <= 58
   weisse_LED = U_LED;
  Buzzer= U_Buzzer;
  phase_5 = 1;
       end  
 end

 switch phase_5
     case 1
        for i5 = 1:N
    t = Time + (i5-1)*dt;
    % Bedingung: Taster gedrückt + 10s seit letztem Trigger vorbei
    if U_weisser_Taster == 1 && Time >= 59 && Time <= 69 && (t - lastTrigger) >= lockTime
       weisse_LED = U_LED;
        Buzzer= U_Buzzer;
        lastTrigger = t;
        phase_5 = 2;

       else
     
        if (Time >= 70 && Time <= 70.5)
gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
       end
     if (Time >= 72 && Time <= 72.5)
gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 74 && Time <= 74.5)
gelbe_LED = U_LED;
  Buzzer= U_Buzzer;
     end
     if (Time >= 76 && Time <= 76.5)
         gelbe_LED = U_LED;
        Buzzer= U_Buzzer;
     end
    end 
        end

     case 2
       if (Time >= 70 && Time <= 70.5)
           rote_LED = U_LED;
           gruene_LED = U_LED;
           blaue_LED = U_LED;
           gelbe_LED = U_LED;
           weisse_LED = U_LED;
           Buzzer= U_Buzzer;
       end
     if (Time >= 72 && Time <= 72.5)
           rote_LED = U_LED;
           gruene_LED = U_LED;
           blaue_LED = U_LED;
           gelbe_LED = U_LED;
           weisse_LED = U_LED;
           Buzzer= U_Buzzer;
     end
     if (Time >= 74 && Time <= 74.5)
           rote_LED = U_LED;
           gruene_LED = U_LED;
           blaue_LED = U_LED;
           gelbe_LED = U_LED;
           weisse_LED = U_LED;
           Buzzer= U_Buzzer;
     end
     if (Time >= 76 && Time <= 76.5)
           rote_LED = U_LED;
           gruene_LED = U_LED;
           blaue_LED = U_LED;
           gelbe_LED = U_LED;
           weisse_LED = U_LED;
           Buzzer= U_Buzzer;
            
     end
     if (Time > 76.5)
           Servo_Motor =  U_LED-1; % Tür öffnen
            
     end

 end

  end
  IR_Buzzer = 1;
end
 end


Umsetzung der Hardware

Die Abb.14 darstellt die technische Zeichnung ,die schon in Abb.1 erläutert wurde. Dies ist eine CAD-Baugruppe mit einer Gehäusedicke von 5 mm und den folgenden Abmaßen :

- Hauptbaugruppe (20 X 12 X 7 cm)

- Tür (14 X 60 X 0,2 cm)

Abb.14 : Zeichnung der CAD-Baugruppe mit goldenen Scharniere

Komponententest

Bild mit breadboard

Montage

Bild mit der PCB Board Lochplatine

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Abb.19 : Erstellung der Projektplanung durch Ganttproject

Projektdurchführung

YouTube Video

Weblinks

Literatur