Touch Voice Toy
Touch voice toy for kids is a fun learning aid with voice feedback, to help kids learn alphabets, 2D shapes and colours. The child touches the foil marker underneath each letter/color/shape and the toy spells out the corresponding recorded word. Repeating this many times, the child associates that letter or color with the particular sound. This toy is useful for kids older than 30 months, though younger kids can still be entertained for a few minutes.
Once the child is bored with a particular front plate, we can change the front plate to a different one with other letters/colors so that the child can learn new stuff and be entertained for a little longer.
This is a prototype, homemade toy, built by me, using basic parts like an Ardiuno Nano, Df player mini with a speaker and an MPR121 touch ic.
Supplies
- Arduino Nano
- MPR121 IC
- DF player mini with speaker (4 or 8 Ohms)
- Connecting wires (jumper cables)
- Power bank with USB cable
- Soldering supplies and heat shrink tube
Schematic
The schematic shown here contains 4 main components: A speaker, DF player mini , Arduino nano and the MPR 121 IC. The interconnection between the components is given in the block diagram drawn in the same pic. The bunch of blue wires leaving from MPR 121 IC go to individual touch sensors on the cover of the box. You can simply use pieces of aluminium foil cut into fancy shapes as touch pads. Food wrapping foil works well. Connect the individual foils to the blue wires, which are 12 in total. Keeping one foil for cycling through the modes, 11 sensors are available for use by the child.
Power Supply
For power supply, use a simple 5V power bank. Cut out the connector from the cable and extract the black and red wires to get the 5V and ground lines. Connect them to VIn pin Arduino and the power input pin of DF player. Do not draw 5V for DF player from arduino. DF player current demand during start up is high and the arduino onbaord 5V regulator cannot provide that current. The DF player will keep restarting during the startup and will give clicking sound repeatedly as it resets during startup. Power for MPR 121 can be drawn from 3.3V output of arduino .
Connections:
Connect Arduino Nano Tx (D11) which is transmitting signals to Rx of the DFplayer using 1K ohm resistance (for reducing noise in the signal)as shown in figure.
Connect MPR121 ic to the 12 sensor inputs.
MPR121 transmitts signals to Ardiuno through I2c protocol. SCL (Serial Clock) is connected to A4 of Ardiuno and SDA(Serial Data) is given to A5 of Arduino.
Arduino communicates to the DF player through SPI. Make sure to use software serial with correct assigned pins. This can be set in the arduino code.
Memory Card for DF Player
Format the memory card as a FAT32 storage device in a windows PC. A 4GB memory card works fine. Place your MP3 files corresponding to each letter outside, without creating a folder. This is the simplest way to get it working. Name the files with numbers with preceding zeros (001.mp3) and so on. Make sure each MP3 file is over 2 seconds long. You can change the assignment of the mp3 file to the touch sensor pin in the arduino code during testing. So do not worry if the order of the mp3 is wrong .
Arduino Code
The Arduino code is pretty simple if we use libraries for the DF player and MPR121 available online.
Using the Adafruit library , we can get which sensor is being touched in the MPR121 ic from the Arduino serial monitor.
Then using the DF player library in Arduino , we ask the player to play the recorded mp3 files sequentially and note down the order in which it plays.
Now we simply have to assign each mp3 file number to the corresponding touch sensor trigger using "if else blocks". This arrangement is quite straight forward. We can also have a "mode" touch sensor (say 12th pin), to cycle through a mode variable. For each value of mode variable, we can play different set of mp3 files for the same 11 touch inputs.
Hope you have fun making and watching your kids touch and destroy the project.
A video demonstrantion of the project and a sample arduino code is given below..