Project

# Title Team Members TA Documents Sponsor
66 Self-playing Programmable Chromatic Harmonica
David Zhang
Robert Zhu
Sean Jasin
Wenjing Song design_document2.pdf
proposal1.pdf
# Team Members:
-Sean Jasin (sjasi3@illinois.edu)

-Robert Zhu (robertz4@illinois.edu)

-David Zhang (dzhan6@illinois.edu)

# Problem:
The harmonica is a versatile, simple, yet technically difficult instrument to play. There is a need for the background music of a live instrument, yet it is difficult to master the harmonica. Some lack the time to practice and learn the harmonica. For others, they may no longer be able to physically play the harmonica, or do not have access to training or musical education. Existing musical devices exist for keyboard and string instruments, but not for wind instruments. There is a need for a self-playing harmonica that can produce melodies without requiring manual lip or breath control.

# Solution:
The solution is a device that is able to play the harmonica. The self playing harmonica consists of multiple subsystems. The power supply provides power at all required voltages for the MCU, air pumps, and electronic pneumatic valves. The harmonica-computer interface connects to both the harmonica and the MCU, and is responsible for controlling the flow of air through the harmonica. It consists of pneumatic tubes, air pumps, and electronic valves. The MCU is responsible for controlling the pumps and valves in the harmonica-computer interface, as well as taking a MIDI file and converting it into a sequence of pump and valve motions. Lastly, songs are uploaded to the MCU through WiFi. We will create a website where the user can upload a MIDI file and that file is then available to play on the device.

# Subsystems:

Power supply

Motor driver

MCU

Harmonica-computer interface

Website for uploading MIDI files

## Power supply (located on the pcb)
The power supply must be capable of supplying 3.3V, and 12V power to the device. The 3.3V power supply is for the MCU and the 12V power supply is used by the pneumatic valves. We will utilize an AL-12100 12V 120W power supply that plugs into a wall outlet. We will then convert the 12 power supply into the signal voltage, 3.3V, on the PCB.

## Motor driver (located on the pcb)
The motor driver will allow the ESP32 to control the DC motor because the output of the GPIO on the MCU cannot provide enough power (GPIO 3V3 @ low current, motor needs 12V). The output of the motor driver will be a 12V PWM signal.

## MCU
For the MCU, we will use an ESP32 for its WiFi capabilities. The MCU has 2 functions: mechanical control and MIDI upload. The mechanical control will take MIDI inputs and play the respective note on the harmonica. This will be controlled by several valves which will allow us to control the airflow into the harmonica.

## Harmonica-Computer Interface

Harmonica:
The harmonica that we will be using for the project will be a Conjurer-brand 10-hole chromatic harmonica. This harmonica was chosen due to its budget-friendliness, as well as its ability to play semitones without the requirement of “bending”, when one uses their tongue to play semitones.

Air pump:
We will use a Mini 555 Dongguang air pump to supply a constant and variable air flow. The airflow will be changed to control for volume, with a maximum of 15 LFM or 0.53 CFM. This should allow us to be able to play 10 notes simultaneously. The airflow of the output will be determined by PWM duty cycle, which will allow us to control the volume of the harmonica. The static pressure requirement of the pump is inconsequential, as harmonicas do not require significant air pressure to play.

Electronic valves:
The electronic valves will consist of 10 Laccimo 2V025-1/4 12V solenoid valves and one Airtac 4V110-08F 5/2 12V solenoid valve. This will allow air input and output from each hole of the harmonica, as well as switching action between blowing air and sucking air.

High-Torque Servo:
To operate the slider, a high-torque servo will be used. The DS3218MG has a sufficient control angle and has enough force (20kg) to operate the lever at a fast speed and in a precise manner.

## Website
Using the ESP32’s WiFi capabilities, the MCU will host a mini server on which a user can upload MIDI files. These MIDI files can then be processed by the MCU to be played by the harmonica.

# Criterion for Success:
The success of this project will be based upon these criteria:

Must be able to blow in and suck out air of all holes in a chromatic harmonica

Must be able to achieve the full range of airflow from 100 to 400 LFM. (equivalent to 0.009 CFM to 0.025 CFM given a 4mm x 10mm sized opening).

Ability to engage and disengage the slide of a chromatic harmonica.

Dynamics/volume control of each played note is accurate and successful.

A .MIDI file is able to be uploaded to the website of the self-playing harmonica system.

A .MIDI file is able to be transmitted to the MCU via WiFi and performed accurately by the self-playing harmonica system.

The system must be robust enough to play for 10 minutes continuously.

Iron Man Mouse

Jeff Chang, Yayati Pahuja, Zhiyuan Yang

Featured Project

# Problem:

Being an ECE student means that there is a high chance we are gonna sit in front of a computer for the majority of the day, especially during COVID times. This situation may lead to neck and lower back issues due to a long time of sedentary lifestyle. Therefore, it would be beneficial for us to get up and stretch for a while every now and then. However, exercising for a bit may distract us from working or studying and it might take some time to refocus. To control mice using our arm movements or hand gestures would be a way to enable us to get up and work at the same time. It is similar to the movie Iron Man when Tony Stark is working but without the hologram.

# Solution Overview:

The device would have a wrist band portion that acts as the tracker of the mouse pointer (implemented by accelerometer and perhaps optical sensors). A set of 3 finger cots with gyroscope or accelerometer are attached to the wrist band. These sensors as a whole would send data to a black box device (connected to the computer by USB) via bluetooth. The box would contain circuits to compute these translational/rotational data to imitate a mouse or trackpad movements with possible custom operation. Alternatively, we could have the wristband connected to a PC by bluetooth. In this case, a device driver on the OS is needed for the project to work.

# Solution Components:

Sensors (finger cots and wrist band):

1. 3-axis accelerometer attached to the wrist band portion of the device to collect translational movement (for mouse cursor tracking)

2. gyroscope attached to 3 finger cots portion to collect angular motion when user bend their fingers in different angles (for different clicking/zoom-in/etc operations)

3. (optional) optical sensors to help with accuracy if the accelerometer is not accurate enough. We could have infrared emitters set up around the screen and optical sensors on the wristband to help pinpoint cursor location.

4. (optional) flex sensors could also be used for finger cots to perform clicks in case the gyroscope proves to be inaccurate.

Power:

Lithium-ion battery with USB charging

Transmitter component:

1. A microcontroller to pre-process the data received from the 4 sensors. It can sort of integrate and synchronize the data before transmitting it.

2. A bluetooth chip that transmits the data to either the blackbox or the PC directly.

Receiver component:

1. Plan A: A box plugged into USB-A on PC. It has a bluetooth chip to receive data from the wristband, and a microcontroller to process the data into USB human interface device signals.

2. Plan B: the wristband is directly connected to the PC and we develop a device driver on the PC to process the data.

# Criterion for Success:

1. Basic Functionalities supported (left click, right click, scroll, cursor movement)

2. Advanced Functionalities supported(zoom in/out, custom operations eg. volume control)

3. Performance (accuracy & response time)

4. Physical qualities (easy to wear, durable, and battery life)