Final Project
Make a Flute play music like a Flutist
What is flute??
Indian flute is a cylindrical wooden instrument played which has holes and can be played with the help of blow and fingers. As it is the instrument of Lord Krishna, it has religious importance too. when played correctly the sound Produced is melodious and liked by everyone.s
The “flute family” is the oldest Instrumental family in the woodwind category.
A flute in The Renaissance period sas a simple cylindrical wooden tube with a few finger holes and an embouchure hole.
Throughout the course of time, the structure and design of the instrument gradually changed and became more better.
I wanted to learn Engineering with my love of Music and love towards flute I decided to mix them and make a machine which will play flute automatically. my basic idea is to use Motors instead of fingers and a blower instead of blowing with mouth. This instrument can make a change and replace one person in the band and we would be able to play flute without learning how to play a flute.
CAD Design
1. Flute stand
This stand I made in my Week 3 assignment. For more details you can visit this page. I 3D printed the model and it was fitting corectly with the flute.2. Servo Stand
I made one stand for servo in my Week 6 assignment which was not much strong to hold the servo. The servo got fixed in that stand but it didn't balance properly on the movement of servo motor so I designed a new one. In this design, I made a "+" base so that the stand gets fixed properly and doesn't move. I made the design in Fusion.Commands Used:
- Line
- Extrude
- Trim
- Fillet
- Take the dimention of servo motor
- Make a holder in the cad design
- Make the holder a blit slant. From the upper side make it 1mm inside and make holding hatch so that the servo could fit easily in the bottom side
- Measure the height of the flute and set the height of servo stand accordingly.
3. Fingers
Fingers for the holes of flute.4. Blower
Blower for the flute. This blower can be used for your flute, if not approprialte you can make the nozzel according to your flute length. Cut the upper part and make a nozzel according to your flute.5. Laser Cut Layout
This layout is designed in Rhino. There are different adjustments to be done for different kinds of flutes so instead of holes slots are given so that any adjustment can be made. This is the modified layout of the design which I made in my week 3.Electronics Production
1. Milling Board
I modifed Satsha Kit and modified the design and made my own board. I used Eagle for modifying the design. I added 3 - 6 pin headersfor servo motor, 4 pin headerfor bluetooth and one USB for powerint my board.2. Embedded Programming
I used Arduino to program my board. Jimish helped me to program the board.
#include <Servo.h>
Servo servos[8];
int openDegree = 45;
int closeDegree = 0;
struct surHolder {
String toOpen, toClose;
};
surHolder sur[] = {
{"567", "234"},
{"4567", "23"},
{"34567", "2"},
{"234567","0"},
{"0", "234567"},
{"7", "23456"},
{"67", "2345"}
};
surHolder getSur( char c ){
switch(c){
case 's':
return sur[0];
case 'r':
return sur[1];
case 'g':
return sur[2];
case 'm':
return sur[3];
case 'p':
return sur[4];
case 'd':
return sur[5];
case 'n':
return sur[6];
}
}
void openMotors ( String data ){
int motorId;
if( !data.equals("0") ){
int l = data.length();
for ( int i =0; i < l; i++ ){
motorId = data.charAt(i) -'0';
Serial.println(motorId );
servos[ motorId ].write( openDegree );
}
}
}
void closeMotors ( String data ){
int motorId;
if( !data.equals("0") ){
int l = data.length();
for ( int i =0; i < l; i++ ){
motorId = data.charAt(i) -'0';
Serial.println(motorId );
servos[ motorId ].write( closeDegree );
}
}
}
void setup(){
Serial.begin(9600);
for ( int i = 0; i < 8; i++){
if( i >= 2 ){
servos[i].attach( i );
delay(200);
servos[i].write( 0 );
}
}
delay(1200);
Serial.println("Initialized zero degree");
}
char sargam[] = "s---r---g---m---p---d---n---s---";
int surIndex = -1;
char currentSur;
void loop(){
surIndex ++;
currentSur = sargam[ surIndex ];
if(currentSur == '\0'){
Serial.println("done ");
exit(1);
}
if( currentSur != '-'){
Serial.print("new sur change to : ");
Serial.println(currentSur );
surHolder motorsToModify = getSur( currentSur );
openMotors ( motorsToModify.toOpen );
closeMotors ( motorsToModify.toClose );
}else{
Serial.println("continuning last.");
}
delay(250);
}
Bill of materials
Default
Name | Description | Quantity | Price(INR) |
---|---|---|---|
Servo Motor | Used in place of fingers | 6 | 720 |
Blower | Used to blow air in the flute | 1 | 50 |
3D Printed Flute Stand | Pressfitting for holding the flute | 3 | 120 |
3D Printed Servo Stand | To hold the servo | 6 | 240 |
Laser cut base | Base of the flute | 1 | 40 |
3D Printed Fingers | For flute holes | 6 | 120 |
3D Printed Blower | Blow Air in FLute | 1 | 60 |
Nutbolts (3mm) | Screwing the Components | 20 | 20 |
1370 |
Files
- Blower Stand Fusion .f3d STL
- Flute StandFusion 360 .f3d STL
- Servo StandFusion 360 .f3d STL
- Finger RightFusion 360 .f3d STL
- Finger LeftFusion 360 .f3d STL
- Blower Fusion 360 .f3d STL
- Template Layout .dxf
- Final Board Schematic .sch Board View .brd
- Bluetooth Application .apk