We decided to use a stepper motor since we need a lot of torque at low speeds and stepper motors are ideal for this. Another option would be using a geared DC motor. But this is less accurate and we want the motor to go back to its default position. This means that the motor should be able to track its own position and the a DC motor is not very good at this.
The Stepper motor we used is a bipolar stepper motor, NEMA 17, that requires 350mA at 12V with 200 revolutions per step.
This stepper motor is Adafruit compatible and therefore easy to set up.
We used an Adafruit motor shield V2.3 to control our stepper motors. We decided to use this shield for several reasons. One of the reasons was because the Adafruit libraries are very well documented.
The shields also can be mounted on the Arduino easily.
The stepper motors that we used also only required 350 mA so the Adafruit motor shields could sufficiently provide enough power for our stepper motors. It has to be noted that the shield was individually externally powered by a 12V, 5A, power supply and the Arduino itself.
We used the Raspberry Pi Model B+ to control the Arduino and connect to the internet.
The Raspberry Pi is a mini-computer that is very easy to use, well documented and also cheap. For these reasons, we decided that it would be ideally suited for this project