Skip to content

Music Machine

We are making a 2 axis mechanism that plays a glockenspiel. We decided to use two servo motors for the motion. This will allow the machine to make quick and precise movements. The design is also modular and can expand easily by duplicating the mechanism.

Overcoming Challenges

It didn’t take long to realize that since all the members of the LCCC Fab Academy group live in different cities across the country it was going to be hard to coordinate a project. We started discussing the project with via emai and quickly found that it took too long to get anything done via email. We decided to start communicating with WhatApp. This helped for quicker response but we still needed to all be in the “same room” to assign tasks and get the ball rolling. We were able to talk via Zoom and finalize the scope of the project and who was going to do what.

Another interesting challenge was that when Brigette made the copper tines they were tune, but the change in climate due to her living 1000 miles fom where Brent lives in Houston affected the tone onw shipped. Currently, Brent is working to fine tune the tines once they acclimate.

Remote Group Planning

Assigning Tasks

Buying Material and Making Keys - Brigette

Here is a link to my website where I talk about making keys. I ordered the parts from McMaster Carr after discussing with my group partners what the best way to go about thsi would be. After some deliberation and reverse engineering keys from my school’s music center, I ended up with copper keys! Here is a more in depth explanation of how I made the keys. http://fabacademy.org/2019/labs/lccc/students/brigette-oneill/assignments/week15/

Machine Prototype

Laser Files

Download the laser files here on Brent’s Week 15 page

Manual Testing

To ensure that the servo motors were facing the correct direction and the hammer could extend far enough down we tested the machine by hand before powering it on. This helped make sure everything was aligned correctly before braking something causing us to start over.

Code for Robot Calibration

/* Sweep
 by BARRAGAN <http://barraganstudio.com>
 This example code is in the public domain.

 modified 4 April 2019
 by Brent Richardson

*/

#include <Servo.h>

Servo servo1;  // create servo object to control a servo
// twelve servo objects can be created on most boards
Servo servo2;
int c1 = 93;
int d = 82;
int e = 74;
int f = 68;
int g = 60;
int a = 54;
int b = 46;
int c2 = 39;



int note[] = {
  e, g, g, g, g, g, f,d
};       // an array of pin numbers to which LEDs are attached
int pinCount = 8;           // the number of pins (i.e. the length of the array)


int beat[] = {
   200, 200, 200, 100,200 , 100,200, 200
}; 


void setup() {
  servo1.attach(9);  // attaches the servo on pin 9 to the servo object
  servo2.attach(10);  // attaches the servo on pin 9 to the servo object
}

//39-c, 46-B, 54-A, 60-G, 68-F, 74e, 82d, c93, 

void loop() {


  for (int thisPin = 0; thisPin < pinCount; thisPin++) {
 hammer();
  servo2.write(note[thisPin]);              // tell servo to go to position in variable 'pos'

    delay(beat[thisPin]);                       // waits 15ms for the servo to reach the position

   }
}


  void hammer(){

    servo1.write(145);              // tell servo to go to position in variable 'pos'
      delay(50); 


    servo1.write(157);              // tell servo to go to position in variable 'pos'
      delay(65); 


      servo1.write(145);              // tell servo to go to position in variable 'pos'
      delay(50); 
}

Next Steps

Jim is working on fabricating the microcontroller and motor drivers. Once they are sent to Houston the prototype boards will be switched with the FABed boards.

A base for the copper tines and the servo mechanism still needs to be built.