Synchronized independent movements with TinyG

Home Forums TinyG TinyG Support Synchronized independent movements with TinyG

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #11898
    patrickm
    Participant

    Hello,
    I have a motion application that has a winding drum mounted on a XY table. I would like to be able to synchronize the back and forth drum winding position with the drum speed without having to stop the drum when the Y axis changes direction. Is it possible to combine those motions in normal G code with one TinyG controller or could 2 TinyG controllers be synchronized in some manner?

    #11899
    cmcgrath5035
    Moderator

    You might need to enhance your description of what you want to build.

    I am envisioning a cylinder rotating around the Y axis.
    A guide ferrule is attached to something that oscillates back an forth along the Y axis.
    The movement of the ferrule is controlled by stepper motors.

    How do you propose to drive the cylinder? Could be a rotary axis driven by stepper. Or could be a DC motor toggled on and off controlled by the PWM output that normally drive DC spindle. Two of many options.

    What are you winding on to the cylinder, e.g wire?
    How precise do you need the distribution of wire to be?

    Make sure you understand what tinyG does, does not support in Gcode
    https://github.com/synthetos/TinyG/wiki/Gcode-Support

    Synchronizing two tinyGs would not be trivial, not clear why 4 motor drivers plus PWM or just motor one/off are not adequate for your plan.

    #11900
    patrickm
    Participant

    I am building a large trapezoidal retractable cloth cover (25′ x 25′) that is like a self furling sail. There are two 1/2″ bolt ropes sewn into 2 opposite edges of the cover. One side is pulled into an aluminum mast extrusion that is shorter than the other side of the cover. The other side is an aircraft cable loop pulling the other edge of the cover. The cover is wound around a 20 foot drumer that oscillates back and forth (24″ travel) to spread the bolt rope edges along the drum Y axis (~ 1/2″ wind spacing TBD). The drum rotation and y position need to be synchronized to allow the bolt rope to feed into the sail groove. The tension of the conveyor loops is provided by two separate linear actuators generating about 300 lbs of force each and is sensed by load cells.

    What I want to use TinyG to do is provide S curve motion for the drum (X), winder position (Y), tensioners (Z, A) and control the brakes. My goal is to hopefully generate some gcode program(s) for extension and retraction and use closed loop jog movements to control the extended and retracted tensions.

    #11901
    cmcgrath5035
    Moderator

    Sorry, system did not tell me you had responded.

    I have a general physical idea now of what you are building, I have help install a couple off the shelf such covers, not at this scale.

    I assume you are targeting rather large steppers, sound like a rather large mass. Tinyg can source no more 2.8A per output, thus you will likely need external drivers.

    Assuming Drum is the rotational element, I would call it Drum(A).
    In tinyG Gcode there are three linear motions (X,Y,Z) and 3 rotational (A,B,C). Obviously mechanical converstion from linear to rotational motion is possible, but you will have more math to do when figuring parameters.
    You don’t want to “waste” a linear action on a rotational task, maybe.

    tinyG may or may not have enough I/O for your complete job. Some folks have used RasPIs to supplement I/O. You may also want to look at G2Core, especially if external drivers are required. G2Core had more extensive I/O and a richer build environment for software.

    I don’t have a good idea of what a tensioner might be. By design, tinyG has kinematic concepts built in. When you issue a line of Gcode that makes a move, e.g G1 XxYyZz. tinyG will make sure the point x,y,z will be reached by each of the three actions simultaneously, each component with it’s own Jerk parameter controlling the aggressiveness of speed change along the S curve.

    #11902
    patrickm
    Participant

    I’m starting to think that 9 axis G2Core might be the right choice. I see that you added some custom Gcodes for calling JSON from Gcode. I am wondering if that could be used for my cable tensioning needs. Looking at Github I see that various CM cores are supported. Having ethernet and motion control in the same MCU is appealing. Other than Arduino, what other dev platforms have been used with G2Core?

    I am intending to use Step and Direction logic level signals to drive closed loop NEMA 34 steppers with 10:1 planetary gear boxes and brakes.

    Due to space constraints, the drum is evolving into 3 separate rotating assemblies with linear axial motion.

    The tensioners are cable blocks mounted on linear actuator arms driven by brushed DC motors driven by Gecko G320X digital servo drives with Step and Direction inputs. The cable tension is sensed by load cells driving ADC inputs. I’m starting to think that those custom temperature JSON GCodes could be modified for to control the cable tension based on the load cell values.

    #11903
    cmcgrath5035
    Moderator

    The Arduino DUE is the only commercially available platform I am aware of.
    Study the G2 wiki at https://github.com/synthetos/g2/wiki and also https://github.com/synthetos/g2/issues where you will see active discussions on numerous platforms being used.

    G2core is aimed at extending into 3Dprinter space and as such has enhanced support for some 3D Gcode extensions. The 3D machines targeted are generally not in your power requirements range but many of the projects are, you may find useful comments and ideas.

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.