Waaaaaay back in 2nd year I was part of a team competing in the Freescale Cup, now called the NXP Cup.
The premise of the competition is that you have a 1:16 scale RC/car that must autonomously race around a track defined by a small number of painted lines. In my case the track was dictated by two black lines marking the edge of the track, and the only allowed sensor was a grayscale line scan camera, along with an onboard IMU.
Using an ARM Cortex M0+ processor, the team developed drivers for the motor controllers (PWM), IMU, and camera. We implemented image processing algorithms to find the lines and convert them to the vehicle coordinate system. The lines were used as input to a PID control loop that managed steering.
The team as we started it only existed for a year, where we developed valuable infrastructure, produced a test track, and were the first Carleton team to attend a competition. The following year the challenge was converted into a capstone project for software engineers, and is now one of the yearly offered projects.