StepFish Schrittmotor controller (3D-Druck)

Vorstellung von 3D-Druck-Teilen, Fragen zu 3D-Druckern, usw.
Discussion of 3D printed parts, Questions and answers on 3D printers and printing, etc.

Moderator: Jan3D

Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
juh
Beiträge: 637
Registriert: 23 Jan 2012, 13:48

StepFish Schrittmotor controller (3D-Druck)

Beitrag von juh » 10 Jun 2019, 22:46

Hallo,

der ftPwrDrv-Controller ist bereits vorbestellbar und wohl kurz vor der Auslieferung. Mich reizt aber nun mal das Selbermachen, daher hier meine eigene Lösung. Sie ist theoretisch nachbaubar, aber gegenüber dem ftPwrDrv-Controller (und der Lösung von Frans) software-seitig und wahrscheinlich auch hardware-seitig eher im Nachteil. Pluspunkt ist aber der schönere Name: StepFish ;-)

Bild
Bild

Beim trainierbaren Roboterarm (hier ein aktuellerer Video), den ich als Demonstrator aufgebaut habe, dient StepFish mit einem Arduino-Bootloader als standalone Controller für die Minebea-Stepper und den Servo-Greifer und als I2C master, der das LCD steuert. Die Bedienung erfolgt über eine kleine IR-Fernbedienung, der Empfänger ist an einem der drei frei verwendbaren Pins angeschlossen, ein weiterer Pin treibt den Greifer-Servo. Perspektivisch soll StepFish aber als I2C-Slave arbeiten, ich arbeite noch an einem I2C-wrapper für die AccelStepper-Library.

Auf thingiverse finden sich nicht nur die .STLs für das Gehäuse sondern auch eine ZIP mit den Dateien zum Herstellen der einseitigen Platine. Deren Bestückung ist tricky, da die Anschlusspins auf der Kupferseite angebracht sind. Sollte tatsächlich jemand an einem Nachbau interessiert sein, bitte kontaktiert mich hier per PM oder auf thingiverse, dann liefere ich Details nach.

https://www.thingiverse.com/thing:3537610

lg
Jan
Zuletzt geändert von juh am 11 Jun 2019, 09:31, insgesamt 1-mal geändert.

Benutzeravatar
PHabermehl
Beiträge: 2181
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von PHabermehl » 10 Jun 2019, 23:39

Ach, ist der süß!

Gefällt mir sehr gut!

Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Arnoud-Whizzbizz
Beiträge: 37
Registriert: 20 Mär 2021, 17:06
Kontaktdaten:

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Arnoud-Whizzbizz » 14 Jan 2022, 13:25

Im Moment arbeite ich daran, wie ich meinen 'Zauberling' (Arduino-basierter Silberling) dazu bringen kann, eine Reihe von Schrittmotoren über I2C zu steuern. Dafür kann ich mir natürlich ein ftPwrDrive kaufen. Das kann (nach level-shiften, weil ich einen 3,3V I2C-Bus verwende) dafür verwendet werden, aber da ich noch einen ATmega328 IC und einige A4988-Treiber liegen habe, denke ich darüber nach, so etwas wie den StepFish zu machen.

Auf Thingiverse.com schriebst du: "StepFish firmware will be based on the AccelStepper library, basically offering an I2C-wrapper to provide AccelStepper functionality over I2C, with additional endstop configuration and optional servo/interrupt functionality."

Ich kann jedoch Ihre Software nicht finden, die es ermöglicht, den StepFish als I2C-Slave zu verwenden. Hat das jemals funktioniert? Oder ist es sinnvoller, dafür die Software des ftPwrDrive zu suchen, wenn ich selbst etwas basteln möchte?

Kurz gesagt, bevor ich anfange, etwas zu machen, muss ich schauen, was schon da ist und was andere schon gemacht haben. :D

juh
Beiträge: 637
Registriert: 23 Jan 2012, 13:48

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von juh » 14 Jan 2022, 22:42

Hi Arnoud,
es gibt leider keine Version, die veröffentlichbar wäre, auch wenn ich das immer noch auf meiner Liste habe. Der Code von ftPwrDrive ist sicher die kompetentere und bessere Option.
Viel Erfolg
Jan

Benutzeravatar
Bjoern
Beiträge: 435
Registriert: 04 Jan 2018, 12:34

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Bjoern » 14 Jan 2022, 23:35

Hi Arnoud,

wobei ich sagen muss das Stefan die aktuelle Version noch nicht ins Git gepackt hat. Da geht es aber nur um die Unterstützung der aktuellen HW.
Die hat sich im Laufe der Zeit auch verändert und wurde dadurch an manchen Stellen etwas einfacher einzustellen. Das betrifft aber nur die Stromstärke und normalerweise änderst du das nicht .

Björn

Benutzeravatar
elektrofuzzis
Beiträge: 163
Registriert: 25 Jun 2016, 09:40

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von elektrofuzzis » 15 Jan 2022, 19:17

Hi,

AccelStepper ist recht einfach zum laufen zu bekommen. Die ersten Versuche auf dem ftPwrDrive liefen damit. Probleme bekam ich mit mehreren Steppern gleichzeitig.

Es gab für die chinesischen CNC Shields mal eine I2C Diskussion, die m.E. nie fertig wurde.

Der ftPwrDrive Code ist stark auf die HW zugeschnitten, hier gibt es demnächst eine neue Version mit optimierten Referenztastern. (Die gute Nachricht so nebenbei: ft Reedkontakte laufen am ftPwrDrive als End- und Referenztaster. Als Referenzpunkt sind sie massiv genauer als die Taster.)

Gruss

Stefan

Arnoud-Whizzbizz
Beiträge: 37
Registriert: 20 Mär 2021, 17:06
Kontaktdaten:

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Arnoud-Whizzbizz » 15 Jan 2022, 21:08

Danke!

AccelStepper ist in der Tat sehr einfach, ich habe es schon ausprobiert mit ein Nema14. Aber ich habe mich gefragt, ob jemand bereits einen Master/Slave-Wrapper darum geschrieben hat (oder ob die Bibliothek selbst dies bereits unterstützt, konnte ich nicht sehen). Ich denke, dazu komme ich noch, aber probiere es erstmal über I2C ohne zweiten Arduino-Slave für meinen 'Zauberling'.

Schön, dass der ftPwrDrive noch weiterentwickelt wird! Es ist in der Tat nützlich, sofort einige Inputs zu haben, denke ich. Das hat mich auch mit der Idee des StepFish angesprochen. Der ftPwrDrive erscheint mir sehr schön und durchdacht! Ich werde das in Zukunft auf jeden Fall prüfen (obwohl ich wahrscheinlich auch den ft-Extender direkt mitbestellen muss) :D

Im Moment versuche ich zu sehen, ob ich ein Silberling mit einem PCF8575 herstellen kann. Es hätte dann acht konfigurierbare (TTL-Pegel) Eingänge (Referenztasten)/Ausgänge (Signal-LEDs) und wahlweise acht Treiberausgänge, vier normale Motorausgänge oder zwei Schrittmotorausgänge. Ich habe noch einen Satz DRV8833-Boards (einmal falsch bestellt, ich brauchte TB6612FNG), mit denen das möglich sein sollte (theoretisch, haha). Sie können vier PCF8575 auf dem I2C-Bus haben, also ist alles schön skalierbar.

Ich habe es gerade auf einem Steckbrett aufgebaut, also wenn ich es zum Laufen bringen kann... ;)

PCF8575-test.jpg
PCF8575-test.jpg (191.93 KiB) 353 mal betrachtet

Benutzeravatar
Bjoern
Beiträge: 435
Registriert: 04 Jan 2018, 12:34

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Bjoern » 15 Jan 2022, 23:35

Hallo Arnoud,

in Kürze produziere ich die nächste Charge vom ftPwrDrive. Das Projekt lebt natürlich noch.
Wir werden aber keine extremen Änderungen mehr an der Platine vornehmen. Die läuft ja gut.

Theoretisch kannst du dir ja einen eigenen Level Shifter bauen und brauchst dann den ft-Extender nicht.

Uns ging es bei beiden Projekten aber darum, das dieser jeder ganz einfach einsetzen kann und die Geräte auch passende ft-Gehäuse haben.
Somit kann jeder einfach in die Materie einsteigen und sich keine Gedanken machen, ob das Setup funktionieren könnte oder nicht.
Es läuft direkt und jeder kann dies innerhalb von 5 Minuten überprüfen.

Björn

Arnoud-Whizzbizz
Beiträge: 37
Registriert: 20 Mär 2021, 17:06
Kontaktdaten:

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Arnoud-Whizzbizz » 16 Jan 2022, 00:03

Ja, ich verstehe deinen 'Drive' (haha), im Grunde will ich das Gleiche, aber genau wie du mag ich den Weg dorthin auch sehr! Und es führen mehrere Wege nach Rom :-)

Ich denke, ich werde Ihre Schnittstelle auf jeden Fall ausprobieren und weiterverfolgen wollen! Ich möchte vorerst eine ziemlich spezifische Schnittstelle mit dem Silberling-Formfaktor, damit ich Programmierung und klassische Elektronik kombinieren kann.

Meine ersten Experimente gelingen übrigens mit den 16 voll programmierbaren Ein- und Ausgängen des PCF8575. Ich werde zuerst eine Bibliothek dafür schreiben, zur Verwendung mit dem 'Zauberling'.

Alles wird fortgesetzt. Ich werde deine Projekte sicher weiter verfolgen!

juh
Beiträge: 637
Registriert: 23 Jan 2012, 13:48

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von juh » 16 Jan 2022, 11:22

Arnoud-Whizzbizz hat geschrieben:
15 Jan 2022, 21:08
AccelStepper ist in der Tat sehr einfach, ich habe es schon ausprobiert mit ein Nema14. Aber ich habe mich gefragt, ob jemand bereits einen Master/Slave-Wrapper darum geschrieben hat (oder ob die Bibliothek selbst dies bereits unterstützt, konnte ich nicht sehen).
Das Interessante ist, dass es um ein wenig mehr als einen Wrapper geht. Denn das polling per run() bzw. runSpeed() will man ja nicht über den I2C-Bus machen und ihn damit verstopfen. Dann könnte man auch gleich einen beliebigen I2C Bus-expander nehmen und braucht keinen Arduino mit Firmware. Der Slave sollte also eine kleine state-machine implementieren, die eigenständig die Stepper "pollt", das run()-commando müsste dann nur einmal über den Bus gehen. Womit dann aber auch gleich die Frage der Endstops mit auf dem Tisch hat. Die kann natürlich der Master überwachen, aber eleganter wäre, das macht der Slave auch gleich, v.a. wenn sie am Slave angeschlossen sind.

Alles lösbar und eher eine Fleißaufgabe, aber wie gesagt, es geht nicht um einen Wrapper, der einfach das AccelStepper-Interface 1:1 umsetzt.

vg
Jan

Arnoud-Whizzbizz
Beiträge: 37
Registriert: 20 Mär 2021, 17:06
Kontaktdaten:

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Arnoud-Whizzbizz » 16 Jan 2022, 11:55

Ja, zu dieser Erkenntnis komme ich auch. Die Grundidee war ebenfalls, einen zweiten Prozessor zu verwenden, aber eine Art 'control-language' zu machen, mit der auf einer höheren Ebene über den I2C-Bus kommuniziert werden kann. Dies würde zwar weniger individuelle Kontrolle geben, würde aber für die meisten einfachen motorischen Aktionen ausreichen.

Aber ich stimme zu, dass mit 16 MHz eine Lösung ohne einen lokalen Treiber für den zweiten Arduino in Geschwindigkeitsprobleme geraten könnte. Zu viel Aufwand. Vor allem, wenn man auch noch die vierstufigen Signale komplett aufbauen muss, weil es noch über einen I/O-Expander läuft. Es könnte immer noch eine nette Idee sein, zu sehen, ob dies zum Beispiel mit einem ESP32 möglich ist. Spielerei :geek:

Ich lasse die Idee, Schrittmotoren zu steuern, jetzt für eine Weile stehen und stelle zuerst meinen I/O-Expander für TTL-Pegel-I/O und die Steuerung normaler DC-Motoren fertig. Ich denke auch, dass ich aus Kompatibilitätsgründen meine Spannung des I2C-Busses auf 5V anpassen werde. Vielleicht in einer zukünftigen Version mit einem Jumper einstellbar machen. Ebenso die Pullup-Widerstände.

Dann tauche ich in die Schrittmotoren ein und werde mit der Steuerung über A4988 oder TMC2100 spielen. Es war eher eine wilde Idee, Schrittmotoren über ein TB6612FNG-, DRV8833- oder L298N-Modul anzusteuern, aus Sicht der Flexibilität und rein, weil es theoretisch möglich ist.

Wenn es nur schnell und gut sein soll, melde ich mich beim Gundermann Software Webshop. :D Auf jeden Fall ist es schön zu wissen, dass diese Entwicklungen auch weitergehen, ich freue mich schon auf die neue Version dieser Schnittstelle!

juh
Beiträge: 637
Registriert: 23 Jan 2012, 13:48

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von juh » 16 Jan 2022, 13:28

Arnoud-Whizzbizz hat geschrieben:
16 Jan 2022, 11:55
Ja, zu dieser Erkenntnis komme ich auch. Die Grundidee war ebenfalls, einen zweiten Prozessor zu verwenden, aber eine Art 'control-language' zu machen, mit der auf einer höheren Ebene über den I2C-Bus kommuniziert werden kann. Dies würde zwar weniger individuelle Kontrolle geben, würde aber für die meisten einfachen motorischen Aktionen ausreichen.
[...]
Dann tauche ich in die Schrittmotoren ein und werde mit der Steuerung über A4988 oder TMC2100 spielen. Es war eher eine wilde Idee, Schrittmotoren über ein TB6612FNG-, DRV8833- oder L298N-Modul anzusteuern, aus Sicht der Flexibilität und rein, weil es theoretisch möglich ist.
Alles klar. Zwei Gedanken noch: Bezüglich 'control language' für I2C und andere Schnittstellen gibt es eine Reihe von interessanten Lösungen wie z.B. CBOR, die gegenüber Ansätzen wie JSON kaum zusätzlichen Traffic verursachen, das Leben aber wesentlich leichter machen weil sie einem z.B. das leidige Encoding von floats etc. abnehmen und für die es entsprechende libraries (z.B. MicroCBOR) wie Sand am Meer gibt.

Und dann sind bei dem Thema natürlich auch immer noch die dezidierten Treiber wie AMIS−30622 oder TMC223 mit eigenem I2C Interface zu erwähnen, mit SPI gibt es auch einiges. IIRC hat Rey Vilo ein ft-Projekt mit dem TMC223 online. Einfacher, aber weniger flexibel und die Chips, geschweige denn fertige Module, gibt es nicht an jeder Ecke.
vg
Jan

Benutzeravatar
Bjoern
Beiträge: 435
Registriert: 04 Jan 2018, 12:34

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Bjoern » 16 Jan 2022, 15:50

Hallo Arnoud,
Wenn es nur schnell und gut sein soll, melde ich mich beim Gundermann Software Webshop
Betonung liegt dann wenn hier auf dem gut. Schnell kann jeder.

Du hast im ftPwrDrive eben alles drin und der kümmert sich autark um alles. Und du siehst, bis du den Punkt hast vergeht ein wenig Zeit.
Und du darfst natürlich gerne zm schnuppern bei mir im Shop vorbei schauen. Da findest du ja auch Bilder der Platine und bekommst so ein Gefühl über die ganzen Bauteile.

Björn

Arnoud-Whizzbizz
Beiträge: 37
Registriert: 20 Mär 2021, 17:06
Kontaktdaten:

Re: StepFish Schrittmotor controller (3D-Druck)

Beitrag von Arnoud-Whizzbizz » 16 Jan 2022, 16:25

Ich hatte mir Ihren Webshop bereits angesehen. Aufbau und Funktionsweise des ftPwrDrive sind klar. ;)

Was ich mit „schnell“ meinte, ist, wenn ich es lieber nicht selbst herausfinde, weil ich diesen Prozess selbst so sehr mag. Für mich liegt ein großer Teil des Reizes im Experimentieren.

Antworten