Each cylinder is positioned so that the rod is connected to the wheel bracket. The movement of each cylinder is controlled by a valve. The valve normally exhausts so that the steering can be freely controlled by the go-kart driver. When the valve closes, the pressurized air passes through to the cylinder and the rod extends, locking the wheel in a rotated position.
The cylinder is positioned so that the rod is extended and connected to the back of the brake pedal. With the valve open, the air exhausts and the brake behaves normally. Once the valve closes, air passes to the cylinder and the rod retracts, pulling the brake pedal downward, forcing the kart to brake.
The go-karts that were used for this project had a governor that could be adjusted by simply pushing a pin in the back of the car. We attached two servo motors to allow us control over the governor. One servo was attached so that when it rotated, the pin was pushed in fully, allowing a full boost in speed. The other servo was attached so that when it rotated, the pin was pulled back completely, cutting off the gas.
NI CompactRIO (Compact Reconfigurable Input/Output) is a real-time controller that we programmed with LabVIEW. The CompactRIO device was responsible for processing signals received from the RFID reader, communicating with the central host computer, and outputting the appropriate signals to control the behavior of the go-karts. These signals are outputted through the NI 9403 module, which was used to send digital high and low signals to the pneumatic valves as well as PWM (Pulse Width Modulated) signals to the servo motors. We used FPGA code to control the NI 9403 module.
Each kart was outfitted with a wireless router that was connected to the CompactRIO controller. By having a central host router, all of the routers could be linked up to the same network. Therefore, each CompactRIO device could communicate wirelessly with the central computer. The central computer can access each CompactRIO device and allow manual control of the movements of each kart. To share information between each controller, we used Network-Published Shared Variables.