Beachcombing Gantry

Mechatronics 1 Group Project | Year 3 IDE
November 2019 | 4 Weeks

The task for this mechatronics project was to control a 2-axis gantry using an Arduino and use it to scan a 600mm x 600mm 'beach' for magnetic 'treasure', before placing plastic cups to mark the position of each magnet. 1-3 hall-effect sensors were to be used to detect the magnets, but the method of picking up and placing the markers was to be selected, designed and built as part of the project, along with any electronic circuits required.

My main role in the project was to develop a method of controlling the gantry stepper motors. This involved building a variable-speed driver circuit that could be controlled by the Arduino, writing MATLAB code to control it and integrating with the rest of the program.

Gallery

This project has no images :(

Electronics

The gantry driver consisted of a voltage-controlled oscillator circuit (VCO) based on a 555 timer chip, a low-pass filter to convert the Arduino's variable-duty-cycle PWM signal to a variable DC voltage, and a delay circuit to facilitate pulse counting via the Arduino's interrupt pins. The entire circuit was duplicated, one for each axis of the gantry.

Code

The MATLAB code for the gantry uses an object-oriented structure to abstract the details of the driver circuit behind simple instructions like setting the travel speed or moving the gantry to specified coordinates.