With the COVID-19 pandemic, a lot was lost for young school children. It has been harder than ever for teachers and keeping students, especially young elementary schoolers, engaged can be extremely difficult.
We wanted to encourage a love and fascination with STEM from an early age since kids already have a harder time learning and might miss these opportunities. We hoped that developing an interactive product that can be used virtually or in the classroom would help with this. Considering that many elementary-aged kids play an instrument for school, what better way to demonstrate just how cool physics is if not through the power of music!
By bringing in science to “recorder karate lessons” or letting elementary age kids use their own voice to learn about physics and study sound, we hope to help facilitate future leaders in STEM.
What it does
Fun with Physics teaches elementary school aged children about the physics of sound. Kids can see the amplitude, pitch and intensity of the music they play or even their own voice while learning the accompanying science concepts on our website.
We gather the audio data with our Arduino hardware, called Decibot, and send it to a folder to store all the audio files in a session. At this point, we processed it with MATLAB in order to make graphs that compare amplitude, pitch and intensity of the audio files in the folder and label them with a timestamp and a name.
We began to also incorporate an aspect of live feedback by creating a python script which shows the sound waveforms as they are being recorded. We hope to expand this feature in the future.
Decibot also shows intensity as it is being produced with a series of led to show an incremental increase at various ranges of decibels. We also created a prototype 3D case with space for the LED intensity lights and LCD screen. The case also has a lipped sliding base in case the hardware needs to be opened for updates or repairs. The case seemed necessary for children not to break the hardware or get hurt.
Decibot guides the user through each module by prompting them to begin, and gives the user simple challenges in order to foster exploration and understanding of the physics concept. For example, in Module 2: Intensity, Decibot guides users by prompting them to make an LED flash brightly by playing as loud as they can, and to observe how these changes in loudness affect the live Matlab plot.
We also began to create a website with modules to guide students through the project.
How we built it
We created a MATLAB script that prompts for a name and then takes keyboard input for the name and file location for the audio files to start. It then uses the audio package and signal processing toolkit to analyze the audio extracting amplitude, pitch over samples, and intensity over barc bins. We then use the various properties of the audio file to convert intensity from sones to decibels as well as convert both Barc Bins and samples to time. The script then graphs these measurements in three different figures and export them as png files. The script also creates a timestamp and appends it as well as the name in order to rename the png files.
Challenges we ran into
Trying to write a code that works with arduino without everyone having access to the hardware.
We were struggling figuring out how to directly integrate and test the code without always having an arduino to test it with. We worked around this by having the arduino store the data in a folder and then having the script access that folder. This way as long as the files are shared we could test the script.
Audio and live recording with MATLAB
When working on the MATLAB script, my knowledge was limited to image processing. We had to learn a couple matlab packages and tool kits to create the script. It also required lots of debugging as we tried to learn how to get the data to graph just right. Converting the samples, BarcBins, and other audio measurements to time required the most time as we troubleshot for a long time until we found a way that worked.
As less experienced hackers, a huge part of the process was constantly learning and implementing new information. This varied from learning MATLAB audio processing, building hardware hacks, creating a website, and beginning a script for live audio processing. Ultimately, we ran out of time to finish and debug the live audio processing python script, but it was a fun learning process that we hope to complete after the hackathon.
Minor Hardware Issues
Having just an Arduino Uno, We was very much limited with the available number of pins, and ended up maxing out the board. We only had 6 leds to create the intensity effect for Module 2, but was limited by having 5 proper resistors, 3 open pins, and ultimately only having the code work for one, singular led.
Fine tuning the website content
The main goal of the website is to be a learning platform for elementary school aged kids. As college students it is really easy to talk out of the language range of elementary school students, we had to be very intentional about how we worded the modules. For the hackathon we searched for open source or free to use physics resources. In the future it would be great to partner with a publisher, or possibly PBS to source our information. The current layout for the website is easy to navigate, simply keep scrolling. In the future we’d like a more refined website with navigation and buttons to move a user throughout the website.
Accomplishments that we're proud of
- Finally getting the audio recording to graph correctly and in more familiar units (times vs samples or Barc Bins).
- Learning a lot of new programming through the whole process.
- Using arduino to create something interactive for the first time!
- Submitting to our first hackathon!
What we learned
- Learning how to work with audio files when coding for data analysis with no prior experience
- How to use an arduino sound sensor to collect intensity data and vary led brightness based on input, and how to wire and program an lcd screen and interactive buttons
What's next for Fun with Physics
We would love to create a packaged application with a child friendly UI in order to make this resource launchable for a classroom setting. In the future we’d also like to add more modules relating to the sound of physics, and potentially other physics topics.
We would also love to have time to make a final version of the case and 3D print it in order to incorporate it into a kit to send to teachers of young children. We also like to post the final model on Thingiverse or another open-source website so that teachers with access to a 3D printer can print more for their students. Since more public libraries are starting to offer low cost to free 3D printing services, it also can be an activity for the child and parents if school returns to being fully remote.
We think this could be a potentially great idea for children to explore the science of sound in either a virtual or in person classroom setting. So grab your DeciBot, hop onto Fun with Physics, and let's start learning!