The TReX Dual-Motor Controller is a versatile DC motor controller designed to seamlessly blend autonomous and human control of small- and medium-sized robots. The TReX can control two bidirectional and one unidirectional motor via three independent control interfaces: radio control (RC) servo pulses, analog voltage, and asynchronous serial (RS-232 or TTL). It uses five input channels to receive the RC or analog control signals. When operating in RC or analog mode, the five channels function as follows:
- Channel 1: motor 1 speed and direction or, if in mix mode, turn left/right
- Channel 2: motor 2 speed and direction or, if in mix mode, go forward/reverse
- Channel 3: auxiliary (unidirectional) motor speed
- Channel 4: can be used to enable “flipped mode”, which allows invertible robots to be controlled as normal when they are inverted
- Channel 5: determines whether the motors are controlled by the channel inputs or the serial interface; this channel allows you to switch between autonomous and human control at will
The serial interface can switch instantly with one of the other two interfaces, allowing mixed autonomous and remote control. For example, a robot could be configured to run autonomously most of the time, but a human operator could override the autonomous function if the robot gets stuck or into a dangerous situation. If the serial mode is selected as the primary interface, high-resolution measurements of all five channel input signals (be they RC pulses or analog voltages) are made available to the autonomous robot controller, allowing for complex and unlimited mixing of operator control and sensor input. For example, the TReX would be a great motor controller for a line-following robot whose overall speed is controlled by an RC throttle, or an RC car with sensors that autonomously dodges obstacles in its path as you drive it around.