Guitar Tuner
Used to tune your guitar
Author: Magureanu Alin
GitHub Project Link : https://github.com/UPB-PMRust-Students/project-Alin1502
Description
The project consists of a guitar tuner that helps the user to accurately tune each guitar string without the need for external devices or application. Firstly, the sound is captured by the MAX9814 microphone and is sent to the microcontroller. The Raspberry Pi Pico analyzes the signal using Fast Fourier Transform in order to determine the dominant frequency. The obtained frequency is compared to the standard tuning values and identifies the closest musical note. After all the computations, the obtained note is shown on the OLED Display and the buzzer replicates the sound of the chord. For simplicity of the user interface, the user can select which string he is currently tuning using a push button.
Motivation
As someone who started to play guitar recently, I found it frustrating that my guitar was getting out of tune frequently. While there are mobile apps available for tuning, I disliked the idea of always depending on a phone and internet access to perform this. By researching how to detect sound frequencies, process them and display them in real time, I was able to create my own, fully functional device for tuning the guitar.
Architecture
- Raspberry Pi Pico: used for handling the logic of the project. It receives analog audio input from the microphone, makes it digital using ADC and performs signal processing to detect the frequency
- Microphone Module: captures the sound of the guitar being plucked, which is then sent to the microcontroller
- OLED Display: displays when the chord is in tune and the current string selected
- Push Button: prompts the user to select between the 6 chords ( E, A, D, G, B, E) to select what to tune.
- LED: blinks red when guitar is out of tune, green when it is in tune
- Buzzer: replicates the sound of the respective chord after it gets in tune
Log
Week 28 April - 4 May
I started working on the documentation for the project. I bought every necessary component and i started to connect them on the breadboard, in order to be able to make the schematics and understand how they interact with eachother.
Week 5-11 May
Week 12-18 May
Week 19-25 May
Hardware
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2W | The microcontroller | 40 RON |
MAX9814 | Microphone Module | 60 RON |
Push Button | Select Button | 0.36 RON |
OLED Display | The Display | 30 RON |
LED | Blink LED | 0.4 RON |
Buzzer | Replicates Sound | 1.4 RON |
Software
Library | Description | Usage |
---|---|---|
ssd1306 | Display Library | Used for I2C OLED Display |
embassy-rp | Pico Peripherals | Used for accessing the peripherals |
num-complex | Complex Numbers Library | Used to compute complex part of fourier |
microfft | Fourier Transform Library | Used to compute frequency with fourier |
embassy-time | Time management library | Used for time-based operations such as delays |
libm | Math library | Used for calculations |