Introduction: The Marble Roller Coaster

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida(www.makecourse.com).

The Marble Roller Coaster is a system that when triggered will move marbles repeatedly up to the top of the marble tower and send them down the ramp to the bottom of the tower. It is a fun project that you can leave running and will only be trigger when someone approaches.

The stl files are attached to each Step and are all the 3D parts needed to build the Marble Roller Coaster.

Step 0: Print out all parts and label/mark each part.

Step 1: Step 1: Assemble Piston Box

The picture shown and the attached stl files are for the Piston Box. Parts include: Main Block, Piston, crank shaft, Side Block 1, Side Block 2, Bottom, Top, and Stepper_part. The Piston Box is is mechanism used to receive an incoming marble and push that marble to the Marble Tower.

The Piston should drop down inside the Main Block and the crank shaft should fix all the way through both the Main Block's slits and the Piston's slit.

The Main Block is sandwiched between Side Block 1 and Side Block 2 and are all set on the Bottom piece. The shorter end of the crank shaft should fit perfectly into the closed hole of Side Block 1. Then the longer end of the crank shaft should fit perfectly into the open hole of Side Block 2. The larger holes of the Side Blocks are screw holes and should align perfectly with the Bottom's screw holes.

The Top part is set on top of the Side Blocks and the screw holes again align with the screw holes of the Side Blocks. (Note: The orientation of the Top piece should be the same as in the picture.)

Finally, the Stepper_part connects tightly onto the crank shaft and should be glued into place.

(Note: Instead of using screws the pieces can be glued together-just make sure the crank shaft, Main Block, and Piston are able to move freely.)

Step 2: Step 2: Assemble Marble Tower

The picture shown and the attached stl files are for the Marble Tower. Parts include: Next Top, Mid Lifts (x4), and Very Top. The Marble Tower is used to carry the marbles to the top of the Marble Ramp

I made this section of the system after the Piston Box and is easier to assemble because of the male and female connectors that I designed into each part.

Start by connecting the four Mid Lift pieces together and connect them to Next Top.

Finally connect the Very Top piece the the very top of the highest Mid Lift.

(Note: Some parts may need to be glued together to stay in place.)

Step 3: Step 3: Assemble Marble Ramp

The attached stl files are for the Marble Ramp. Parts include: Ramp 1 (improved) pt 1, Ramp 1 pt 2, Ramp 1 pt 3, Ramp 1 pt 4, Ramp 2, and (OPTIONAL: h1, h2, h3). The Marble Ramp is the way in which the marbles will descend to the bottom of the Marble Roller Coaster and back to the Piston Box to await their turn to ride the coaster again.

Connect the male end of Ramp 1 pt1 to the female end of Ramp 1 pt2. Then connect the male end of Ramp 1 pt2 to the female end of Ramp 1 pt3.

Finally, connect the male end of Ramp 1 pt3 to the female end of Ramp 1 pt4.

(Note: Some parts may need to be glued together to stay in place.)

Optional parts to include are h1, h2, and h3. The h1 part should be glued to the bottom of Ramp 1 pt 1 in the 2mm hole. The h2 part is glued to the bottom of Ramp 1 pt 2. And the h3 part is glued to the bottom of Ramp 1 pt 3.

Step 4: Step 4: Assemble All 3D Printed Parts

It is as easy as 1, 2, 3.

Connect the top of the Piston Box (from Step 1) to the bottom of the Marble Tower (from Step 2). Then connect the top of the Marble Tower to the topmost part of the Ramp (from Step 3).

Everything should now be connected as shown in the picture, and ready to use in the preceding steps.

(Note: Some parts may need to be glued together to stay in place.)

Step 5: Step 5: Hardware and Software

Hardware:

Parts needed: Arduino Uno, USB A-B cable, stepper motor, stepper_part (3D part), ULN2003 motor driver module, HC-SR04 ultrasonic ranging module (also known as proximity sensor), minil breadboard, small toggle switch, male/female wires. (mini breadboard dimensions: 3.29 x 2.15 x 0.33" (83.5 x 54.5 x 8.5mm)). The stepper motor is used to turn the crank shaft in the Piston Box. By turning the crank shaft, it moves the Main Block from side to side and moves the Piston up and down. The proximity sensor is used to detect an object at a specified distance and is what triggers the stepper motor to turn on.

Connect the stepper motor and the motor driver module together as shown in this video: http://makecourse.weebly.com/week8segment2.html. Connect the motor driver module to pins 8, 9, 10, and 11. Also connect the small toggle switch in series with the stepper motor (i.e. leave the ground wire of the stepper motor alone but connect the positive wire to the same node as one of the switch's wires to and the other wire of the switch to 5V. The circuit schematic drawn shows that that the switch acts as an open circuit when turned off and a short circuit when the switch is turned on.Then connect the stepper_part to the stepper motor as shown in the picture (screws optional).

Next connect the proximity sensor as shown in this video: http://makecourse.weebly.com/week7segment1.htm. Connect the echo signal to pin 6 and the trigger signal to pin 7.

(Note: All hardware should be connected in a similar manner as shown in the picture.)

Software:

Finally, download the Arduino sketch and then upload the code to your Arduino board. The hardware should now operate with the code. To check if the proximity sensor is working, open the serial monitor found in the top right window of the Arduino application. Every time you pass your hand close enough in front of the sensor, the serial monitor should display the following messages: "The distance is : xx cm", where xx is the float distance from the sensor to your hand, "Object is closer than 80 cm; stepper motor is triggered.", and "counterclockwise". If the distance is not closer than 80 cm, the serial monitor will read "The distance is : xx cm", where xx is the float distance of greater than 80. To check the stepper motor and switch, trigger the proximity sensor with the switch turned off - the stepper motor should not be activated. Then trigger the proximity sensor with the switch turned on - the stepper motor should be activated and turn one full revolution.

Step 6: Step 6: the Box and Final Assembly

DC-47P DC Series Heavy Duty Electronics Enclosure is the name of the box I used for this project. The dimensions and additional information can be found here: http://www.polycase.com/dc-47p#.

This box is used to house all of the 3D parts as well as all of the hardware for this project. The top of this box can either be cut out or 3D printed (Top MAKE BOX edited). All of the 3D parts and hardware components should fit inside the box as shown in the picture. However four cuts need to be made before completing this project: one for the switch, one for the USB cable, and two for the proximity sensor. Arrange all of the components in a similar manner as shown in the picture and measure where you should make your four cuts. Then drill or cut out the appropriate sized sections.

Next, glue the parts to the appropriate locations inside of the box. Make sure that when the stepper motor turns the crank shaft, that the Main Block can still move without touching any hardware components.

Finally, put of top on the box on or leave it off, plug in the USB cable, and enjoy! Now you have an AWESOME project to show off to your friends!

Comments

author
Atom_Smasher (author)2015-11-30

:O Epic. I don't know what else to say.

author
seamster (author)2014-12-10

So cool! I love marble coasters, and a 3D printed one is such a great idea. Hope you got a good grade!

author
foxmann09 (author)seamster2014-12-10

Thanks! Yea it would have been nice to build one bigger or more complex, but it was my first time using the 3D software. It's still awesome!

About This Instructable

1,360views

18favorites

License:

More by foxmann09:The Marble Roller Coaster
Add instructable to: