Code for a stm32f4 microcontroller (dev board) to control an XY stage and interact with Keyence LT-9010 laser profilometer to create 3D scans of surfaces. The device and its associated code was created as part of a bachelor's thesis at the University of Warwick.
Uses the C++ framework xpcc (see https://github.com/roboterclubaachen/xpcc for code and license). A copy is included because a modified UartHandler is used.
Uses cascaded PID controller to control DC brushed motors equipped with optical rotary encoders.
A GUI using QT 5.2 can display the current position and measurement. A command line program can be used to manually control the stage and define vertices for a rectangular area.