This repository contains two embedded systems projects developed for the Embedded Systems Architectures and Design course at the Università degli Studi di Milano-Bicocca.
Both projects are targeted for STM32 microcontrollers (Nucleo-F767ZI) and were developed using STM32CubeMX and STM32CubeIDE in C.
This project implements an on-device machine learning classifier to recognize gestures/movements using an accelerometer and displays the classified motion along with the raw accelerometer data.
- Target Hardware: STM32 Nucleo board (F767ZI).
- Sensors: MEMS Accelerometer (via X-CUBE-MEMS1 expansion pack).
- On-Device Machine Learning: Incorporates an Edge Impulse deployment for running a tiny neural network classifier directly on the microcontroller to recognize gesture patterns.
- Communication: Streams raw acceleration data and classification results over UART.
This project controls the brightness of an LED on the board using a Pulse Duty Modulation (PWM) signal modulated by a sine wave.
- Target Hardware: STM32 Nucleo board (F767ZI).
- Modulation: Implements a PWM timer channel whose duty cycle is updated dynamically at fixed intervals following a sine wave.
- Microcontroller Resources: Configured using STM32CubeMX utilizing hardware timers and general-purpose timers in PWM generation mode.
Gesture_Recognition/: Eclipse project directory containing the gesture classification source files, Edge Impulse libraries, and.iocconfiguration.PWM_Sinusoid/: Eclipse project directory containing the PWM sine-wave generator source files and.iocconfiguration.
- Bahenda Yvon Dylan Ntegano