Legoteil Zählmaschine 2017: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 6: | Zeile 6: | ||
=''' | == '''Einleitung''' == | ||
Ziel dieses Projektes ist, ein System zu entwerfen, welches Legoteile zählt. Insbesondere sollen Baukästen anhand ihrer Baukastennummer eingegeben werden können, bevor die Teile dieses Baukastens physikalisch in den Bunker der Legoteilzählmaschine gefüllt werden. Alles folgende soll vollautomatisch ablaufen: | |||
* Vereinzelung der Legoteile | |||
* Zentrierung der Legoteile auf dem Band | |||
* Bildverarbeitung der Legoteile. Die erkannten Legoteile sollen in einer Excel Liste anhand ihrer Lego Teilenummer abgeglichen werden, in welcher die Anzahl aller Legoteile in Bezug auf einen Baukasten vermerkt sind. | |||
* Sortierung der Legoteile in zwei Kategorien 'Erkannt' und 'Nicht erkannt' <br /> | |||
'''Ergebnis''' | |||
Als Ergebnis soll eine Teileliste ausgegeben werden, in der vermerkt ist ob der Baukasten vollständig ist, also alle Legoteile gezählt wurden, die im Neuzustand des Baukastens darin vorhanden waren.<br /> | |||
Falls dies nicht der Fall ist, soll der Teileliste entnommen werden können, welche und wie viele Teile fehlen. | |||
=== Aufbau der Maschine === | |||
Die Legoteilzaehlmaschine wurde als neues Projekt im SDE Praktikum 2015 von Null an geplant, konstruiert, beschafft und aufgebaut. Sie unterteilt sich in zwei Förderbänder und einen Schaltschrank: <br /> | |||
* Förderband 1: Förderband als Stufenförderer mit 10mm hohen Stollen, um die Legoteile eines gesamten Baukastens aus dem Teilebunker zu befördern. Dieses ist in Höhe und Neigung einstellbar. | |||
* Förderband 2: Förderband zum transportieren der Legoteile zur Vereinzelung und zur Bildverarbeitung. Durch den Stufenförderer sollen die Teile möglichst in einer Linie hintereinander auf Förderband 2 landen. | |||
* Schaltschrank: Der Schaltschrank beinhaltet die gesamte, sonst offen zugängliche, Elektronik und ist vor Förderband 3 auf der Holzplatte fest montiert.<br /><br /> | |||
=== Beschreibung der Komponenten === | |||
Neben den bereits genannten Förderbändern wurden folgende Komponenten verbaut: <br /> | |||
* Bildverarbeitungsbox: Hier werden Teile mit Durchlicht und Auflicht beleuchtet und so Formen und Farben extrahiert | |||
* Teilvereinzelungsbox: Hier werden Teile erkannt, die dicht beieinander liegen und durch Druckluft vereinzelt werden | |||
* Schaltschrank: Beinhaltet zwei Spannungswandler sowie einen Arduino MEGA 2560 mit selbst entwickelten Aufsteckboard zur Ansteuerung der Motoren, Servos sowie zum Auslesen von Infrarotsensoren und Potentiometern. Der Arduino dient als Schnittstelle zwischen MATLAB Software und Förderbandsystem und wird über die serielle Schnittstelle angesteuert (USB). | |||
* Laptop: Der Laptop beinhaltet die Software zur Bildverarbeitung und ermöglicht in Zukunft durch Leistungsstarke Komponenten ein Livetracking zum Zählen und Sortieren der Legoeile. | |||
* Webcam: Zur Anwendung kam eine Logitech C920 Webcam. | |||
= '''Anleitung Programmstart'''= | |||
1) Vorbereitung | |||
1.1) LED-Stecker anschließen | |||
1.2) Hauptstecker anschließen | |||
1.3) Hauptschalter betätigen | |||
2) Matlab Programm öffnen | |||
2.1) unter SVN\MTR_SDE_Praktikum_2015\SRC die main_new-datei öffnen | |||
2.2) Programm starten | |||
2.3) Sollte die Datenbank nicht richtig konfiguriert werden, muss wie folgt vorgegangen werden: | |||
Unter Systemsteuerung\System und Sicherheit\Verwaltung "Datenquellen(ODBC)" auswählen. | |||
Unter dem Reiter Benutzer-DSN auf "Hinzufügen" MYSQL ODBC 5.3 ANSI Treiber auswählen. | |||
Bei "Name" Lego eintragen, bei Server localhost. | |||
4) Baukasten in der GUI auswählen | |||
5) Handgezählte Teile eintragen | |||
6) Automatischer Zählprozess | |||
6.1) Esc-Taste betätigen zur Beendigung des automatischen Zählprozess | |||
7) Motoren werden automatisch ausgeschaltet | |||
8) Inventurliste wird ausgegeben | |||
Zeile 67: | Zeile 130: | ||
- Aufbau der Sortierung | - Aufbau der Sortierung | ||
= '''Anleitung Programmstart'''= | = '''Anleitung Programmstart'''= |
Version vom 2. Juni 2017, 12:51 Uhr
Die HSHL Lego® Zählmaschine ist eine Maschine zur automatischen Sortierung und Zählung von Legoteilen. Es ist ein studentisches Projekt, welches im Schwerpunkt System-Design-Engineering des Mechatronikstudiums an der Hochschule Hamm Lippstadt durchgeführt wird. In diesem Artikel werden die Ergebnisse des sechsten Semester im Sommersemester 2017 dargestellt. [1]
Autoren: Nils Busemann, Maik Schmotz, Alexander Soschnikow, Jan Auf der Landwehr, Yank Dong, Paul Klages, Matthias Maas
Betreuer: Prof. Schneider, Prof. Goebel
Einleitung
Ziel dieses Projektes ist, ein System zu entwerfen, welches Legoteile zählt. Insbesondere sollen Baukästen anhand ihrer Baukastennummer eingegeben werden können, bevor die Teile dieses Baukastens physikalisch in den Bunker der Legoteilzählmaschine gefüllt werden. Alles folgende soll vollautomatisch ablaufen:
- Vereinzelung der Legoteile
- Zentrierung der Legoteile auf dem Band
- Bildverarbeitung der Legoteile. Die erkannten Legoteile sollen in einer Excel Liste anhand ihrer Lego Teilenummer abgeglichen werden, in welcher die Anzahl aller Legoteile in Bezug auf einen Baukasten vermerkt sind.
- Sortierung der Legoteile in zwei Kategorien 'Erkannt' und 'Nicht erkannt'
Ergebnis
Als Ergebnis soll eine Teileliste ausgegeben werden, in der vermerkt ist ob der Baukasten vollständig ist, also alle Legoteile gezählt wurden, die im Neuzustand des Baukastens darin vorhanden waren.
Falls dies nicht der Fall ist, soll der Teileliste entnommen werden können, welche und wie viele Teile fehlen.
Aufbau der Maschine
Die Legoteilzaehlmaschine wurde als neues Projekt im SDE Praktikum 2015 von Null an geplant, konstruiert, beschafft und aufgebaut. Sie unterteilt sich in zwei Förderbänder und einen Schaltschrank:
- Förderband 1: Förderband als Stufenförderer mit 10mm hohen Stollen, um die Legoteile eines gesamten Baukastens aus dem Teilebunker zu befördern. Dieses ist in Höhe und Neigung einstellbar.
- Förderband 2: Förderband zum transportieren der Legoteile zur Vereinzelung und zur Bildverarbeitung. Durch den Stufenförderer sollen die Teile möglichst in einer Linie hintereinander auf Förderband 2 landen.
- Schaltschrank: Der Schaltschrank beinhaltet die gesamte, sonst offen zugängliche, Elektronik und ist vor Förderband 3 auf der Holzplatte fest montiert.
Beschreibung der Komponenten
Neben den bereits genannten Förderbändern wurden folgende Komponenten verbaut:
- Bildverarbeitungsbox: Hier werden Teile mit Durchlicht und Auflicht beleuchtet und so Formen und Farben extrahiert
- Teilvereinzelungsbox: Hier werden Teile erkannt, die dicht beieinander liegen und durch Druckluft vereinzelt werden
- Schaltschrank: Beinhaltet zwei Spannungswandler sowie einen Arduino MEGA 2560 mit selbst entwickelten Aufsteckboard zur Ansteuerung der Motoren, Servos sowie zum Auslesen von Infrarotsensoren und Potentiometern. Der Arduino dient als Schnittstelle zwischen MATLAB Software und Förderbandsystem und wird über die serielle Schnittstelle angesteuert (USB).
- Laptop: Der Laptop beinhaltet die Software zur Bildverarbeitung und ermöglicht in Zukunft durch Leistungsstarke Komponenten ein Livetracking zum Zählen und Sortieren der Legoeile.
- Webcam: Zur Anwendung kam eine Logitech C920 Webcam.
Anleitung Programmstart
1) Vorbereitung
1.1) LED-Stecker anschließen
1.2) Hauptstecker anschließen
1.3) Hauptschalter betätigen
2) Matlab Programm öffnen
2.1) unter SVN\MTR_SDE_Praktikum_2015\SRC die main_new-datei öffnen
2.2) Programm starten
2.3) Sollte die Datenbank nicht richtig konfiguriert werden, muss wie folgt vorgegangen werden:
Unter Systemsteuerung\System und Sicherheit\Verwaltung "Datenquellen(ODBC)" auswählen. Unter dem Reiter Benutzer-DSN auf "Hinzufügen" MYSQL ODBC 5.3 ANSI Treiber auswählen. Bei "Name" Lego eintragen, bei Server localhost.
4) Baukasten in der GUI auswählen
5) Handgezählte Teile eintragen
6) Automatischer Zählprozess
6.1) Esc-Taste betätigen zur Beendigung des automatischen Zählprozess
7) Motoren werden automatisch ausgeschaltet
8) Inventurliste wird ausgegeben
Aufgabenteilung und Ziele
Die Aufgaben werden in drei Themengebiete unterteilt und von den jeweiligen Teams bearbeitet:
Separierung
Team: Maik Schmotz, Nils Busemann, Dong Yank
Ziel: Die Teile sollen einzeln in die Bildverarbeitung fallen.
Aufgaben:
- Bunkerband bei vollem Förderband stoppen
- Wenige Teile pro Lamelle auf dem Bunkerband garantieren
- Die erste Bildverarbeitung optimieren
- Luftdüsen optimal einstellen und ansteuern
- Abschirmung für zurückfliegende Teile anbringen
Bildverarbeitung
Team: Jan Auf der Landwehr, Matthias Maas
Ziel: Alle Teile werden richtig erkannt und aufgelistet. Dabei soll eine GUI die Bedienung benutzerfreundlich machen und ein Teach-In von neuen Teilen zur Verfügung stellen.
Aufgaben:
- Hardware und Software starten und Bedienungsanleitung ergänzen
- GUI verbessern
- Datenbank pflegen
- Teach-In über GUI ermöglichen
Sortierung
Team: Alexander Soschnikow, Paul Klages
Ziel: Die Legoteile werden von der Bildverarbeitung über ein neu entwickeltes Sortierverfahren direkt in die Legokästen sortiert.
Aufgaben:
- Abbau des Linearläufers und eventueller Rückbau
- Auswahl eines neuen Sortieverfahrens
- Entwicklung des neuen Verfahrens
- Konstruieren der Sortieranlage
- Aufbau der Sortierung
Anleitung Programmstart
1) Vorbereitung
1.1) LED-Stecker anschließen
1.2) Hauptstecker anschließen
1.3) Hauptschalter betätigen
2) Matlab Programm öffnen
2.1) unter SVN\MTR_SDE_Praktikum_2015\SRC die main_new-datei öffnen
2.2) Programm starten
2.3) Sollte die Datenbank nicht richtig konfiguriert werden, muss wie folgt vorgegangen werden:
Unter Systemsteuerung\System und Sicherheit\Verwaltung "Datenquellen(ODBC)" auswählen. Unter dem Reiter Benutzer-DSN auf "Hinzufügen" MYSQL ODBC 5.3 ANSI Treiber auswählen. Bei "Name" Lego eintragen, bei Server localhost.
4) Baukasten in der GUI auswählen
5) Handgezählte Teile eintragen
6) Automatischer Zählprozess
6.1) Esc-Taste betätigen zur Beendigung des automatischen Zählprozess
7) Motoren werden automatisch ausgeschaltet
8) Inventurliste wird ausgegeben
[2] [3]
Projektplanung
Zur Projektplanung wurd ein Kanbanboard angeschafft. Dieses visualisiert die Aufgaben jeder Gruppe, sodass jeder auf einen Blick seine Aufgaben sieht. Dies fördert die Motivation und garantiert, dass zielstrebig an dem Projekt gearbeitet wird. Dazu werden die einzelnen Aufgaben in kleine Arbeitspakete eingeteilt und jeweils auf einen Postet geschrieben. Um eine gute Übersicht zu garantieren wird das Board in die drei Gruppen Separierung, Bildverarbeitung und Sortierung eingeteilt. Um die Aufgaben einzuteilen gibt es vier Katerogien. Sie heißen 'offen', 'in Arbeit', 'warten' und 'erledigt'. In der ersten Karerogie stehen alle Aufgaben die noch bearbeitet werden. Arbeitet eine Gruppe an einer Aufgabe, so wandert das Postet in die nächste Katerogie. Kann an einer Aufgabe nicht weiter gearbeit werden, weil zum Beispiel etwas anderes benötigt wird, so wird die Aufgabe in die Katerogie 'warten' verschoben. In der letzen Katerogie stehen die fertigen und abgeschlossenen Aufgaben. Arbeitspakete werden möglichst so definiert, dass jede Gruppe bzw. jeder einzelnen pro Team eine Aufgabe an einem Termin abarbeiten kann und somit auf dem Board verschieben kann. [1]
Realisierung
Separierung
Die Separierung ist der erste Schritt zum Sortieren der Legoteile. Ziel dabei ist, die verschiedenen Teile zu separieren und einzeln in die Bildvearbeitung laufen zu lassen. Dies ist notwendig, da die Bildverarbeitung ledigich einzelne Legoteile erkennen kann. Dazu wurde an das Konzept des vorherigen Semesters angeknüpft.
Zur Separierung der Legoteile wird ein Bunker inklusive Bunkerförderband verwendet, welches die Teile sammelt und zum Förderband transportiert. Die Teile werden dort durch eine Bilderkennung befördert und wenn nötig vereinzelt. Die Kamera macht Bilder des Förderbandes und erkennt die Anzahl der auf dem Band liegenden Teile in einem festgelegten Bereich. Falls sich mehr als ein Teil in diesem Bereich befinden, werden diese mit Hilfe von Druckluftdüsen nach hinten gepustet. Somit werden die Teile neu angeordnet und bewegen sich anschließend erneut durch die Bilderkennung. Befinden die Legoteile bereits vereinzelt auf dem Förderband werden sie zur Legoteil Erkennung gefahren.
Die Probleme der Vereinzelung bestehen darin, dass das Bunkerband bei gefülltem Bunker überfüllt und somit zu viele Teile auf das Förderband fallen. Wird das Bunkerband nicht angehalten, fallen immer mehr Teile nach. Falls die Teile in der Bilderkennung durch die Druckluftdüsen nach hinten gepustet werden, kommt es zu einer Aufstauung der Teile in bzw. vor der Bilderkennungsbox.
Ein weiteres Problem der Separierung ist in der Ansteuerung der Druckluftdüsen zu finden. Werden mehrere Teile in dem kritischen Bereich erkannt, werden automatisch beide Düsen angesteuert und somit alle Teile an den Anfang der Teileerkennung befördert. Dadurch kann es zu einer enormen Verzögerung in der Vereinzelung der Teile kommen.
[4] [1]
Bildverarbeitung
Teach In Programmierung
Das Ansteuern des Förderbandes über die GUI sowie die Bildaufnahme funktioniert jetzt flüssiger. Dafür wurden im Quellcode geringfügige Änderungen vorgenommen, die die Performance des Programmes verbessern. Beim Thema Teach In sind Probleme bei der Farberkennung aufgetreten. Farben, die ähnlich sind, werden nicht richtig erkannt.
Teach In Teile einpflegen
Zur Vervollständigung der Liste mit Teilen, die erkannt werden, müssen noch mehr Teile eingespeichert werden.
Ansteuerung über GUI
Die Teach In Funktion ist jetzt über die GUI aus der main-Funktion erreichbar.
[2] [3]