Chris,
I just built a 12lb battle bot with a vex controller and it is possible to enter a run away condition. The system seems to retain the last value sent by the controller and if it fails to sync it will send that to the motors. The range was about 15ft for my robot but the motors could have been causing allot of noise. The problem is very easy to fix the controller has flags to catch loss of communication. If you look at my code, I didn't include a time buffer for loss of communication. I would recommend adding this because it can cause the robot to shudder as communication cuts in and out.
Here is the code for my robot.
Code:
// Code for 2008 Fighting Robot Spare Parts v1
// Mabuchi Motors in Banebot 16:1 aka wicked slow
#include "Main.h"
void main ( void )
{
unsigned char data;
unsigned char drumofdoom;
SetPWM ( 3 , 0 ) ; // Arm Brushless Weapon ESC
Wait ( 5000 ) ; // Time to Arm ESC
while ( 1 )
{
data = ReceivingData(1); // Check if RX1 is getting data
if ( data == 1 ) //If receiving data
{
right_stick = GetRxInput ( 1 , 2 ) ; // Data from CH2
left_stick = GetRxInput ( 1 , 3 ) ; // Data from CH3
SetPWM(1,right_stick); // Send data to motors
SetPWM(2,left_stick); // Send data to motors
}
else // Not receiving Data
{
SetPWM ( 1 , 127 ) ; // Stop 1
SetPWM ( 2 , 127 ) ; // Stop 2
SetPWM ( 3 , 0 ) ; // Stop 3 ( Brushless ESC 0 Stop)
}
}
}
If you want to see my little guy here is a link:
http://www.youtube.com/watch?v=xyfSHu-cpsw