Legoteil Zählmaschine 2015: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 43: Zeile 43:
Die Kommunikation zwischen Matlab und dem Arduino wird über die serielle Schnittstelle realisiert.  
Die Kommunikation zwischen Matlab und dem Arduino wird über die serielle Schnittstelle realisiert.  
Alles nötigen Informationen werden als String von MATLAB an den Arduino geschickt, wo der String ausgelesen und seinen Variablen zugeordnet wird.<br />
Alles nötigen Informationen werden als String von MATLAB an den Arduino geschickt, wo der String ausgelesen und seinen Variablen zugeordnet wird.<br />
Der String ist folgendermaßen Aufgebaut:
Ein kompletter Motorstring zum Anschalten der Förderbänder würde beispielsweise wie folgt aussehen: S1A010B075C001;<br />
Erzeugt wird der benötigte String aus der GUI in MATLAB heraus, sodass der Nutzer nicht direkt mit diesm Format in Beerührung kommt.<br />
DIe Interpretation und Bedeutung der Daten ist dennoch der Tabelle innerhalb diesen Kapitels zu entnehmen.
 
Unabhängig von der eingestellten Geschwindigkeit wird diese über eine Anlauffunktion in der Arduinosoftware Schrittweise erreicht. Sobald das erste Förderband seine Sollgeschwindigkeit erreicht hat, wird das nächste über die Anlauffunktion gestartet. Somit wird verhindert, dass alle drei Motoren gleichzeitig starten, was einen hohen Anlaufstrom von insgesamt etwa 30A zur Folge hätte. Die Reihenfolge der Förderbandanläufe ist durch die Reihenfolge Band 3, Band 2, Band 1 so gewählt, dass nach einem Stillstand des Systems zuerst alle alten Legoteile von den Förderbändern transportiert werden können. Es werden dadurch auch erst neue Teile auf die Bänder 2 und 3 befördert, wenn diese bereits ihre Sollgeschwindigkeit erreicht haben. Das verhindert eine Häufung der Teile und ermöglicht eine Vereinzelung der beförderten
Legoteile.
 
Der String ist folgendermaßen Aufgebaut und interpretiert:


{| border="1"
{| border="1"
Zeile 73: Zeile 80:


|}<br />
|}<br />
Ein kompletter Motorstring zum Anschalten der Förderbänder würde beisielsweise wie folgt aussehen: S1A010B075C001;
 


=== Arduino MEGA 2560 mit Aufsteckboard ===
=== Arduino MEGA 2560 mit Aufsteckboard ===
[[Datei:Blockschaltbild Arduino.png|500px|thumb|right|Blockschaltbild des Arduinos]]
[[Datei:Blockschaltbild Arduino.png|500px|thumb|right|Blockschaltbild des Arduinos]]
Zur Ansteuerung der drei Gleichstrommotoren, der zwei Servomotoren und der Verwendung von bis zu zwei Infrarotsensoren über den Arduino wurde ein Aufsteckboard entwickelt und angefertigt.<br />
Zur Ansteuerung der drei Gleichstrommotoren, der zwei Servomotoren und der Verwendung von bis zu zwei Infrarotsensoren über den Arduino wurde ein Aufsteckboard entwickelt und angefertigt.<br />
Der Link [https://svn.hshl.de/svn/MTR_SDE_Praktikum_2015/trunk/Dokumentation/11_MotorShield_MEGA/ SVN Link zur Dokumentation des Aufsteckboards] führt zur ausführlichen Dokumentation des Aufsteckboards, mit Stückliste, fertigen Schaltplänen und dem Layout sowie der Pinbelegung zum Arduino MEGA. Zum Verständnis dient das Blockschaltbild  
Der Link [https://svn.hshl.de/svn/MTR_SDE_Praktikum_2015/trunk/Dokumentation/11_MotorShield_MEGA/ SVN Link zur Dokumentation des Aufsteckboards] führt zur ausführlichen Dokumentation des Aufsteckboards mit Stückliste, fertigen Schaltplänen und dem Layout sowie der Pinbelegung zum Arduino MEGA. Zum generellen Verständnis dient das Blockschaltbild des Arduinos.<br /><br />
'''Inputs'''<br />
Potentiometer 1 -3:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Werden vorerst zur manuellen Geschwindigkeitseinstellung der Bänder genutzt, falls dies in der Arduino Software als '' '#define' '' festgelegt wurde.<br />
Infrarotsensor 1 & 2:&nbsp;&nbsp; Einer der Sensoren soll als Absicherung der berechneten Öffnungszeit der Sortierschranken dienen. Die Infrarotsensoren sind noch nicht implementiert.<br /><br />
 
'''Outputs'''<br />
Motor 1-3:&nbsp;&nbsp;&nbsp; Pulsweitenmodulation zur Transistorschaltung, welche zur Ansteuerung der Förderbandmotoren dient. <br />
Motor 4&5:&nbsp;&nbsp; Pulsweitenmodulation für die Servomotoren, die am Ende des Bandes die erkannten Teile in die drei Kategorien '' 'Erkannt' '', '' 'Nicht erkannt' '' und '' 'Erkannt: Fremdteil' ''<br /><br />





Version vom 8. Januar 2016, 10:58 Uhr

Legoteilzählmaschine im Überblick

In diesem Projekt gilt es eine Maschine aufzubauen, die Legoteile zählt.

Einleitung

  • Aufbau der Maschine
  • Beschreibung der Komponenten

Getting Started

Einschaltreihenfolge

Im Folgenden wird der Ablauf zum Starten der Legoteilzählmaschine und einer erfolgreichen Verbindung mit dem PC beschrieben. Sofern alle Schaltschrank internen Verbindungen wie im Stromlaufplan belassen wurden, ist der Ablauf wie folgt einzuhalten:

1. PC einschalten und USB Webcam (Logitech C920) sowie die USB Verbindung zum Arduino MEGA mit dem PC Verbinden.
2. Netzstecker für die Lichtbox einstecken, solange diese noch manuell über den Netzstecker eingeschaltet werden muss.
3. Netzstecker für den Schaltschrank einstecken.
4. Hauptschalter (seitlich am Schaltschrank) einschalten.
5. MATLAB GUI starten und Bildverarbeitung bzw. Förderbandansteuerung über diese grafische Oberfläche durchführen. SVN Link zur GUI


Leitfragen für die Dokumentation von Prof. Schneider:

  • Wie wird geflasht?
  • Notwendige Tools in welcher Version? Vorraussetzungen?
  • Links zu den Startdateien
  • Screenshots und Fotos verwenden


Matlab Webcam Installation

Da es bei der Einrichtung der USB-Kamera in MatLab des Öfteren zu Schwierigkeiten kam wird an dieser Stelle eine Anleitung zur Einrichtung dieser bereitgestellt. Bei der Installation handelt es sich um das Support Package OS Generic Video Interface - Windows Video (winvideo)

Matlab Webcam Installation

Matlab GUI

  • Link des Standorts
  • SW als PAP
  • Modulbeschreibung

Kommunikation Matlab mit Arduino

String zur Ansteuerung der Förderbänder und der Servomotoren

Die Kommunikation zwischen Matlab und dem Arduino wird über die serielle Schnittstelle realisiert. Alles nötigen Informationen werden als String von MATLAB an den Arduino geschickt, wo der String ausgelesen und seinen Variablen zugeordnet wird.
Ein kompletter Motorstring zum Anschalten der Förderbänder würde beispielsweise wie folgt aussehen: S1A010B075C001;
Erzeugt wird der benötigte String aus der GUI in MATLAB heraus, sodass der Nutzer nicht direkt mit diesm Format in Beerührung kommt.
DIe Interpretation und Bedeutung der Daten ist dennoch der Tabelle innerhalb diesen Kapitels zu entnehmen.

Unabhängig von der eingestellten Geschwindigkeit wird diese über eine Anlauffunktion in der Arduinosoftware Schrittweise erreicht. Sobald das erste Förderband seine Sollgeschwindigkeit erreicht hat, wird das nächste über die Anlauffunktion gestartet. Somit wird verhindert, dass alle drei Motoren gleichzeitig starten, was einen hohen Anlaufstrom von insgesamt etwa 30A zur Folge hätte. Die Reihenfolge der Förderbandanläufe ist durch die Reihenfolge Band 3, Band 2, Band 1 so gewählt, dass nach einem Stillstand des Systems zuerst alle alten Legoteile von den Förderbändern transportiert werden können. Es werden dadurch auch erst neue Teile auf die Bänder 2 und 3 befördert, wenn diese bereits ihre Sollgeschwindigkeit erreicht haben. Das verhindert eine Häufung der Teile und ermöglicht eine Vereinzelung der beförderten Legoteile.

Der String ist folgendermaßen Aufgebaut und interpretiert:

Buchstabe Wert Beschreibung Funktion
S 0 oder 1 Status der Förderbänder Status gibt an ob die Förderbänder Ein-(1) oder Ausgeschaltet(2) werden sollen
A 000-100 Geschwindigkeit Band 1 Prozentuale Geschwindigkeit des Stufenförderers (Band 1)
B 000-100 Geschwindigkeit Band 2 Prozentuale Geschwindigkeit des mittleren Förderbandes (Band 2)
C 000-100 Geschwindigkeit Band 3 Prozentuale Geschwindigkeit des letzten, kurzen Förderbandes (Band 3)



Arduino MEGA 2560 mit Aufsteckboard

Blockschaltbild des Arduinos

Zur Ansteuerung der drei Gleichstrommotoren, der zwei Servomotoren und der Verwendung von bis zu zwei Infrarotsensoren über den Arduino wurde ein Aufsteckboard entwickelt und angefertigt.
Der Link SVN Link zur Dokumentation des Aufsteckboards führt zur ausführlichen Dokumentation des Aufsteckboards mit Stückliste, fertigen Schaltplänen und dem Layout sowie der Pinbelegung zum Arduino MEGA. Zum generellen Verständnis dient das Blockschaltbild des Arduinos.

Inputs
Potentiometer 1 -3:      Werden vorerst zur manuellen Geschwindigkeitseinstellung der Bänder genutzt, falls dies in der Arduino Software als '#define' festgelegt wurde.
Infrarotsensor 1 & 2:   Einer der Sensoren soll als Absicherung der berechneten Öffnungszeit der Sortierschranken dienen. Die Infrarotsensoren sind noch nicht implementiert.

Outputs
Motor 1-3:    Pulsweitenmodulation zur Transistorschaltung, welche zur Ansteuerung der Förderbandmotoren dient.
Motor 4&5:   Pulsweitenmodulation für die Servomotoren, die am Ende des Bandes die erkannten Teile in die drei Kategorien 'Erkannt' , 'Nicht erkannt' und 'Erkannt: Fremdteil'



  • Dokumentation der Schnittestelle zu Matlab
  • HW Platine als BSB mit Beschreibung und Links zu den Quellen (PCB-Layout, Stückliste,...)

Stand Bildverarbeitung

Gefährdungsbeurteilung

SVN Link zur Gefährdungsbeurteilung

Projekttagebuch

Liste offener Punkte

Die offenen Punkte und Ideen für kommende Semester sind im Nachfolgenden aufgelistet.

Thema Beschreibung Nähere Informationen Status benötigter Teile
Neues 24 V Netzteil 24V/10A Netzteil gegen 24V/20A austauschen, um Überlast beim Lauf aller Motoren zu verhindern. Netzteil ist bestellt (Frau König)
Notausschalter Notausschalter montieren und verdrahten Vorschlag: Montage Zentral über Förderband oder auf Montageplatte Kabel sowie Notausschalter vorhanden
Servo für Teilesortierung Identisches Servo wie bisher gegenüberliegend montieren, um drei Sortierfächer (Erkannt/Nicht Erkannt/Fremdteil) zu sortieren Konstruktion siehe *link* (tbd) Bestellung wurde an Fr. König geleitet
Kabelkanal montieren Kabelkanal zur ordentlichen Verlegung der Leitungen an den Förderbändern montieren
Kamerahalterung Konstruktion einer Kamerahalterung für die Logitech C920 WebCam Vorschlag: Brücke über Förderband
Bildverarbeitungskasten Für die Bildverarbeitung muss eine der gebauten Bildverarbeitungsbox-Prototypen ausgewählt und montiert werden. Hierfür wurden Lichttests durchgeführt. Ergebnisse sind protokolliert SVN Link zu den Lichttests Prototypen der Lichtboxen vorhanden


Siehe auch / Weiterführende Links

  1. SVN: Checkout URL | https://svn.hshl.de/svn/MTR_SDE_Praktikum_2015/trunk