Wednesday, June 4, 2014

Event Tutorial: "Plinko" Board


Plinko Board Overview

For the third event in our Rube Goldberg machine, we drew inspiration from the Price is Right game "Plinko" where an object is dropped down the side of a surface and its movements are manipulated by a series of posts which make the movement of the object somewhat unpredictable. Here is a step-by-step guide as to how our own personal Plinko board based upon the positioning of each post, the delivery points at the end of the board, and delivery method of the object.

Positioning of the Posts

The positioning of the posts had to be taken exact measurements as the marbles that would be used in this event to be able to move between each adjacent post on the board. Keep in mind, this is most painstaking and time consuming portion of this build. To make sure these post were the proper length away from each other, the first two rows need to measured using whatever object your wish to use on your Plinko board. You should mark each and every place a post will be planted as well as using your desired object as a reference. The second row should have the posts positioned in the center of the spacing of the of the previous row so that when the object is dropped it will make contact with a post and manipulate its direction. Again, keep using the object you are using as a reference so that the spacing between adjacent posts are just enough for the object to pass between. Once the first two rows are completed, you can now draw a grid using those position on the board and making sure every other row has the same post positioning as the previous row. For instance, odd numbered rows will have the same horizontal positioning and also even numbered rows will have the horizontal positioning as well. But do keep mind of the vertical positioning of the rows as the object should be used as a reference to make sure it will fit between the spacing of adjacent rows. 
Once this grid is sketched out, you can begin using whatever materials you are using as your posts. The posts should something straight and cylindrical for optimal results. In our case, we used cut up pieces of wooden chopsticks as the posts for our Plinko board. Bore a hole where the grid lines intersect for that row using your material and glue it into place (we used super glue for this as it quickly and held up well once dried). Be sure to check the spacing of each post you object to ensure it will fit between the posts and reposition them when necessary; a finished Plinko board can be seen depicted below. Once you have all the posts in place, you can move on to the next step of the process.

Endpoint/Delivery of the Object

For this portion of the Plinko board, you can do one of two things; you can have the object fall into a singular delivery point or have the object fall into one of a number of delivery points. For our Plinko board, we had a singular delivery point at the end of the board because we need this event to reliably do a single action. However, if you want to add a randomness and chance to your board, you opt to create multiple delivery points for your object to fall into at the end. Each delivery point should have an angled surface that can coax the object to a specific delivery point. In our's, we had two sizable angled surfaced that would ensure that objects we were using would be consistently delivered to our singular delivery location (which can be seen in the image below).

Object Delivery Method

Object delivery can be done a number of different ways and it really depends on what you're trying to do with your Plinko board in general. In our case, we opted to do a delivery method that was generally consistent with way the objects were introduced to the Plinko board as it did not really matter where the objects were dropped being that they all end up at the same, singular delivery point. A cup on a hinge was created so that the objects could be introduced to the Plinko board by a previous event on our Rube Goldberg machine (image of the delivery method can be seen below). Consistency was key in our case, but if you wanted to add a bit of randomness to your Plinko board, you can develop some method of making that delivery a bit more up to chance by having the object fall in a random position on the board. This is one portion of the Plinko board that can be developed based upon your needs of what you want it to do exactly (do you want it to be consistent or randomized?).



Tuesday, June 3, 2014



NXT Robot Tutorial (event 1 and 6)
  
          Event one and six are composed of an NXT robot, which begins and completes the Rube Goldberg machine.  To start, the robot’s touch sensor is push by the previous groups ball.  A touch sensor (Figure 1) is used because it is the easiest way for the robot to read that a moving object has hit it.  The code can be seen in Figure 2 and is also discussed below.



Figure 1 - NXT Robot and Sensors

Figure 2 - Block code of NXT-G software

Code:
      The first block in the code represents a conditional statement.  The code runs continuously while other group's Rube Goldberg's are running.  When the previous group's ball hits the robot's first touch sensor, it advances forward (block 2 in Figure 2).  Next, when an obstacle gets in the robots way, both motors stop (block 3 and 4 in Figure 2).  Another conditional statement waits until the obstacle is removed from the path by the other events in the Rube Goldberg machine.  At this point, the robot travels forward unlimitedly until the second touch sensor is pushed.  This is why there is a loop--to enable the robot to travel unlimitedly until a certain condition is met.  Finally, after the loop is broken, the robot stops moving.  

Construction:
    The NXT robot was build fairly simply.  Two motors were attached to the bottom, with compliment wheels.  The NXT computer was mounted above these motors.  Finally, supporting pieces were used to create an extension above the robot to help trigger the next event.  










Wednesday, May 28, 2014

Week 9

Week 9 Goals:

  • Test our machine in a section wide run through of each group's Rube Goldberg machines
  • Integrate our machine more efficiently with the previous and proceeding groups
Tasks Performed:

     After arriving to lab, the first objective was to assemble the machine.  The type of balloons we used was changed.  Previously, we used smaller balloons, but unfortunately we ran out, so larger balloons were used.  In attempt to match the smaller balloons, the larger balloons were blown up to half their true size, but it was quickly evident that due to their extra "squishiness", they would not pop.  So, we had to resort to blowing the larger balloons to their full size.  This became an issue for its placement on our ramp (the final event).  It was too large, so we taped the balloon to the weights attached to the ramp, rather than the ramp itself.  Paper was still used to help to ultrasonic sensor read the distance away from the balloon.
     Also, before coming to lab, we tried to fix the switch transition into the proceeding group's machine.  Before, the switch would now be triggered for multiple reasons (see previous blogs).  Now, the switch can be triggered much more easily because we stationed a k'nex piece to it more securely.  We also added weights to the ramp to add some force onto the switch as the robot drives up the ramp.  
     In the section wide testing, the entire Rube Goldberg was ran three times, with lesser amounts of intervenes each time.  The last run through had about eight intervenes.  This would be the last test of the entire Rube Goldberg. 

     Though our machine components ran smoothly, the transitions were somewhat faulty.  Out of the three tests, the transition into our machine worked two out of three times, but the transition out of our machine failed to work once during the test.  Thus, even with the extra effort put in to try and fix the transitions, we still failed to make the transitions 100% reliable.  Some reasons the transitions may have failed include:
  • poor alignment between machines
  • lack of testing with other groups to integrate the machines
  • lack of a better solution to the issue
Images of the machine are below in previous blogs.

Tuesday, May 27, 2014

Week 8

Goals for Week 8:

  • Testing the Rube Goldberg machine with it integrated into the class-wide machine and see where the machine fails during each run.
  • Work on transition to group 5 (toggling power switch on power strip)
Tasks Performed:

This week was very similar to last week in terms of testing the machine. A period of time for the machine's setup was given at the beginning of the lab and slowly, group by group, the class-wide Rube Goldberg machine was formed with every machine connected to its adjacent groups. A picture of the our individual machine in the overall machine can be seen below.


Like last week, the machine was run through and each group took account of where their machine failed. For the first run, most everything worked in portion of the machine but the final transition event where we transfer the energy of the machine to group 5's machine. We made a note of this and during the setup for the second run of the machine, we carefully positioned the ramp so that it toggles the power strip so that it would click the switch and make the hand-off. On the second run, however, we ran into a number of issues. The robot did not knock the keychain on the wire enough to get it to move down, the balloon did not pop, and the transition yet again did not work as planned. 
The first two event failures could have been easily avoided as the balloon was admittingly positioned too close to the robot causing it to stop too soon. The reason the balloon did not pop is because it was not inflated enough for the push pins on the pendulum to puncture it. It was evident however that the transition to group 5's machine needed to be worked on outside of the lab. 
Group 5 graciously gave us the power strip used in their machine so we could work on the transition on our on time. On Friday, we all met and worked on this transition event. The problem was that there was not enough glue on the K'NEX piece attached to the switch, causing it to bend rather than toggle the switch towards the on position. To remedy this, we added more hot glue to help secure the K'NEX piece to the switch and prevent it from bending. After the glue cooled, we tested this event numerous times and got the ramp to consistently toggle the switch of the power strip. We are now confident that our whole machine will be ready for week 9's testing of the machine and that each event will be operational.

Tuesday, May 20, 2014

Week 7

Goals of Week 7:

  • Test all machines working at the same time
Tasks Performed:

This week's lab consisted entirely of the setup of machines and a run through of all the machines.  Many problems that weren't considered were faced during this lab.  The most notable one was set up time.  The time it took to set up all the machines took around an hour.  Some problems were certain groups machines not fitting and/or going over their boundaries.  One group had to saw through their wood in order to receive a marble from the previous group.  Another flaw was choosing to set up the Rube Goldberg machine over an outlet, so a different outlet had to be used, and no extension cords were available.  A problem we faced was that the group before us, group 3, had their last event go too far into another group's territory.  They then had to readjust the ramp of their last event which in turn took the ball that would roll down off course and so during the test the ball did not hit correctly into our robot and it didn't work.  

Another problem we faced was connecting our last event to group 5's first event.  When testing this transition it was inconsistent, and the problem was our robot did not way enough to set off the other group's power strip.  To fix this problem we put small weights on the edge of our robot that will give it slightly more weight, just enough to cause our last event to work correctly.

Pictured is our Rube Goldberg machine in place along with the other machines during the setup.

Monday, May 12, 2014

Week 6

Goals of Week 6:
  • Demonstrate reliability of Rube Goldberg
  • Test with adjacent groups

Tasks Performed:

This week began to work on reliability within our own Rube Goldberg.  We encountered many minor problems this week that were not considered before.  A common problem was in our first event transfer, the robot would hit the ball of event 2, but it wouldn't slide down the rail.  This was due to carelessly placing down the robot.  Now the robot is placed in the correct spot every time which is marked on the board.

Another common problem was the robot's ultrasonic sensor not sensing the balloon in front of it.  This was difficult because the balloons varied in size and were very inconsistent.  A solution we found was taping a piece of printer paper to the balloon, almost like a wall to make a big target the robot could not miss.  There is no problem when the balloon pops because the paper falls out of the way.

When about to demonstrate our Rube Goldberg machine the phone fell and caused the last few events to trigger.  This was due to the phone receiving many text messages.  The solution to this is putting the iPhone on "Do Not Disturb" mode, and only allowing FaceTime from our computer allowing the phone to vibrate. 


Attached is a video of the complete Rube Goldberg running properly.

Connecting our first event to the previous group's Rube Goldberg proved to be a challenge.  Our first event begins when something hits our Robot's touch sensor.  The previous group has a ball that will roll down into the touch sensor, however it is not yet accurate enough to hit it in the correct spot.  After many tests we've concluded that making a K'NEX track to guide the ball would work, and possibly using a more dense ball would help with reliability as well.  We tried the transfer many times: a few times it worked, many times it ran off course, and sometimes the ball would hit the sensor without enough force to trigger anything.

Our last event involves our robot pushing down on a ramp hard enough to activate a power switch on the other team's side.  We were unable to test this this week because the other team added a K'NEX piece with hot glue to the power switch which did not dry in time.  Our ramp has been modified slightly to have more weight so it takes less force to push down the button.  The idea is to have the weight from the robot going from one side of the ramp to the end be enough to trigger the event change.

Saturday, May 3, 2014

Week 5

Goals of Week 5:
  • Create the final event (event #6)
  • Integrate each event on the 2' X 3' sheet of plywood
Additional Materials Brought to Class:
  • Everything from previous weeks
  • Balloons
  • Weights

Tasks Performed:
      Event 6:
      At the start of class, event six was created.  Event six consists of a ramp (see image below) which is triggered by the swing popping a balloon, which then pushes down on the next groups power surge, starting their machine.
     To build the ramp, a stack of yellow pencils was duct taped to the bottom of the one square foot sheet of plywood.  This allows the ramp to pivot over a center point.  After some testing, a barrier at the opposite end of the ramp was added to stop the robot from advancing into the next groups events.  Further, to add force onto the switch, external weights were added to the ramp to help push the power surge's switch down.  (see image below)
     The ramp has an attached balloon that will stop the robot (event one) from advancing forward due to its presence in front of the ultrasonic sensor.  After the balloon is popped by event five, the robot can advance up the ramp.  Once the weight of the robot moves past the center point, the ramp will have enough force to push down the power surge's switch.
The ramp (seen bottom left) is the final event
The main alteration to this event are the weights--without them, the ramp does not have enough force to press the switch.  Also, something to keep in mind is the type/size of balloon.  If the balloon is too small, it won't stop the robot from advancing forward and will not pop as easily; however, if the balloon is too big, it won't fit on the ramp.
 
     Event Integration:
After all the events were completed, each event was placed on the plywood for machine integration (see previous weeks for plywood stencil).  A video on the complete transition between events of the Rube Goldberg will be provided in the coming weeks.  Some notes on how to better the machine are as follows:

  • create more structural support for events (increases accuracy of events)
  • add a weight to the bottom of the pendulum (adds force to the swinging motion)
  • use specific size/shape balloons (increases pop rate)
  • add weight to ramp (adds force into the switch)

Top view of Rube Goldberg Machine
Side View of Rube Goldberg Machine

Improvements for next week:

  • Add the ball back onto the board holding the iPhone up
  • Create more reliability in transitions

Saturday, April 26, 2014

Week 4

Goals for this week:


  • Be able to demonstrate four events
  • Have semi-consistent results
Tasks performed during this lab:

        This lab was spent putting together and perfecting the exchanges of energy between the first four events.  The first event, the robot, has already been made and coded, and simply needed to be able to trigger the second event.  The robot moves forward and hits a ball that rolls down a track into a third event.  This second event was slightly adjusted today in lab, as instead of a ball rolling down a track, we decided to use a ball with a hook attached to it, similar to a Christmas ornament.  This ball zip-lines down a wire into the third event.  Small adjustments were made to these events, such as adding more K'NEX as support and for more height in order to get things to run smoothly.



Another change we had to make was with our exchange from event two to event three.  We originally were going to have the ball swing into marbles in order to have them run down the plinko board.  This was switched to the ball hitting a cup that will have three marbles inside which will spill down the plinko board into event four.
Event four was originally a stylus that would hit an iPad that would then call an iPhone.  During this lab we ran into a lot of trouble.  The stylus would hit the iPad correctly, however it rarely worked.  We believe this has something to do with the stylus being attached to the cup rather than held by a hand.  The stylus was replaced by a wireless mouse, which is taped down and hit with the eraser end of a pencil.  This proved to work much more consistently and efficiently.  The mouse will trigger a computer to call a phone via Facetime, which would be the trigger for event five.  We spent a little time working out the basics of event five, which is the iPhone vibrating, falling down, and pushing a ball down a ramp.




When it came time to demonstrate our Rube Goldberg machine, some of the events did not transfer correctly.  The robot does not hit the ball correctly every time, so during our next lab we will work on lining it up correctly so that it works every time.  The same went for the ball sliding down the zip-line and hitting the cup.  The zip-line has to be adjusted so that every time the ball will hit time as well.  Over the weekend we plan on working on getting all events consistent.

Sunday, April 20, 2014

Week 3

Materials brought:

  • chopsticks
  • cardboard
  • plywood (for the base of our machine) and a bit of excess plywood (being used as a ramp for the robot)
  • wire cutters
  • plastic cups
  • iPad with stylus
  • NXT robot
  • string
  • K'Nex
Goals for this week:
  • Complete event #2 (rail system that leads to event #3)
  • Complete event #3 ("plinko" board that marbles run down and cause stylus to touch iPad screen)
  • (Optional goal) Map out the placement of each event on the plywood base board
Tasks performed during lab:

     The majority of this week's lab period was dedicated to the construction of events 2 and 3, the rail system that a ball follows and the "plinko" board that causes a stylus to tap an iPad's screen. We split up into two groups to expedite the construction process; Dave worked on the "plinko" board and Alex and Kush worked setting up the rail system.
     It was decided early on that K'Nex would be extremely helpful with creating a scaffolding-like structure that would serve as the starting point of the ball (which is pushed by the robot's arm when it's in motion at the start of our machine). Also, we decided to change the construction material of the rails to a thick wire that was made available to use in the lab. This wire was more pliable and was much easier to work with than our previously planned construction material (chopsticks). Construction was started but not completed during the lab period unfortunately, but it will be worked on in the days between this week's and next week's scheduled lab time. We expect this event to be fully functional by next week's lab.
    The "plinko" board was pretty simple, but tedious to build. The construction materials used were cardboard, chopsticks, marbles (provided in the lab), and a small plastic cup which will house the stylus and capture the marble that will fall. The piece of cardboard used was mapped out as to where each post will be placed. A hole was also cut out of the bottom of the cardboard that will allow for the marbles to enter the cup with the stylus. The tedious part of this construction was cutting down to size a number of chopsticks that will be used for the posts in this event. This proved to be the most time-consuming process of the build. Unfortunately, we found out we would need glue to keep these posts in place as just sticking them in cardboard would not be enough to keep them in place. This event would also have to be complete outside of the lab in the days before next week's lab. We expect this event to be fully functional by next week's lab.
     Our secondary goal of this week was also accomplished as we roughly mapped out the placement of each event on the piece of plywood. This gave us a basic idea of the amount of space we were working with and made us more spatially more aware of the size each of our events will have to be. Pictures of the sketched out plywood can be seen below (it might be a bit hard to see as they were done in pencil to allow modifications to the plan if needed):






Wednesday, April 9, 2014

Week 2

Materials brought to class:

  • wire strippers
  • plastic cups
  • cardboard box
  • chopsticks
  • iPad box
  • stylist
  • scissors
Main goal for today:  build NXT robot that will start and end our machine.  Also, we want to start building one other component of the machine (plinko board).

Component Ideas:
  1. robot moves forward starting the machine by having touch sensor pushed by some kind of ball. The robot will stop due to an obstacle
  2. during robot movement, it will hit a lever/marble on a suspended track, triggering the next event
  3. plinko, ball rolls and hits a lever that starts next event
  4. the lever in previous step will have a stylist attached to it, when dropped, it will call another phone, causing it to vibrate triggering the next event
  5. one more event here
  6. robot ends machine by advancing past the obstacle that was blocking it and hitting the next groups power surge
More materials were thought of (see next weeks post).  The NXT robot was made and programmed to start when the touch sensor was triggered, and programmed to stop when an obstacle gets in its way, and begin again when the obstacle moves.


Wednesday, April 2, 2014

Week 1

Research was done using YouTube to find inspiration for our group's section of the Rube Goldberg machine. Listed below are a few of the videos that were used as our research:
  • http://www.youtube.com/watch?annotation_id=annotation_748852&feature=iv&src_vid=6FzUx2EFk8s&v=cv5WLLYo-fk
  • http://www.youtube.com/watch?v=O8vzbezVru4
  • http://www.youtube.com/watch?v=qybUFnY7Y8w
  • http://www.youtube.com/watch?v=I0LCFML6Y0A
We have communicated with the two groups that will be adjacent to us in the overall machine. For group 5, we will be triggering a power strip on their machine with some sort of lever or ball that toggles the switch (this is subject to change). Group 3 will be triggering our machine with an object that will roll towards our machine and activate the first event of our section of the machine. More specific and detailed descriptions will be posted next week and in the design proposal in week 3.

Much more thought was put into the two transition events of our machine. Group 3 (who triggers our machine), will have something similar to a baseball or tennis ball roll towards a touch sensor of a basic robot. This triggers the robot to move forward, triggering the second event, until it senses something in its way (using the ultrasonic sensor) where it will pause until the final event. In turn, the robot will be involved for the first and final event of our machine. The final event will move the object the obstructed object out of the way (probably a balloon being popped), causing the robot to perform the action triggers the next group's machine.

The following is a list of possible materials our machine will be made of (this is subject to change):
  • cardboard/paper
  • chopsticks, popsicle sticks, etc
  • tape and glue
  • rubber bands
  • ball bearings/marbles/ping pong balls/ golf balls
  • NXT kit, legos, knex
  • wood
  • pvc piping
  • cups, bottles
  • strings
  • paper clips
  • dominos
  • (more to be added later)