Gast
#5705842
Hallo, ich möchte Folgendes realisieren und kann mir nicht recht vorstellen, dass es dazu noch nichts Wiederverwendbares oder Anpassbares gibt, konnte aber bisher trotz wiederholter Suchen nichts finden. Meine Frage ist, ob ich etwas übersehen habe, bevor ich mich an eine eigene Realisierung mache (wäre für meine jetzigen AVR-Programmierkenntnisse anspruchsvoll): Ich möchte per I2C DC-Modellbaumotoren (ca. 6V-12V, < 1A je Motor) steuern und dabei per Encoder Position und Geschwindigkeit möglichst exakt regulieren. Gesucht ist eine quelloffene Software, die ich idealerweise anpassen kann bzw. die nicht auf eine konkrete Treiberlösung angewiesen ist. *Ideal*lösung wäre: Slave: - AVR-basiert - steuert selbstständig mind. einen, ggf. auch mehrere, DC-Motoren über passende Treiber gemäß I2C-Kommandos des Masters - überwacht per Interrupt die dazugehören Encoder zur genauen Positionierung/Geschwindigkeitskontrolle - Kann auf verschiedene Konstellationen je Motor konfiguriert werden (z.B. Anzahl und Pins der Endswitches und Encodereingänge je Motor) - Kann eine Selbstkalibrierung durchführen (Ermitteln der Endposition(en), Ermittlung der erforderlichen Anlauf- und Erhaltungswerte) - Relativ abstraktes Set an Steuerbefehlen/Registern zum Anfahren bestimmter Positionen oder Dauerlauf, Start/soft stop/hard stop, sowie Status-Abfrage je Motor - Ein Traum wären natürlich noch Beschleunigung ähnlich z.B. der AccelStepper library Master: - Mögl. Arduino Library zur Ansteuerung des Slave Das einzige Projekt, das ich finden konnte und das einer solchen Lösung ziemlich nahe kommt, ist SAMI: https://hackaday.io/project/158429-smart-motor-driver-for-robotics https://www.tindie.com/products/Danny024/sami-smart-motor-driver/ Dummerweise ist das auf Slave-Seite PIC-basiert und harwareseitig nicht flexibel. Was es für AVRs ansonsten natürlich gibt, sind diverse I2C-Motortreiber Lösungen, nur fehlt denen halt die Encoder-Komponente. Weitere Infos: - Schrittmotoren sind für meinen Bedarf keine Lösung - Gedacht ist das sowohl für originäre Encodermotoren als auch für die separate Ergänzung von Encodern zu normalen DC-Motoren. Ob die Encoder also per Hall-Sensor, Lichtschranken oder Taster realisiert werden, sollte egal sein, aus Sicht des Slave wäre das einfach je ein Digitaleingang bzw. 2 zur Richtigungserkennung je Motor Bin dankbar für alle konstruktiven Tipps! Sven