The vehicle is designed for dual control. It can be driven automatically or manually, either remotely or by a rider. Vehicle #1 is set up with a joystick operated by the rider. Vehicle #2 has a standard radio control (RC) that allows remote operation. In manual control, the C2 processor must respond to electrical signals and direct the actuators to move the vehicle. Drive-by-wire demonstrates that a computer can control the vehicle.
The joystick produces three analog outputs (0 to 5 V):
The MegaShieldDB performs satisfactorily but we want to make another revision before releasing the board for sale. The original design calls for a remote emergency stop that cuts 36V power to the motor. The board can be built to incorporate a wireless receiver. However, this unit is too short-ranged to be useful. Vehicle #2 uses a standard RC controller, and the next iteration of the MegaShieldDB will interface with it more easily.
An up joystick is throttle; down is brakes. Joystick left or right steers.
An Arduino analogWrite() produces a pulse wave modulated (PWM) signal, which is fine for steering and brakes. It does not work well for the Kelly controller. Thus the MegaShieldDB contains two digital analog converter (DAC) chips, providing a total of four channels of true analog.
The software to read the joystick and send the results to motor, brakes and steering is Elcano_C2_Base.
Status (3/5/14): Hardware and software are complete. They have been tested on vehicle #1. There are no known issues, though testing has not been extensive.