Plan and sketch a potential final project
I have an idea of making a special accoustic guitar:
- I am curious to see if the playbackwill not interfere with the microphone to create an echo
I have an idea of making a special accoustic guitar:
But in the end
This page is a summary of the work done on the final project.
A more detailed process is found on the Project requirements/presentation week page. Its link is Here.
Welcome to the summary
Mid work this is one note list of todos i had! Such a journey! Plan for dissemination of my project: 1. finish the embedded system part by Monday the 29th of May 2. Buy wood and cut the guitar by Saturday the 3rd June 3. Assembly and testing by sunday the 4th June 4. Make a video for final presentation before the 6th of June 5. Document everything about my final project before the 7th of June. So far i have started working on the electronics part I also sent in the request for material from the fablab These are the shapes i cut on acrylic using a laser cutter to be able to visualize the project. Thinking about my Summary slidesQuestions to be answered
What will it do? My proposed project is a guitar that has the capacity to record a priece of music and play it back on loop. The user of the guitar may choose to play another live piece of music. Then it will sound like two pieces of music are playing at the same time. Who's done what beforehand? In the fab academy, I saw people who did the boom box, another one who did “Legos” for Sound Physical Modular Sound Blocks for sound and music and many other projects. However none of them resembled mine exactly. On the market you may find guitar pedals with loops. However they are costly and it is a separate tool away from the guitar. MINE WILL BE INTEGRATED INSIDE A GUITAR. What will you design? 1. I will design the electronic circuit for the whole process of recording, writing on an SD card, playing back on a loop. 2. I will design the guitar frame: Acoustic version 3. Integrate everything together. What materials and components will be used? here is the list of material i will use: Not to mention the PLA that will be used in the printing of a case. Where will they come from? Most of these will be purchased by the fablab. If there is additional cost, i will cover. All items can be found on local market. I have links to the shops where i can find them. Items like hardwood boards will be procured by me going to the market place and picking them. How much will they cost? Items mentioned in the colored table have a cost estimation of around 220USD What parts and systems will be made? As i mentioned: The electornic part and, the guitar frame What processes will be used? For the electronic part, I will program the SP32 to do tasks then connect the microphone and the speaker with its amplifier. For the frame i will use the ShopBot to cut parts that i can. Originally i had thought to make a mold and cast the tuning knobs but I was unable to find the right material for that. Therefore i will buy the ready-made knobs, the strings and other things i will not be able to print. Then i will assemble and test. What questions need to be answered? 1. How to record sound/music and write it on an SD card? 2. How to immediately playback sound/ music? 3. Can the system be attached together? 4. Can the sound come out of the case? How will it be evaluated? My project should be evaluated on following criteria: 1. Is the sound coming out the one we recorded? 2. Does the system look like a guitar? 3. was it made by using computer controlled machines? Also to have an idea of what will be done on the guitar frameCNC
the guitar frame can be made using a DXF file to make the case on plywood with 3mm thickness I started with cardboard to avoid wasting Material. I stacked a number of similar parts on each other to have the shape After all this is the frame i worked withElectronics
As mentioned in the project development week, it was too complicated for me to write music (audio) on an HC SD card using just SP32 I opted on using ISD1820 voice Module which records and plays back an audio input, then use the ESP32 to control a boutton like this: Longpress: Start recording mode Simplepress: playback the recorded music in loop indefinetely I had to find a PCB board to house all my main components Using Roland Miller was bringing a lots of problem since the screw that holds the tool was not tightening and the bed seemed not well leveled, I opted to mill the PCB using a CNC A blue elephant ELECNC6090 Chinese model. Steps i took: 1. convert the exported svg of traces into a png file. I used inkscape and kept the ratio of 1:1 always 2. I used the Aspire CAM to create a pocket toolpath to clear the copper out and leave the traces alone. 3. I editted the tool diameter, the feedrate and plunge rate to match the board details. 0.16mm pocket depth to remove copper and 1.8mm to cut out the contour. Bad results from Rml clean traces of CNC I felt happy of the outcome, considering the night i had spent trying the other machine that wouldn't work properly. Please note that i recognize the health risks associated with milling PCB with this type of CNC. If someone else has to do this, let them consider using serious PPE for their breathing then SOLDERED components on Uploaded in the control program static const int buttonPin = 4; // switch pin static const int Feedback_Pin = 18; // Feedback pin from ISD1820 int buttonStatePrevious = 1; // previousstate of the switch unsigned long minButtonLongPressDuration = 600; // Time we wait before we see the press as a long press unsigned long buttonLongPressMillis; // Time in ms when we the button was pressed bool buttonStateLongPress = false; // True if it is a long press const int intervalButton = 50; // Time between two readings of the button state unsigned long previousButtonMillis; // Timestamp of the latest reading unsigned long buttonPressDuration; // Time the button is pressed in ms unsigned long currentMillis; // Variabele to store the number of milleseconds since the Arduino has started unsigned long startRectime; unsigned long EndRectime; bool playE = false; bool reco = false; const int rec = 16; const int play = 17; int timer_del = 0; int timerDel2 = 0; int recState = 0; int playState = 0; int LED_INDICATOR = 5; void setup() { Serial.begin(115200); pinMode(buttonPin, INPUT_PULLUP); pinMode(rec, OUTPUT); pinMode(play, OUTPUT); pinMode(LED_INDICATOR,OUTPUT); pinMode(Feedback_Pin, INPUT); digitalWrite(rec, 0); digitalWrite(play, playState); } // Function for reading the button state void readButtonState() { if (currentMillis - previousButtonMillis > intervalButton) { int buttonState = digitalRead(buttonPin); if (buttonState == 0 && buttonStatePrevious == 1 && !buttonStateLongPress) { buttonLongPressMillis = currentMillis; buttonStatePrevious = 0; Serial.println("Button pressed"); } buttonPressDuration = currentMillis - buttonLongPressMillis; if (buttonState == 0 && !buttonStateLongPress && buttonPressDuration >= minButtonLongPressDuration) { buttonStateLongPress = true; buttonStatePrevious = 0; Serial.println("Button long pressed"); getting_ready_for_record(); reco = true; } if (buttonState == 1 && buttonStatePrevious == 0) { buttonStatePrevious = 1; buttonStateLongPress = false; digitalWrite(LED_INDICATOR, HIGH); delay(500); digitalWrite(LED_INDICATOR, LOW); delay(500); Serial.println("Button released"); if (buttonPressDuration < minButtonLongPressDuration) { Serial.println("Button pressed shortly"); playE = true; } } previousButtonMillis = currentMillis; } } void loop() { currentMillis = millis(); // store the current time readButtonState(); // read the button state digitalWrite(play, playState); //if a single press occurs, playback starts looping if (playE) { playBack(); } //if long pressed the button, record will start if (reco) { digitalWrite(LED_INDICATOR, HIGH); record(); reco = false; } } //recording function ---recording time may vary from 1 upto 20 seconds void record() { Serial.println("Recording"); long startTime = millis()/1000; long duration = 20; //up to 20sec while (millis()/1000 < startTime + duration) { digitalWrite(rec, 1); } digitalWrite(rec, 0); } //playback function void playBack() { playState=1; digitalWrite(play, playState); int timer_delay=timer_del; while(timer_delay>0){ playState = 0; timer_delay=timer_delay-1; digitalWrite(play, playState); } } // // if (playState == 1) { // Serial.println("Playing"); // if (millis() / 1000 - timer_del >= 1) { // playState = 0; // timer_del = timer_del+(millis() / 1000); // } // } else { // if (millis() / 1000 - timer_del >= 0.1) { // playState = 1; // timer_del = timer_del+(millis() / 1000); // } // } //} void getting_ready_for_record(){ int timer=1; while(timer<=5){ digitalWrite(LED_INDICATOR, HIGH); delay(500); digitalWrite(LED_INDICATOR, LOW); delay(500); timer=timer+1; } startRectime=millis(); attachInterrupt(digitalPinToInterrupt(Feedback_Pin),recordingstate,RISING); // function for creating external interrupts at pin2 on Rising (LOW to HIGH vice versa) } void recordingstate(){ digitalWrite(LED_INDICATOR, LOW); detachInterrupt(Feedback_Pin); reco = false; EndRectime=millis(); timer_del= (EndRectime-startRectime)/1000; Serial.println("Recording ended with period of "+String(timer_del)+"sec"); }3D DESIGN AND PRINTING
I designed the box in which the components will go The box printing The components fit in well Put the components inside the guitar and masked a bit for painting Now the guitar works: back front Again for more detailsA more detailed process is found on the Project requirements/presentation week page. Its link is Here.
thanks fabacademy!