Liste der Anhänge anzeigen (Anzahl: 5)
Die Motoren wurden am Freitag verschickt und befinden sich laut Paketverfolgung derzeit auf dem Weg an die Hermes-Niederlassung. Die sollten also Anfang der Woche hier sein.
Willst du wirklich einen Nozzle-Changer in Revision 1 einbauen? Man kann das Programm ja so schreiben, dass zuerst alle Bauteile bestückt werden, welche Nozzle 1 brauchen, dann ein manueller Nozzle-Wechsel und weiter geht´s. Da wir ja auch die LP von Hand wechseln und auch nicht so eine riesige Nozzle-Auswahl haben werden sollte sich der manuelle Aufwand in Grenzen halten (setzt eine gescheite Programmierung voraus). Später (in Revision 2) kann man den Nozzle-Changer dann ja noch dazu bauen.
...oder meintest du bloß wegen der Einteilung des Platzes?
Am Freitag wollte ich morgens schnell ein paar Fotos machen, doch kaum angefangen kam mein Chef und so musste ich die Foto-Session beenden und die Maschine zum laufen bringen.
Derzeit habe ich also erst nur wenige Fotos, aber es folgen noch welche.
Anhang 21923Nozzle-Changer der Panasonic CM
Anhang 21924Auch ein Nozzle-Changer der Panasonic CM (kleinere Nozzlen , ansonsten Gleich)
Anhang 21925Nozzlen am Bestück-Kopf (Panasonic CM)
Anhang 21926Nozzlen am Bestück-Kopf (Panasonic BM) ...leicht staubig :rolleyes:
Anhang 21927Ein Referenz-Punkt in der CM
Liste der Anhänge anzeigen (Anzahl: 3)
Hier ist ein Bild von der Bauteil-Kamera (Panasonic CM):
Anhang 21928
Panasonic CM
Anhang 21929
Panasonic BM
Anhang 21930
Liste der Anhänge anzeigen (Anzahl: 2)
Sieht doch schick aus :)
Wie gewünscht kommt hier ein Bild unserer Babys ;)
Anhang 21968Anhang 21969
Nun fehlen noch die Motor-Treiber und die Software, dann könnten wir schon mal ein bisschen testen.
Soll ich dir deine Motoren gleich schicken, oder sollen wir besser abwarten bis wir alles zusammen haben (um Porto zu sparen, falls noch mehr zusammen kommt) ?
Ich habe mal etwas gegooglet und bin dabei auf Open Loop und DSP-Drive (oder so ähnlich) gestoßen. Ein Vergleichsvideo auf Youtube zwischen Open Loop und einer herkömmlichen Schrittmotor-Steuerung war schon beeindruckend. Die Motoren verlieren bis zur Leistungsgrenze keine Schritte mehr, sind leiser, haben mehr Drehmoment und leben länger. Dummerweise kosten die Steuerungen, die dieses unterstützen, einen ordentlichen Batzen Geld. :(
Mal was ganz anderes...was hälst du von dieser Linear-Schiene?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
einballimwas
Da gibts ne ganz einfache Lösung: Wir bauen jetzt groß, damit wir bei der nächsten Revision die Spindeln und die Führungen wieder benutzen können. Wenn wir jetzt klein und kompakt bauen können wir die Spindeln wegwerfen. Wir müssen ja erstmal nicht über den kompletten Bereich fahren. Ich würde die Spindeln und Führungen auf jeden Fall wieder verwenden wollen, weil da das meiste vom Budget reingeblasen wird. Nochmal kaufen ist imho unnötig. Wird sowieso schon heftig mit Einkaufspreisen auf dein Budget zu kommen.
OK, Notfalls kann man die Spindeln ja ein Stück "aus der Maschine gucken lassen".
Zitat:
Zitat von
einballimwas
Ein Roboterarm mit Untersetzung könnte man bauen. Das Problem dabei wird nur sein, dass man die Positioniergenauigkeit und -geschwindigkeit einer 3Achs NC Maschine nicht zu den gleichen Kosten erreichen kann.
Davon bin ich noch nicht so überzeugt. Man braucht mehr Motoren, dafür jedoch kürzere Spindeln usw.
Selbst wenn die Kosten hier etwas höher liegen würden, da wäre ich auch bereit mehr Geld zu investieren, da ich einen Roboterarm universeller einsetzen könnte. Ein Bestückautomat ist für mich mehr so etwas wie "Lego für fortgeschrittene", sprich es geht mir da mehr um´s "gescheit hin bekommen" als um den späteren Einsatz. Sicher würde ich diesen auch mal Einsetzten können, aber das wäre schon ziemlich selten. Einen Roboterarm hingegen kann man für alles mögliche einsetzen.
Zitat:
Zitat von
einballimwas
Folgende Gründe spielen da rein:
- 3 Achsen werden zu 6 Achsen, was nochmal 3 zusätzliche Motoren bedeutet
6 Achsen statt 4 Achsen (X,Y,Z,Theta). Man könnte den Roboter auch mit 5 Achsen bauen, dann wäre halt kein "seitlich" greifen möglich, aber mit 5 Achsen könnte der schon genauso viel wie ein Bestückautomat mit 4 Achsen.
Zitat:
Zitat von
einballimwas
- Die Motoren müssten untersetzt werden, womit wir eine MENGE Kraft brauchen. Der Hebel, den diese Arme darstellen, ist wirklich nicht zu unterschätzen. Für einen 30cm Arm (und ein Bestücker würde garantiert länger) müssten die Motoren bei entsprechendem Gewicht schon 10Nm haben, damit der Arm nicht einknickt:
http://de.wikipedia.org/wiki/Hebel_(Physik)
Ja, wenn man den Arm baut wie ein Industrieroboter, welcher ja quasi jeden Punkt in Armweite erreichen kann. Ich würde das anders bauen.
Entschuldige bitte meine furchtbare Skizze, aber die soll ja nur verdeutlichen, was ich meine:
Anhang 21989
Links wäre quasi ein Industrieroboter, der kann mit seinen Gelenken jeden Punkt erreichen, der in seiner Reichweite liegt. Der ist schlank, schnell und äußerst flexibel ...dummerweise auch wahnsinnig teuer, da alles üppig dimensioniert sein müsste.
Rechts wäre mein Vorschlag. Die Roten Striche sollen Spindeln sein. Der Motor würde also nicht direkt als Welle eingesetzt werden, sondern lediglich die Spindeln bewegen und damit die Winkelstellungen verändern. Dieser Roboterarm kann nun nicht mehr alle Punkte im Raum erreichen (weil die Länge der Spindeln den Bewegungsradius einschränkt) und er wäre auch langsamer, da die Spindeln ja eine enorme Untersetzung darstellen.
Der Vorteil ist jedoch, dass selbst relativ schwache Motoren ausreichen Haltemoment hätten. Die Spindeln könnten auch eine relativ kleine Steigung haben, denn wenn man diese wenige cm bewegt streckt man den Arm erheblich mehr.
Den Verlust an Genauigkeit kann durch die kleinere Steigung der Spindeln ausgeglichen werden.
Mit 6 Achsen wäre dieser Roboterarm jedoch immer noch sehr flexibel einsetzbar, auch wenn man den Arm z.B. nicht senkrecht nach oben richten kann.
Zitat:
Zitat von
einballimwas
- Die Berechnungen, die du ansprichst, nent man "inverse Kinematik". DIese inverse Kinematik ist recht komplex:
http://de.wikipedia.org/wiki/Inverse_Kinematik Wenn du willst, kannst du dir die Technik mal angucken, aber ich bezweifle, dass du da durchblicken wirst. Das braucht eine Menge Einarbeitungszeit.
Na ja, soooo kompliziert ist das nun auch wieder nicht. Plump gesagt kann man das komplett mit dem Satz des Pythagoras, sowie Sinus und Kosinus errechnen. Die einzelnen Längen der Teilstücke sind uns ja bekannt. Schau mal hier:
http://www.3eck.org/triangle/de/calculator_advanced.php
A und B sind quasi "Oberarm" und "Unterarm", also eine stets bekannte Größe.
C ist quasi die Entfernung zur Zielposition
Alle nötigen Winkelmaße lassen sich daraus berechnen. Ist nun also die Zielposition bekannt kann diese Achse schon mal loslegen. Die Theta-Achse welchen den gesamten Arm dreht muss stark untersetzt werden, um eine ausreichende Genauigkeit zu gewährleisten. Diesen Winkel kann man ebenfalls leicht berechnen, denn der Roboter ist gleichzeitig der Nullpunkt. Sind die Zielkoordinaten nun z.B. x30 y200, dann ergibt das ein Dreieck vom Roboterarm (x0 Y0) nach x0 y200 (0°-Position) und x30 y200. Damit kann auch die 2. Achse zeitgleich los legen. Die 3. Achse, welche den Oberarm neigt (Schultergelenk, also am Standfuß des Roboterarms) und somit für die Höhe zuständig ist kann auch wieder nach dem gleichen Prinzip errechnet werden. Der Soll-Abstand zur Soll-Position (darin inbegriffen ist die Länge der Nozzle, usw.) ist eine Seite des (in diesem Fall rechtwinkligen) Dreiecks, die Distanz zur Sollposition ist die andere Seite des Dreiecks, Pythagoras nennt uns die 3. Seite des Dreiecks, und schon wissen wir wieder welchen Winkel wir brauchen. Diese Achse könnte sich auch direkt in Bewegung setzen, sofern keine Hindernisse im Weg sind.
Die 4. Achse muss nun die Nozzle senkrecht ausrichten. Dieser Winkel lässt sich ebenfalls ausrechnen und auch diese Achse kann direkt los legen.
Sind alle Achsen in der Sollposition kann die 5. Achse (die Z-Achse) in Bewegung gesetzt werden. Ist diese dann z.B. nach dem Abholen eines Bauteils zurück in der Endposition können wieder alle anderen Achsen gleichzeitig die nächste Position ansteuern, usw.
Wenn dann auch noch die 6. Achse eingesetzt wird (z.B. um die Nozzle nicht von oben nach unten fahren zu lassen, sondern von rechts nach links), dann muss diese Achse ihre Bewegung natürlich vor der Z-Achse ausführen und dann ist diese Achse für die anderen Achsen die Soll-Position. Aber auch das kann man alles berechnen.
5 Achsen würden für den Anfang völlig ausreichen, die 6. Achse wäre lediglich eine Option für Revision 2.
Ich hoffe dass ich hier nicht irgendwo einen groben Denkfehler habe.
Zitat:
Zitat von
einballimwas
- Der Arbeitsbereich enthält den Umkreis, in dem der Roboter in gestreckter Position fährt. Der ist wesentlich größer als das, was du an Maschine später hast.
Das ist doch einer der Vorteile. Man kann den Arbeitsbereich vergrößern ohne eine riesige Maschine bauen zu müssen. Den Roboterarm kann man "anwinkeln" und dann nimmt der kaum noch Platz weg und passt in jede Ecke (und auch in mein Auto;)). Das wäre mit dem Bestückautomaten erheblich komplizierter.
Zitat:
Zitat von
einballimwas
Auch das habe ich damals gut durchdacht und bin zu dem Schluss gekommen, dass die Nachteile die Vorteile mehrfach überwiegen.
Und was sagst du zu meiner Idee, den Roboter-Arm weniger flexibel und langsamer zu machen, dafür jedoch "genauer" und "stabiler", indem man Spindeln nutzt? Die von mir beschriebene Winkelberechnung ist einfach, aber man kann dann halt nicht so wilde Bewegungen ausführen wie es die Industrieroboter machen. Das wäre für unsere Zwecke aber auch nicht nötig. Ich würde es mal mit dem Arm eines Schaufelbaggers vergleichen. Dieser kann auch nicht jede beliebige Position einnehmen, ist aber dennoch absolut flexibel genug um "brauchbar" zu sein.
Zitat:
Zitat von
einballimwas
Eine eigene Steuerung kannst du ebenso gerne versuchen zu entwerfen. Auch hier glaube ich nicht dran, dass das so schnell funktionieren wird. Du musst dich mit USB Deskriptoren rumschlagen, die verschiedenen Endpunkte konfigurieren, dann die Schnittstelle mit dem Programm herstellen, das Protokoll entwerfen, sicherstellen, dass die Leiterplatte, die du dann entwirfst, den Anforderungen entspricht. Ich habe damals versucht, eine solche Steuerung selber zu bauen. Unmöglich für eine Einzelperson ohne mindestens ein Jahr an Feierabenden und Wochenenden reinzustecken. Ich spreche leider aus Erfahrung. Es hat schon einen Grund, wieso die Steuerungen so teuer sind.
http://www.planet-cnc.com/ Den hier kannst du sogar selber bauen. Kannst ja mal nachfragen, wie die API aussieht. Wäre günstig und gut.
Ich müsste mir mal ansehen wie die USB-Unterstützung des Atmega32U4 genau funktioniert. Wenn man damit recht einfach die Befehle vom PC zum Atmega bekommt sollte der Rest relativ einfach sein.
Ich stelle mir das so vor:
Ich teile dem Atmega mit welcher Motor wieviele Schritte in welche Richtung machen soll. Der Atmega ist dann für die Rampen zuständig, sowie für die Geschwindigkeit (was ja die Rampen beinhaltet). Vielleicht ist es auch relativ einfach möglich den Stromfluss der Motoren zu errechnen (das wäre dann ebenfalls eine Aufgabe des Atmega) und daran zu erkennen wenn ein Motor "hängt".
Die Endschalter werden auch vom Atmega überwacht. Sind die Schritte ausgeführt soll der Atmega eine Rückmeldung geben, dann folgt vom Programm der nächste Schritt, usw.
Der Atmega ist spottbillig, für die Endstufe kann man billige (aber Leistungsstarke) FET-Transistoren verwenden.
Der Aufbau wäre vorerst auf einer Lochraster-Platine und wenn sich das bewährt hat (Fehler ausgemerzt, usw.) kann man immer noch eine "gescheite" Platine erstellen.
Ich werde mich mal über den Atmega32U4 schlau machen, vielleicht eignet der sich ja auch gar nicht für mein Vorhaben.
Sollte das jedoch so passen, wie ich es erhoffe, dann würde mich die Steuerung incl. Endstufen < 50 Euro kosten (zzgl. die Kosten der Leiterplatte, wenn es dann mal gescheit gemacht wird). Zudem wären einige Endschalter/Sicherheitsschalter möglich und vor allem die Rückmeldung. Ich würde ungern die Z-Achse verfahren lassen, wenn X und Y ihre Position noch nicht erreicht haben ;)