There are certain electronic devices that use surface electromyography signals for many purposes such as for muscle rehabilitation or to control a hand prosthetic, among others. But most of them use powerful microprocessors and external computers, making them expensive, and having a large power consumption.
Therefore, these devices are only available for a narrow group of people when in reality a great amount of them are in need of them. They need to be fast, cheaper and have low power consumption. For those reasons, the elaboration of this project is encouraged.
The goal of this project is to design and implement a system that recognize different gestures and identifies them, calculates the muscle’s force, and detects the muscle’s activation time (when it goes from rest to being activated), through the implementation of low resources. This will have a positive impact on its cost, its power, and its autonomy.
C language has been used as the programming tool for this project due to the possibility of high-level programming. As for the hardware, microprocessors Cortex®-M4 and Cortex®-M0 have been used. The decision of implementing the program in both was to demonstrate that the same results can be achieved with both a more powerful processor and a less powerful one. Each microprocessor is integrated in a STM32 board, which also has a user button that by pressing it, it calibrates the system. So, anyone can obtain accurate results.
For this project, SEMG signals data was provided by the University of California at Berkeley. The data was taken from five different subjects wearing a bracelet with a 4×16 array of surface electrodes (64 channels). They performed 21 different hand gestures throughout many experiments involving resting position, different effort levels, and replacement of the surface electrodes.
By reading the data and calculating a group set of features, it was possible to successfully achieve gesture recognition with the base subject, and through calibration with the rest of the subjects. It was also conceivable to measure the muscle’s force and detect its activation time.
Regarding the power consumption, the system implemented with the Cortex®-M4 microprocessor consumes about 90mA when active and the one with the Cortex®-M0 consumes about 83mA at 3.3V. Therefore, it has been proven that both systems are low power due to the use of low resources, but the M0 microprocessor consumes less. As for the time response of the program, it was measured the Cortex®-M4 takes 208.3 seconds total to read and process the data whereas the Cortex®-M0 takes 320.3 seconds.
For the proper creation of a complete system, a device was designed by integrating the data acquisition, the microprocessor, a transceiver for communication with other devices, the user’s interface (button), and its power supply.