Berührungsloser Desinfektionsspender

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Leon Hundertmark, Marc Eidhoff
Betreuer: Prof. Schneider


→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)

Einleitung

Im Rahmen des Praktikums "Angewandte Elektrochtechnik" im Studiengang Business and Systems Engineering soll ein Desinfektionsspender entwickelt werden. Dieser soll durch den Einsatz eines Infrarotsensors berührungslos arbeiten. Bei einer Annäherung soll der Spender eine definierte Menge Desinfektionsmittel aus einem Behälter spenden. Dies soll durch die Ansteuerung einer Schlauchpumpe für eine definierte Zeit erfolgen.

Anforderungen

Um die Funktionsweise des berührungslosen Desinfektionsspenders bestmöglich zu erreichen werden einige Anforderungen definiert. Diese Anforderungen sind in der folgenden Tabelle aufgeführt. Mithilfe eines Komponententests können nach der Fertigstellung der Hardware und der Software die definierten Funktionen überprüft werden. Dabei wird jede Andorderung im Komponententest "gegengeprüft" und ermittelt, ob die Anforderung erfüllt wurde.

ID Inhalt Ersteller Datum Geprüft von Datum
Req_10 Der Spender soll berührungslos arbeiten. Eidhoff, Hundertmark 27.10.2020
Req_20 Als Sensor soll ein Sharp-Infrarotsensor (Messbereich 4-30cm) benutzt werden. Eidhoff, Hundertmark 27.10.2020
Req_30 Als Aktor soll eine Schlauchpumpe eingesetzt werden. Eidhoff, Hundertmark 27.10.2020
Req_40 Die Erkennung der Hände und die Ansteuerung des Aktors sollen durch LEDs angezeigt werden. Eidhoff, Hundertmark 27.10.2020
Req_50 Die Datenverarbeitung und Ansteuerung des Aktors soll durch einen Arduino UNO erfolgen. Eidhoff, Hundertmark 27.10.2020
Req_51 Die Datenverarbeitung und Ansteuerung des Aktors soll durch einen ATtiny-Mikrocontroller erfolgen. Eidhoff, Hundertmark 10.12.2020
Req_60 Der Spender soll bei einer Entfernung zwischen 5cm und 10cm für eine definierte Zeit auslösen. Eidhoff, Hundertmark 27.10.2020

Im Laufe der Entwicklung hat sich ergeben, dass das Requirement 50 verändert werden sollte. Die aktualisierte Fassung des Requirements 50 lautet: Die Datenverarbeitung und Ansteuerung des Aktors soll durch einen ATtiny-Mikrocontroller erfolgen.

Funktionaler Systementwurf/Technischer Systementwurf

Im Folgenden wird der zu Beginn des Projekts erarbeitete Aufbau des Spenders schematisch dargestellt. Hier kann zwischen funktionalem und technischem Systementwurf unterschieden werden.

Funktionaler Systementwurf

Der funktionale Systementwurf stellt die Funktionen und Beziehungen der einzelnen Funktionseinheiten auf Basis der Anforderungen dar.

Technischer Systementwurf

Der technische Systementwurf ist der erste Ansatz zur technischen Realisierung des Projekts. Die einzelnen Funktionen werden dabei auf die verschiedenen Komponenten übertragen.

Komponentenspezifikation

Komponenten Beschreibung Bild
Steuerungs-Platine
  • ATtiny84A-PU Mikrocontroller
  • L7805ACV Spannungsregler 5V
  • IRLZ44NPBF MOSFET
  • ISP-Schnittstelle für Programmierung
  • 2 Status-LEDs
Infrarot-Sensor Sharp GP2Y0A41SK0F [1]
  • Messbereich: 4cm bis 30cm
  • Versorgungsspannung: 4,5V bis 5,5V
  • Ausgangsspannung: typ. 0,4V bis 2,65V
Schlauchpumpe
  • Nennspannung: 6V
  • Durchfluss: max. 60 ml/min

Umsetzung (HW/SW)

Hardware

Schaltplan & Layout

Stückliste

ID Wert Teile-Nr. Package Beschreibung
7805 7805 L7805ACV TO220V Linearer Spannungsregler 5.0V 1.0A
ATTINY ATtiny84A-PU DIP14 AVR 8-Bit Mikrocontroller
C1 100u EEU-FM1E101 E2,5-6E Elko 100uF 25V
C2 100n C1206C104K5RAC7411 1206 MLCC - SMD/SMT 50V 0.1uF
C3 22p 885012008011 1206 MLCC - SMD/SMT 16V 22pF
C4 22p 885012008011 1206 MLCC - SMD/SMT 16V 22pF
C5 100n C1206C104K5RAC7411 1206 MLCC - SMD/SMT 50V 0.1uF
C6 100n C1206C104K5RAC7411 1206 MLCC - SMD/SMT 50V 0.1uF
D1 1N4004 1N5819 DO41-10 Schottky Diode 40V 1A
HDR 10129378-905003BLF 1X05 Stiftleiste 1x5 2.54mm
IFR RED LTL-4221 LED3MM LED - THT - Red Diffused
MOSFET IRLZ44N IRLZ44NPBF TO-220-3 Logic Level N-Channel MOSFET 55V 41A
MOT GREEN LTL-4231 LED3MM LED - THT - Green Diffused
PLUG DCJ0202 PJ-050B DCJ0202 DC-Steckverbinder 24V 2.5A
Q1 8 Mhz FOXSLF/080-20 QS Quarz 8MHz 20pF
R1 10k CRCW120610K0FKEA 1206 Dickfilmwiderstand SMD 10 kOhm
R2 10k CRCW120610K0FKEA 1206 Dickfilmwiderstand SMD 10 kOhm
R3 100 CRCW1206100RFKEA 1206 Dickfilmwiderstand SMD 100 Ohm
R4 200 RC1206FR-07200RL 1206 Dickfilmwiderstand SMD 200 Ohm
R5 200 RC1206FR-07200RL 1206 Dickfilmwiderstand SMD 200 Ohm
SPI 10129381-906004BLF 2X03 Stiftleiste 2x3 2.54mm

Zusammenbau

Software

Bei der Software-Entwicklung wurde auf einen modularen Aufbau mit drei Modulen gesetzt (vgl. Abbildung 7). Dies ermöglicht eine hardware-unabhängige Entwicklung des Verhaltens und eine gute Portierbarkeit zwischen unterschiedlichen Hardware-Versionen, wie ATmega328 beim Arduino-UNO-Prototypen und ATtiny84 bei der finalen Platine.

Zustandsautomat

Abb. 8: Zustandsautomat in Matlab Stateflow.

Das gewünschte Verhalten des Spenders wurde als Zustandsautomat in Matlab Stateflow realisiert. Der einfache Automat mit lediglich drei Zuständen (vgl. Abbildung 7, links) steuert die Dauer des Pump-Vorgangs in Abhängigkeit des Sensor-Signals und der verstrichenen Zeit seit der Hand-Erkennung. Das Desinfektionsmittel lässt sich damit gut portionieren und die zeitliche Begrenzung verhindert eine übermäßige Mengenabgabe.

Mit Hilfe des Embedded Coder lässt sich aus dem Stateflow-Modell effizienter C-Code generieren, welcher wiederum im übrigen C-Code eingebunden werden kann.

Hardware-Abstraktionsschicht

Abb. 9: Programmablaufplan des Verbindungscodes.

Die Hardware-Abstraktionsschicht greift auf die Mikrocontroller-Komponenten wie Ports, Timer-Bausteine und Register zu und stellt die für das Projekt relevanten, hardwareabhängigen Funktionen bereit:

  • Hw_Init()
Initialisierung des Mikrocontrollers: Setzen aller Ports, Parametrierung der Timer etc.
  • Hw_GetSensor()
Ausgabe des Infrarotsensor-Signals
  • Hw_SetPumpe(unsigned char Pumpe)
An-/Ausschalten der Pumpe. Optional ist eine Soft-PWM-Ansteuerung zur Reduzierung der Durchflussmenge möglich.

Diese Funktionen sind nach außen hin hardware-unabhängig, sodass die restliche Software bei einer Portierung auf andere Mikrocontroller-Systeme nicht verändert werden muss.

Verbindungscode

Der Verbindungscode stellt die Verbindung zwischen Zustandsautomat und Hardware-Abstraktionsschicht dar. Nach der Initialisierung (u.a. über Hw_Init()) wird der Zustandsautomat zyklisch alle 100ms ausgeführt. Dabei werden erst alle Eingangswerte eingelesen und dann nach einem Zeitschritt des Automaten dessen Ausgangswerte wieder ausgelesen (vgl. Abbildung 8).

Komponententest

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Projektdurchführung

YouTube Video

Link zum YouTube-Video

Literatur

[1] Datenblatt Infrarot-Sensor


→ zurück zur Übersicht: WS 20/21: Angewandte Elektrotechnik (BSE)