Projets:Perso:2011:Motorshield

From Electrolab
Revision as of 01:15, 2 November 2011 by Clément (Talk | contribs)

Jump to: navigation, search
Motorshield
Auteur Clément
Date de proposition 25/03/2011
Tags du projet PPC
Lieu d'utilisation final Anywhere
Utilisateur final Anyone using the motorshield and in need of a few more amps
Type de projet

Projet personnel de Clément

Projet Motorshield

So there's this cool shield from Adafruit industries... but it handles such little currents !
And there's this chip, quite cool, which handles a bit more...
OpenHW is about commiting patches, right ? So here's mine !



Introduction

Because this project is intended as a patch/commit for adafruit's motorshield, I've decided to shamelessly copy the organization of their webpage documenting their version ! Please check their own webpage for further info.

File:Motorshield ALL.png

I have been using Arduino for quite some time, and also adafruit's motorshield, but I have to admit, it is a bit light on the "can handle amps" side of things. It is also a bit annoying to see all these thruhole components, because I'm quite sure people should live with their time. I have my share of arduino projects and boards (although way under what adafruit has done), and have already successfully tried to pilot tougher H bridges, my fav' being the Freescale MC33932. So, here it is: a fully pin/function compatible motorshield, using two of these sweet chips and a bit more smd components to fit my taste, for you to enjoy the greatness of opensource hardware !

  • Similar in most regards to adafruit's own motorshield:
  • 2 connections for 5V 'hobby' servos connected to the Arduino's high-resolution dedicated timer - no jitter!
  • Up to 4 bi-directional DC motors with individual 8-bit speed selection (so, about 0.5% resolution)
  • Up to 2 stepper motors (unipolar or bipolar) with single coil, double coil, interleaved or micro-stepping.
  • Pull down resistors keep motors disabled during power-up
  • Big terminal block connectors to easily hook up wires (10-22AWG) and power
  • Arduino reset button brought up top
  • 2-pin terminal block to connect external power, for seperate logic/motor supplies
  • Tested compatible with Mega, Diecimila, & Duemilanove (not yet, but should behave exactly the same)
  • Download the easy-to-use Arduino software libraries from adafruit and you're ready to go!
  • except:
  • 4 H-Bridges: MC33932 chipset provides 5A per bridge (at 6.5A overcurrent kicks in), RMS (eg: mean over time) value depends on how well you cool it. This chipset implements a thermal shutdown protection, status flag, current feedback, over-current protection, and can work between 8v and 28v. Anyway, as always, check the datasheet for more information on freescale website.
  • Full kit available sometime. Contact me if you're interested in getting a prototype, or build your own damn one !

So, what can I do with this toy, may you ask ? {pic: robot handibot} {pic: robot trophées plasci + squeakbot} More to come...

FAQ

Please start with reading adafruit own FAQ, here are only additionnal answers specific to this version.

What additionnal features does this version have to offer ?

  • More amps !
  • Less thru-holes !
  • a way to measure the current consumed on each of your motors
  • a way to get a feedback on the chipset status

Can I really use all bridges to full power ?

No. It'll hurt the chips by overheating if you dont take care of that. But at least, it wont self destroy (or less often ;) if you short the outputs

It makes annoying noises

It is being pwmed at a rather low frequency. Change your setup in the lib. Live with it, because those chips cant handle a higher pwming frequency, or design a similar board with different, better chips :)

Suggested motors

we use bigger ones, like that thing, but any DC motor of an appropriate size/spec should do the trick !

I wanna understand what's really going on inside/with this shield

Well... check with your local hackerspace, or come to visit us !

Looks like you've done almost nothing to design this shield...

That's correct ! I only looked for a more powerful device, found the freescale chip which appeared to be okay/better, read the datasheet, downloaded adafruit's design file, made a patch by implementing what is described in the datasheet, and that's it. You could have done it, too. I hope some people will improve this design, and that some other will use and enjoy this one. Props goes to adafruit industries for the initial hw design. Their sw design (library) is nice, although from what I remember of checking the code, there might be some thinking worth doing there, But nothing really required. So just use their version, it rocks !

Make it!

Unfortunately for you, I am against thruhole stuff. Too boring to solder, too boring to build the printed circuit board yourself at home or at the local hackerspace, too boring to design. Fortunately enough, it is not that hard to solder smd components. You can use an oven (any oven may work, just forget about using it for any food related activity afterward). You can use any soldering iron, even for smaller packages. But you'll have to learn how to do it. Just STFW, or get in touch with your local hackerspace.

Use it!

There's no deep, thorough tutorial about this yet. Check what is done with the original adafruit version, and come back later to check what we are using this for - once I document all that ;)

Download

Check adafruit version of the library required to use this shield. It works fine. Come back later for full eagle files of this design, I'm still working on it and way too ashamed to publish the current version... or contact me directly if you wanna check it.

Resources

http://www.adafruit.com/products/81 http://www.ladyada.net/make/mshield/ http://shop.snootlab.com/powerduino/87-rotoshield.html

Buy Kit

This one you cannot buy yet. But check its smaller/older brother on adafruit, snootlab, ... or contact us/me if you really wanna buy some.

Forums

There's actually all the ressources associated with the original version of this shield. For anything regarding this particular version, you can contact me directly through the electrolab mailing list, or on IRC: clmnt/#electrolab on freenode networks.