Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

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