Hi John, I'm intending to use a belt and pulley. I've spec'ed my pulley diameter so in theory I'll have sufficient speed and force.
In your experience what kind of frequency do you need for a current feedback motor control loop? Thanks for the links to the linuxcnc info - I'll have a read through. In general though, what is the 'correct' way to achieve high speed use of the GPIOs on the BBB? Thanks! Luke On Wednesday, September 14, 2016 at 7:21:01 PM UTC+1, John Kasunich wrote: > > > > On Wed, Sep 14, 2016, at 01:09 PM, 'Luke Steele' via Machinekit wrote: > > Hi John, > > > > I'm planning to use a DC servo (an electrocraft E240 - because I have > one I > > can borrow from a CNC conversion). Haven't selected an H-bridge, but > maybe > > an LMD18000 (also because I have some already), though maybe I'll need > > something with a higher peak current. I'll start with those two and see > how > > I get on. > > > > Yes, controlled variable will be force. To be honest I haven't had a > great > > deal of experience with DC motor control (other than simple PID > > speed/position controllers with no real modelling), so I'm expecting > this > > to be a challenge (a fun one, hopefully!). My vague plan at the moment > is > > to leave the servo unconnected, then try attaching a known mass (via > cable > > and pulley, and no pendulums) to the cart, then look at acceleration, > and > > try and use this to establish my viscous damping etc. Then progress to a > > force controller, again just moving a mass along the track (still no > > pendulums). > > You also have to decide how to couple the motor to the cart. One extreme > would be to use a screw, where one revolution of the motor will move the > cart one screw pitch - likely 2-4mm. This would give you lots of force > but > not much speed, and the motor inertia would dominate relative to the > cart inertia. Or you could drive the cart wheels directly, meaning that > the motor has to move with the cart. Or you could use a pulley and belt > with the cart attached to the belt and the motor stationary. In either of > those cases, one revolution of the motor moves the cart by the > circumference > of the pulley or wheel, likely to be much more than 5mm. Bigger pulleys > mean less force available per unit of torque (and current). > > > So anyway, I'll have three incremental encoders - one on the back of the > > motor, two for the pendulums. Then current consumption for the servo > from > > my h-bridge. > > If you close the current loop in software, you'll need a fast control > thread and an A/D converter. Might want to measure the L/R time > constant of the motor armature to get a feel for the bandwidth needed. > It might be more than you can practically do in a general purpose > controller like the BBB. Analog current loop (or even a simple analog > hysteresis controller) might be the best choice for the current loop. > > > I thought the BBB looked promising as people are using it for motion > > control. I'm not actually intending to use machinekit - my understanding > > was it's basically for CNC type applications where you have a > precomputed > > trajectory, am I wrong? > > Machinekit (and LinuxCNC) consist of two main parts. There is the > high-level > CNC application with GUIs and non-realtime code to interpret G-code. > And there is the low level part, HAL and drivers and the realtime layer. > The CNC application isn't relevant to your project, but the HAL layer > might be. It gives you a bunch of functional blocks that that you > interconnect > as needed. (in some way similar to NI's Labview, but without the fancy > GUI). > It also gives you some handy testing tools - a software oscilloscope and > meter to look at signals as they flow between blocks, etc. You can write > your own realtime blocks in C, and non-realtime blocks in multiple > languages. > > Skim thru this tutorial for a good overview that should help you decide > if it makes sense: http://linuxcnc.org/docs/html/hal/tutorial.html > > -- > John Kasunich > [email protected] <javascript:> > -- website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit --- You received this message because you are subscribed to the Google Groups "Machinekit" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at https://groups.google.com/group/machinekit. For more options, visit https://groups.google.com/d/optout.
