My current project consists of a Rover 5
, an Android phone and a bluetooth transceiver. My goal is to control the rover via bluetooth, from my phone. I'm using the Amarino toolkit
, which really is great.
I have come as far as to being able to control the speed on the motors (there are 4 of them) independently. My problem comes forth when I try to run them together. The rover has belts that physically connects two motors together, and when I realized that the motors run at different speeds when I supply them with the same voltage (It's measured), I had a problem.
I've googled my problem, and it seems everyone is using engine controllers to counter this problem, but I want to build this by myself. If possible..
Each motor has a rotary encoder(quadrature), which produces a frequency (actually two, 90 degrees out of phase) based on it's speed. My idea is to compare two frequencies (from the two motors at the same side). Then I want that difference to either increase or decrease one
of the two motors' voltage, so that two and two motors run at the exact same speed.
I am now using the PWM output of the Arduino to control the voltage of the motors.
I can't seem to put this idea into programming language(or electronic components), and I'm not even sure it is doable. Maybe I'm thinking too complicated, and there is another much easier way to counter this problem?
My mind is open for suggestions!