Step Counter Project

Project Overview

The STM32 Nucleo board is a microcontroller development board like an Arduino. Combining it with a University of Canterbury in-house designed “hat”, we had the tools to develop our own step counter. The “hat” contains a 1inch OLED display, joystick, 6 buttons, potentiometer, buzzer, IMU and a variety of LEDs. Our task was to combine all these elements and develop a function step counter, complete with user interface menus. The step detection program itself involved taking acceleration signals from the IMU, and designing a digital signal processing algorythm to accurately detect when a step was taken.

Technologies Used

Challenges & Learnings

IMU signal processing: The IMU was the heart of the step detection functionality. However, to get accurate measurements from it, we had to develop a filter to remove unwanted noise in the data being gathered. We developed a simple moving average filter to help remove unwanted noise. Enabling us to then get a magnitude of the 3 axis and then develop a step detection algorithm.

User interface: As the user interface was a large portion of the project, there were many challenges it came with. These included having things like different button/interface options depending on what menu you were on or even locking all functionality if a certain mode was activated. This was solved with multiple finite state machines, one for determining the current display state, then each display state having their own for determining sub-menus and other logic items.