Skip to main content
Version: FILS English

Pico Piano

Inspired by the idea of the Power Glove accessory for the Nintendo Entertainment System, the Pico Piano is built to give the same cyber-punk feeling of virtual control over an instrument, without needing the actual piano physically.

info

Author: Bercut Remus-Gabriel
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-GnarGnaw

Description

The Pico Piano simulates playing the piano by using incline sensors on each finger, connected to a Pico 2W board for each hand which communicate wirelessly to a main Pico 2W sending signals for each note to a DFPlayer.

Motivation

I got the idea after browsing optimus and seeing incline sensors. I knew immediately that it would be amazing to connect them to a finger and work some magic. After that, everything came naturally with the musical instruments, piano was the most intuitive idea.

Architecture

Schematic

Components used

Raspeberry Pi Pico 2W: This is used for communicating with the sensors through GPIO, controlling the DFPlayer through UART, debugging throughout.

DFPLayer: This module is used for playing the actual sound. It includes a DAC and an SD Card reader which reduces the amount of work needed in order to communicate between modules. Connection with the Pico is done via UART.

Incline Sensors: The sensors use a very simple mechanism inside with 2 balls that are acted upon by gravity. They send a signal when they touch each other and a metal pin at the base of the sensor. They communicate via GPIO with the Pico.

Log

Week 5-11 May

I've received all 12 incline sensors and the DFPlayer last week so I can finally start to test everything. The sensors can communicate through GPIO since their signal need not be processed, but I'm having trouble figuring how the DFPlayer works and how to use UART.

Song of the week is: TOOL - Reflection

Week 12-18 May

Hardware

Setup consists of 3 Raspeberry Pi Pico 2W boards, one for each hand and one acting as the main unit for playing the music. The music is played through a speaker connected to a DFPlayer module which receives signal from the main Pico board. The DFPlayer connects to the main Pico 2W through SPI and to the speaker via the SPK pin. VCC is supplied by the Pico board. 5 incline sensors are connected through GPIO to a Pico 2W for each hand.

Schematics

KiCAD Scheme

Bill of Materials

DeviceUsagePrice
3x Raspberry Pi Pico WMicrocontrollers120 RON
DFPlayer MiniMP3 Module with SD Card14 RON
10x Incline SensorIncline Sensor10x5 RON
Resistor 1K OhmResistor from Kit15 RON
WiresWires, Male-Male and Female-Female~10 RON
Speaker 8OhmSpeakerCouldn't find speakers available anywhere for a good price actually, nobody seems to sell these anymore, I ripped one out of a toy, I will edit this later if I buy a speaker

Software

LibraryDescriptionUsage
embassy-rpFor communication with the peripherals
embassy-executorExecutor for tasks
embassy-timeUsed for timers, delay, duration etc
embassy-syncUsed for synchronization
dfplayer_asyncFound on crates.io, made specifically for the DFPlayer module