A graphical user interface for defining vehicle pathways with real-time control features.
This application was developed during a practical course on real-time systems at Saarland University. The course assignment was to build a vehicle with a real-time controller system. I was responsible for the GUI editor used to create paths for the vehicle to follow. Nikolaus Gerteis handled the hardware and Roland Schlosser developed the micro-controller application.
The 80C166 micro-controller with its various I/O channels implements the fundamental real-time principle of “Input, Processing, and Output.”
Input: The controller is connected to a photo-sensor that measures the distance traveled by each of the two tires. This works the same way as a computer mouse – a wheel with holes triggers the photo-sensor at regular intervals.
Processing: The controller application uses the input signals to calculate a distance, which is then compared against the track information loaded onto the vehicle at startup.
Output: If a deviation is detected, the controller issues commands to the two output channels, each connected to one of the vehicle’s motors, in order to correct the deviation.
The PathEditor application is used to draw tracks that can be loaded onto the vehicle via a serial connection. Once the data is transmitted, the vehicle can be disconnected from the cable and program execution begins.
Pressing the left mouse button defines track elements. After a line element, a curve element is automatically selected next. The right mouse button serves as an undo function, reverting the last track element. The application also supports loading and saving tracks.
To transfer the data, the vehicle must be connected to a computer via a serial cable. The track data is generated as a C source file, which is then cross-compiled using GCC for the Siemens 80C166 micro-controller. After successful compilation, the GDB remote debugger is used to load the application onto the micro-controller via the serial line.
To start the vehicle on the uploaded track, it must be disconnected from the computer. An impulse on the wheel’s photo sensor then triggers the actual execution of the track.
| Type | University Project |
| Environment | Solaris, XWindows, LEDA, vi, GCC (C++, C-Cross-Compiler for 80C166), Make |
| Link | fopra.tar.bz2 (1692kB) |



