I just went through the thread and spotted a minor error. Sorry to bring it up.
Quote:
|
Originally Posted by generalbrando
Well if you work through the math, it should be 0 and 256 averaged=128. Then average between that and the originals...64 and 194. Technically 127 is center (right?) so that's a tiny bit off, but the results is a slower spin. I thought there might be a quirk where I would need to handle an exception for such a thing like this, but in testing, I found it works fine all around.
|
Not quite. The maximum you should ever set the PWMs (motors) to is 254. 0 and 254 averaged is 127 (which is center).
Now here's an interesting tidbit: If you were to assign (for testing purposes) 256 to p1_y and 0 to p2_y, and proceeded to try it, the robot would go straight back. Why? Because 256 (Hex 100) is too big for a byte! It wraps to zero! So you end up averaging zero and zero, taking half the difference, etc., etc.