epicycloid
Well-known member
@luni -- Apologies in advance for this long post, it grew as I tried to add the appropriate details...
Much earlier in this thread you asked about information / specific examples, so going back to revisit that I have two questions / requests...
1) We got a bit off track solving jpk's / jun's winder problem, but back around post #33 we were discussing using encoders for the example speed change. In your recent speed change video you opted to use a pot. I know you have a lot more experience with encoders than most of us ever will acquire, so I hope that when you do get a chance to go back to adding to your examples, that you will consider including a speed change variation using an encoder as well (the pot example is very useful, so I don't think they are mutually exclusive, and I learned about ResponsiveAnalogRead ).
2) You posted a video, which for the life of me I can't find now, but it had two apparently asynchronous motors moving, one running up and down on a vertical linear rail. Even without finding that video again, I think the motion of the linear stepper in your V2 Speed Override video might be the same motion. And perhaps this is somewhat related to frmdstryr's S-Curve problem and your Custom Acceleration Profile solution... I am having trouble wrapping my brain around what can or can't be done, or perhaps should or shouldn't be attempted with TeensyStep.
When frmdstyr mentioned engraving, you immediately said that was coordinated motion and redirected to grbl. Yet you move ("pump") the linear stepper in and out while the disc and pins are spinning in the Speed Override video.
Since I don't think we have seen the sample code for the movement of another motor, like the linear stepper, I am hoping you can add some more details / clarification to what can or can't (or shouldn't) be attempted with TeensyStep.
In my application, more complex but I didn't think too unlike jpk's winder problem, or I think frmdstyr's s-curve, requires one stepper to "oscillate," while the other rotates, but ultimately starting and ending in coordination (with of course the complication of "synching" the accelerations and decelerations at the beginning and end of the whole cycle). Like the winder problem, I need one motor to oscillate n times in m revolutions of the other motor.
The simplest case would be a sine function, oscillating say 48 times, while the other motor completes one revolution (or e.g. 100 revolutions driving a geared ratio to a spindle). One example of what I am describing is what I accomplish with mechanical "cams" (rosettes) today. You can see some examples here, which are all tied to the spindle and a single revolution per pattern. There are many more "functions" that I would like to implement well beyond the "cam" examples, but they provide an illustration for the problem.
I can easily imagine many other users of the library wanting to do similar things, that are much less sophisticated than jumping to multi-axis coordinated motion and g-code like grbl. The best one that comes to mind are the hundreds of people who have used AccelStepper to make camera sliders... imagine a camera slider with one motor driving the rail slide, while another is rotating the camera platform 360°, one or more times, during the linear motion travel. Exactly the motion I'm trying to accomplish, but different application / illustration.
I can't tell from your comments if the limitations in TeensyStep have to do with managing / coordinating the different acceleration profiles of the two motors? E.g. does your V2 Speed Override only work because there is no real mass involved in your system? Is your reservation about mechanical systems where the mass needs to be factored in, hence very different acceleration profiles? Or is there some other issue I'm not aware of?
Sorry, lots of questions but what I really am trying to ask / request is... is this something that TeensyStep is appropriate for, and if so, is this something you can include in your next round of examples? Or maybe even provide some real-world help with before the next examples are released?
--Jon
Much earlier in this thread you asked about information / specific examples, so going back to revisit that I have two questions / requests...
1) We got a bit off track solving jpk's / jun's winder problem, but back around post #33 we were discussing using encoders for the example speed change. In your recent speed change video you opted to use a pot. I know you have a lot more experience with encoders than most of us ever will acquire, so I hope that when you do get a chance to go back to adding to your examples, that you will consider including a speed change variation using an encoder as well (the pot example is very useful, so I don't think they are mutually exclusive, and I learned about ResponsiveAnalogRead ).
2) You posted a video, which for the life of me I can't find now, but it had two apparently asynchronous motors moving, one running up and down on a vertical linear rail. Even without finding that video again, I think the motion of the linear stepper in your V2 Speed Override video might be the same motion. And perhaps this is somewhat related to frmdstryr's S-Curve problem and your Custom Acceleration Profile solution... I am having trouble wrapping my brain around what can or can't be done, or perhaps should or shouldn't be attempted with TeensyStep.
When frmdstyr mentioned engraving, you immediately said that was coordinated motion and redirected to grbl. Yet you move ("pump") the linear stepper in and out while the disc and pins are spinning in the Speed Override video.
Since I don't think we have seen the sample code for the movement of another motor, like the linear stepper, I am hoping you can add some more details / clarification to what can or can't (or shouldn't) be attempted with TeensyStep.
In my application, more complex but I didn't think too unlike jpk's winder problem, or I think frmdstyr's s-curve, requires one stepper to "oscillate," while the other rotates, but ultimately starting and ending in coordination (with of course the complication of "synching" the accelerations and decelerations at the beginning and end of the whole cycle). Like the winder problem, I need one motor to oscillate n times in m revolutions of the other motor.
The simplest case would be a sine function, oscillating say 48 times, while the other motor completes one revolution (or e.g. 100 revolutions driving a geared ratio to a spindle). One example of what I am describing is what I accomplish with mechanical "cams" (rosettes) today. You can see some examples here, which are all tied to the spindle and a single revolution per pattern. There are many more "functions" that I would like to implement well beyond the "cam" examples, but they provide an illustration for the problem.
I can easily imagine many other users of the library wanting to do similar things, that are much less sophisticated than jumping to multi-axis coordinated motion and g-code like grbl. The best one that comes to mind are the hundreds of people who have used AccelStepper to make camera sliders... imagine a camera slider with one motor driving the rail slide, while another is rotating the camera platform 360°, one or more times, during the linear motion travel. Exactly the motion I'm trying to accomplish, but different application / illustration.
I can't tell from your comments if the limitations in TeensyStep have to do with managing / coordinating the different acceleration profiles of the two motors? E.g. does your V2 Speed Override only work because there is no real mass involved in your system? Is your reservation about mechanical systems where the mass needs to be factored in, hence very different acceleration profiles? Or is there some other issue I'm not aware of?
Sorry, lots of questions but what I really am trying to ask / request is... is this something that TeensyStep is appropriate for, and if so, is this something you can include in your next round of examples? Or maybe even provide some real-world help with before the next examples are released?
--Jon