Arduino Münzensortierer: Unterschied zwischen den Versionen
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 64: | Zeile 64: | ||
'''Abstandssensor''' | '''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. | 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]] | [[Datei:Sensor vorderseite.JPG |400px|Abb. 4: Sensor Vorderseite]] | ||
Zeile 160: | 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
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
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:
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:
Der Arduino, das Batteriefach und die Steckplatte wurden auf der Rückseite des Sortieres montiert:
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.
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.
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.
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).
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)