Arduino Münzensortierer: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(35 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 47: Zeile 47:


== Umsetzung (HW/SW) ==
== Umsetzung (HW/SW) ==
'''Hardware'''
 
Der mechanische Aufbau des Sortierers (siehe Abb. 1) wurde zunächst fertig gekauft und musste im Nachhinein nur wenig bearbeitet werden. Um die 8 Sensoren anzubringen musste aus dem oberen Teil der Abdeckung ein Rechteck ausgesägt werden. Dann konnten die Sensoren oben unter das Münzfach angeklebt und verkabelt werden.
'''''Hardware'''''
[[Datei:Münzfächer.jpg|200px|thumb|left|Alternativer Text]]
 
'''Aufbau'''
 
Der mechanische Aufbau des Sortierers (siehe Abb. 1) wurde zunächst fertig gekauft und musste im Nachhinein nur wenig bearbeitet werden. Um die 8 Sensoren anzubringen musste aus dem oberen Teil der Abdeckung ein Rechteck ausgesägt werden. Dann konnten die Sensoren oben unter das Münzfach angeklebt und verkabelt werden:
 
[[Datei:Münzfächer.jpeg|400px|Abb. 2: Münzfächer]]
 
 
Der Arduino, das Batteriefach und die Steckplatte wurden auf der Rückseite des Sortieres montiert:
 
[[Datei:IMG 9929.JPG |400px|Abb. 3: Rückseite]]
 
 
'''Abstandssensor'''
 
Beim verwendeten Sensor handelt es sich um einen Infrarot-Abstandssensor (R20-D-4-29). Der Schaltabstand lässt sich anhand des blauen Potis einstellen. Darunter sind außerdem noch zwei LEDs zu sehen, von denen die linke LED den Schaltvorgang anzeigt (leuchtet = Sensor schaltet Digitalausgang auf LOW). Die rechte LED zeigt den Betriebszustand an, leuchtet also bei vorhandener Spannung grün. Unten sieht man die vier Anschlüsse des Sensors, in diesem Projekt wird der digitale Pin verwendet.
 
[[Datei:Sensor vorderseite.JPG |400px|Abb. 4: Sensor Vorderseite]]
 
 
 
Auf der Rückseite des Sensors ist der wichtigste Teil. Dort sieht man nämlich die Infrarot-Lichtquelle (Wellenlänge 950mm) und den Detektor (Fototransistor). Der Detektor kann anhand der Stärke des refkeltierten Lichts die Entfernung zum Objekt messen. Da für die Münzenerkennung nur der digitale Pin verwendet wird, muss nur der Schaltabstand eingestellt werden.
 
[[Datei:Sensor rückseite.JPG |400px|Abb. 5: Sensor Rückseite]]
 
 
'''LCD-Display'''
 
Um den aktuellen Münzenwert des Sortieres anzuzeigen, wird das LCD-Display verwendet. Dieses kann 16 zeichen in zwei Reihen abbilden und besitzt auf der Rückseite eine angelötete Buchsenleiste.
 
[[Datei:Display Vorderseite.JPG |400px|Abb. 6: Display Vorderseite]]
 
 
Auf der Rückseite des Displays befindet sich die Buchsenleiste. Auf dieser befindet sich wie bei den Sensoren ein Potentiometer, mit welchem man den Kontrast der angezeigten Zeichen einstellen kann. Außerdem sind rechts die vier Anschlüsse für die I2C-Verbindung zum Arduino zu sehen. Dazu gehören zum einen die Spannungsversorgung (VCC und GND) und die beiden Kommunikationsleitungen des I2C (SDA und SCL).
 
[[Datei:LCD Display Rückseite.JPG |400px|Abb. 7: Display Rückseite]]
 
 
'''''Software'''''
 
Programmiert wird der Münzensortierer mit Arduino IDE. Dort werden die einzelnen Sensoren über ihren digitalen Pin, der beim Schaltvorgang auf LOW schaltet, ausgelesen. Je nachdem welcher Sensor geschaltet hat, wird der Münzwert auf den Gesamtmünzwert aufaddiert und über die I2C-Verbindung an das LCD-Display geschickt.


== Komponententest ==
== Komponententest ==
{| class="wikitable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
| Die Münze wird ins Einwurffach geworfen.
| Die Münze rollt die Rutsche herunter und fällt in das richtige Fach.
| OK
| David Schütte
| 28.12.2022
|-
| 2
| Münze fällt in das Fach.
| Der Sensor schaltet und gibt ein LOW-Signal.
| OK
| David Schütte
| 28.12.2022
|-
| 3
| Anzeige auf LCD-Display.
| Je nach eingeworfener Münze zeigt das LCD-Display den Münzwert an.
| Meistens OK
| David Schütte
| 28.12.2022
|-
| 4
| Reset-Knopf.
| Der Münzwert wird zurückgesetzt.
| OK
| David Schütte
| 28.12.2022
|-
|}


== Ergebnis ==
== Ergebnis ==
In den meisten Fällen zählt der Münzensortierer das Geld richtig. Manchmal kommt es vor, dass ein benachbarter Sensor die Münze erkennt oder ein Sensor die Münze gar nicht erkennt. Die Ursache dafür könnte die nicht 100%ig senkrechte Montage der Sensoren oder die Relexion des Gehäuses sein. Die Sensoren müssen sehr gut eingestellt werden. Somit funktioniert der Sortierer noch nicht zu 100%, zählt in den meisten Fällen aber richtig. Um das Projekt zu perfektionieren könnte man vielleicht einen Aufbau im 3D-Druck fertigen und dabei die Sensormontage und die Kabelverlegung berücksichtigen. Die Münzerkennung wäre dann wahrscheinlich besser und es würde besser aussehen. Zusammengefasst kann man allerdings sagen, dass der Sortierer seine Funktion fast vollständig erfüllt und das Projekt somit erfolgreich war.


== Probleme und Schwierigkeiten ==
== Probleme und Schwierigkeiten ==
Zeile 60: Zeile 140:


'''2. Montage der Abstandssensoren'''
'''2. Montage der Abstandssensoren'''
Die Montage sehr Abstandssensoren gestaltete sich etwas schwierig, da an der Klebefläche die Lötverbindungen der Kontakte herausstehen. Somit musste recht viel Heißkleber verwendet werden. Außerdem sollen die Sensoren im Optimalfall exakt senkrecht nach unten schauen. Die Lichtquelle und der Detektor waren teilweise etwas schief angelötet, sodass diese erst gerade gebogen werden mussten. Allerdings war es auch dann schwierig, die Sensoren genau senkrecht auszurichten. Manchmal schaltet der Sensor bei einem Einwurf einer benachbarten Münze, was eigentlich nicht der Fall sein sollte.
Die Montage sehr Abstandssensoren gestaltete sich etwas schwierig, da an der Klebefläche die Lötverbindungen der Kontakte herausstehen. Somit musste recht viel Heißkleber verwendet werden. Außerdem sollen die Sensoren im Optimalfall exakt senkrecht nach unten schauen. Die Lichtquelle und der Detektor waren teilweise etwas schief angelötet, sodass diese erst gerade gebogen werden mussten. Allerdings war es auch dann schwierig, die Sensoren genau senkrecht auszurichten. Manchmal schaltet der Sensor bei einem Einwurf einer benachbarten Münze, was eigentlich nicht der Fall sein sollte. Ein weiterer Nachteil ist die Stabilität der Sensoren und die damit verbundene Leitungsverlegung. Da die Sensoren sehr instabil sind, dürfen die Jumperkabel keinen Zug auf die Sensoren ausüben. Deshalb war es schwierig, die Leitungen irgendwo zu bündeln und festzubinden.


== Zusammenfassung ==
== Zusammenfassung ==
=== Lessons Learned ===
=== Lessons Learned ===
1. Sensoren müssen allgemein sehr präzise montiert sein und zu 100% alle Anforderungen erfüllen. Ansonsten kommt es zu Fehlern bei der Erkennung von Objekten.
2. Bei der Programmierung ist die Struktur sehr wichtig: Sendet man den Münzwert nicht in der jeweiligen Schleife per I2C an das Display, sondert sendet durchgehend in der loop Daten an das Display, kann der Sensor die Münze nicht erkennen.
3. Man sollte sich immer im Voraus Gedanken über die Kabelverlegung machen.
5. Die Auswahl von Bauteilen muss genau abgestimmt sein.


== Projektunterlagen ==
== Projektunterlagen ==
Zeile 72: Zeile 160:


== Weblinks ==
== Weblinks ==
Link zum Quellcode der Programmierung:  https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/126-150/149_Arduino_Muenzensortierer/Programmierung/


== Literatur ==
== Literatur ==

Aktuelle Version vom 10. Januar 2023, 11:23 Uhr

Abb. 1: Arduino Münzensortierer

Autor: David Schütte
Betreuer: Prof. Göbel & Prof. Schneider


Einleitung

Im Rahmen des GET-Fachpraktikums im 5. Semester der Hochschule Hamm-Lippstadt soll mithilfe eines Arduino Baukastens ein Münzensortierer entwickelt werden. Das Ziel ist das Sortieren von Münzen und die Erfassung des Geldwertes, welcher sich im Sortierer befindet. Alle Münzen lassen sich in 8 Größe unterteilen, welche je nach ihrer Größe auf einer Rutsche durch ein Loch in einen Behälter fallen. Diesen Vorgang soll ein Infarotsensor erkennen, sodass genau gezählt werden kann, wie viele Münzen in den jeweiligen Behälter gefallen sind. Schließlich sollen die Zählergebnisse und der Wert im Sortierer auf ein LCD-Display ausgegeben werden.

Anforderungen

Tabelle 1: Anforderungen des Projektes
ID Inhalt Umgesetzt Datum
01 8 Öffnungen für alle Münzsorten Beispiel Beispiel
02 8 Infarotsensoren für alle Münzsorten Beispiel Beispiel
03 8 seperate Behälter für alle Münzsorten Beispiel Beispiel
04 Rutsche, wo die Münzen heruntergleiten Beispiel Beispiel
05 Ausgabe des Gesamtwertes auf das LCD-Display Beispiel Beispiel

Funktionaler Systementwurf/Technischer Systementwurf

Funktionaler Systementwurf:

Abbildung 1: Funktionaler Systementwurf

Technischer Systementwurf:

Abbildung 2: Technischer Systementwurf


Komponentenspezifikation

1. Arduino Uno Für das Verarbeiten der Sensordaten und die Ausgabe auf das LCD-Display wird in diesem Projekt der Arduino UNO verwendet. Dieser braucht für den Aufbau 8 digitale Eingänge, durch die das Erkennen einer Münze im jeweiligen Münzfach eingelesen wird. Desweiteren muss der Arduino die Abstandssensoren mit einer Spannung von 3,3V bis 5V versorgen. Im späteren Betrieb wird der Arduino mit einer 9V-Blockbatterie versorgt, die in einem Gehäuse auf der Rückseite des Münzensortierers ist. Mit dem "Resetknopf", der auf dem Arduino verbaut ist, wird später auch der gezählte Münzenwert zurückgesetzt.

2. Abstandssensor TCRT5000 - Infrarot (IR) - 90° Zum Erkennen der Münzen wird der Abstandssensor TCRT5000 - Infrarot (IR) - 90° verwendet. Dieser wurde vor allem wegen seiner kompakten Bauform und seiner Abmaße ausgewählt, da er somit perfekt in die einzelnen Fächer der Münzen untergebracht werden kann. Er hat eine Betriebsspannung von 3,3V bis 5V (beide Spannungen am Arduino möglich) und einen Erfassungsabstand von 1mm bis 50mm. Die 50mm sind in diesem Fall auch nötig, da der Abstand im Münzfach für 2€ ca. 40mm beträgt. Mit einem Potentiometer, welches sich per Kreuzschraubendreher einstellen lässt, kann man außerdem den Schaltabstand des Sensors einstellen. Auch diese Funktion ist sehr wichtig, da die Abstände der einzelnen Münzfächer unterschiedlich sind.

3. LCD-Display Zur Ausgabe des Gesamtmünzwertes wird das LCD-Display verwendet, welches bereits im Arduino-Baukasten vorhanden ist. Dieses lässt sich einfach per I2C ansteuern. Im Betrieb soll es dann immer den aktuellen Münzwert des gesamten Behälters anzeigen.

Umsetzung (HW/SW)

Hardware

Aufbau

Der mechanische Aufbau des Sortierers (siehe Abb. 1) wurde zunächst fertig gekauft und musste im Nachhinein nur wenig bearbeitet werden. Um die 8 Sensoren anzubringen musste aus dem oberen Teil der Abdeckung ein Rechteck ausgesägt werden. Dann konnten die Sensoren oben unter das Münzfach angeklebt und verkabelt werden:

Abb. 2: Münzfächer


Der Arduino, das Batteriefach und die Steckplatte wurden auf der Rückseite des Sortieres montiert:

Abb. 3: Rückseite


Abstandssensor

Beim verwendeten Sensor handelt es sich um einen Infrarot-Abstandssensor (R20-D-4-29). Der Schaltabstand lässt sich anhand des blauen Potis einstellen. Darunter sind außerdem noch zwei LEDs zu sehen, von denen die linke LED den Schaltvorgang anzeigt (leuchtet = Sensor schaltet Digitalausgang auf LOW). Die rechte LED zeigt den Betriebszustand an, leuchtet also bei vorhandener Spannung grün. Unten sieht man die vier Anschlüsse des Sensors, in diesem Projekt wird der digitale Pin verwendet.

Abb. 4: Sensor Vorderseite


Auf der Rückseite des Sensors ist der wichtigste Teil. Dort sieht man nämlich die Infrarot-Lichtquelle (Wellenlänge 950mm) und den Detektor (Fototransistor). Der Detektor kann anhand der Stärke des refkeltierten Lichts die Entfernung zum Objekt messen. Da für die Münzenerkennung nur der digitale Pin verwendet wird, muss nur der Schaltabstand eingestellt werden.

Abb. 5: Sensor Rückseite


LCD-Display

Um den aktuellen Münzenwert des Sortieres anzuzeigen, wird das LCD-Display verwendet. Dieses kann 16 zeichen in zwei Reihen abbilden und besitzt auf der Rückseite eine angelötete Buchsenleiste.

Abb. 6: Display Vorderseite


Auf der Rückseite des Displays befindet sich die Buchsenleiste. Auf dieser befindet sich wie bei den Sensoren ein Potentiometer, mit welchem man den Kontrast der angezeigten Zeichen einstellen kann. Außerdem sind rechts die vier Anschlüsse für die I2C-Verbindung zum Arduino zu sehen. Dazu gehören zum einen die Spannungsversorgung (VCC und GND) und die beiden Kommunikationsleitungen des I2C (SDA und SCL).

Abb. 7: Display Rückseite


Software

Programmiert wird der Münzensortierer mit Arduino IDE. Dort werden die einzelnen Sensoren über ihren digitalen Pin, der beim Schaltvorgang auf LOW schaltet, ausgelesen. Je nachdem welcher Sensor geschaltet hat, wird der Münzwert auf den Gesamtmünzwert aufaddiert und über die I2C-Verbindung an das LCD-Display geschickt.

Komponententest

ID Testfallbeschreibung Erwartetes Ergebnis Testergebnis Testperson Datum
1 Die Münze wird ins Einwurffach geworfen. Die Münze rollt die Rutsche herunter und fällt in das richtige Fach. OK David Schütte 28.12.2022
2 Münze fällt in das Fach. Der Sensor schaltet und gibt ein LOW-Signal. OK David Schütte 28.12.2022
3 Anzeige auf LCD-Display. Je nach eingeworfener Münze zeigt das LCD-Display den Münzwert an. Meistens OK David Schütte 28.12.2022
4 Reset-Knopf. Der Münzwert wird zurückgesetzt. OK David Schütte 28.12.2022

Ergebnis

In den meisten Fällen zählt der Münzensortierer das Geld richtig. Manchmal kommt es vor, dass ein benachbarter Sensor die Münze erkennt oder ein Sensor die Münze gar nicht erkennt. Die Ursache dafür könnte die nicht 100%ig senkrechte Montage der Sensoren oder die Relexion des Gehäuses sein. Die Sensoren müssen sehr gut eingestellt werden. Somit funktioniert der Sortierer noch nicht zu 100%, zählt in den meisten Fällen aber richtig. Um das Projekt zu perfektionieren könnte man vielleicht einen Aufbau im 3D-Druck fertigen und dabei die Sensormontage und die Kabelverlegung berücksichtigen. Die Münzerkennung wäre dann wahrscheinlich besser und es würde besser aussehen. Zusammengefasst kann man allerdings sagen, dass der Sortierer seine Funktion fast vollständig erfüllt und das Projekt somit erfolgreich war.

Probleme und Schwierigkeiten

1. Erkennung der reinfallenden Münze Eine eingeworfene Münze sollt die Wippe hinunter und fällt dann in das Loch, wo sie reinpasst. Dieser Vorgang passiert sehr schnell, sodass die Abstandssensoren sehr genau eingestellt werden müssen. Oft war es der Fall, dass die Münze nicht erkannt wurde.

2. Montage der Abstandssensoren Die Montage sehr Abstandssensoren gestaltete sich etwas schwierig, da an der Klebefläche die Lötverbindungen der Kontakte herausstehen. Somit musste recht viel Heißkleber verwendet werden. Außerdem sollen die Sensoren im Optimalfall exakt senkrecht nach unten schauen. Die Lichtquelle und der Detektor waren teilweise etwas schief angelötet, sodass diese erst gerade gebogen werden mussten. Allerdings war es auch dann schwierig, die Sensoren genau senkrecht auszurichten. Manchmal schaltet der Sensor bei einem Einwurf einer benachbarten Münze, was eigentlich nicht der Fall sein sollte. Ein weiterer Nachteil ist die Stabilität der Sensoren und die damit verbundene Leitungsverlegung. Da die Sensoren sehr instabil sind, dürfen die Jumperkabel keinen Zug auf die Sensoren ausüben. Deshalb war es schwierig, die Leitungen irgendwo zu bündeln und festzubinden.

Zusammenfassung

Lessons Learned

1. Sensoren müssen allgemein sehr präzise montiert sein und zu 100% alle Anforderungen erfüllen. Ansonsten kommt es zu Fehlern bei der Erkennung von Objekten.

2. Bei der Programmierung ist die Struktur sehr wichtig: Sendet man den Münzwert nicht in der jeweiligen Schleife per I2C an das Display, sondert sendet durchgehend in der loop Daten an das Display, kann der Sensor die Münze nicht erkennen.

3. Man sollte sich immer im Voraus Gedanken über die Kabelverlegung machen.

5. Die Auswahl von Bauteilen muss genau abgestimmt sein.

Projektunterlagen

Projektplan

Projektdurchführung

YouTube Video

Weblinks

Link zum Quellcode der Programmierung: https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/126-150/149_Arduino_Muenzensortierer/Programmierung/


Literatur


→ zurück zur Übersicht: WS 22/23: Angewandte Elektrotechnik (BSE)