Legoteil Zählmaschine 2015: Unterschied zwischen den Versionen
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 /> | ||
=== 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 | 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: Werden vorerst zur manuellen Geschwindigkeitseinstellung der Bänder genutzt, falls dies in der Arduino Software als '' '#define' '' festgelegt wurde.<br /> | |||
Infrarotsensor 1 & 2: 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: Pulsweitenmodulation zur Transistorschaltung, welche zur Ansteuerung der Förderbandmotoren dient. <br /> | |||
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' ''<br /><br /> | |||
Version vom 8. Januar 2016, 10:58 Uhr
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 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
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
- SVN: Checkout URL | https://svn.hshl.de/svn/MTR_SDE_Praktikum_2015/trunk