By: Wenqing Yin and Hagan Miller

Submission Date: 12/5/19

(Magical Marble Maze Melody Machine Making Music Mechanically)

ABSTRACT

The goal of the project was to keep children entertained by a Marble Maze that they could interact with that provided a musical result based upon their input. The resulting maze and combination of parts do realize this goal for a period of time. The feedback from the children and adults that came by did seem to enjoy the loading gears for the maze more than the maze itself. Though when the attention did block away from the gears, the user did interact with the later parts of the maze.

OBJECTIVES

  • Create an entertaining kinetic maze system that involves marbles
  • Have the user interact with the system through marbles
  • The maze then interacts with the marbles to produce musical notes
  • Create a lift that initiates the marbles into the maze
  • Have a tilting mechanism that allows the user to computationally maneuver marbles through the maze
  • Have a modular system

IMPLEMENTATION

Electro schematic diagram

The way we incorporated sound and music elements into the machine was analog, which was letting the marbles colliding with different materials to make different sounds. There was a ramp that was divided into two sections where one side was metal rods and the other was wood dowels. Such division created a sense of purpose in tilting the maze to get the marbles to fall onto either one of the sections. The surface of the ramp was etched with lines to increase the friction.

However, it is not the only place where sound happened. The sound of the marble colliding with the walls of the maze and rolling down, the sound of the maze tilting, and even the sound of the motor collectively made up of the “melody”.

For the tilting maze, we attached the servo to the two wood sticks which exert either pulling or pushing force to both sides. There is a platform to support the semi-circle structure (there’s also another one on the other side of the maze, but not shown in the picture), which is used to support the majority of the weight of the maze to protect the servo from being destroyed.

The biggest challenges of the ball lifting structure were to reduce of the friction caused by different parts and how to scoop the ball up. We did two iterations for the ball lifting structures. The first iteration was not successful because there were too many parts causing the friction and eventually slowed down the motor. So we decided to change the way that the gears caught the balls in order to reduce the number of parts, which works at the end.

The second iteration
The first iteration

OUTCOMES

The maze was an overall success. Many children of the museum took a liking the exposed, yet complex nature of the project. Many children took an interest in the gear lift, despite it not working all the time. However, its unreliability made the children take excitement in the gambling aspect of the probability of the marble even making it to the maze. Children would even claim certain marbles and then be proud of them when they made it to the top. Some children liked and took interest in the sound ramp more as that is where the music happened. While the tilting has to be explained slightly, once accustomed, was well received. Children were consistently better at timing the machine to work more often than we were, which makes us consider that a certain slot in the gears were more likely to work than the other. The metal rod part was liked more than the wooden part, so the kids would intentionally aim for that side when the marbles approached.

FUTURE WORK

  • Increase the reliability of the ball-lifting structure
  • Test out the subsystems first  
  • Connect end to beginning, make it fully or close to fully autonomous
  • Because the overall composition is modular, we could add more components for the overall musical factor
  • Implement the sheet of copper 
  • Tuning the metal rods

CONTRIBUTIONS

Hagan Miller – Worked on the ramp back to the beginning, ramp that initialized the marbles into the gear lift, worked on the design of the maze, worked on the sound ramp, helped assemble the gears, helped in ideation

Wenqing Yin – Worked on the mechanism of the maze and the ball-lifting mechanism, worked on the button box, worked on writing the code, helped assemble the metal rods and wood dowels onto the ramp, helped in ideation

VIDEO

PHOTO DOCUMENTATION

CITATIONS

Marble-lifting mechanism:

Marble machine

Code:

https://courses.ideate.cmu.edu/16-223/f2019/text/code/CKS-Shield-1-Test.html?highlight=shield%20code

Code:

#include <Servo.h&gt;

Servo rocker;
const int MOTA_PWM1_PIN   = 5;  
const int MOTA_PWM2_PIN   = 6;
const int SWITCH_PIN  = A2;
const int SWITCH_PIN2 = A3;
const int SERVO_PIN = 8;
const int MAXANGLE = 160;
const int MINANGLE = 135;
int pos=150;
 
void setup()
{
    Serial.begin(9600);
    Serial.println("Hello!");
    rocker.attach(8);
    rocker.write(pos);
    pinMode(MOTA_PWM1_PIN, OUTPUT);
    pinMode(MOTA_PWM2_PIN, OUTPUT);

    digitalWrite(MOTA_PWM1_PIN, LOW);
    digitalWrite(MOTA_PWM2_PIN, LOW);
}
 


 
void loop()
{
  analogWrite(MOTA_PWM1_PIN,128);
  Serial.println(digitalRead(SWITCH_PIN2));
  int SWITCH_VALUE=digitalRead(SWITCH_PIN);
  int SWITCH_VALUE2=digitalRead(SWITCH_PIN2);

  // reach max angle
  if (pos==MINANGLE){
    rocker.write(pos);
  }
  if (pos==MAXANGLE){
    rocker.write(pos);
  }
 
  // if switch one is pressed, clockwise
  if (SWITCH_VALUE==0&amp;&amp;SWITCH_VALUE2!=0&amp;&amp;pos!=MAXANGLE){
    pos+=1;
    rocker.write(pos);
  }
 
  //if both are pressed, don't do anything
  else if (SWITCH_VALUE==0&amp;&amp;SWITCH_VALUE2==0){
    rocker.write(pos);
  }

  //if switch 2 is pressed, anticlockwise
  else if (SWITCH_VALUE!=0&amp;&amp;SWITCH_VALUE2==0&amp;&amp;pos!=MINANGLE){
    pos-=1;
    rocker.write(pos);
  }
 
  delay (10);
 
}