Elektronischer Safe: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(18 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
[[Kategorie:ProjekteET MTR BSE WS2020]]
[[Kategorie:ProjekteET MTR BSE WS2020]]
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
'''Autoren:'''[[Benutzer:Thomas Brice Datche Kenge|Thomas Brice Datche Kenge]],[[Benutzer: Timo Malchus|Timo Malchus]], [[Benutzer:Dominik Schröer |Dominik Schröer]]  <br/>
'''Autoren:'''[[Benutzer:Thomas Brice Datche Kengne|Thomas Brice Datche Kengne]],[[Benutzer: Timo Malchus|Timo Malchus]], [[Benutzer:Dominik Schröer |Dominik Schröer]]  <br/>
'''Betreuer:''' Marc Ebmeyer<br/>
'''Betreuer:''' Marc Ebmeyer<br/>


Zeile 68: Zeile 68:


===Verschlussmechanismus===
===Verschlussmechanismus===
Für unser Projekt werden wir einen Servomotor als Schließmechanismus für unsere elektronische Safe verwenden.Ein Servo ist ein kleines Gerät, das eine Abtriebswelle hat.Er verfügt über einige Steuerkreise und ein Potentiometer (einen variablen Widerstand, auch Poti genannt), der mit der Ausgangswelle verbunden ist. Mit diesem Potentiometer kann die Steuerschaltung den aktuellen Winkel des Servomotors überwachen.
Für unser Projekt wurde einen Servomotor als Schließmechanismus für unsere elektronische Safe verwendet.Ein Servomotor ist ein kleines Gerät mit einer Abtriebswelle,der über einige Steuerkreise und ein Potentiometer (einen variablen Widerstand, auch Poti genannt)verfügt ,und der mit der Ausgangswelle verbunden ist. Mit diesem Potentiometer kann die Steuerschaltung den aktuellen Winkel des Servomotors überwachen.
Wenn sich die Welle im richtigen Winkel befindet, schaltet der Motor ab. Wenn die Schaltung feststellt, dass der Winkel nicht korrekt ist, wird der Motor in die richtige Richtung gedreht, bis der Winkel korrekt ist. Die Abtriebswelle des Servos kann sich um 180 Grad bewegen. Normalerweise liegt es irgendwo im 210-Grad-Bereich, variiert jedoch je nach Hersteller. Mit einem normalen Servo wird eine Winkelbewegung zwischen 0 und 180 Grad gesteuert. Ein normaler Servo kann sich mechanisch nicht weiterdrehen, da ein mechanischer Anschlag am Hauptausgangsgetriebe angebracht ist.
Wenn sich die Welle im richtigen Winkel befindet, schaltet der Motor ab. Wenn die Schaltung feststellt, dass der Winkel nicht korrekt ist, wird der Motor in die richtige Richtung gedreht, bis der Winkel korrekt ist. Die Abtriebswelle des Servos kann sich um 180 Grad bewegen. Normalerweise liegt es irgendwo im 210-Grad-Bereich, variiert jedoch je nach Hersteller. Mit einem normalen Servo wird eine Winkelbewegung zwischen 0 und 180 Grad gesteuert. Ein normaler Servo kann sich mechanisch nicht weiterdrehen, da ein mechanischer Anschlag am Hauptausgangsgetriebe angebracht ist.
Die an den Motor angelegte Leistungsmenge ist proportional zur Entfernung, die er zurücklegen muss. Wenn also die Welle eine große Strecke drehen muss, läuft der Motor mit voller Drehzahl. Wenn nur ein geringer Betrag gedreht werden muss, läuft der Motor langsamer. Dies wird als Proportionalsteuerung bezeichnet.Außerdem hat Jeder Servo  drei Anschlüsse: Speisung, Masse und PWM Signal.In diesem Projekt wurde die Strom- und Masse-Pins direkt mit den Arduino 5 V- und GND-Pins verbunden . Der PWM-Eingang wurde an einen der digitalen Ausgangspins des Arduino angeschlossen.Der Motor mit dem Arduino wurde wie  in der folgenden Bild angeschloßen.
Die an den Motor angelegte Leistungsmenge ist proportional zur Entfernung, die er zurücklegen muss. Wenn also die Welle eine große Strecke drehen muss, läuft der Motor mit voller Drehzahl. Wenn nur ein geringer Betrag gedreht werden muss, läuft der Motor langsamer. Dies wird als Proportionalsteuerung bezeichnet.Außerdem hat Jeder Servo  drei Anschlüsse: Speisung, Masse und PWM Signal.In diesem Projekt wurde die Strom- und Masse-Pins direkt mit den Arduino 5 V- und GND-Pins verbunden . Der PWM-Eingang wurde an einen der digitalen Ausgangspins des Arduino angeschlossen.Der Motor mit dem Arduino wurde wie  in der folgenden Bild angeschloßen.
Zeile 91: Zeile 91:
== Umsetzung (HW/SW) ==
== Umsetzung (HW/SW) ==
===Software===
===Software===
[[Datei:Elektronischer Safe SW.png|mini]]
Bei diesem Projekt bietet es sich an, die Software mithilfe von Zustandsautomaten zu realisieren. Zustandsautomaten sind ein Konzept der Informatik, bei dem der Ablauf eines Programms nicht nur durch die Eingabe bestimmt ist, sondern auch von den Eingaben, die in der Vergangenheit getätigt wurden. Man unterscheidet zwischen dem Mealy-Automaten und dem Moore-Automaten, wobei beide ineinander überführt werden können.<ref>[''Vorlesungsskript: Zustandsautomation von Prof.Dr. Axel Thümmler''] </ref> <br/>  
Bei diesem Projekt bietet es sich an, die Software mithilfe von Zustandsautomaten zu realisieren. Zustandsautomaten sind ein Konzept der Informatik, bei dem der Ablauf eines Programms nicht nur durch die Eingabe bestimmt ist, sondern auch von den Eingaben, die in der Vergangenheit getätigt wurden. Man unterscheidet zwischen dem Mealy-Automaten und dem Moore-Automaten, wobei beide ineinander überführt werden können.<ref>[''Vorlesungsskript: Zustandsautomation von Prof.Dr. Axel Thümmler''] </ref> <br/>  
Ein Automat befindet sich zu Anfang in einem fest definierten Zustand, dem Initialzustand. Wird eine Eingabe getätigt, die seinem Eingabealphabet entspricht, so wird diese verarbeitet und es wird eine Ausgabe produziert, die von der jeweiligen Eingabe und von dem Zustand abhängig ist, in dem sich der Automat aktuell befindet. Gleichzeitig wechselt der Automat seinen Zustand und das Verfahren beginnt von Neuem. Dabei müssen die Eingaben nicht zwangsläufig durch den Benutzer gemacht werden, eine Eingabe kann beispielsweise auch ein Sensorwert oder ein abgelaufener Timer-Interrupt sein. <br/>
Ein Automat befindet sich zu Anfang in einem fest definierten Zustand, dem Initialzustand. Wird eine Eingabe getätigt, die seinem Eingabealphabet entspricht, so wird diese verarbeitet und es wird eine Ausgabe produziert, die von der jeweiligen Eingabe und von dem Zustand abhängig ist, in dem sich der Automat aktuell befindet. Gleichzeitig wechselt der Automat seinen Zustand und das Verfahren beginnt von Neuem. Dabei müssen die Eingaben nicht zwangsläufig durch den Benutzer gemacht werden, eine Eingabe kann beispielsweise auch ein Sensorwert oder ein abgelaufener Timer-Interrupt sein. <br/>
Zeile 96: Zeile 97:
Der Safe befindet sich zunächst im Initialzustand, also das Schloss ist geöffnet. Damit er aber in Betrieb gehen kann, muss die Klappe geschlossen werden. Erst dann kann ein PIN ausgewählt und bestätigt werden. Nach erfolgreicher Pineingabe ist der Safe betriebsbereit. Ein PIN kann zweimal falsch eingeben werden. Nach der dritten Falscheingabe wechselt der Safe in den Zustand "Alarm" der erst nach einer gewissen Zeit aufhört und dann im Zustand "Safe geschlossen" weitermacht. Ebenso wechselt der Safe in den Alarmzustand, wenn in den Zuständen in denen das Schloss geschlossen ist, der Ultraschallsensor ein Öffnen der Klappe registriert, was einem manuellen Aufbrechen entsprechen würde. Der Übersichtlichkeit wegen wurde in der Zeichnung darauf verzichtet. <br/>
Der Safe befindet sich zunächst im Initialzustand, also das Schloss ist geöffnet. Damit er aber in Betrieb gehen kann, muss die Klappe geschlossen werden. Erst dann kann ein PIN ausgewählt und bestätigt werden. Nach erfolgreicher Pineingabe ist der Safe betriebsbereit. Ein PIN kann zweimal falsch eingeben werden. Nach der dritten Falscheingabe wechselt der Safe in den Zustand "Alarm" der erst nach einer gewissen Zeit aufhört und dann im Zustand "Safe geschlossen" weitermacht. Ebenso wechselt der Safe in den Alarmzustand, wenn in den Zuständen in denen das Schloss geschlossen ist, der Ultraschallsensor ein Öffnen der Klappe registriert, was einem manuellen Aufbrechen entsprechen würde. Der Übersichtlichkeit wegen wurde in der Zeichnung darauf verzichtet. <br/>


Die Programmierung der Software selbst wurde mit der Arduino IDE realisiert. Sie umfasst einen Editor inklusive Compiler und Bootloader, jedoch keine Möglichkeiten zum Debuggen des Quellcodes. Die Programmiersprache ist C, jedoch in einer etwas abgewandelten Form, sodass man bei der Programmierung durchaus auf einige Eigenheiten gestoßen ist.  
Die Programmierung der Software selbst wurde mit der Arduino IDE realisiert. Sie umfasst einen Editor inklusive Compiler und Bootloader, jedoch keine Möglichkeiten zum Debuggen des Quellcodes. Die Programmiersprache ist C, jedoch in einer etwas abgewandelten Form, sodass man bei der Programmierung durchaus auf einige Eigenheiten gestoßen ist.


===Hardware===  
===Hardware===  
Zeile 114: Zeile 115:


== Ergebnis ==
== Ergebnis ==
Im Allgemeinen ist aus dem Projekt ein akzeptables Produkt geworden, welches die Anforderungen angemessen erfüllt, auch wenn noch Verbesserungspotential vorhanden ist. Das Design im grau und einem leichten used look machen es äußerlich sehr ansprechend. Der Safe ist sehr stabil geworden, obwohl der Verschlussmechanismus nicht so stark ist, wie zu Anfang gedacht. Wir hatten ursprünglich angenommen, dass der Kunststoff-Riegel am Servomotor stark genug ist um den Safe ordentlich zu verriegeln, nächstes Mal muss der Riegel aus stärkerem Material gefertigt werden. <br/>
Des weiteren muss an der Anbringung des IR- Empfängers noch weiter gearbeitet werden. Er ragt noch aus dem Safe heraus, damit die Signale in ausreichender Stärke ankommen. Die Installation könnte das nächste Mal etwas diskreter sein. <br/>
Nichtsdestotrotz sind wir mit dem Ergebnis sehr zufrieden, zumal die Software besser funktioniert, als eigentlich erwartet. Insofern ein gelungenes GET- Fachprojekt.


== Zusammenfassung ==
== Zusammenfassung ==
=== Lessons Learned ===
Unter dem Aspekt der learned Lessons kann man sagen, dass man durch dieses Projekt einen guten Überblick in die Vielfalt der Mechatronik und der Themen in diesem Studiengang bekommen hat. Man konnte zahlreiche Modulinhalte anwenden, die sonst sehr theoretisch erschienen.
Durch das technische Zeichnen konnte man nicht nur ein vorhandenes Objekt bemaßen und nachzeichnen, sondern in Verbindung mit der Produktionstechnik überlegen, in welchen Maßen und mit welchen Arbeitsschritten man optimale Konturen und Formen für ein neu zu schaffendes Objekt realisiert.
Elektrische Bauelemente und ihre Verbindungen konnte man durch vorangegangene Praktika und Module praktisch sehr gut einschätzen und gewisse Verhalten in gewissen Situationen erahnen und voraussagen.
Die Informatik und das Fachpraktikum führten zu einer weiteren, dieses mal komplett eigenen Softwareprogrammierung für den Arduino. Man hat durch dieses Projekt also eine sehr gute Möglichkeit, ein mechatronisches Projekt von A bis Z durchzuplanen und von Anfang bis Ende komplett eigenständig zu entwickeln, aufzubauen und in Betrieb zu nehmen. Eine sehr gelungene Art gewisse Inhalte des Studiums in der Praxis umzusetzen und zu vertiefen.


== Projektunterlagen ==
== Projektunterlagen ==
Zeile 127: Zeile 134:


== YouTube Video ==
== YouTube Video ==
[https://youtu.be/aSBE02omecw Safe-O-Mat 100]


== Weblinks ==
== Weblinks ==
https://starthardware.org/lcd/
Datenplätter <br/>
https://www.exp-tech.de/blog/arduino-tutorial-servo
https://www.mikrocontroller.net/attachment/218122/HC-SR04_ultraschallmodul_beschreibung_3.pdf <br/>
http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf <br/>
https://components101.com/sites/default/files/component_datasheet/16x2%20LCD%20Datasheet.pdf <br/>
https://www.alldatasheet.com/datasheet-pdf/pdf/1132465/ETC2/VS1838B.html <br/>


== Literatur ==
== Literatur ==


https://starthardware.org/lcd/ <br/>
https://www.exp-tech.de/blog/arduino-tutorial-servo <br/>





Aktuelle Version vom 21. Januar 2022, 20:13 Uhr

Autoren:Thomas Brice Datche Kengne,Timo Malchus, Dominik Schröer
Betreuer: Marc Ebmeyer


→ zurück zur Übersicht: WS 20/21: Fachpraktikum Elektrotechnik (MTR)

Werbeplakat für die virtuelle Projektmesse


Einleitung

Dieses Projekt ist Teil des GET Fachpraktikums im 5. Semester Mechatronik, WISE 2020/2021. Es soll ein mechatronisches System erstellt werden. Wir haben uns für einen elektronischen Safe entschieden, die kleine Wertsachen, wie Ihren Schmuck, Bargeld oder Kreditkarten sicher aufbewahrt.

Anforderungen

  1. Elektromechanischer Schließmechanismus
  2. Sicherung mit einem Code
  3. Flexible Eingabe mit einer Fernbedienung
  4. Optische und akustische Signalgebung
  5. Möglichkeit, das Passwort ändern zu können
  6. Erkennen, ob der Deckel geschlossen oder geöffnet ist
  7. Groß genug, um Schlüssel, Brieftasche oder das Handy zu verstauen


Funktionaler Systementwurf/Technischer Systementwurf

Das System besteht aus einem kleinen Kasten, der entweder aus Holz, Kunststoff oder Metall gefertigt ist. Man kann ihn mit einer Fernbedienung ansteuern. Durch Eingabe eines Passworts wird der Schließmechanismus betätigt, der aus einem Servomotor besteht und einen Riegel in einer Raste platziert, sodass sich der Deckel nicht mehr öffnen lässt.

Mit einem Ultraschallsensor wird überprüft, ob der Deckel geschlossen oder geöffnet ist. Mithilfe eines LCD Displays wird mit dem Benutzer kommuniziert. Er zeigt an, ob das Passwort korrekt ist, oder der Deckel gerade geöffnet oder geschlossen ist.

Weiterhin wird mit dem Summer ein Alarm realisiert, der beispielsweise auslöst, wenn der Code mehrmals falsch eingeben wurde.

Blockdiagramm der Komponenten
Illustration des Schließmechanismus


Komponentenspezifikation

Die größte Komponente des Safes umfasst die Konstruktion und den Bau eines angemessenen Gehäuses, um Wertsachen unterbringen zu können. Dazu wird ein Kasten aus Edelstahl verwendet. Es ist sehr stabil und verschleißfest. Im Gegensatz zur ursprünglichen Idee den Verschlußmechanismus von Außen anzubringen hat es sich als sinnvoller herausgestellt, den Servomotor innen einzubauen. Die gesamte Elektronik wird ebenfalls im Inneren des Safes untergebracht.

Damit

Herstellung des Safes

Nach Festlegung der zu sichernden Materialien im Safe wurde zunächst eine technische Zeichnung mit allen Außen- und Innenmaßen des Safes angefertigt. Er sollte groß genug für mehrere Portemonnaies, zusätzliche Geldbündel oder andere wertvolle Dinge sein. Zuätzlich musste noch genug Platz für alle elektronischen Einheiten gewährleistet sein, die notwendig für Steuerung und Ausführung sind. Desweiteren musste in einer Seite des Safes eine Aussparung für den LCD-Display vorhanden sein. Eine Bohrung für die Verbindung des IR-Empfängers mit der Außenwelt, sowie ein Loch für die Spannungsversorgung des Arduino mussten ebenfalls integriert werden. Die Verriegelung sollte nach Schließen der Klappe mit einem Servomotor realisiert werden. So kam es dazu, dass man sich entschied ein von den Außenmaßen her quadratisches Bauteil zu entwerfen und zu konstruieren. Der LCD-Display sollte frontal aus gesehen rechts sitzen. Auf dieser Seite war so auch die Bohrung für den IR-Empfänger und für die Spannungsversorgung zu setzen.

Rohbau des Safes

Aus mehreren Blechstücken (300x300x190) wurden so die Seitenlängen des Safes angefertigt. Die Blechstücke wurden zu einem Quadrat geschweißt und die Ecken abgeschliffen. Als Abtrennung für den Bereich der zu sichernden Materialien zu den elektrischen Bauteilen diente ebenfalls ein Blech, welches die gleiche Dicke von 2mm besitzt. Auf ein Innenmaß von 120mm Breite für die Elektronik wurde dieses Abtrennungsblech nun verschweißt. Mithilfe von zwei Edelstahl-Scharnieren wurde die Klappe befestigt. Für ein sauberes Abschließen wurde diese an den Außenkanten nach unten hin gekantet. Ebenfalls die Oberseite des Behälters wurde im Gegensatz dazu passend nach oben gekantet. Die Verriegelung wurde mit einem sonst von außen verschließbaren Schloss realisiert, welches durch das Schließen des Servomotors arretiert wurde. Die Verstellmöglichkeit von außen wurde festgeschweißt, damit nur das Eingeben des richtigen Kennwortes die Öffnung erlaubt. Die Aussparung für den LCD wurde passend auf die Maße des Displays ausgefräst und als Schutz vor Kurzschlüssen isoliert. In den Safe-Boden wurden jeweils in den Ecken eine Bohrung integriert, um den Safe anschrauben zu können. Das Grundgestell mit Außnahme des Schlosses und der Scharniere wurde in dunkelgrau lackiert. Die elektrischen Komponenten konnten nun verbaut und installiert werden.

Abstandserfassung mit dem Ultraschallsensor

Der Ultraschallsensor HCR-S04 ist ein Low-Cost Ultraschallsensor aus dem Funduino Set. Er besteht aus einer kleinen Platine mit 4 SPL Pins und zwei kleinen Lautsprechern aus Metall. Der Sensor wird über Vcc, GND und zwei Digitale Anschlüsse des Arduino verbunden.
Der Ultraschallsensor kann Abstände von Objekten zwischen 3cm und 4m erfassen. Dabei misst er die Entfernung zu einem Objekt über die Laufzeit eines Ultraschallsignal, welche an einem Objekt reflektiert wird und wieder auf den Empfänger zurückfällt. Mithilfe von Kenntnis über die Schallgeschwindigkeit im entsprechenden Medium kann über die Laufzeit dann die Distanz gemessen werden.

Kommunikation über eine IR- Fernbedienung

Um den Safe ansteuern zu können und Benutzereingaben zu verarbeiten, wird eine drahtlose Infrarotverbindung über eine Fernbedienung und einen Infrarotempfänger aufgebaut. Beide Elemente sind im Packet des Arduino Startersets enthalten.

Das Infrarotsignal verwendet Wellenlängen von 950nm, die von der Fernbedienung ausgesendet werden. Dabei wird, um Daten übertragen zu können, das Signal über eine Trägerfrequenz moduliert. Das bedeutet, dass der Sender das Licht in einer entsprechenden Taktfrequenz zwischen 30kHz und 60kHz ein- und ausschaltet, wobei hierdurch noch keine kompletten Informationspakete übertragen werden. Wird das Licht schnell ein- und ausgeschaltet, so wird eine Information übertragen (mark); registriert der Empfänger kein moduliertes Signal, ist es ein space. Hardwaremäßig geschieht dies mithilfe einer Mikroelektronik, die das einprogrammierte Protokoll auf einen Transistor weiterleitet, sodass eine Infrarotdiode angesteuert wird. Auf der Empfängerseite wird das Signal von einer Filter- und Verstärkerschaltung entgegengenommen. Das Signal wird von einer Photodiode empfangen und auf einen Verstärker gegeben. Damit dann auch die richtigen Trägerfrequenzen verarbeitet werden, wird ein Bandpassfilter zwischengeschaltet. Nach der Demodulation wird das Signal mit einer Komparatorschaltung verglichen, um festzustellen, ob ein Signal empfangen wird. Wird kein Signal empfangen, so erzeugt die Schaltung am Ausgang eine 1, ansonsten eine Null. Die Übertragung der Zeichen von der Fernbedienung auf den Empfänger wird durch das Protokoll festgelegt. Darin ist festgeschrieben, in welche Zeitabstände eine bestimmte Anzahl von marks und spaces eingeteilt wird, um ein Zeichen zu übermitteln.[1] Dabei benutzt jeder Hersteller sein eigenes Übertragungsprotokoll.[2]

Verschlussmechanismus

Für unser Projekt wurde einen Servomotor als Schließmechanismus für unsere elektronische Safe verwendet.Ein Servomotor ist ein kleines Gerät mit einer Abtriebswelle,der über einige Steuerkreise und ein Potentiometer (einen variablen Widerstand, auch Poti genannt)verfügt ,und der mit der Ausgangswelle verbunden ist. Mit diesem Potentiometer kann die Steuerschaltung den aktuellen Winkel des Servomotors überwachen. Wenn sich die Welle im richtigen Winkel befindet, schaltet der Motor ab. Wenn die Schaltung feststellt, dass der Winkel nicht korrekt ist, wird der Motor in die richtige Richtung gedreht, bis der Winkel korrekt ist. Die Abtriebswelle des Servos kann sich um 180 Grad bewegen. Normalerweise liegt es irgendwo im 210-Grad-Bereich, variiert jedoch je nach Hersteller. Mit einem normalen Servo wird eine Winkelbewegung zwischen 0 und 180 Grad gesteuert. Ein normaler Servo kann sich mechanisch nicht weiterdrehen, da ein mechanischer Anschlag am Hauptausgangsgetriebe angebracht ist. Die an den Motor angelegte Leistungsmenge ist proportional zur Entfernung, die er zurücklegen muss. Wenn also die Welle eine große Strecke drehen muss, läuft der Motor mit voller Drehzahl. Wenn nur ein geringer Betrag gedreht werden muss, läuft der Motor langsamer. Dies wird als Proportionalsteuerung bezeichnet.Außerdem hat Jeder Servo drei Anschlüsse: Speisung, Masse und PWM Signal.In diesem Projekt wurde die Strom- und Masse-Pins direkt mit den Arduino 5 V- und GND-Pins verbunden . Der PWM-Eingang wurde an einen der digitalen Ausgangspins des Arduino angeschlossen.Der Motor mit dem Arduino wurde wie in der folgenden Bild angeschloßen. Rotes Kabel - 5 V Pin Arduino Braunes/schwarzes Kabel - Erdungspin Arduino Gelbes Kabel- PWM (10) Pin Arduino

Servomotor mit Arduino

Ansteuerung des LCD-Displays

Eine LCD, oder Flüssigkristallanzeige, basiert auf Flüssigkristallen, die ihre Polarisationsrichtung ändern, wenn eine elektrische Spannung angelegt wird. Sie werden undurchsichtig. In LCD-Anzeigen sind diese Flüssigkristalle in Segmenten angeordnet und können unabhängig voneinander ihre Transparenz verändern. Sie werden z.B. in digitalen Armbanduhren, Druckerbildschirmen, Thermometern oder in Autos eingesetzt.Für unser Projekt wird es als Ausstiegshilfe verwendet, d.h. um dem Benutzer Informationen zu geben. LCD-Displays gibt es in verschiedenen Formen und mit den unterschiedlichsten Segmentanordnungen, zum Beispiel als Pixelraster. Im Arduino-Bereich sind mehrzeilige alphanumerische LCD-Displays mit 16-poligen Anschlüssen beliebt. Sie basieren oft auf dem HD44780-Chip von Hitachi und sind mit der LiquidCrystal-Bibliothek von Arduino erhältlich. Sie sind relativ einfach anzuschließen ein LCD Display kann im 4 oder 8 Bit Modus angesprochen werden. Im 4 Bit Modus benötigt man 4, im 8 Bit Modus 8 Datenkabel aus ebenso vielen digitalen Pins des Arduino-Boards. Es wird wie auf dem recht unten dargestellten Schaltbild angeschlossen. Je nach Display-Typ gibt es einen Anschluss für die Hintergrundbeleuchtung und ein Potentiometer, um den Anzeigekontrast zu regeln. Zu beachten ist, dass die Displays, die mit deutlich weniger Pins auskommen, einen zusätzlichen Controller haben und einfach über die I2C-Schnittstelle vom Arduino angesteuert werden können. So ist I2C eine Datenverbindung, die Steuersignale zwischen verschiedenen elektronischen Komponenten ermöglicht.

Anschließen des LCD an den Arduino



Umsetzung (HW/SW)

Software

Bei diesem Projekt bietet es sich an, die Software mithilfe von Zustandsautomaten zu realisieren. Zustandsautomaten sind ein Konzept der Informatik, bei dem der Ablauf eines Programms nicht nur durch die Eingabe bestimmt ist, sondern auch von den Eingaben, die in der Vergangenheit getätigt wurden. Man unterscheidet zwischen dem Mealy-Automaten und dem Moore-Automaten, wobei beide ineinander überführt werden können.[3]
Ein Automat befindet sich zu Anfang in einem fest definierten Zustand, dem Initialzustand. Wird eine Eingabe getätigt, die seinem Eingabealphabet entspricht, so wird diese verarbeitet und es wird eine Ausgabe produziert, die von der jeweiligen Eingabe und von dem Zustand abhängig ist, in dem sich der Automat aktuell befindet. Gleichzeitig wechselt der Automat seinen Zustand und das Verfahren beginnt von Neuem. Dabei müssen die Eingaben nicht zwangsläufig durch den Benutzer gemacht werden, eine Eingabe kann beispielsweise auch ein Sensorwert oder ein abgelaufener Timer-Interrupt sein.
Auf diesem Konzept aufbauend ist ein Zustandsautomat entwickelt worden, der den Betrieb des Elektronischen Safes koordiniert. Eine vereinfachte, handschriftliche Version des Zustandsautomaten ist im nebenstehenden Bild zu sehen.
Der Safe befindet sich zunächst im Initialzustand, also das Schloss ist geöffnet. Damit er aber in Betrieb gehen kann, muss die Klappe geschlossen werden. Erst dann kann ein PIN ausgewählt und bestätigt werden. Nach erfolgreicher Pineingabe ist der Safe betriebsbereit. Ein PIN kann zweimal falsch eingeben werden. Nach der dritten Falscheingabe wechselt der Safe in den Zustand "Alarm" der erst nach einer gewissen Zeit aufhört und dann im Zustand "Safe geschlossen" weitermacht. Ebenso wechselt der Safe in den Alarmzustand, wenn in den Zuständen in denen das Schloss geschlossen ist, der Ultraschallsensor ein Öffnen der Klappe registriert, was einem manuellen Aufbrechen entsprechen würde. Der Übersichtlichkeit wegen wurde in der Zeichnung darauf verzichtet.

Die Programmierung der Software selbst wurde mit der Arduino IDE realisiert. Sie umfasst einen Editor inklusive Compiler und Bootloader, jedoch keine Möglichkeiten zum Debuggen des Quellcodes. Die Programmiersprache ist C, jedoch in einer etwas abgewandelten Form, sodass man bei der Programmierung durchaus auf einige Eigenheiten gestoßen ist.

Hardware

Implementierung LCD-Display im Gehäuse

Hardwaremäßig muss man sich am Beginn die Frage stellen, was alles in dem Safe verstaut werden soll und auf welche Materialien man für die Konstruktion verwendet. Man hat somit einen groben Überblick, wie viel Rohlinge man braucht und in welche Dimensionen das Projekt verläuft. Greift man anstatt auf Holz auf Blech oder sogar Edelstahl zurück, so bedarf es einen nicht zu unterschätzenden Mehraufwand bei der Verwirklichung der Hardware. Hat man die Gerätschaften zur Verfügung, wie zum Beispiel ein passendes Schweißgerät, so kann man diesen Safe auch aus korrosionsbeständigem Material wie Edelstahl bauen. In diesem Projekt wurde zunächst ein Prototyp aus geschichtetem und geleimten Holz gefertigt, was sich zwar einfacher bearbeiten ließ, aber nicht die nötige Sicherheit und Stabilität mit sich bringt. Aus diesem Grunde wurde für das Endprodukt Blech mit 2mm Dicke verwendet, um stabiler als Holz, aber trotzdem leicht zu sein. Da passende Metallverarbeitungs-Geräte vorhanden waren, konnte man dies auch gut realisieren. Winkelschleifer und Bandsäge bildeten die Maschinen für das Trennen und Schleifen. Mit einem Schutzgas-Schweißgerät wurden die Schweißnähte gefertigt. Gebohrt wurde sowohl mit einer Standbohrmaschine, einem Akkubohrer, einer Winkelbohrmaschine als auch mit einer CNC-Fräse. Als Farbe erhielt der Safe die Farbe "Claas CCgrau"".

Fertiger Safe

Schaltplan

Komponententest

Die einzelnen Komponenten wurden separat voneinander getestet. Dabei wurden jedes einzelne Bauteil zunächst mit dem Arduino verbunden und eine kleine Testmethode geschrieben, die jeden Aktor und Sensor einzeln in Betrieb nimmt und auf seine Funktion testet. Es hat sich gezeigt, dass alle Bauteile einwandfrei funktionieren, sodass sie in den Safe eingesetzt werden konnten.
Nachdem der Zustandsautomat konzeptionell entworfen wurde, ist die Implementierung in der Arduino IDE vorgenommen worden. Dabei wurde zunächst das Setup geschrieben und ausgeführt und dann sukzessive jeder Zustand für sich einprogrammiert. Dabei wurden, um auf die Peripherie zugreifen zu können, verschiedene Bibliotheken eingebunden, um deren Funktionalitäten nutzen zu können. Dadurch hat sich jedoch herausgestellt, dass der Summer nicht betätigt werden kann, wenn die Sensorik eingebunden ist, sodass der akustische Alarm nicht ausgelöst werden kann.

Ergebnis

Im Allgemeinen ist aus dem Projekt ein akzeptables Produkt geworden, welches die Anforderungen angemessen erfüllt, auch wenn noch Verbesserungspotential vorhanden ist. Das Design im grau und einem leichten used look machen es äußerlich sehr ansprechend. Der Safe ist sehr stabil geworden, obwohl der Verschlussmechanismus nicht so stark ist, wie zu Anfang gedacht. Wir hatten ursprünglich angenommen, dass der Kunststoff-Riegel am Servomotor stark genug ist um den Safe ordentlich zu verriegeln, nächstes Mal muss der Riegel aus stärkerem Material gefertigt werden.
Des weiteren muss an der Anbringung des IR- Empfängers noch weiter gearbeitet werden. Er ragt noch aus dem Safe heraus, damit die Signale in ausreichender Stärke ankommen. Die Installation könnte das nächste Mal etwas diskreter sein.
Nichtsdestotrotz sind wir mit dem Ergebnis sehr zufrieden, zumal die Software besser funktioniert, als eigentlich erwartet. Insofern ein gelungenes GET- Fachprojekt.

Zusammenfassung

Unter dem Aspekt der learned Lessons kann man sagen, dass man durch dieses Projekt einen guten Überblick in die Vielfalt der Mechatronik und der Themen in diesem Studiengang bekommen hat. Man konnte zahlreiche Modulinhalte anwenden, die sonst sehr theoretisch erschienen. Durch das technische Zeichnen konnte man nicht nur ein vorhandenes Objekt bemaßen und nachzeichnen, sondern in Verbindung mit der Produktionstechnik überlegen, in welchen Maßen und mit welchen Arbeitsschritten man optimale Konturen und Formen für ein neu zu schaffendes Objekt realisiert. Elektrische Bauelemente und ihre Verbindungen konnte man durch vorangegangene Praktika und Module praktisch sehr gut einschätzen und gewisse Verhalten in gewissen Situationen erahnen und voraussagen. Die Informatik und das Fachpraktikum führten zu einer weiteren, dieses mal komplett eigenen Softwareprogrammierung für den Arduino. Man hat durch dieses Projekt also eine sehr gute Möglichkeit, ein mechatronisches Projekt von A bis Z durchzuplanen und von Anfang bis Ende komplett eigenständig zu entwickeln, aufzubauen und in Betrieb zu nehmen. Eine sehr gelungene Art gewisse Inhalte des Studiums in der Praxis umzusetzen und zu vertiefen.

Projektunterlagen

Projektplan


Projektdurchführung

Die Projektdurchführung war von einigen Hürden durch die Corona- Pandemie begleitet. Daher war es nicht immer möglich, die Sachen zusammen bearbeiten zu können.

YouTube Video

Safe-O-Mat 100

Weblinks

Datenplätter
https://www.mikrocontroller.net/attachment/218122/HC-SR04_ultraschallmodul_beschreibung_3.pdf
http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf
https://components101.com/sites/default/files/component_datasheet/16x2%20LCD%20Datasheet.pdf
https://www.alldatasheet.com/datasheet-pdf/pdf/1132465/ETC2/VS1838B.html

Literatur

https://starthardware.org/lcd/
https://www.exp-tech.de/blog/arduino-tutorial-servo



→ zurück zur Übersicht: WS 20/21: Fachpraktikum Elektrotechnik (MTR)

  1. IR Remote Control Theory abgerufen am 15.01.2021
  2. IR-Protokolle abgerufen am 15.01.2021
  3. [Vorlesungsskript: Zustandsautomation von Prof.Dr. Axel Thümmler]