Motor controller

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen

<MainPage

Aktuelle Entwicklungsphase:

Prototyp (genauer: Verfeinerung des aktuellen Designs und Modellieren und Platzierung der Elektronischen Bauteile) For more info see prototypes and follow the links.

The main topic of this page is about building electronics out of easily available parts (so no random integrated circuits are used because they come out of service at some point and are not easily replaced because of compatibility issues!). By using transistors in a direct drive configuration, we get a much more universal design, where it's up to the chosen transistors how strong the motors can be at maximum. So no more annoying incompatible drivers or driver wrapper boards.

To achieve that universal driver we need:

  • Hardware schematic (Answering: How to interconnect the transistors? Which GPIO pin goes where and do we need a Gate resistor or HC74 buffers or any diodes? If yes how to connect those?)
  • Software (Pseudo code [1] & RODOS):
    • Half stepping.
    • Microstepping if and only if hardware schematic for current sensing is provided (at usual power levels of step motors this should be easily possible directly using shunt resistors). Microstepping introduces a ton of software work as microstepping is a very vulnerable by nature of its current dependency. This can result in even worse performance and accuracy than half-stepping mode if not dealt with properly, i.e. high current sensing precision and evolved software algorithms for error compensation. It has to be evaluated if it's useful.
    • Direction,
    • Alive signal.
    • Indicator for incoming data (step and direction).

The big benefit of striding motors is that no encoder (read: feedback of motor rotor position) is required.

[1] Pseudo code because low level (->bare metal) software (program) is highly dependent on architectures and especially in microcontrollers those architectures change quickly (e.g. ah!, this register is no longer at this address in this revision? omg). Pseudo code gives an easy outline of how to implement your own software. It's to be evaluated if instead of Pseud code Python should be chosen to support all realtime Unix systems out of the box. Perhaps it makes sense to use RODOS until Linux has fixed its Realtime issues in the kernel and provides easy access for manipulating Registers directly to be able to use microcontrollerspecific special features. All of that is fulled by RODOS, unfortunately we use Linux ... oh wait .. RODOS programs can run ontop of Linux out of the box and can be compiled directly for Linux too. Isn't that cool?

Platinenherstellung: Fräsen oder Ätzen?

Ziel ist eine Fräse zur einfacheren (und m.E. gesünderen) Art der Platinenherstellung als es das im Hobbybereich gängige Verfahren - Drucken->Entwickeln->Ätzen - darstellt. Alles was man zur Ätz-Methode wissen muss findet man auf den Seiten von Ulrich Radig.


Die Arbeitsschritte sind intensiv und zeitaufwendig und nur unter einigem Aufwand reproduzierbar. Um Ulrichs Leitspruch aufzufassen: Es ist noch kein Meister vom Himmel gefallen.

Auch eine Platinen-Fräse ist kein vollautomatischer Roboter und verschiebt den Aufwand in Richtung Virtualität - d.h. CAD: man muss also Dateien generieren, die die Fräse versteht, auf passende Skalierung und korrekten Nullpunkt achten, den Rest erledigt die Maschine. Dabei lassen sich leicht auch mehrere Platinen in einem Durchgang fräsen (vorausgesetzt die Kupferbeschichtete GFK(Glas-Faser)-Platte ist groß genug und gut befestigt. Weiter wird die Zahl der Arbeitsschritte minimiert, da die Fräse zugleich auch die Löcher zur Fixierung des PCBs(printed-circuit-boards/Platine) bohren kann.


Welche der beiden Methoden man bevorzugt, hängt davon ab, wie gut man mit Chemikalien umgehen - und ob man mehr Gefallen am Weg CAD->GCode->Fräse beaufsichtigen findet als an den Arbeits- und Material-intensiven Schritten der Ätzmethode (Laser-Drucker, Glanzpapier, Spezialbeschichtung zu Entwicklung, verschiedene Chemikalien, ...).

Design - Mechanik

Anforderungen

  • Größe kompakt. (Monsterplatinen gibt es selten.)
  • X, Y, Z (3D) manövrierbar (Z nur minimal, im Grunde ist 2D ausreichend),
  • Z-Auflösung unrelevant.
  • Auf möglichst rechten Winkel aller Achsen zur Basisplattform ist stets zu achten!
  • X-, Y-Achsen präzise (Auflösung: .001m) (Leiterbahnen liegen oft eng beisammen, dabei sorgt Intereferenz für genug Ärger, ungenau gefräste Leiterbahnen verschlimmern dies - weiter besteht Gefahr des Kurzschlusses bei unsauber gefrästen Kanten!),
  • Entlastung der Mechanik (Schutz vor Verkantung) durch Fixierung von nur einem Leit-Zylinder per Achse, der zweite Zylinder dient der Stabilisierung orthogonal zur Ebene die die beiden Leitzylinder aufspannen.
  • Spindel muss Vibrationen abfangen und gut fixiert sein.

Prototyp Beta: HOG 3D PlaDruMas

Unter Betrachtung der Tatsache, dass eine Circuit Mill der Bauweise eines 3D Druckers recht ähnlich ist und beide hohe Anforderungen an Geschwindigikeit und vor allem an Präzision setzen, haben wir die beiden Maschinen kombiniert.

Augenmerk liegt auf Verwendung von, möglichst ausschließlich, Bauteilen aus unserem Universellen Prototyping Kit (UniProKit). --> Prototyp Beta: HOG 3D PlaDruMas

HOG 3D PlaDruMas-Frame L-Connectors.jpg

Prototyp Alpha

CNC Circuit Mill-Prototype.png

Design - Elektronik

Anforderung

Gegenüber 3D-Druckern niedrig! (Da kompakte Größe und geringe Materialdicken zu fräsen.)

  • Half-stepping (Halbschrittbetrieb) völlig ausreichend.
  • Auflösung Z-Achse vernachlässigbar gering.
  • Auflösung X-,Y-Achse: .001 m.
  • Kommunikation: Empfang von Step- und Direction-Kommandos.
  • Geringe Last (Capstan Mechanik wäre als Ersatz von Gewindestangen möglich).
  • Stromversorgung Elektronik: 3,3..5V wandeln aus 24V Batterie oder Netzteil (für Schrittmotoren).

Baustein: Schrittmotorsteuerung - Zentral & Modular

RepRap.org Open source developments

Kliments Driver - Open source Pololu drop-in (RAMPS compatible) - 10\$ in part costs

MC StepperMotor reprap.org-drv 8825-by kliment pololu compatible.jpg

[1]Search for Stepstick Driver Alternative to find more variation.

=Decapede

RAMPS10 Universal Board (now DecaPede - control 10 2,5A Stepper motors at once or single unit of 20A, 10 heatbeds/thermistors, ... also for robot control, free choice of Microcontroller but attention: pin compatibility! -- 10A peak, 5A passively cooled stepper driver included, several (10?) H-bridges included too -- approx. 200\$ total all pcbs including 10 drivers -- kickstarter for bulk manufacturing still not started! But now it's buildable after Bobc from RepRap forums has finished and translated it from Altium Designer to KiCad. => Build yourself. It's open source!)

Hardware (BobC GitHub) Software (Marlin configured for Decapede)


MC StepperMotor-Decapede WithReprapExpansion.jpg

Baustein: Schrittmotorsteuerung - Zentral

Lirtex PIC Schrittmotorsteuerung

Eine nicht ganz einfach zu findende Seite des einstigen Linux-Entwicklers Lirtex beherbergt auch ein hervorragendes 3/4-open-source Design für eine Circuit Mill (Platinenfräse).

Insbesondere die 20 Ampère Schrittmotorsteuerung bietet sich als Grundbaustein für unsere Open source Welt an. Dabei handelt es sich um einen zentrale 2-Pin-Schritt-Richtungs-Steuerung (Step-Direction-Controller). Die genaue Entschüsselung des Drumherum oder ein Redesign dessen (Interfacing zum Host, Software) ist noch ausstehend. Vorsichtig habe ich Ulrich Radig gefragt, ob er einen Blick darauf werfen könnte, aber es ist unwahrscheinlich, dass er Zeit dafür findet. Im Grunde ist der Algorithmus zum Halbschrittbetrieb bereits skizziert.

Lirtex Modular Step Direction Motor Controller

Lirtex PIC motor controller (TODO: firmware to be reconstructed, start with creating pseudo code out of Lirtex' explanations to the switching scheme.)


Lirtex 3 in one driver board.

3 lirtex step direction stepper motor driver in a central design for 3 motors. (TODO: reconstruct missing components, clarify Parallel plug interfacing and use one of our/Urlich Radigs/Roman Blacks modular power supplies for miscellaneous electronic parts like microcontroller, clarify h-bridge voltage supply - implement ring connectors.)

Baustein: Schrittmotorsteuerung - Dezentral/Verteilt

TMC 222 based

Weiter ist das [http://www.ulrichradig.de/home/index.php/projekte/tmc222-controller dezentrale Design von Ulrich Radig eine hervorragende Idee und für viele unserer Maschinen als Baustein von Nutzen. Dass die Strombelastung von 1,5 .. 2 A für alle unsere Maschinen ausreicht, steht ausser Frage, doch kann eine H-Brücke wie beispielsweise in Lirtex' Design anstelle des TMC222 verwendet werden. Hier geht es vor allem um die Idee der dezentralen Fixierung, so dass man kaputte Treiber schnell und einfach austauschen kann. (Alternativ könnte man jede Power stage (hier: H-Brücke) des zentralen Designs ebenfalls modular auf eine extra Platine packen. Um Kabelsalat zu vermeiden, müsste ein Mechanismus ausgedacht werden, der PCB zu PCB Verbindungen ohne Kabel erlaubt.) Distributed mount of stepper drivers as implemented by Ulrich Radig.

Links zu Entwicklungen

Mabe entwickelt eine CNC-Fräse: http://morethanfunctional.org/