Uni-One (2019)
What is this all about?
My job in this project was to develop brand new software for a new product line. The aim was to create a new product line based on the experience of previous machine models. The machine was to be failure-free and faster. My task was to create new optimized software, whose code was to be realized faster. At the same time I was working on the screen visualization page. For this purpose it was necessary to change the controller and electrical equipment to better class components.
Varnishing machine allows for painting in five axes (A, B, X, Y, Z).
User Interface
I designed the interface from scratch. I wanted to go as simple as possible. Every second counts. So my goal was to reach each option in 2-3 clicks on the screen. Below are the results of this work. The colors are based on the company palette.
Control logic
Image processing
In order for the objects to be painted correctly, it is necessary to scan the details before they enter the machine.
It was necessary to create new software to process the signal from the laser scanner. The previous one was not
efficient because we received too low image resolution and the driver misinterpreted the surfaces to be painted.
So I created new software based on linear filters and Gaussian blur. The code has been implemented in Structured
Language, a language widely used in industrial automation. It is based on Pascal.
Below you can see the results of image processing.
And the second case:
However, as you can see the images are further distorted. Despite changes in filter parameters, it was not possible to achieve a satisfactory effect. After changing the scanner to beam resolution twice as high, each element in nine out of ten cases could be recognized.
Video
Here you can see the previous version of machine in an action:
So what have I learned?
- This was pretty big project, with many months of development. The most important thing I've learned is that the software and interface design process is an incremental activity and it's not worth getting too attached to previous versions. It is also important to consult with the whole team often so that the work we do is not unnecessary.
- Besides, I learned to improve the code and make it more readable. It was necessary to work with colleagues to be effective. I spent a lot of time on making every variable and function name appropriate.
- I used the resources used in my studies to finally use image processing algorithms in practice. Thanks to the fact that the code has never been written in this language before, I was able to write my own version of the implementation, step by step, of which I am very proud.
More details about machine
Here you can find more technical details about machine.