/3D-Non-Contact-Laser-Profilometer

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.

Primary LanguageCMIT LicenseMIT

3D non-contact Laser Profilometer

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.

Surface scan of a bolt's (damaged) thread: Surface scan of a M1.6 bolt's damaged thread

Orange peel: Surface of an orange peel

Coin: Surface scan of an english 1 pence coin visualized in MATLAB

Photograph of the built system

Screenshot of the PC side GUI