Motor controller: Unterschied zwischen den Versionen
K (Jan R.B.-Wein verschob die Seite CNC Circuit Mill nach Stepper motor control) |
(Add links to repository, forum topic.) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | [https://forum.opensourceecology.de/viewtopic.php?f=28&t=759| --> Forum topic (Announcements, News, ...)] | |
− | |||
− | |||
− | |||
− | + | [https://github.com/faerietree/motor_controller --> Repository (project files)] | |
− | * | + | |
− | * | + | |
+ | ==Goals== | ||
+ | * low-cost (<100$ total for 4 H bridges + circuitry, uC / PC, power supply) | ||
+ | * Universal design | ||
+ | ** High power (no current sensing => no microstepping) | ||
+ | ** Low power (use Kliment or current sensing for microstepping). | ||
+ | * Calculate next half step configuration from step, direction signals from LinuxEMC and switch the H bridge inputs accordingly. | ||
+ | * 1 Phase: 2 motor, 2 signal connections per H bridge | ||
+ | * Um Kabelsalat zu vermeiden, müsste ein Mechanismus ausgedacht werden, der PCB zu PCB Verbindungen ohne Kabel erlaubt und trotzdem Hitzeentwicklung vermeidet, also die Verbindung guten Kontakt hat. Da eine H-Brücke minimal 1 und maximal 4 Verbindungen hat, ist Ziel ohne Pinstecker auszukommen. Eine Schraubverbindung ähnlich der bei Ringsteckern erlaubt größere Strombereiche. Alternativ verwende man die T-Slot-Profile als Leiter. | ||
+ | |||
+ | |||
+ | ==How== | ||
+ | * use logic level transistors (current up to 30A depending on cooling) | ||
+ | * in a direct drive configuration. | ||
+ | * Isolate using e.g. HC74 buffers. | ||
+ | * Program (Pseudo code [1]): | ||
** Half stepping. | ** Half stepping. | ||
** Microstepping if and only if hardware schematic for current sensing is provided (e.g. when using Kliment CoolDriver). 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 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. | ** Microstepping if and only if hardware schematic for current sensing is provided (e.g. when using Kliment CoolDriver). 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 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, | ** Direction, | ||
** Alive signal. | ** Alive signal. | ||
− | ** Indicator for incoming data (step and direction). | + | ** Indicator for incoming data (step and direction). |
+ | ** Receive commands like step, direction. | ||
+ | * Resolution: | ||
+ | ** low along Z axis (because circuit boards are thin) | ||
+ | ** X, Y axis: .001 m. | ||
+ | * Power supply of 3,3..5V derived from 24V Batterie oder cheap switching mode power supply. | ||
The big benefit of striding motors is that no encoder (read: feedback of motor rotor position) is required. | 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). | + | [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). Alternatively use Python which is compact and allows support of all realtime Unix systems out of the box. |
+ | |||
==Platinenherstellung: Fräsen oder Ätzen?== | ==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. | 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 [http://www.ulrichradig.de/home/index.php/info_datas/platine-aetzen auf den Seiten von Ulrich Radig]. | Alles was man zur Ätz-Methode wissen muss findet man [http://www.ulrichradig.de/home/index.php/info_datas/platine-aetzen 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. | 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. | 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, ...). | 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, ...). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Examples for central, decentral designs== | |
− | + | * [https://github.com/kliment/cooldrv Kliments 2A Driver - Open source Pololu drop-in] (RAMPS compatible) - 10\$ in part costs | |
− | + | [[File:MC_StepperMotor_reprap.org-drv_8825-by_kliment_pololu_compatible.jpg|100px]] | |
− | + | [http://reprap.org/wiki/StepStick#Repair_Attempts Candle manual reflow howto] | |
− | === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [https://github.com/kliment/cooldrv Kliments 2A Driver - Open source Pololu drop-in] (RAMPS compatible) - 10\$ in part costs | ||
− | |||
− | [[File:MC_StepperMotor_reprap.org-drv_8825-by_kliment_pololu_compatible.jpg| | ||
− | |||
− | |||
− | [http://reprap.org/wiki/StepStick#Repair_Attempts Candle manual reflow howto] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | * [http://www.reprap.org/wiki/Decapede Decapede | RAMPS10 Universal Board] to control 10 2,5A Stepper motors at once or single unit of 20A, 10 heatbeds/thermistors. 10A peak, 5A passively cooled stepper driver included, several (10?) H-bridges included too -- approx. 200\$ total. | ||
[https://github.com/bobc/bobc_hardware/tree/master/Decapede Hardware (BobC GitHub)] | [https://github.com/bobc/bobc_hardware/tree/master/Decapede Hardware (BobC GitHub)] | ||
[https://github.com/ErikZalm/Marlin/pull/713/files Software (Marlin configured for Decapede)] | [https://github.com/ErikZalm/Marlin/pull/713/files Software (Marlin configured for Decapede)] | ||
+ | [[File:MC_StepperMotor-Decapede_WithReprapExpansion.jpg|100px]] | ||
+ | * Lirtex PIC 20A motor controller (central) | ||
+ | [[File:MC_StepperMotor-Lirtex.com-Controller-Schematics.png|100px|Lirtex Modular Step Direction Motor Controller]] | ||
+ | [[File:MC_StepperMotor-Lirtex.com-Controller-Schematics-3driver-in-one-central-design.png|100px|Lirtex 3 in one driver board.]] | ||
+ | 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. | ||
− | + | *TMC 222 based [http://www.ulrichradig.de/home/index.php/projekte/tmc222-controller dezentral design]. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [http://www.ulrichradig.de/home/index.php/projekte/tmc222-controller | ||
− | |||
− | |||
− | |||
Nachteil: mehr Kabel (länger). | Nachteil: mehr Kabel (länger). | ||
Vorteil der dezentralen Fixierung ist die Modularität, so dass man kaputte Treiber einfach austauschen kann. | Vorteil der dezentralen Fixierung ist die Modularität, so dass man kaputte Treiber einfach austauschen kann. | ||
+ | [[File:MC_StepperMotor-UlrichRadig.de-Mounted_to_motor.jpg|100px|Distributed mount of stepper drivers as implemented by Ulrich Radig.]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category: OSEG Projekte]] | [[Category: OSEG Projekte]] |
Aktuelle Version vom 29. Dezember 2016, 03:58 Uhr
--> Forum topic (Announcements, News, ...)
--> Repository (project files)
Goals
- low-cost (<100$ total for 4 H bridges + circuitry, uC / PC, power supply)
- Universal design
- High power (no current sensing => no microstepping)
- Low power (use Kliment or current sensing for microstepping).
- Calculate next half step configuration from step, direction signals from LinuxEMC and switch the H bridge inputs accordingly.
- 1 Phase: 2 motor, 2 signal connections per H bridge
- Um Kabelsalat zu vermeiden, müsste ein Mechanismus ausgedacht werden, der PCB zu PCB Verbindungen ohne Kabel erlaubt und trotzdem Hitzeentwicklung vermeidet, also die Verbindung guten Kontakt hat. Da eine H-Brücke minimal 1 und maximal 4 Verbindungen hat, ist Ziel ohne Pinstecker auszukommen. Eine Schraubverbindung ähnlich der bei Ringsteckern erlaubt größere Strombereiche. Alternativ verwende man die T-Slot-Profile als Leiter.
How
- use logic level transistors (current up to 30A depending on cooling)
- in a direct drive configuration.
- Isolate using e.g. HC74 buffers.
- Program (Pseudo code [1]):
- Half stepping.
- Microstepping if and only if hardware schematic for current sensing is provided (e.g. when using Kliment CoolDriver). 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 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).
- Receive commands like step, direction.
- Resolution:
- low along Z axis (because circuit boards are thin)
- X, Y axis: .001 m.
- Power supply of 3,3..5V derived from 24V Batterie oder cheap switching mode power supply.
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). Alternatively use Python which is compact and allows support of all realtime Unix systems out of the box.
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, ...).
Examples for central, decentral designs
- Kliments 2A Driver - Open source Pololu drop-in (RAMPS compatible) - 10\$ in part costs
- Decapede | RAMPS10 Universal Board to control 10 2,5A Stepper motors at once or single unit of 20A, 10 heatbeds/thermistors. 10A peak, 5A passively cooled stepper driver included, several (10?) H-bridges included too -- approx. 200\$ total.
Hardware (BobC GitHub) Software (Marlin configured for Decapede)
- Lirtex PIC 20A motor controller (central)
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.
- TMC 222 based dezentral design.
Nachteil: mehr Kabel (länger). Vorteil der dezentralen Fixierung ist die Modularität, so dass man kaputte Treiber einfach austauschen kann.