Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: momomo68 on February 04, 2011, 07:02:16 PM

Title: How To Control 5 DC Motors?
Post by: momomo68 on February 04, 2011, 07:02:16 PM
Hello,

I would like to control 5 DC motors via remote control, two for a tank style tread, two more with similar mixing, and one additional motor that simply needs to position a rotating portion of the device (ie- from 0 to 45 deg), but requires high torque.  I have a few idea, but each have a catch...

1. One idea to solve the problem would be a five channel radio, but the problem is that the 5th channel is rarely capable of forward/reverse control of a DC motor, typically it's for a servo (ie-flaps up or down on a r/c plane).  I want a motor for the positioning due to the high torque requirement (1000 oz-in), therefore the simple solution of using a servo may not work.  Linear actuator will also be difficult to implement vs. a motor. 

2. Using two radios, ie- a 5 channel and a 2 channel that use the same FM freq. may be able to talk to the same receiver, and then I would have the capability of driving all 5 motors- catch here is getting two radios to talk, and being able to program which channel each radio is using (ie- the are not both trying to use channel 1).

3. Maybe a 5 or fancy 6-7 channel radio my be used in conjunction with a microprocessor - but I am sorely uneducated in microprocessors beyond easy programming.

Any thoughts on how to accomplish driving 5 (five) DC motors?  Figures are attached for reference.
Title: Re: How To Control 5 DC Motors?
Post by: macdad- on February 04, 2011, 07:32:26 PM
Your idea on the Microcontroller coupled with an RC Tranceiver would work and you wouldn't have to use all the channels, heck you probably wouldn't need a microcontroller at the receiving end.

Suggestion:
On the transmitting end you have a microcontroller programmed to output the control data wirelessly in serial fashion, e.g.:

Control Data: [Start Bit], [Motor 1 Direction Bit], [Motor 1 Enable Bit], ... [Motor n Direction Bit], [Motor n Enable Bit], [End Bit]

With all the bits counted for the motors you would have 12 bits to transmit, the receiving end could do a realtime update or periodic update on the position of the motors via Optical encoders on the motors required. A microcontroller on the receiving end could send four bits back for each motor.

As you mentioned you wanted one of your motors to have an accuracy of 45 Degrees. So...
360 Deg / 45 Deg = 8 positions = 1000(Binary):

Position Data: [Start Bit], [Motor 1 Encoder Bit A], [Motor 1 Encoder Bit B], [Motor 1 Encoder Bit C], [Motor 1 Encoder Bit D], ... [Motor n Encoder Bit A], ... [End Bit]

What I said earlier, you could use a couple 74HC595(8 Bit Shift Register) on the receiving end to decode the control signals and "directly" control the motors w/o a Microcontroller. This could happen by linking the 595's in series to cascade the 12 Bits to control the various motor drivers. Now for sending the Encoder data back, you could go with some Parallel-To-Serial logic chips but that's at your discretion.

Hope this helps
,Nick(macdad-)
Title: Re: How To Control 5 DC Motors?
Post by: momomo68 on February 04, 2011, 08:12:56 PM
MD,
It does help, but can you point me in a direction to a physical input device to send the signals (like a remote control) that is programmable or uses a programmable chip to send the signals to the robot?
Title: Re: How To Control 5 DC Motors?
Post by: Soeren on February 04, 2011, 09:14:13 PM
Hi,

What you want is 5 proportional channels, which means that they can be controlled over the entire range (1ms..2ms or whatever you need), instead of the "binary" 5th. control channel.

If you have a transmitter (even a 1-channel TX), you could build a rather simple circuit with an oscillator (eg. a 555) and a 4017 for encoding the 5 channels (or more).


What's the purpose of the attached .pdf?
(I don't think it illustrates your question in any way?)
Title: Re: How To Control 5 DC Motors?
Post by: momomo68 on February 05, 2011, 09:04:29 AM
Soeren,
That sounds like MD's idea of serial transmitting- and I like that idea; is the hard part in this case building a custom interface with 3-5 joysticks since it doesn't seem you can buy one?  Does anyone have any references on building custom radio controllers? Thanks!
Title: Re: How To Control 5 DC Motors?
Post by: macdad- on February 05, 2011, 09:33:00 AM
Building an RC Transceiver is tough, you really have to study up on analog electronics for a while to get it down (I still haven't gotten even simple Common Emitter Amplifier mastered  :P )

You should look for RF Datalinks:
http://www.hobbyengineering.com/H2247.html (http://www.hobbyengineering.com/H2247.html)
http://www.hobbyengineering.com/H2248.html (http://www.hobbyengineering.com/H2248.html)
http://www.hobbyengineering.com/H2249.html (http://www.hobbyengineering.com/H2249.html)
http://www.hobbyengineering.com/H2250.html (http://www.hobbyengineering.com/H2250.html)

For building the joystick you could build a simple pushbutton array with 8 buttons for each of the databits on the parallel port(See the last two links provided, as they are Parallel RF Transmitters and Receivers). Example:

[Button 1] [Button 2] [Button 3] [Button 4] [Button 5] [Button 6] [Button 7] [Button 8]
     |               |          |               |              |             |              |              |
     |               |          |               |              |             |              |              |
  / D1              D2        D3            D4            D5            D6            D7           D8\
  \                                                                                                             /

Parallel Port ^

Here is some good info on Parallel Ports to get some ideas going and some information:
http://www.hardwaresecrets.com/article/How-To-Build-Parallel-Port-Prototypes/233 (http://www.hardwaresecrets.com/article/How-To-Build-Parallel-Port-Prototypes/233)

There are more I/O ports you can use on the Parallel port that you can use, I just provided an example of Comms thru the actual Data lines.
Title: Re: How To Control 5 DC Motors?
Post by: Soeren on February 05, 2011, 06:07:23 PM
Hi,

That sounds like MD's idea of serial transmitting-
Not really.
You should send a signal that's recognized by a common R/C-receiver.


[...] is the hard part in this case building a custom interface with 3-5 joysticks since it doesn't seem you can buy one?  Does anyone have any references on building custom radio controllers? Thanks!
Here (http://sm0vpo.com/use/rc-prop.htm) are circuits for encoding and decoding. You just need the encoder to go in front of a transmitter.
Title: Re: How To Control 5 DC Motors?
Post by: momomo68 on February 05, 2011, 11:40:59 PM
Right - using a std receiver is good, but what I had in mind was driving the device with an airplane-type remote control (ie-with joysticks);  Micro-controllers could work, but manual signal control is required, not autonomous.  I would also like help in learning about / be given references to what options are out there in this regard- are there "off the self" items to buy that have 3 joysticks, or do I need to build my own and program the thing with microcontrollers? 

The cheapest and easiest (~$55), but not most elegant, solution so far is to buy a 4 channel radio and receiver to drive 4 motors (using dual speed controllers to mix the signals), and use a second 2 channel radio and receiver to drive the 5th motor.  So physically, I'd be holding a 4 channel radio most the time, and pick up the second radio just to change the position of the rotating portion from time to time.  I plan on doing this just to have something together for testing- but I would love to find help in finding a better, more permanent solution.
Title: Re: How To Control 5 DC Motors?
Post by: Soeren on February 06, 2011, 12:09:24 AM
Right - using a std receiver is good, but what I had in mind was driving the device with an airplane-type remote control (ie-with joysticks);  Micro-controllers could work, but manual signal control is required, not autonomous.
Like I said... The encoder I linked to is what you need.
It hasn't got a single microcontroller, just a cheap 4017 and each of the seven 330k potentiometers can be a (single axis) joystick (up to 10 axes are possible with that circuit).
Personally, I'd use another oscillator that made it is easier to set to a given frequency though.
Title: Re: How To Control 5 DC Motors?
Post by: rbtying on February 06, 2011, 01:19:26 AM
If you have less scruples, a helicopter transmitter/receiver would work for you - two joysticks (w/ 2 axis ea) + proportional 5th channel on most, if not all 5-channel transmitters.  Only problem is you might crash some poor guy's helicopter on your head when it passes your radio range.
Title: Re: How To Control 5 DC Motors?
Post by: momomo68 on February 06, 2011, 02:07:59 PM
rbtying,
that sounds like exactly what I need, 5 proportional channels, trouble is that all the 5 channel radios I've found only have a 2 position switch for the 5th channel, not a knob or three position switch that would allow for driving the motor forward and reverse- do you have any models in mind that you can point me to?

Soeren, thanks for the links and advice.
Title: Re: How To Control 5 DC Motors?
Post by: rbtying on February 07, 2011, 09:25:24 AM
I personally own and can vouch for this one: http://www.hobby-lobby.com/blade_cx2_3_lp5_dsm_5_channel_transmitter_2.4_ghz_171504_prd1.htm (http://www.hobby-lobby.com/blade_cx2_3_lp5_dsm_5_channel_transmitter_2.4_ghz_171504_prd1.htm)

But it's really only low-cost if you buy the helicopter too.  I believe also the DX5e, DX6i, and DX7 would all work.  I'm not familiar with non-DSM2 radios, so I can't be a real help there.
Title: Re: How To Control 5 DC Motors?
Post by: momomo68 on February 07, 2011, 01:17:04 PM
rbtying,
Can that radio be used to control a 5th DC motor (NOT servo motor)?  It just looks like a switch on the top- is there a modification you would have to do?  How would it work?  Thanks.
Title: Re: How To Control 5 DC Motors?
Post by: rbtying on February 07, 2011, 04:30:10 PM
The left-side is a trainer switch, but the right side has a potentiometer that gives the same output as the joysticks - its connected to channel 5.  The only "modification" would be to use an ESC instead of the servo in the fifth channel on the receiver. 
Title: Re: How To Control 5 DC Motors?
Post by: momomo68 on February 11, 2011, 01:26:29 PM
I have one on order, when it gets in I'll let you know how it turns out.  Thank you for your help.