Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

STM32 Embedded Projects

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.


Project 1: Gesture and Movement Recognition

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.

Features and Hardware

  • 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.

Project 2: LED Sine-Wave Control (PWM)

This project controls the brightness of an LED on the board using a Pulse Duty Modulation (PWM) signal modulated by a sine wave.

Features and Hardware

  • 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.

Repository Structure

  • Gesture_Recognition/: Eclipse project directory containing the gesture classification source files, Edge Impulse libraries, and .ioc configuration.
  • PWM_Sinusoid/: Eclipse project directory containing the PWM sine-wave generator source files and .ioc configuration.

Authors

  • Bahenda Yvon Dylan Ntegano

About

STM32 C projects for gesture recognition using Edge Impulse TinyML on-device classification, and LED brightness control using sine-wave modulated PWM. Targeted on Nucleo-F767ZI.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages