Synching two low speed motors together

davyjoneslocker

New Member
I would like to synch two dc motors together for a model rowing boat.

I need independant control, to enable the oars to steer the boat.

I've searched this forum for clues, one post was discussing perfect synchronisation for a cinefilm camera. In my case the motor speed is low, about 60 RPM and the synching only has to 'look' right rather than be accurate to a fraction of a second.

My thoughts are to use a pair of hall effect sensors to sense if the two are getting out of whack, and then brake one both motors, and restart.

Anyone else done somethig else like this, or is Picaxe too slow for a task like this?
 

Michael 2727

Senior Member
PWM should do it easily, you could have 255 or 1024 individual increments.
The PWM is used to drive a Transistor/MOSFET, with a capacitor across the
output to smooth out the voltage you can get an almost linear voltage.
Adjust by eye on the run, incase you hit a leaf, stick or other object.

What voltage/current are involved with your motors ?
 

Wrenow

Senior Member
I am thinking the simple solution is to use highly geared motors and a dual ESC, which is easily trimmed. The Radio Shack Vex Robotics motor (which looks like a servo and runs about 60RPM) has the ESC built in to each - then the speed is controlled by a servo pulse. Put in your sensor to give absolute position timing and the picaxe to speed up or slow down a motor to syncronize them, and I think you are there.

Interesting project.

Cheers,

Wreno
 

BeanieBots

Moderator
I too would suggest a dual ESC as suggested by Wrenow.
A simple sensor (eg slotted opto) on each oar would let the PICAXE time the difference between the two. A little maths (or a lot if you want to get fancy) would make the required change to the servo pulse on one side to bring them into sync. At 60 rpm, any PICAXE would be well up for the job.
 

davyjoneslocker

New Member
Hi, thanks for the replies. I had considered the use of two esc's for control, as they're very cheap these days. I have two suitable geared drives already, can anyone elaborate on an algorithm to enable one motor to speed up or slow down? Also would it be best to use the timer command to detect the difference between the hall sensors?

Andy
 

BeanieBots

Moderator
I'd start off by trying to do it simply in code with pause statements.
Arrange your sensors so that when they are in sync, the sensors trigger one after the other with a gap about 1/4 revolution apart.
At 60rpm, that would give about 250mS between the pulses.
Wait for the first pulse, then count (in software) how many times you go around a loop (with a pause in it) before the pulse on the other sensor arrives.
If it's too long, speed that motor up. Too short, slow it down.
If you speed it up by an amount proportional to how far out it is plus a small fixed amount each time you check, then you will have the P&I terms of a PID controller which should result in quite an accurate sync. You will need to experiment with the loop times, amount to speed up/slow down and angle between the sensors but some basic sums should get you quite close initially. Start off with very small speed changes.
 
Top