Realization of Bluetooth communication between STM32 module (imitating rehabilitation device) and desktop application
This project was developed for Motor Rehabilitation Engineering classes at Electronics, Telecommunications and Informatics faculty of Gdańsk University of Technology. Although six people participated in the project, the software was made only by me (documentation in approx. 95%).
This project was all about creating a human-computer interface in form of a cube (something like Xiaomi Mi Magic Controller) whose position/orientation in space should controll the desktop application. Cube sides should detect touching and signal which side is turned up. My task was realization of Bluetooth communicaton between the cube and PC + desktop application.
Desktop application GUI is in the form of five color squares that respond to user actions (moving the cube). At application start the cube should be in neutral position (neutral side at top of the cube).
After moving/rotating the cube the side that is on top will be reflected in desktop application and after 3 seconds the correct square (option) will be chosen.
There is a two way communication between cube and desktop application. The data frame from application to cube looks like this:
XXXXX
- five Xs, because there are 5 functional sides in cube (1 neutral). Where X can be either 0 or 1. 0 represents that this side (index of X) is active at the moment and 1 vice versa.
The data frame from cube to desktop application looks as follows:
XX
- first X means index of active side (on top), the second one represents status of back button (1 when side was clicked).
Documentation is in form of five PDF files that cover researching, planning and realization of this project. Unfortunately it's only available in Polish language.
- Work plan
- Literature review
- Analysis of existing/similar solutions
- Project specification
- Realization
- Desktop application was written in Java and GUI in JavaFX
- STM32 software was written in C with HAL libraries
- BlueCove | Apache License 2.0