Software apps and online services
Hand tools and fabrication machines
Since human nature is close to things that have visual and interactive feedback, GUIs (Graphical User Interfaces) have major advantages of making an easy way to use and learn from electronic devices instead of complex command labels or text navigations.
In this project, we've built our Hexabitz IMU module ( H0BR4x ) read/write interactive GUI using STM32CubeMonitor.
STM32CubeMonitor is a tool that allows real-time sampling and visualization of user variables while the application is running. It runs on Windows, Linux or macOS, and provides a browser-based interface.
The user can define their own flow to monitor variables for their STM32 microcontroller-based application.I) Designing and implementing the dashboard:
The node "IMU_variables11" as shown in figure 1 is changeable according to the sensor required to observe, it will always contain four variables, one of them for controlling and the others are the input values of sensors which will be plotted on a line chart as curves and will be visualized as numeric values on a non-editable text field on the user interface, after being approximated to two points after the comma.
This approach will be applied to the three sensors provided by the H0BR4x Hexabitz module; gyroscope, accelerometer, and magnetometer.
I-1) Controlling the gyroscope data:
As shown in figure (1.1) we will determine and get the x, y, and z coordination of the gyroscope sensor using variables gx, gy, gz respectively.
Then we'll use a control value named "select" to switch between multiple cases on a dropdown select box.
The configuration of nodes is illustrated below in figures 1.2, 1.3.
We've used a template function (figure 1.4) to set a property based on the provided template, which contains the address of the unsigned 8-bit controlling value "select".
The change function "set msg.topic" node configuration is shown in figure 1.5 and will be the same for all other sensors.
For getting an accurate value from the sensor, we should add a filter using a "Single value" subflow which filters data to extract only one variable after the "processing node" step.
In this node, we will change the varfilter value according to the value that needs to be filtered, for instance in figure 1.6 the varfilter value is "gx", the next one is "gy", and the final one is "gz". These steps will also be the same for the other sensors.
The configurations in figure 1.7 will be applied to all values and sensors in the same manner.
In figure 1.8 you'll find the configurations of the "Gx" node (the non-editable text field), which are the same for all text nodes with different label names.
The chart configurations are illustrated in figure 1.9 below. This node will be responsible for plotting the value of each sensor on the user interface and it will display changeable data according to the sensor selected from IMU_variables11 node.
The final results of the user interface are shown in figure 1.10, 1.11, 1.12, 1.13, 1.14.
I-2) Controlling the accelerometerdata:
In the same manner, we'll simulate the accelerometer values.
I-3) Controlling the magnetometer data:
In the same manner, we'll simulate the magnetometer values.
To simulate the remote access on our dashboard, we used the link below:
II-1) Accessing the remote access:
We can control our dashboard using any browser, as shown in figure 4.1.
We've connected ST-Link to the H0BR4x module by SWD (Serial Wire Debugger), and powered the module in 3.3V as shown in figure 5.