Educational Child's Toy
Introduction: Educational Child's Toy
For my GCSE Design and Technology coursework, I decided to make an educational child's toy. Due to time constraints, not every feature that I had planned to add could be implemented so I decided to revisit the project. To improve the device, I made several large modifications (such as changing the microcontroller from an Arduino Mega to an ESP32). This tutorial will focus on the upgraded toy as it maintains most of the features of the old device alongside newer features - allowing for all the features to be discussed.
The main body of the toy is built out of MDF and plywood. I used the CNC machine to carve out the front panels as they are quite intricate. This was because I had designed it to only allow pieces to be inserted in one orientation thus ensuring that the text is always upright and level.
I made the pieces myself using epoxy resin and phosphorescent mica powder. Due to time constraints and a lack of any other alternative, I had to use the front panel (covered with sellotape) as a mold. While rudimentary, sellotape was the best covering out of all 7 I had tested. It allowed the resin to set properly, it protected the MDF panel, and it also allowed the pieces to be removed easily without damaging them. All things being considered, they turned out very well and the phosphorescent effect is greater than I could have hoped for.
The user's parent can control the toy through any Android device with the Microcontroller Remote app (https://bit.ly/34kJ3rF). 622
It is also backwards compatible with the Educational Toy Companion App (https://bit.ly/2N9c1SE).
All files for this tutorial are available on GitHub (https://github.com/michaelmckey/educational_toy2)
Videos of the toy are available on YouTube (https://www.youtube.com/playlist?list=PLHfkLzhFq1Qh6MnNZbL_Q6yu3HD-ERqyJ)
Supplies
Materials:
* MDF
* plywood
* epoxy resin (with hardener)
* hinges
* handle
Electronics:
* ESP32 (previous version used Arduino Mega)
* USB cable (for ESP32)
* USB power bank
* Wired speaker with internal battery
* 2-way 3.5mm headphone jack adapter (for speaker)
* 22-gauge solid core wire
* perf board
* female pin header
* RGB LEDs
* LDRs
* resistors
* NPN transistors
* PNP transistors
* heat-shrink tubing
Other:
* phosphorescent mica powder
* paint
* panel pins
* wood glue
* wood screws
* A4 label paper
Step 1: The Circuit
When building the circuit, the number of available pins on the microcontroller was an issue. Due to this I selected an Arduino Mega for the original prototype incase more pins were required than previously planned. When upgrading the toy, I knew the exact number of pins that were necessary, so could instead opt of an ESP32. As it featured inbuilt Bluetooth while having enough storage for the auto files, it decreased the need for external components and simplified the circuit.
I used RGB LEDs to provide visual feedback to the user and to also allow the device to scan each inserted piece and determine its colour. As I was limited in the number of available pins, I decided to synchronize the colour of all the LEDs to reduce the number of pins necessary. This meant that three pins could control the red, green, and blue components of all LEDs while nine pins could control which LEDs were on and off.
To measure the light intensity in each slot, I made a potential divider circuit using LDRs and 2k resistors. As the number of available pins was limited, I was only able to have nine sensors (1 per piece with none left over to measure the ambient light).
To add sound to the device, I cut the headphone adapters wires and soldered them into my circuit. This meant that the speaker could be switched easily reducing the sunken costs associated with the project.
I used some perf board and 22-gauge solid core wire to build the circuit. I wanted the ESP32 to be removable in case I made a mistake while soldering (foreshadowing) or incase I wanted to use it in future projects. To do this, I cut a female pin header to make a port for the device.
Step 2: Calculating the LDR Formulas (Explanation)
I had no LDRs that had already been calibrated to act as a reference, so instead I used some physics to work out the formula. 382