-
-
Erfahrener Benutzer
Roboter Genie
(Unter-)Projekt Schrittmotor-Controller
Da ich Schrittmotoren u.a. auch für Marvin einsetzen möchte, habe ich ein Controllersystem entwickelt. Rahmenbedingungen für diese Entwicklung waren folgende:
- Die Stepperansteuerung muss preiswert sein, da viele Controller hergestellt werden müssen.
- Die Controller müssen leicht sein, da Marvin die Controller im Körper bzw. auf den Beinen zu sitzen hat, also keine schweren Kühlkörper.
- Die Ansteuerung der Controller darf keinen hohen Traffic auf dem Datenbus hervorrufen
- Die Controller müssen mit Marvins Datenbus ansprechbar sein
- Die Controller müssen in Hard und Software identisch sein um die Herstellung und Wartung zu erleichtern
- Die Controller müssen bis 1A liefern können.
- Für Mechaniken in denen mehrere Schrittmotoren für eine Bewegung zuständig sind, müssen die Steppermotoren absolut synchron betrieben werden können.
- Die Controller müssen die Motoren mit variabler Leistung ansteuern können.
Meine Lösung:
Ein Interface-Controller zwischen Marvins Bussystem und dem Stepperbus wandelt Marvins Befehle in Steuerbefehle für die einzelnen Schrittmotorcontroller um.
Die einzelnen Schrittmotor-Einheiten unterscheiden sich nur durch eine Geräteadresse im EEPROM.
Komplexe Bewegungsabläufe werden vom Interface-Controller nacheinander zu den einzelnen Schrittmotor-Controllern geschickt und in einem Ringbuffer abgelegt. Diese Daten bestehen aus einer Zielposition, der Zeit in der diese Position zu erreichen ist und der Stromstärke für den Schrittmotor in dieser Bewegungsphase.
Nachdem alle Daten übertragen wurden (was ja nicht auf Marvins Bus sondern getrennt auf dem Stepperbus in hoher Geschwindigkeit erfolgen kann), wird die komplette Befehlssequenz (bis zu 128 Einzelbewegungen je Motor) auf ein Befehl des Interface-Controllers hin ausgeführt.
Die komplette Schrittmotorsteuerung erfolgt durch eine timergesteuerte ISR, welche in Assembler geschrieben wurde. Die Routine zum Datentransfer zwischen den Modulen sind ebenfalls in Assembler. Der Rest ist Basic (Bascom).
Die Hardware besteht aus je zwei TEA3718 Treiberstufen und einem Atmega644 da ich von diesen DIL-Atmegas noch einige übrig hatte.
Den Nachteil des größeren Platzbedarf habe ich dadurch ausgeglichen, das ich einiges an Elektronik unter dem Atmega untergebracht habe.
http://www.youtube.com/watch?v=nUkDDkwh4Ak
Gruß MeckPommER
P.S.: mein Schrittmotor-Geschwindigkeitstest -> http://www.youtube.com/watch?v=YAWUDQny_qM
-
Erfahrener Benutzer
Roboter-Spezialist
Sieht net schlecht aus.
1A Arbeit. Was haben die Schrittmotoren für eine Stellkraft?
Gruß,
Sven
-
Erfahrener Benutzer
Roboter-Spezialist
hey sehr cool, endlich mal wieder was neues von meinem Lieblings-Hexa-Projekt.
Bin auch total begeistert von Schrittmotoren und ich verstehe nicht warum man unbedingt Servos nehmen muss, da die doch viel teurer sind. Ok die Ansteuerung mag einfacher sein aber dennoch mit Schrittmotoren hat man viel mehr Möglichkeiten
Hab noch ein paar Fragen, verwendest du den Standardaufbau, also 2 TEA3718 pro Endstufe? Wie sieht dann die Ansteuerung vom Controller aus? Laut Datenblatt sehe ich da 6 Eingänge.
Wie warm werden die TEAs bei Volllast? Mit 1A bist du ja noch nicht am Leistungsmaxima von 1,5A.
Es gibt die TEAs auch in SO-20 Gehäusen, vielleicht sparen die so noch ein wenig Platz.
@sven
Die haben 8Ncm
-
Erfahrener Benutzer
Roboter Genie
@sven04: Die Schrittmotoren haben ca. 22Ncm. Nicht viel, aber für meine Zwecke über Getriebe völlig ausreichend.
@daniel.weber: wenn man gute Schrittmotore nimmt und bedenkt, was die Elektronik drumherum kostet, sind Schrittmotore nicht wirklich billiger, glaube ich Servos sind halt um einiges einfacher in der Anwendung, da man sich über Anfangspositionen etc. keine Gedanken machen muss.
Ja, ich nehme den Standardaufbau mit 2 TEA3718. Die Ansteuerung erfolgt per 6 Leitungen auf Logik-Niveau und variablem VRef über PWM von Controller.
Was das Leistungsmaxima angeht ... da fangen die 3718 wohl schon an zu dampfen Maximallast in meiner Schaltung liegt bei 750mA und dann sind die Regler etwas über handwarm.
Da ich noch am Experimentieren bin, wollte ich die ICs im DIL-Gehäuse verwenden um sie in IC-Sockeln zu betreiben und ggf. auch in späteren veränderten Schaltungen einsetzen zu können.
Gruß MeckPommER
-
Erfahrener Benutzer
Roboter Experte
Hi
wirklich toll und sauber aufgebaut, meine Hochachtung!
Möchtest du alle Servos durch Schrittmotoren ersetzen? Das wäre ja ein ziemlicher Hardwareaufwand, wenn ich mir die 18 Reglerkarten vorstelle. Die brauchen ja dann auch einiges an Platz...
Welche Spannung benötigen denn die Stepper? Bei den 30V aus dem Speedtest - Video bräuchte man schon eine eigene Versorgung, da wirds mit Akkus alleine etwas eng, oder irre ich mich da?
Viele Grüße
ikarus_177
-
Erfahrener Benutzer
Roboter Genie
Nein, es werden nicht alle Schrittmotore ersetzt ... mal gucken, bin ja noch in der Entwicklungsphase
Mit Akkus ist das kein Problem, es wird ein 8s1p LiPo-Akku werden, und Marvin V4 wird ja auch um einiges größer wegen des Platzbedarfs der Mechanik und Elektronik. Die meisten Treiberplatinen verschwinden dann auch in den Beinen.
Gruß MeckPommER
-
Erfahrener Benutzer
Roboter-Spezialist
wie muss so eine Ansteuerung vom Controller aussehen? ist das ein 6Bit Muster oder wie kann man sich das vorstellen?
Das Datenblatt gibt da nicht wirklich auskunft drüber oder ich bin wieder einmal blind
Woher hast du die Motoren und was haben die gekostet?
Fragen über Fragen
-
Erfahrener Benutzer
Roboter Genie
hi... die idee finde ich genial!!!!
nur wirst du trotzdem ein poti oder ähnliches mit anbringen um die aktuelle position zu erfassen?
denn wenn du die haltkraft der Stepper überschreitest kann er sehr schnell schritte verlieren. wäre für deine weiteren berechnungen fatal!
gruß bammel
-
Erfahrener Benutzer
Roboter Genie
@daniel.weber: je Treiberbaustein sind es 2 Bit für die Stromstärke (I0 und I1 im Datenblatt) und ein Bit für die Stromrichtung. Daraus ergibt sich bei 2 Treibern - wie du schon richtig sagst - ein 6-Bit Muster.
Die Motoren habe ich von der Bucht für ca. 4 Euro/Stück - sind meilenweit besser und stärker als die von Pollin und dabei auch leichter.
@Bammel: Es wird kein Poti verbaut sondern eine Reflex-Lichtschranke, die an der Welle die Bewegungen der Achse kontrolliert. Schrittverlust wäre in der Tat fatal.
Gruß MeckPommER
-
Erfahrener Benutzer
Robotik Einstein
Sieht sehr hübsch aus Aber doch eine riesen Platine ... Was für Busse verwendest du? ATmega als Gateway? Gefällt mir!
Schrittmotoren sind zwar Cool, brauchen aber mehr Platz als Servos (oder sind in der größe sehr teuer 9
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen