Electronics > Projects, Designs, and Technical Stuff

DC motor controller

<< < (3/5) > >>

H.O:
If you wan't something COTS that does the hard work I'd look at something like the 3C20 from MESA Electronics. For an even more packaged solution you have products from vendors like Galil or even more industrial stuff like from Beckhoff. Another semi option is something like the IONI versatile servo drive from Granite Devices but it's more expensive than it needs to be based on what you've specified so far.

There are SO many options available in this power range.

thm_w:

--- Quote from: OM222O on July 27, 2020, 04:59:36 pm ---The exact motors are these:
https://uk.rs-online.com/web/p/dc-motors/3213192/

connected to PLS36 planetary gearboxes with 51:1 reduction ratio which drives the wheels and moves the robot.

I have no idea how to calculate maximum speed, torque etc as the robot isn't fully designed and can weigh more / less than estimates. It certainly is more powerful than needed and so far I've been using position control without any issues as the wheels slipping seems to be the bottle neck so either have to find wheels with better grip or slow down the motors.

the only high resolution (i.e: >20PPR encoders meant for operation by hand as knobs) were 4096 PPR high resolution optical encoders. given the maximum RPM of 8311, it means 34,041,856 counts per second at max speed. I may actually end up using frequency dividers as this seems way too high and even on paper there will be more mechanical slop as that is about 200 micro degrees of accuracy at the wheel!

I will try to make it work with the arduinos since everyone suggests it should be good enough but perhaps for other revisions I go with only 1 teensy and 1 raspberry pi, instead of multiple arduinos and a raspberry pi. multi threading and communication between different sensors / wheels, etc already adds a lot of overhead to the pi which I do no like, as well as the mentioned ports issues.

--- End quote ---

You forgot to divide 8311 RPM by 60s, so the rate should be 567kHz (signal of 1.1MHz on two pins, plus index pin, interrupt rate would be even higher than that).
I agree others are overestimating things here, it can be difficult to fit this all into an 8bit running at 16MHz along with PID loop and whatnot. Especially without a dedicated quadrature peripheral.

And if you want something that "works" buy off the shelf controller, as suggested above. If you want a project, then do it yourself.

I like the AMT encoders, although the price has come up quite a bit ($80): https://www.cuidevices.com/product/resource/amt20.pdf
They let you choose from 96 to 1024 PPR in software. This would let you get away with using the lower end micro. If you are dead set on the Teensy, then that has 4 hardware quadrature inputs, maybe you could get away with running two motors off of one board.


edit: 3C20 mentioned above is $80 and supports up to 2MHz quad counts (http://store.mesanet.com/index.php?route=product/product&path=65&product_id=129) seems reasonable. But I think that won't meet your existing 2.2MHz (if I am calculating that correctly) using the 4,096 PPR.

langwadt:

--- Quote from: OM222O on July 27, 2020, 03:42:06 pm ---An H bridge doesn't seem too hard to implement. A few logic components to allow for sign/magnitude control and 4 mosfets + a bit of filtering using ferites and capacitors. I'm having more issues on the software side of things and EMI which should be solved with shielded cables and better H bridge.

--- End quote ---

hardly worth messing with that when you can get an hbridge with all the bells and whistles including protecting against most abuse
for a few dollars

H.O:
The 3C20 that I suggested might not be suitable for that motor after all. After looking more closely at the specs of the particular motor it doesn't match the output current of the 3C20 very well - bummer. MESA have a lot of stuff though so it's worth looking around there website.

As others have said, if you want a project go ahead and make DIY solution - it's fun and trust me, it's totaly doable with an 8bit micro* but again, "outsourcing" the encoder counting to a dedicated peripheral or external chip is key at these high frequencies.

BUT if the motor drive is just one part of a bigger project then just buy something and get on with the big project.

* Here's a link to my project.

OM222O:
Do you know any encoder counters that can keep up with high frequency and numbers? Or at least something that allows for cascading of counters to 64 bits or similar? I'm not even sure which chips to search for when doing parametric search.

Edit: also looking at the teensy datasheet, it suggests 4x hardware based quadrature encoder inputs, but I can't find any reference on them in the datasheet. no max speeds, no designated pins, no registers, nothing! maybe I'm just blind but please let me know if you found some info on this.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod