The purpose of this project was to design an interactive toy that allows a child to connect sounds to a picture.
The child this toy was designed for is a child who wears hearing aides and is taking speech therapy. The parent wants the child to be able to have a device that can help him connect sounds to objects to help with his hearing trouble. The parent also wanted it to be an adaptability game to help the child continue to grow and learn new sounds.
The child has hearing loss so a device that can help him learn sounds and connect it with real objects is what they are looking for.
One device that inspired the concept designs was a See’N’Say animal wheel that was made by Mattel. The wheel would spin around and randomly land on an animal and then it would say the sound of the animal. Example: “The Cow Says: (Makes Cow Mooing sound).”
Another device that inspired these designs was a GoTalk device. The GoTalk device is a device that allows the user to record the sounds they want on it and then put whatever pictures they want on the device. When a button is pressed, whatever sound was recorded on that button would play and whatever picture was over the button would match with the sound.
The first suggested concept was an electronic display that would display four random pictures. The four pictures would be randomly generated and a sound would play after the pictures show. The child would have to press a button and choose which object he/she thinks the sound would match with. This same design was also considered for a spinning wheel too. As the wheel would spin around, it would stop on four different pictures and a sound would play that the child would have to choose and figure out which sound matches with the picture.
The components of this device would include an LED screen, and a circuit board with all the components like LED lights, buttons, and a program implemented on it. A battery pack will be used to power the circuit board. An exterior frame made of durable plastic would cover and hold all of these components.
The second design thought of is a circular wheel with 8 buttons designed to light up LEDs if the child selects the image corresponding to the sound played from the central speaker. The sound will be chosen from a small remote control and would work on similar principles to flash cards. Most of the work would be inside the case and will require a circuit board, an LED, a speaker, and lastly a remote set up.
Concept Design 3 is based around adjusting an existing toy, GoTalk, to meet the design specifications of the client. The toy is based on a 4 by 4 board with pictures that are interactive by sound. The toy emits a sound – dog, train, etc – and the child is meant to match that sound by pressing the corresponding button.
The toy would be adjustable with 5 themes (5 – 4 by 4 cards that are interchangeable.) We will need to get hold of a circuit board with a voice over
We as a group agreed that concept design 3 would be the best fit for the child. The design would allow the child to connect sounds to pictures and allows for adaptability so the parent can change the sounds and pictures that are displayed on the toy. The decision matrix and overview section covers more of our selected design and how we reached this conclusion.
Based on the Decision matrix, Concept Design 3 was the most ideal for meeting the child’s needs. Before we could begin designing we decided to look at the previous attempt at this project from last semester. The site for that project can be found here: https://techengineeringforkids.com/project/group-11-device-to-help-with-hearing-loss/
After speaking with one of the previous group members, we decided to continue pursuing the project they had decided to do. This group consisted entirely of Mechanical Engineers, none with a Mechatronics concentration, and all of our suggested concept designs would involve forms of programming or electronics which many of us were not skilled on doing.
The design the previous team was doing was a design similar to the one we had chosen to do. Their toy would have six changeable images for the child to choose from. A sound would randomly play and the child would choose what image he thinks sound belongs to. When he presses the button, a light will flash indicating he chose that one. If he is right, he will be told that he is correct. The toy would have a record function so the parent could change the sounds associated with the buttons.
Where the previous team had gotten with their project was they had designed the body, put together the circuit board, and had programmed about ~95% of what they wanted the board to do using Arduino, which programs using C++ language. Our goal was to program a play and record function into their project and to perform tests/troubleshoots to make sure it will run properly.
We did not need to order many parts for this project but we did need to purchase an upgraded Arduino board called an Arduino Mega, a sound board that outputs MP3 sounds, and some other small parts to continue the project. The details of the orders can be seen down below.
The design for this toy includes a 3-D printed body made out of hard plastic. The buttons consisted of plexiglass screens that were screwed on to help prevent the image from falling out. The board powering the design would include an Arduino Mega and an Adafruit MP3 Music Maker for outputting the sound. The arduino would be powered by a 9-volt battery pack which was designed on the body of the toy. Each button on the toy press a button on the boards that would connect to the Arduino Mega. When pressed, the Arduino Mega would play the sound that was connected to that button.
The goal of this analysis was to find the impact force the toy would experience if someone were to accidentally drop it from seven feet, (approximately 2 meters). The process involved working simple formulas by hand, V = sqrt(2gh), t = sqrt(2h/g), & F = m(dv/dt). The impact force was found to be approximately 39.21 Newtons.
The previous team had shared their programs they were using in Arduino with us. We were told by the previous team that all we needed to do was program a play and record function in their Arduino program. Unfortunately their program contained tons of errors that we did not know how to fix. We even sought help from extra sources and could not figure out what the issue was. This meant we had to begin building a new code from scratch.
We first started programming after the new Arduino Mega board arrived. The reason being was that we needed to wait so we could allow our settings in Arduino to be set to the Arduino Mega.
Once the board arrived we spent several hours experimenting with programs trying to perform a successful program. Based on what the parent requested we needed a program that could: play sounds when pressing a button, play a random sound, allow for sounds to be changed for adabptability, and flash a light if the sound matches the correct picture. While this might sound like a simple setup, this was actually a very step-heavy program that involved many different components.
The led-bulbs we received from the previous group were programmable with Arduino so that was our first starting step was to develop a program that would flash the LED bulbs. We were able to locate a program online that worked and allowed an LED bulb to flash at a given time rate.
Since the Arduino Mega had a built in amplifier, it meant that the Mega could connect directly to a speaker and allow it to output sound. The speakers used were 4 ohm speakers. Since an amplifier was already readily available, we were able to program a simple tone function using Arduino to allow some quick tones to be output. Using the tone function in Arduino allows a certain Hz sound wave to be delivered from the speaker.
We also were able to program the tones to be output when a button is pressed. The code we used is shown below. Using this program the tones will not be output unless a digital button is pressed.
A picture of a setup demonstrating this program is shown below.
At this point we already had a working lightbulb code and a semi-working sound code and semi playing a sound with a button code. Although the sound code we had working allowed tones to be output, the child was going to need to hear words and clearer sounds than Hertz to understand the pictures he is trying to connect the words to. This is where the Adafruit MP3 Music maker comes in.
Arduino by itself does not possess the capability of outputting sounds that use more than tones like MP3, WAV, etc. files. Using this board, MP3 sounds can be installed on an SD card and a program can allow these sounds to be output via a speaker. While this sounds simple at first, this proved to be one of the most challenging parts of this entire project and what held us up on finishing on time. The testing results section will go more into details of figuring out how to program this and why it failed.
Another issue is the incompatibility between the the speakers we had compared to the speakers that the old base used. To overcome this difficulty we had to design and 3D print a base for the speakers to be attached to the old design.
Continuing with our discussion earlier, Adafruit provided a library for the sound board that had test programs for us to use. An entire tutorial on using the Adafruit MP3 board can be found here https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player
Following this tutorial we were able to get the example program the tutorial recommended we use called player_simple. Following all the instructions the we were got to the point to where we were ready to try out some MP3 files. We had purchased an SD card and a reader to connect it to the Laptop so MP3 files could be installed on it. At the beginning of testing the program we began encountering problems. Every time the program would attempt to upload to the Arduino even with all the correct pin connections we would always receive an error that we could not solve.
We spent a major amount of our project trying to solve this error. We thought it was probably a bug with the test program so we tried different programs online and doing edits ourselves and testing it. Unfortunately nothing worked.
We eventually were able to solve this problem on the last week when finals were going on. Our soldering we did on the board was poorly done and we had used the wrong pin connections on some components of the board by using male instead of female pins. Some of the soldering we did caused other pin connections to connect together which caused the board to fail which was causing the error. We were eventually able to make the player_simple test program work and we were able to output MP3 files on a speaker using the setup shown below.
Going back to the button program for playing tones. We attempted to program different tones to play from different buttons. This was done by specifying what pins in the Arduino Mega would be connected to what buttons would be pressed. We attempted first to make our own program but this provided unsuccesful results. We were eventually able to find a working code online that allowed different tones to be played by pressing a specified button. This program currently only works for 3 buttons but it 3 more buttons can easily be programmed to make the 6 buttons that are on the toy.
We thought we would try to attempt to find a recording program for using the microphone we received from the last group. We spent days and hours trying different microphone programs for outputting on the speakers but unfortunately we were not successful in locating a working program.
There were other things we needed to program like playing a random sounds and letting the child know if the sound is correct or not but we spent more time trying to figure out the latter programs because they were the fundamental programs that would allow for programming the rest of what the toy needed. Looking at the list below here was how much of our “to-do list” for programming we were able to accomplish in the time we worked on this project. Given more time this project would have probably been successfully completed.
Overall we feel we accomplished a lot by doing this project. We learned new skills that we never had experienced before, and were able to document some great info for future groups. Although the project was not completed, this was a neat project to work on and I hope the next group that works on it will be able to benefit from it like we have.