Rhythm is a product that seeks to synchronize a user’s music tempo to their cadence as they are working out, specifically on stationary workout equipment in a gym.
The physical device tracks a user’s movement to determine their workout cadence and then sends this data to the Rhythm mobile application via Bluetooth, where the app utilizes the Spotify API to actively queue songs that match the tempo of the workout.
The code for Rhythm involves a combination of embedded software and an Android mobile application.
The embedded software comprises of code to control the functionality of a STM32L053 and its interactions with peripherals including Bluetooth Low Energy RN4020 via UART, a Battery Babysitter using I2C, and an ICM20602 IMU device using I2C. Embedded code can be found in path: Rhythm/embedded/test/477_BluetoothInterface/
The application was developed using Android Studio, primarily consisting of a UI, Spotify API request interface, and Bluetooth scanning and receiving data. Three primary sources were utilized in the development of the application. For basic setup and reference, Android Developers, for Spotify API reference and code and for BLE reference and code.
This project was completed by Ethan Glaser, Weston Donati-Leach, Douglas Yu, and Noah Rodriguez as part of ECE 477 - Digital Systems Senior Design - at Purdue University during the Spring 2021 semester. For more information about the project and team, please visit https://engineering.purdue.edu/477grp17/index.html.