An educational toy to learn Childrens the musical tones through piano instrument.
Because I'm interested in educational games or toys, and I think it's the perfect way to deliver information to a child. because of the interaction. it makes unlimited conversation between the child and the educational content with joy and enthusiast.
There are a lot of studies about how important and how difficult to learn musical notes especially for Kids it effects really good in their growth.
Inspiration: (OTOTO) is a musical invention kit which allows anyone to quickly and easily create their own electronic musical instrument. With OTOTO you can unpack the kit and make anything from a drum kit of saucepans to origami that sing when touched.
first i upload kits from fusion library i started with lcd screen
from
https://gallery.autodesk.com/fusion360/projects/56696/lcd-display-20x4
creating the first sketch start with the project tool I use on the LCD screen to make holes and create a rectangle for the screen then I
start taking dimensions from the push buttons and neo-pixels to sketch their holes and I used rectangler pattern to repeat them on a line
I used the dimension tool to define the dimensions between the components
then I used tools like circles, lines, and arches to create the toy's frame
I used the dimension tool and tangent relation
I used the extrude tool with a 3 mm thickness
Then create a sketch on the bottom of the top part to design the frame and the connection between the PLA and the top/bottom wooden parts
I used an offset tool with a 2mm thickness
Then I uploaded an on/off switch and
used the extrude tool with a 6.5 cm height
I create the T slots and join the switch with the rectangle frame on the wooden part
Create the T slots and use the project tool to create ports for Arduino on the wooden part
Creating tapes with a 3x30 mm
Creating holes for screws to make joint between PLA and wooden parts
Upload a push button and create a joint with the top part hole
Assembly
Assembly
The final result
I used laser works to prepare the part for cutting
it was 30 for speed 50 for power
Cutting 30 for speed 50 for power and engraving 300 for speed 20 for power with deleting the over lapse
then I uploaded the file to the machine chose the file make an origin point and tracked the frame then start
Then it fitted in its place
I used Cura to prepare the 3d printing parts
20% for infill
0.2 layer hight
10% support density
0.8X2 walls
215-degree material
first I get the file on the memory card with a reader
then I change the filament and cut its edge with 45 degree
I choose to upload it on the machine to put the filament
then choose the file and run it
It's about 7 hours and 79g
I used
1 On/Off switch
4 push buttons
1 LCD 20x4
1 Arduino Uno
4 Neo pixels
When I push the button I hear music from the processing program
and see its musical scale on the LCD screen
When I play the musical button I hear a piece of music and I see its scale on the LCD screen then the neo pixel lights up with each tone to learn the kid its places
Finally,
There is an On/Off switch connected with the 5 V Pin
Then I tried to connect it to a board and Arduino with 10 push buttons on pins from 2 to 13
and I connect the neo pixels serial with each other
Then I take the ground and the 5 v pin finally
I connected the output pin from neo pixels to the A3 pin on The Arduino
I use the USB cable as a data cable and because of the sound, it's coming from the laptop
9v as a power source
First, include
the libraries
for LCD I2C
for Neo pixels
get the address of the LCD(0X27)
Then define the Neo pin(A3)
define the number of the Neo pixels
(10)
now define variables
for buttons for counter
Then setup
serial and pixel begin
define the push button as INPUT_PULLUP
and initialize the LCD
turn on the backlight
Then setup
in the beginning, the LCD screen will give the kid instructions (like how to play)
so we will set the cursor and write
Void loop
in the beginning the neo pixels
turned off
now if the kid pushes button 1(La button) it will print the letter (a) on the serial monitor and print (La)
on the LCD screen then clear the screen
if the kid pushes button 2(Sol button) it will print the letter (b) on the serial monitor and print (Sol)
on the LCD screen then clear the screen
If I push the love button once it will give me (the first half of the love story music) and will show me the buttons with lights and will tell me its names on the LCD screen
so I can repeat it after easily
If I push the same button(the love button) again it will give me ( the second half of the love story music) and will show me the buttons with lights and will tell me its names on the LCD screen
so I can repeat it after easily
I used processing to get the piano sound from the laptop
First, we will import the minim library
and import processing serial
then define variables for each one
and create an object from a serial class
define a variable for the data we received from the serial port
Load tones
define the Arduino port (9600)
We write this to make sure don't do anything except if data is available
This is mean if data isn't null print the value coming from Arduino
If the value = letter(a)
play the song (40)
10 push buttons on pins from 2 to 13 /ground
and I connect the neo pixels module serial
with each other
then I take the ground and the 5 v pin finally
I connected the output pin from neo pixels to the A3 pin on The Arduino
first, connect the LCD i2c module then connect
the SCL on A5 pin
The SDA on A4 pin
and VCC with the 5 v pin
finally, ground
When the kid pushes the button the neo pixels light up 🔳
because the neo pixels light up just when the kid is pushing the pieces of music not the single tone.
and I helped them to solve problems after the fabrication
There was a problem with controlling each neo pixel individually with the adafruit library
The solution
to makeing it easy to control with adafruit library
First
pixels.setPixelColor(0, pixels.Color(0, 0, 150)); //0 IS the neo number in the serial connection so if I want to control them I'll call them as its position on the serial connection
pixels.show();
delay(700);
pixels.setPixelColor(6, pixels.Color(0, 0, 0)); // if I want the neo to get off I have to make its color (0,0,0) and then show them
pixels.show();
The LCD screen holes after fabrication it was a little bit narrow
The solution
I sand it with files
Too many jumpers so
The solution
I connected the neo pixels serial to decrease the jumpers
and I get a smaller breadboard
I'll make LCD screen more interactive with the kid
The LCD screen will guide him in detail about the musical note
and tell him if he doing great with more musical pieces and buttons