Overall, the Marble Maze Melody was a success. The children seemed to enjoy the machine in its entirety. Staying on average about 2-3 minutes, the kids ran through the maze multiple times trying with different amounts of marbles, and the getting different sounds from the machine, and learning and mastering the controls. One kid stayed at the maze for over 20 minutes, and repeated the phrase on occasion, “this really hooked me”. One of the really surprising interactions that the children had, was one that mentioned the maze looked like a face.

The maze ran into some small issues that we plan to fix in our upcoming iterations. Some of the kids remarked how the marbles can get stuck between the first maze and the melody ramp. And some of the children tested out our machine with a bit too many marbles for our machine to handle, making it hard for the machine to continue its tilting mechanic. Furthermore, we want to refine the metal rod section to be longer as well as less steep so more sounds can be found from the clashing of marbles to the metal rods.

We believe in our final iteration, there should be something simple, yet exciting to happen when the marbles finish the maze. It currently feels lacking in that area, but we are going to be cautious not to overdo it and take away from the overarching theme from the melodic maze.

While nothing failed per se, the maze itself is something that we may consider refining as well. Some of the children took a liking to the larger marbles, which our current maze isn’t too equipped to handle. We also are going to fix the tilting mechanism itself, to make the motion more fluid and less likely to get off track.

Revisions List

The first thing that needs to happen is the refinement of the tilting mechanism as that is the underlying source that allows the marbles to be kinetic in the first place. The next thing we must do is refine the metal rod maze and make it less steep and longer than it currently is. This will allow for the noise to be captured over a period of time, rather than a small glimpse. The next step will be to revise the original maze to be able to be equipped to handle the large marbles the sheer weight that can come with excess marbles. Our second to last step is that we still want to incorporate our second and final tilting maze to allow more children to interact with this project at once. It will have its own musical theme but similar tilting controls as the first one. Finally, we would like to have the ending be slightly more dynamic, we will go with the recommended “less is more” approach to this issue, but we still think that a little more could do the trick.

#include <Servo.h&gt;

Servo rocker;
Servo rocker2;
const int SWITCH_PIN  = A2;
const int SWITCH_PIN2 = A3;
const int SERVO_PIN = 8;
const int SERVO_PIN2 = 7;
const int MAXANGLE = 170;
const int MINANGLE = 140;
int pos=150;
 
void setup()
{
    Serial.begin(9600);
    Serial.println("Hello!");
    rocker.attach(8);
    rocker2.attach(7);
    rocker.write(pos);
    rocker2.write(pos);
}
 


 
void loop()
{
  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);
    rocker2.write(MAXANGLE);
  }
  if (pos==MAXANGLE){
    rocker.write(pos);
    rocker2.write(MINANGLE);
  }
 
  // if switch one is pressed, clockwise
  if (SWITCH_VALUE==0&amp;&amp;SWITCH_VALUE2!=0&amp;&amp;pos!=MAXANGLE){
    pos+=1;
    rocker.write(pos);
    rocker2.write(MAXANGLE-pos+MINANGLE);
  }
 
  //if both are pressed, don't do anything
  else if (SWITCH_VALUE==0&amp;&amp;SWITCH_VALUE2==0){
    rocker.write(pos);
    rocker2.write(MAXANGLE-pos+MINANGLE);
  }

  //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);
    rocker2.write(MAXANGLE-pos+MINANGLE);
  }
 
  delay (10);
 
}


Here is a video of the children interacting with the maze.