Im currently doing a project at university that involves running my coding with a wifi shield from async lab. The data that the wifi shield receives will control a stepper motor and three servos all doing different motions.
I was wondering if it would be easier to run my coding with a motor shield on top of the wifi shield or will this not work?
I have only ever used one shield at a time and I'm being cautious about using two at a time. will this work?
Would I be easier just making a PCB board to control my motors through?
It might be easiest to leave the wi-fi shield in place, and purchase separate serial-controlled stepper motor and servo motor control boards, then communicate with those via an empty pin (Pololu has some great boards for this, fairly inexpensive too, and they all use the same protocol and can be generally daisy-chained off of an i/o pin for serial comms).
As far as your question is concerned, you would need to find out what each shield consumes as far a pin resources; if pins are shared, there could be (probably will be) an issue. You could make your own stepper/servo motor shield (you could even use an ATMega with bootloader, plus custom code, as the controller if you wanted to), but it would probably be cheaper (and take less time) to purchase such boards (note, you will probably be hard-pressed to find a combo board that controls servos and steppers on the same board; they are typically separate functions and thus, separate boards).
I know the adafruit motor shield has I/O pin conflicts with the Ethernet shield, and I think (but am not sure) that it also conflicts with the WiFi shield.
The adafruit shield also has what I consider a "design error" (though Lady Ada disagrees) in the servo section: it doesn't provide a convenient way to run the servos off an external power supply, and the Arduino's on-board regulator can't handle any but the smallest of servos, under minimal load. It also has only 2 servo connectors, and uses L293D drivers that many people have found inadequate for their motors (the L293 is really only good for about 500mA per bridge).
This is not to say that I consider the adafruit shield "bad": it's great for people who want to get familiar with using small motors and servos. But its capabilities are limited.
I think cr0sh' suggestion of an "external" controller board is good. If you've built your WiFi shield with stackable headers, you can use a protoshield, or a board like this one from NKC to simplify your connections to external controllers.
Thanks for the help guys that was really useful advice.
I'm quite new to arduino and I have never made my own shield before how do I go about this?
I'm guessing that it is the same sort of process as creating a PCB but with the header pins in the board to connect to the arduino. Is there any things that I need to make sure I do or check before I start making a shield?
And I'm pretty sure that I could just use open source software like fritzing to create the shield. Yes?
Yes a "shield" is just another PCB with a set of header connectors in a specific location. It doesn't even need to be a particular size: there are several prototyping shields around that are "jumbo" sized to allow for more user circuitry than the relatively small area on a standard-sized shield.
One of the nice things about the Arduino is that pretty much all the hardware is also "open-source": not only can you get copies of the schematics, but most suppliers even provide the CAD files for them, with licenses that let you use them as starting points for your own designs. You should start by looking at those to get a feel for what you need to do to make your own board.
Thanks Ran that has been a great help.