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