STEM based Educational Keyboard using Arduino

Published  February 23, 2022   0
A Aaryan Gupta
Author
Stem Educational Keyboard

Students who receive STEM education become critical thinkers, have a higher level of science literacy, and are more likely to be innovators. Innovation is the key to sustaining the economy. A solid knowledge base in STEM fields is essential for innovation and science literacy. That's why we have decided to make an arduino project which will help children to learn the better and practical way. To admin/upload different songs, format your SD card with either FAT16 or FAT32. As Arduino mega can't read MP3 files directly, need to convert the file into a ".wav" file. For this convert any .mp3 into .wav file as per recommended settings: bit resolution: 8 Bit sampling rate: 32000 Hz audio channel: stereo Once completed, copy the song to the SD card using a card reader and insert it into the microSD card module.

Component Required for Educational Keyboard

Project Used Hardware

STEM based Educational Keyboard Components

  • Arduino Mega x 1
  • Tactile push Button x 26
  • Copper Wire
  • 3.7v Rechargeable Battery x 2
  • 8-ohm Speaker
  • SD Card Module x 1
  • 8gb SD card

Project Used Software

  • Arduino IDE

Project Hardware Software Selection

The Arduino MEGA 2560 is designed for projects that require more I/O lines, more sketch memory, and more RAM. With 54 digital I/O pins, 16 analog inputs this is the best hardware that meets our requirements. We also used the Micro SD card module which helps to read data from sd cards. 8-ohm speaker for clear sound and 3.7v rechargeable battery for long-duration playtime.

STEM based Educational Keyboard​ Circuit Diagram

STEM based Educational Keyboard Circuit Diagram

Micro SD Card Module has six pins, 2 for power( VCC, GND) and 4 pins for the SPI communication. Gnd to GND MISO to D50 (MISO) SCK to D52 (SCK) MOSI to D51 (MOSI) CS to D53 (SS) +5 to +5V Speaker - D10

Code
#include "SD.h" //Lib to read SD card
#include "TMRpcm.h" //Lib to play auido
#include "SPI.h" //SPI lib for SD card

#define SD_ChipSelectPin 53 //Chip select is pin number 4
TMRpcm music; //Lib object is named "music"

const int A = 8;
const int B = 7;
const int C = 6;
const int D = 5;
const int E = 4;
const int F = 3;
const int G = 2;
const int H = 30;
const int I = 31;
const int J = 32;
const int K = 33;
const int L = 34;
const int M = 35;
const int N = 36;
const int O = 37;
const int P = 38;
const int Q = 39;
const int R = 40;
const int S = 41;
const int T = 42;
const int U = 43;
const int V = 44;
const int W = 45;
const int X = 46;
const int Y = 47;
const int Z = 48;
int button=10;

void setup(){
music.speakerPin = 11; //Auido out on pin 11
Serial.begin(9600); //Serial Com for debugging 

//pinMode(button, INPUT);
pinMode(D, INPUT);
digitalWrite(D,HIGH);
pinMode(A, INPUT);
digitalWrite(A,HIGH);
pinMode(B, INPUT);
digitalWrite(B,HIGH);
pinMode(C, INPUT);
digitalWrite(C,HIGH);
pinMode(E, INPUT);
digitalWrite(E,HIGH);
pinMode(F, INPUT);
digitalWrite(F,HIGH);
pinMode(G, INPUT);
digitalWrite(G,HIGH);
pinMode(H, INPUT);
digitalWrite(H,HIGH);
pinMode(I, INPUT);
digitalWrite(I,HIGH);
pinMode(J, INPUT);
digitalWrite(J,HIGH);
pinMode(K, INPUT);
digitalWrite(K,HIGH);
pinMode(L, INPUT);
digitalWrite(L,HIGH);
pinMode(M, INPUT);
digitalWrite(M,HIGH);
pinMode(N, INPUT);
digitalWrite(N,HIGH);
pinMode(O, INPUT);
digitalWrite(O,HIGH);
pinMode(P, INPUT);
digitalWrite(P,HIGH);
pinMode(Q, INPUT);
digitalWrite(Q,HIGH);
pinMode(R, INPUT);
digitalWrite(R,HIGH);
pinMode(S, INPUT);
digitalWrite(S,HIGH);
pinMode(T, INPUT);
digitalWrite(T,HIGH);
pinMode(U, INPUT);
digitalWrite(U,HIGH);
pinMode(V, INPUT);
digitalWrite(V,HIGH);
pinMode(W, INPUT);
digitalWrite(W,HIGH);
pinMode(X, INPUT);
digitalWrite(X,HIGH);
pinMode(Y, INPUT);
digitalWrite(Y,HIGH);
pinMode(Z, INPUT);
digitalWrite(Z,HIGH);
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD fail");
return;
}

music.setVolume(7);    //   0 to 7. Set volume level
music.quality(0);   
}

void loop()
{   
 while (digitalRead(A)==LOW) //Button 1 Pressed
  {
   music.play("A.wav"); //Play song 1 from 33rd second 
   music.setVolume(7); 
  }

   while (digitalRead(B)==LOW) //Button 1 Pressed
  {
   music.play("B.wav"); //Play song 2 from 33rd second 
  }

   while (digitalRead(C)==LOW) //Button 1 Pressed
  {
   music.play("C.wav"); //Play song 2 from 33rd second 
  }

   while (digitalRead(D)==LOW) //Button 1 Pressed
  {
   music.play("D.wav"); //Play song 2 from 33rd second 
  }

   while (digitalRead(E)==LOW) //Button 1 Pressed
  {
   music.play("E.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(F)==LOW) //Button 1 Pressed
  {
   music.play("F.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(G)==LOW) //Button 1 Pressed
  {
   music.play("G.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(H)==LOW) //Button 1 Pressed
  {
   music.play("H.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(I)==LOW) //Button 1 Pressed
  {
   music.play("I.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(J)==LOW) //Button 1 Pressed
  {
   music.play("J.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(K)==LOW) //Button 1 Pressed
  {
   music.play("K.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(L)==LOW) //Button 1 Pressed
  {
   music.play("L.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(M)==LOW) //Button 1 Pressed
  {
   music.play("M.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(N)==LOW) //Button 1 Pressed
  {
   music.play("N.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(O)==LOW) //Button 1 Pressed
  {
   music.play("O.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(P)==LOW) //Button 1 Pressed
  {
   music.play("P.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(Q)==LOW) //Button 1 Pressed
  {
   music.play("Q.wav"); //Play song 2 from 33rd second 
  }
  while (digitalRead(R)==LOW) //Button 1 Pressed
  {
   music.play("R.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(S)==LOW) //Button 1 Pressed
  {
   music.play("S.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(T)==LOW) //Button 1 Pressed
  {
   music.play("T.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(U)==LOW) //Button 1 Pressed
  {
   music.play("U.wav"); //Play song 2 from 33rd second 
  }
  while (digitalRead(V)==LOW) //Button 1 Pressed
  {
   music.play("V.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(W)==LOW) //Button 1 Pressed
  {
   music.play("W.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(X)==LOW) //Button 1 Pressed
  {
   music.play("X.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(Y)==LOW) //Button 1 Pressed
  {
   music.play("Y.wav"); //Play song 2 from 33rd second 
  }
   while (digitalRead(Z)==LOW) //Button 1 Pressed
  {
   music.play("Z.wav"); //Play song 2 from 33rd second 
  }
  }

Have any question realated to this Article?

Ask Our Community Members