Motortreiber-Platine (Lesen!)
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Motortreiber-Platine (Lesen!)
Hallo zusammen!
Wie manche schon wissen bin ich grade dabei einen richtigen 3D-Drucker aus Fischertechnik umzusetzen. Da für die Ansteuerung mein Robo Interface nicht ausreicht und ich mir definitiv keine 3 TX zulege, wird die Elektronik selbst gebaut.
Nach längerem Überlegen hatte ich die Idee das ganze aus einer dicken I²C-Motortreiberplatine und einem Arduino aufzubauen. Fertige Treiberplatinen die meinen Anforderungen entsprechen konnte ich keine finden.
Meine Frage an euch: Habt ihr grundsätzlich Interesse an einer solchen Platine? Wenn sich mindestens 5 Leute melden, lohnt sichs für mich schon zu Layouten und das ganze nicht auf Lochraster zu basteln.
Hier meine angedachten Spezifikationen:
-AVR Controller
-16 Kanäle, je 4 an einem Hardware-PWM Port am AVR.
-Min. 2A pro Motor (Wenn Motor an 2 Kanälen)
-ansprechbar per RS232 (ggf. für RoboInt) und I²C, daher auch am TX nutzbar)
-6V bis mind. 24V Motorspannung möglich
-DIL Bausteine => Kann jeder einfach selbst löten
bei Fragen und Interesse bitte hier antworten, Grundsatzdiskussionen (nimm doch kein Arduino!, warum nicht gleich nen RasPi??, es gibt genug fertiges da draußen!!1!) bitte in einem eigenständigen Thread
Viele Grüße
Severin
Wie manche schon wissen bin ich grade dabei einen richtigen 3D-Drucker aus Fischertechnik umzusetzen. Da für die Ansteuerung mein Robo Interface nicht ausreicht und ich mir definitiv keine 3 TX zulege, wird die Elektronik selbst gebaut.
Nach längerem Überlegen hatte ich die Idee das ganze aus einer dicken I²C-Motortreiberplatine und einem Arduino aufzubauen. Fertige Treiberplatinen die meinen Anforderungen entsprechen konnte ich keine finden.
Meine Frage an euch: Habt ihr grundsätzlich Interesse an einer solchen Platine? Wenn sich mindestens 5 Leute melden, lohnt sichs für mich schon zu Layouten und das ganze nicht auf Lochraster zu basteln.
Hier meine angedachten Spezifikationen:
-AVR Controller
-16 Kanäle, je 4 an einem Hardware-PWM Port am AVR.
-Min. 2A pro Motor (Wenn Motor an 2 Kanälen)
-ansprechbar per RS232 (ggf. für RoboInt) und I²C, daher auch am TX nutzbar)
-6V bis mind. 24V Motorspannung möglich
-DIL Bausteine => Kann jeder einfach selbst löten
bei Fragen und Interesse bitte hier antworten, Grundsatzdiskussionen (nimm doch kein Arduino!, warum nicht gleich nen RasPi??, es gibt genug fertiges da draußen!!1!) bitte in einem eigenständigen Thread
Viele Grüße
Severin
- schnaggels
- Beiträge: 389
- Registriert: 31 Okt 2010, 23:14
- Wohnort: Kelkheim
- Kontaktdaten:
Re: Motortreiber-Platine (Lesen!)
Hi,
prinzipiell nicht uninteressant
Könntest du das eventuell noch etwas verdeutlichen?
- Wird das ein Shield was man auf vorhandene Arduino Boards aufstecken kann oder alles in einem?
Ein Shield wäre bevorzugt aber wegen DIL und den vielen nötigen Klemmen vom Platz sicher kaum machbar.
- Damit wären dann bis zu 16 z.B. Lampen oder 8 Motoren oder 4 Schrittmotoren ansteuerbar?
- mit 2A meinst du vermutlich den Dauerstrom? Wie sieht es mit kurzfristigem Spitzenstrom aus?
- planst du eine Strom-Messung / -begrenzung?
- Sollen irgendwelche Impulse / Endschalter abgefragt oder berücksichtigt werden?
Je nach Geschwindigkeit könnte das der Controller besser als erst über den Umweg Robo IF / TX -> Arduino
Gruß,
Thomas
prinzipiell nicht uninteressant
Könntest du das eventuell noch etwas verdeutlichen?
- Wird das ein Shield was man auf vorhandene Arduino Boards aufstecken kann oder alles in einem?
Ein Shield wäre bevorzugt aber wegen DIL und den vielen nötigen Klemmen vom Platz sicher kaum machbar.
- Damit wären dann bis zu 16 z.B. Lampen oder 8 Motoren oder 4 Schrittmotoren ansteuerbar?
- mit 2A meinst du vermutlich den Dauerstrom? Wie sieht es mit kurzfristigem Spitzenstrom aus?
- planst du eine Strom-Messung / -begrenzung?
- Sollen irgendwelche Impulse / Endschalter abgefragt oder berücksichtigt werden?
Je nach Geschwindigkeit könnte das der Controller besser als erst über den Umweg Robo IF / TX -> Arduino
Gruß,
Thomas
Re: Motortreiber-Platine (Lesen!)
Tag,
-Das wird kein Shield, man kann aber z.B. ein Arduino per Kabel an den I²C Port anstecken.
-Ja, genau
-2A sind nur mein Wunschwert. Spitzenstrom hängt dann davon ab welchen Treiber-IC ich nehme, spontan hätte ich zum L298 gegriffen.
-habe ich bisher nicht geplant..
-Endtaster sind eine gute Idee, 8 Stück sollten sich auch ohne weiteres noch mit anbringen lassen.
Gruß Severin
-Das wird kein Shield, man kann aber z.B. ein Arduino per Kabel an den I²C Port anstecken.
-Ja, genau
-2A sind nur mein Wunschwert. Spitzenstrom hängt dann davon ab welchen Treiber-IC ich nehme, spontan hätte ich zum L298 gegriffen.
-habe ich bisher nicht geplant..
-Endtaster sind eine gute Idee, 8 Stück sollten sich auch ohne weiteres noch mit anbringen lassen.
Gruß Severin
- schnaggels
- Beiträge: 389
- Registriert: 31 Okt 2010, 23:14
- Wohnort: Kelkheim
- Kontaktdaten:
Re: Motortreiber-Platine (Lesen!)
Moin,
wie sieht es denn generell mit der Logik aus, wird das eine "dumme" Platine die nur ein/aus macht oder soll die mehr Funktionen bekommen?
Der Arduino hätte mit dem Timing kein Problem, die Robo IFs schon. Speziell denke ich da an sowas wie:
- Motor 1 rechts 50% 100 Schritte
- Motor 2 links 100% bis zum Endschalter
- Motor 3 auf Anfang
Das wird dann allerdings deutlich aufwendiger als "nur" die über I2C / RS232 erreichbare Hardware, hätte aber mehr Nutzen...
Gruß,
Thomas
wie sieht es denn generell mit der Logik aus, wird das eine "dumme" Platine die nur ein/aus macht oder soll die mehr Funktionen bekommen?
Der Arduino hätte mit dem Timing kein Problem, die Robo IFs schon. Speziell denke ich da an sowas wie:
- Motor 1 rechts 50% 100 Schritte
- Motor 2 links 100% bis zum Endschalter
- Motor 3 auf Anfang
Das wird dann allerdings deutlich aufwendiger als "nur" die über I2C / RS232 erreichbare Hardware, hätte aber mehr Nutzen...
Gruß,
Thomas
Re: Motortreiber-Platine (Lesen!)
Hi,
I once started with a similar project and I think I still have an Eagle layout. I never completely finished the software however.
It was a half Eurocard (80x100mm2) with an ATMegaxx8 and two L298 for 4 DC motors or two stepper motors. It has the same 6-pin header as the TX and was intended to be controlled as a slave TX (RS485), it also has an I2C interface but that was intended as the connection to a second board, so I could double the number of motors. The board has current sensing so the current could be limited using PWM. I have put this project on hold in favor of a similar setup with also an ATMegaxx8 and RS485 interface. But instead of the L298 drivers I used the AMIS30624 (or TMC222). These were placed however on separate boards (each in a 9V battery case) and controlled via I2C (daisy chain). The driver has current regulation and an input for an end-switch. The ATMega with MAX485 also fits in a 9V battery box. I once demonstrated this as controller/drivers for the ft plotter. Independent of the driver IC an interesting feature that I added was the synchronous mode. Just as you can set the TX that two encoder motors should run (for a certain number of pulses) at the same speed, I implemented that the stepper motors would make a certain number of steps (could be different for each motor) and finish at the same time! Thus running at different speeds. This was achieved by implementing the Bresenham algorithm. In the present software this will only work for two motors. Algorithms however exist for e.g. 4 motors. Because the system looks like a normal TX-slave, it is compatible with RoboPro. If you're interested I can send you the files.
An alternative driver could be the A4988 which is available as relatively cheap module because it is used in many 3D printers.
I once started with a similar project and I think I still have an Eagle layout. I never completely finished the software however.
It was a half Eurocard (80x100mm2) with an ATMegaxx8 and two L298 for 4 DC motors or two stepper motors. It has the same 6-pin header as the TX and was intended to be controlled as a slave TX (RS485), it also has an I2C interface but that was intended as the connection to a second board, so I could double the number of motors. The board has current sensing so the current could be limited using PWM. I have put this project on hold in favor of a similar setup with also an ATMegaxx8 and RS485 interface. But instead of the L298 drivers I used the AMIS30624 (or TMC222). These were placed however on separate boards (each in a 9V battery case) and controlled via I2C (daisy chain). The driver has current regulation and an input for an end-switch. The ATMega with MAX485 also fits in a 9V battery box. I once demonstrated this as controller/drivers for the ft plotter. Independent of the driver IC an interesting feature that I added was the synchronous mode. Just as you can set the TX that two encoder motors should run (for a certain number of pulses) at the same speed, I implemented that the stepper motors would make a certain number of steps (could be different for each motor) and finish at the same time! Thus running at different speeds. This was achieved by implementing the Bresenham algorithm. In the present software this will only work for two motors. Algorithms however exist for e.g. 4 motors. Because the system looks like a normal TX-slave, it is compatible with RoboPro. If you're interested I can send you the files.
An alternative driver could be the A4988 which is available as relatively cheap module because it is used in many 3D printers.
Re: Motortreiber-Platine (Lesen!)
Die Logik ist ja "nur" ein Softwareproblem und deswegen austauschbar. Könnte man z.B. per I2C Bootloader tauschen.
"Propaganda does not deceive people; it merely helps them to deceive themselves."
E Hoffer
E Hoffer
-
- Beiträge: 6
- Registriert: 11 Mai 2013, 22:28
Re: Motortreiber-Platine (Lesen!)
Wenn ich das richtig verstehe, willst Du den Arduino als I2C Slave benutzen? Das aktuelle Motorshield von Adafruit (Adafruit Motor/Stepper/Servo Shield for Arduino v2 Kit - v2.0) http://www.adafruit.com/products/1438 benutzt einen über i2c kontrollierten 16-kanal PWM chip um 4 DC Motoren oder 2 Stepper anzusteuern. Max 1.2A pro Kanal. Das Teil liegt bei mir in der Schublade, und läuft hoffentlich irgendwann am Robo TX. Den PWM Chip gibt es auch separat als Breakout-Board. Zusammen mit entsprechenden Treiberbausteinen könnte man da auch eine Ansteuerung für 8 Motoren bauen, der Chip unterstützt auch die Abfrage von Tastern.Severin8b hat geschrieben:Tag,
-Das wird kein Shield, man kann aber z.B. ein Arduino per Kabel an den I²C Port anstecken.
Gruss,
A.
Re: Motortreiber-Platine (Lesen!)
Hallo,
für verschiedene komplexere Fischertechnik Projekte habe ich ebenfalls die Realisierung mit Hilfe des Arduinos + Motorshield realisiert. Dazu verwende ich einen Arduino und je nach Bedarf 1 oder mehrere Motorshields V2 von Adafruit. Mit jedem weiteren Board erhält man entweder die Ansteuerung für 4 Gleichstrommotoren oder 2 Schrittmotoren. Die Programmierung ist denkbar einfach. Einzig man sollte gleich stackable Headers mitbestellen, damit man die Shields alle aufeinander stecken kann.
Da alles über I2C läuft, bleiben sämtliche (bis auf 2 für I2C) Ports frei und man kann diese für weitere Zwecke verwenden. Genau wie beschrieben erfolgt die Anteuerung über Drehrichtung und Prozent der Leistung. Sicherlich kann man die Shields auch ohne Arduino und nur mit dem TX über I2C ansteuern. Dann müsste man aber die Bibliothek, die es fertig für den Arduino gibt noch portieren. Mehrere Shields erhalten über eine "Lötbrücke" die Adresse zugewiesen und lassen sich damit eindeutig ansprechen.
Kann die Adafruit-Platine nur empfehlen.https://www.adafruit.com/products/1438
Bin gerade dabei meine "Fischerduino" Erfahrung auf ein paar Seiten zusammenzuschreiben (Das Motorshield sollte die nächsten Tage kommen.) Dann gibt es die Infos hier: http://fischerduino.bplaced.net/
Bei speziellen Fragen helfe ich gerne
Heiko
für verschiedene komplexere Fischertechnik Projekte habe ich ebenfalls die Realisierung mit Hilfe des Arduinos + Motorshield realisiert. Dazu verwende ich einen Arduino und je nach Bedarf 1 oder mehrere Motorshields V2 von Adafruit. Mit jedem weiteren Board erhält man entweder die Ansteuerung für 4 Gleichstrommotoren oder 2 Schrittmotoren. Die Programmierung ist denkbar einfach. Einzig man sollte gleich stackable Headers mitbestellen, damit man die Shields alle aufeinander stecken kann.
Da alles über I2C läuft, bleiben sämtliche (bis auf 2 für I2C) Ports frei und man kann diese für weitere Zwecke verwenden. Genau wie beschrieben erfolgt die Anteuerung über Drehrichtung und Prozent der Leistung. Sicherlich kann man die Shields auch ohne Arduino und nur mit dem TX über I2C ansteuern. Dann müsste man aber die Bibliothek, die es fertig für den Arduino gibt noch portieren. Mehrere Shields erhalten über eine "Lötbrücke" die Adresse zugewiesen und lassen sich damit eindeutig ansprechen.
Kann die Adafruit-Platine nur empfehlen.https://www.adafruit.com/products/1438
Bin gerade dabei meine "Fischerduino" Erfahrung auf ein paar Seiten zusammenzuschreiben (Das Motorshield sollte die nächsten Tage kommen.) Dann gibt es die Infos hier: http://fischerduino.bplaced.net/
Bei speziellen Fragen helfe ich gerne
Heiko