The main part of the programming of the Smart Balance project of
the rotation system was written with the QT Framework in the C++ language.
The control system in this project is designed so that the interface modules
receive analog and digital signals from the system and, after initial
processing, send this information to the central control unit or, in other
words, to the core board area.
To better understand this project, I recommend that you first look at the related
projects number 1 & 2 & 3.
Special techniques were used in the program part of the project.
For example, 180 pulses per revolution are generated in the encoder part of the
device, or in other words, the encoder generates pulses of 2 degrees. In the
previous explanations of the project, it was mentioned that one of the goals of
this project is to generate a controllable force at desired rotation angles.
Let us assume that the system rotates at a speed of 10 revolutions per second.
In this case, the control and electronics section of the device together with
the project programming section must be able to generate and send the signals
generated by 2-degree pulses to the core board with high accuracy at all times
and send the generated responses to the actuators.
The project program has a user interface that allows the user to view the system
status at any time. The most important information sent as a stream to the UI part
of the program is mainly the acceleration of the device along the three axes X, Y
and Z.
A view of the user interface of the device can be seen in the following figures.
The video below shows how the device's UI works for a test case.