The goal of this project is to embed an LSTM Neural Network produced by MXCubeAI tool of STMicroelectronics within an RTOS for microcontroller. As a use-case for the project it has been considered the prediction of atmosferic pressure trained with a dataset taken from a certified weather station (http://meteovalmorea.it/). After the deployment, to get the prediction from the neural network, it is considered pressure data taken from LPS22HB pressure sensor installed on IKS01A2 MEMS sensors board. For LSTM neural network implementation details consider this link. For a more precise presentation of the project please refer to this paper.
- NetbeansIDE: used for modifying and compiling the Miosix Kernel;
- PyCharm: used for the neural network implementation and training;
- Miosix RTOS: OS used for thread implementation and synchronization which runs on the considered board;
- X-CUBE-AI: tool used to convert the
.h5
file obtained from Keras to a STM32-optimized library.
- install gdbserver plugin for NetBeansIDE
- paste the following configuration file to the following location: miosix-kernel/miosix/arch/cortexM4_stm32f4/stm32f401re_nucleo/
- run: openocd -f miosix-kernel/miosix/arch/cortexM4_stm32f4/stm32f401re_nucleo/stm32f401re_nucleo.cfg
- within NetBeansIDE: Debug, Attach Debug : select "gdbserver" and as target "ext :3333", OK