GRBL i dwa silniki na oś

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC

Autor tematu
Zhan
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 224
Rejestracja: 09 sie 2011, 20:37
Lokalizacja: Warszawa

GRBL i dwa silniki na oś

#1

Post napisał: Zhan » 08 cze 2020, 22:46

Witam,

nie wiem czy dobry dział ale może ktoś poradzi. Pytanie głównie do znawców GRBL, czy da się uruchomić na tym niezależne bazowanie dwóch silnikiów dowolnej osi? Na płytce CNC Shield do Arduino mam gniazdo osi A, które może pracować jako klon jednej z trzech pozostałych osi tylko jak wtedy wygląda sytuacja z bazowaniem? Buduję mały, budżetowy ploterek bramowy z dwoma silnikami w jednej z osi i trochę obawiam się klonowania napędu silnika bez niezależnego bazowania. No chyba, że moje obawy są niezasadne i ktoś mi powie, że się mylę. A biorą się one z przekonania, że silniki mogą się rozjeżdżać i w efekcie przekosić bramę. Wyobrażam sobie, że silniki po skończonej pracy nie muszą być w pełnym kroku jeśli na sterowniku ustawiony jest mikrosteping. Zatem czysto teoretycznie, jeśli dwa silniki skończą pracę w połowie swojego "nominalnego" kroku to zdjęcie napięcia z cewki może spowodować, że jeden obróci się w jedną stronę o pół kroku a drugi w przeciwną. Po kilku takich losowych zdarzeniach brama będzie przekoszona jeśli bazowanie będzie tylko na jednym silniku. Tak mi się wydaje. Problem rozwiąże druga krańcówka dla drugiego silnika ale nie mogę znaleźć informacji czy GRBL tak potrafi.

pozdrawiam



Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: GRBL i dwa silniki na oś

#2

Post napisał: TOP67 » 08 cze 2020, 23:35

Takie projekty były robiona na Arduino Mega. ALe tam jest dużo równoległych projektów i trudno to ogarnąć.
Teoretycznie jest to możliwe na Arduino UNO, ale wymaga przekompilowania, oraz przeróbek w płytce.

Co do wątpliwości, to taki przypadek byłby niezwykle rzadki. Poza tym statystycznie powinno to się uśredniać. A różnica jednego kroku jest minimalna (chyba, że to napęd paskiem). Bardziej bym się bał kolizji itp.

Dodane 33 minuty 22 sekundy:
/* ---------------------------------------------------------------------------------------
This optional dual axis feature is primarily for the homing cycle to locate two sides of
a dual-motor gantry independently, i.e. self-squaring. This requires an additional limit
switch for the cloned motor. To self square, both limit switches on the cloned axis must
be physically positioned to trigger when the gantry is square. Highly recommend keeping
the motors always enabled to ensure the gantry stays square with the $1=255 setting.

For Grbl on the Arduino Uno, the cloned axis limit switch must to be shared with and
wired with z-axis limit pin due to the lack of available pins. The homing cycle must home
the z-axis and cloned axis in different cycles, which is already the default config.

The dual axis feature works by cloning an axis step output onto another pair of step
and direction pins. The step pulse and direction of the cloned motor can be set
independently of the main axis motor. However to save precious flash and memory, this
dual axis feature must share the same settings (step/mm, max speed, acceleration) as the
parent motor. This is NOT a feature for an independent fourth axis. Only a motor clone.

WARNING: Make sure to test the directions of your dual axis motors! They must be setup
to move the same direction BEFORE running your first homing cycle or any long motion!
Motors moving in opposite directions can cause serious damage to your machine! Use this
dual axis feature at your own risk.
*/
// NOTE: This feature requires approximately 400 bytes of flash. Certain configurations can
// run out of flash to fit on an Arduino 328p/Uno. Only X and Y axes are supported. Variable
// spindle/laser mode IS supported, but only for one config option. Core XY, spindle direction
// pin, and M7 mist coolant are disabled/not supported.
// #define ENABLE_DUAL_AXIS // Default disabled. Uncomment to enable.

// Select the one axis to mirror another motor. Only X and Y axis is supported at this time.
#define DUAL_AXIS_SELECT X_AXIS // Must be either X_AXIS or Y_AXIS

// To prevent the homing cycle from racking the dual axis, when one limit triggers before the
// other due to switch failure or noise, the homing cycle will automatically abort if the second
// motor's limit switch does not trigger within the three distance parameters defined below.
// Axis length percent will automatically compute a fail distance as a percentage of the max
// travel of the other non-dual axis, i.e. if dual axis select is X_AXIS at 5.0%, then the fail
// distance will be computed as 5.0% of y-axis max travel. Fail distance max and min are the
// limits of how far or little a valid fail distance is.
#define DUAL_AXIS_HOMING_FAIL_AXIS_LENGTH_PERCENT 5.0 // Float (percent)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MAX 25.0 // Float (mm)
#define DUAL_AXIS_HOMING_FAIL_DISTANCE_MIN 2.5 // Float (mm)

// Dual axis pin configuration currently supports two shields. Uncomment the shield you want,
// and comment out the other one(s).
// NOTE: Protoneer CNC Shield v3.51 has A.STP and A.DIR wired to pins A4 and A3 respectively.
// The variable spindle (i.e. laser mode) build option works and may be enabled or disabled.
// Coolant pin A3 is moved to D13, replacing spindle direction.
#define DUAL_AXIS_CONFIG_PROTONEER_V3_51 // Uncomment to select. Comment other configs.

// NOTE: Arduino CNC Shield Clone (Originally Protoneer v3.0) has A.STP and A.DIR wired to
// D12 and D13, respectively. With the limit pins and stepper enable pin on this same port,
// the spindle enable pin had to be moved and spindle direction pin deleted. The spindle
// enable pin now resides on A3, replacing coolant enable. Coolant enable is bumped over to
// pin A4. Spindle enable is used far more and this pin setup helps facilitate users to
// integrate this feature without arguably too much work.
// Variable spindle (i.e. laser mode) does NOT work with this shield as configured. While
// variable spindle technically can work with this shield, it requires too many changes for
// most user setups to accomodate. It would best be implemented by sharing all limit switches
// on pins D9/D10 (as [X1,Z]/[X2,Y] or [X,Y2]/[Y1,Z]), home each axis independently, and
// updating lots of code to ensure everything is running correctly.
// #define DUAL_AXIS_CONFIG_CNC_SHIELD_CLONE // Uncomment to select. Comment other configs.


Autor tematu
Zhan
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 224
Rejestracja: 09 sie 2011, 20:37
Lokalizacja: Warszawa

Re: GRBL i dwa silniki na oś

#3

Post napisał: Zhan » 09 cze 2020, 14:06

TOP67 pisze:
08 cze 2020, 23:35
Teoretycznie jest to możliwe na Arduino UNO, ale wymaga przekompilowania, oraz przeróbek w płytce.

Co do wątpliwości, to taki przypadek byłby niezwykle rzadki. Poza tym statystycznie powinno to się uśredniać. A różnica jednego kroku jest minimalna (chyba, że to napęd paskiem). Bardziej bym się bał kolizji itp.
Dziękuję za wskazówkę, wydaje się to dość proste do skonfigurowania. Maszynka będzie z założenia przenośna więc narażona nie tylko na losowość kroków silnika i kolizje ale różne inne czynniki mechaniczne choćby w czasie transportu więc tak czy inaczej bazowanie niezależne jest konieczne.

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: GRBL i dwa silniki na oś

#4

Post napisał: TOP67 » 09 cze 2020, 15:02

Ponieważ CNC Shield V3 jest niekompatybilna z GRBL 1.1, to i tak trzeba go przekompilować lub pociąć ścieżki.


piotr56
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 189
Rejestracja: 21 sty 2016, 11:35
Lokalizacja: Rzeszów

Re: GRBL i dwa silniki na oś

#5

Post napisał: piotr56 » 16 cze 2020, 21:05

O czym mówisz z brakiem kompatybilności CNC Shield V3 ? Mam kilka płytek i miałem ich właśnie użyć :( ,
Mówisz o zamianie D11 i D12, czy jest jeszcze jakiś inny problem? Ta zamiana dokonała się już przy przejściu z wersji 0,8 na 0,9 , ale o GRBL 1,1 jakoś nie zwróciłem uwagi.

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: GRBL i dwa silniki na oś

#6

Post napisał: TOP67 » 16 cze 2020, 21:28

Tak. Chodzi o zamianę D11 i D12.
Można podłączyć się do źle opisanych pinów.
Można przeciąć ścieżki i polutować kynarem
Można przekompilować GRBL, jeśli się nie używa PWM.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 10
Posty: 7861
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: GRBL i dwa silniki na oś

#7

Post napisał: tuxcnc » 16 cze 2020, 21:56

Zapewne są jakieś płytki na których wszystko jest połączone na sztywno, ale w chińskich klonach wszystko jest na jumperach i niczego ciąć nie trzeba.
Opisy faktycznie będą mylące, ale da się dojść korzystając ze schematu Arduino.

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: GRBL i dwa silniki na oś

#8

Post napisał: TOP67 » 16 cze 2020, 22:03

tuxcnc pisze:
16 cze 2020, 21:56
Zapewne są jakieś płytki na których wszystko jest połączone na sztywno, ale w chińskich klonach wszystko jest na jumperach i niczego ciąć nie trzeba.
Nie ma żadnych jumperów, tylko sygnał wyprowadzony na szpilki. Można sobie podłączyć do źle opisanego złącza, ale czasem maszynę się sprzedaje i nowy nabywca może nie mieć o tym pojęcia.

A np. w płytce CNC Shield V4 zamieniono z kolei sygnały Step i Dir. Tego już się nie da inaczej podłączyć, trzeba przekompilować.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 10
Posty: 7861
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: GRBL i dwa silniki na oś

#9

Post napisał: tuxcnc » 16 cze 2020, 23:25

TOP67 pisze:
16 cze 2020, 22:03
Nie ma żadnych jumperów
Kompromitujesz się.
Obrazek
Jumpery są po to, żeby oprócz opcji o której tu rozmawiamy, można też było czwarty sterownik podłączyć równolegle z którymś osi X, Y lub Z i sterować tymi samymi sygnałami step i dir.

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: GRBL i dwa silniki na oś

#10

Post napisał: TOP67 » 16 cze 2020, 23:50

Żadną zworką nie da się zamienić D11 i D12. Te zworki służą tylko do konfigurowania czwartego stepsticka. Najpierw trzeba przeczytać ze zrozumieniem o czym piszą inni.
TOP67 pisze:
16 cze 2020, 21:28
Tak. Chodzi o zamianę D11 i D12.
Można podłączyć się do źle opisanych pinów.
Można przeciąć ścieżki i polutować kynarem
Można przekompilować GRBL, jeśli się nie używa PWM.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”