The microcontroller used is the MBED LPC1768 Evaluation Board. We chose this board because it is a development-friendly board and it has sufficient functionality to support all of our design criteria. A high-level overview of our design requirements are as follows -
GPS Positioning Information
Our device can collect positional data from an external GPS unit mounted on the machine. The GPS unit outputs a RS-232 based communication signal that will contain the current position along with additional information about the accuracy and quality of the data.
CAN Bus Interface
The CAN system is made up of two different CAN buses, one for the steering control and one for the miscellaneous information on the machine. For the steering CAN system, our board's CAN pins are connected to the steering bus of the machines that support steering over CAN and is responsible for the steering commands of the machine.
Analog Voltage Interface
For older machines that do not support steering commands over the CAN bus interface, our project achieves steering control by supplying voltage to the machine’s valves.
SD Card Storage
The SD card is used to store the data collected which can then be analyzed during the testing process. Each test will involve collecting positional data from the GPS and attitude information from the IMU, which is stored on the SD card along with additional diagnostic information.
Internal Measuring Unit (IMU)
An IMU is a device that consists of gyroscopes and accelerometers to measure the angular rate and acceleration of the object to which it is attached. We chose to use the OpenIMU300 which contains its own processor to offload the reading and processing of the sensors from the main microcontroller. The IMU is used to calculate roll, pitch, and yaw information of the machine in addition to the raw angular rate data, and output this to the microcontroller over an SPI connection.