Controlling movements

board: Duemilanove
ops: OSX

Dear Reader,

I am very new to Arduino, for my first project with it, I would like to get some tips! My plan is to control an installation (small one first) with data from Supercollider or Max/Msp (these data would be received by the Arduino software and be altering the installation via the Arduino hardware).

I had a look on the servo motors, I think they could serve the purpose... but...

1, Can the "general purpose motors" be any good as well? Can I change the rate (speed) of their turning? I have only seen 2 pins on them.

2, Is it possible to use more than one motor (4-5) with the Arduino board (is the 5V enough) or shall I try to have separate power supplies (like AA batteries) for them.

3, Is it possible just to use the digital pins (Arduino) connected with the servo's signal pins to alter they degrees (having separate batteries)?

Any help appreciated,
sorry for week English.

All the best
Krisztian

Taking your questions in numerical order:

  1. You can use "general purpose motors" but it's not clear what you want them to do. A normal motor will spin as long as power is applied, whereas a "servo" will turn to a specified angle and stop there. Sometimes, you will find "servo motors", which is confusing and quite leikely not the same thing as a "servo". If you use a general purpose motor, you can control its speed with PWM and its direction by using an H-bridge, with just those two wires.

  2. If you want to add several motors or servos to the Arduino, you'll need to provide extra power somehow. An external power supply of some sort, for the motors.

  3. Yes, if you use servos, then you simply wire up the Arduino's digital pin to the servo's pulse width control input pin. Then, with an extra power supply (batteries perhaps), you can control the position of the servo's output.

You must think carefully whether you need a servo (turns to a specified angle and stops) or a motor (spins as long as power is supplied, variable speed, reversible). They're very different devices, and require very different controls!

thank you for your answer.

The idea is to use EEG (brainwave data received in Max/Msp) to change some motions of the installation.

As I am a beginner with C and Arduino which code (for Servo or GPm motors) is easier to use? I am thinking about to receive data from 0 - 100 (for example) from Max/Msp which could change the speed and an other message could change the angle (SERVO) or the direction (GPS) of the motors.

Thank you,
Krisztian

It's not really a matter of how easy the motors are to control (they're both fairly straightforward), but it's all about how you want them to move. If you want 180 degree movement, and the Arduino controlling the angle, use a servo. If you want continuous rotation with the Arduino controlling speed and maybe direction, use a general purpose DC motor. You'll need to think about whatever it is that you'll be connecting to the output shaft of either the motor or the servo. How far can it rotate? How fast? That sort of thing.

yes, I will have a go..
best

Another important thing to take into consideation with DC ("ordinary") motors, is that they usually spin quite fast. Even with the pwm speed control you can do with Arduino it can be difficult to make them spin slow and still have enough tourque to do whatever you need.

If you need slow spinning motors you shold try to find some gerhead motors, they have a built in reduction gear to make them go slower and still have good tourque.

Stepper motors is another alternatve :slight_smile:

dear all,
thank you for your help so far. Yet I only tried the DC motors (cheap) and got to the conclusion, yes the last post is very right, they are to fast for my purposes.
I was thinking about a digital potentiometer which could be between the tension an the DC motor. This I though I could alter with one of the digital outputs of the Arduino. I could not find a resistor like this yet, which is small and cheap. Therefore...

I am going to find out how the alternatives (servo, stepper and gear-head motors) costs and serve.

Best,
Krisztián

Electronic goldmine often have good deals on gearhed motors (and a million other things)

http://www.goldmine-elec-products.com/products.asp?dept=1300

Shipping to the UK could make it a not so good deal.

Krisztian, what exactly do you want to move in your installation – how fast and how much force (torque) is likely to be needed. Servos may be the easiest way to integrate to the Arduino (there are libraries that can control up to eight of them) but its difficult to recommend something without knowledge of the mechanical functionality you are after.

yes,
first I am thinking only about a small installation with about 3 motors controlled with Max or Supercollider messages. The the movements of the motors would change the rate of how fast (for example) an object spins (first this could be a string at the length of 5 cm).

// Basically the movements would just represent the amplitude of the alpha, beta brainwaves and the percentage difference in them. //

Now I am about to investigate the "Simple Message System" to understand the way of sending data from Max/Msp to the Arduino's digital outputs.

I would like to use the most strait-forward and easiest way to make this tiny movements. I would also like to use some motors which are not expensive.

all the best
Krisztian

You may want to look at using a continuous rotation servos like this: Products | Acroname

They are easy to integrate and you can modify a standard servo yourself if you want to save some money (search google for 'continuous rotation servo')

You can control the speed from the arduino using one of the servo libraries, You don't say how fast you want - most have a maximum speed of less than 60rpm.