I’m running an RC tx/rx setup on my bot for motion until I get the speech rec polished for voice control. Hardware is a 3 channel RC unit (only using 2 channels though) being read by a Mega ADK board running a pair of brushed DC motors through an Adafruit Motor Shield. I’ve read as much as I can find online and am confident that this will work the way I want it to, mostly basing my code and setup on the tutorials from RCArduino: RC Channels, L293D Motor Driver - Part 2 Calibration And Code.
I’ve calibrated my RC set as best I can. The 2 channels in use are throttle and turn with the following pulse values after calibration: Throttle: neutral = 1410, full ahead=1800, full brake/reverse = 1200. Turn: neutral=1400, full left = 1000, full right = 1800.
The problem: The above listed values are not solid, rather they all have a range somewhere between ± 10 and ± 20.
The question: How do I program that in? ie: For sitting at idle/stop, I am thinking I would program the equivalent of the following psuedocode:
ch1 = throttle position read ch1 if ch1 = 1410 motor1.run(RELEASE); motor2.run(RELEASE); else some mapping of read value to - 255 to 255
But neutral is not always 1410. It ranges anywhere between 1400-1420 ish. Is it as simple as