top of page

Wave Gauge Controller

The purpose for this project was to create a specialized piece of lab equipment, specifically a precision linear actuator capable of moving a wave sensor at precise intervals over TCP socket connection with a clear python based GUI. 

Initial CAD Design

OnShape

The CAD design for this project was again, very simple. Using a basically designed cycloidal gearbox for a 25:1 reduction ratio (carrier output), and then using that to actuate a T12 3mm pitch lead screw, we are able to precisely move the end-effector up and down (within an experimental +-0.5mm, a theoretical +-0.000003mm – that’s a pretty big margin of difference!). 

Programming for this was less straightforward. I don’t have experience using TCP socket connections with microcontrollers and their associated modules. Using the existing Arduino WiFiNINA library, I was able to initiate a simple web-based connection to transmit values over local WiFI networks. Additionally, using the PyQt5 library (I understand this is slightly outdated), I was able to program a simple user GUI which could transmit the desired movement values, inform the reader of their previous values (graphing and table - this was both total displacement from starting position and incremental movement depending on the desires of the user).

Programming

Platform IO

Full GitHub Documentation

This project served all of its intended purposes. It functions quickly, accurately, and well. Our lead screw for this project was bent, and the negative carrier thread melted immediately after putting in heat set inserts, so these are two major improvements that can be made. Additionally, in a recent project of mine, I switched from WiFi dependent microcontroller networks to independent packet based communication networks via ESP32. That could be a potential change, as it would allow more information to be transmitted (if data stream is set to bidirectional), as this better permits information sent as long vectors. 

​

This project, with all of the potential improvements, is also open source on GitHub. Feel free to check it out!

bottom of page