tag:blogger.com,1999:blog-37137805154282012912024-02-19T07:25:41.066-05:00The K'NEX ComputerMechanical Computing: Thinking with BallsMatt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-3713780515428201291.post-89712721336636572702020-12-23T20:24:00.001-05:002020-12-23T20:24:39.466-05:00The Present and Future of Ball Computing<div>Rumor has it that the K'NEX calculator was dissassembled for parts years ago.
</div><div><br /></div>
<div>If you're interested in latest in ball-based computers, check out <a href="https://turingtumble.com" target="_blank">turingtumble.com</a>
</div>
<div><br /></div><div>For the FUTURE of ball-based computers, email <a href="http://www.rrrrthats5rs.com/">us</a>.
</div>
Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com0tag:blogger.com,1999:blog-3713780515428201291.post-69013783031120886262007-03-31T18:33:00.002-05:002020-12-23T20:25:51.939-05:00KNEX Calculator<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/photos/calculator_small.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://serioussandbox.com/media/knexcomputer/photos/calculator_small.jpg" border="0" alt="" /></a>
The K'NEX calculator stands over 10 feet tall, and can perform 4 bit addition and subtraction operations in about 30 seconds. The slowest part of the operation is the user entering the balls. From there the balls trickle down, computing the result of the operation, and then sending that through a 4 bit <a href="http://knexcomputer.blogspot.com/2007/01/k-2-bit-decoder.html">decoder</a>, which flips a flag that tells the user the answer. Since it is 4 bit, we can add and subtract numbers from 0 to 15.
<iframe width="560" height="315" src="https://www.youtube.com/embed/raDu45OI2Lo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
The calculator uses 9 balls to perform a computation: 4 for the first number, 1 for the operation (add or subtract) and 4 for the second number. The first ball to go in also resets all the display flags.
As the balls enter, they go into different logic gates, setting states and waiting. For more information on how the gates work, check out the <a href="http://knexcomputer.blogspot.com/2007/01/how-it-works-part-1.html">Ball Theory</a> section.
The denser looking, top half of the machine is the adder / subtracter. It outputs a 4-bit binary answer. Under that is the 4-bit binary decoder which displays the answer in decimal on a flag.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com21tag:blogger.com,1999:blog-3713780515428201291.post-52937404251706191022007-02-05T00:46:00.000-05:002007-02-05T14:17:24.108-05:00Memory + Accumulator = New Plan<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_PwI1ZcfLfXw/Rcd1PrxCqqI/AAAAAAAAAAc/AJ3GcuAy4Ak/s1600-h/Monolith+1.JPG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_PwI1ZcfLfXw/Rcd1PrxCqqI/AAAAAAAAAAc/AJ3GcuAy4Ak/s400/Monolith+1.JPG" alt="" id="BLOGGER_PHOTO_ID_5028116421289355938" border="0" /></a>We finally completed work on the 16-bits of Data Memory, and attached it to the Accumulator. The final result is a rather attractive looking tower of K'NEX. The dimensions of it are almost exactly 1' x 4' x 9' (an interesting coincidence for anyone who has read "2001: A Space Odyssey").<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_PwI1ZcfLfXw/Rcd1ZLxCqrI/AAAAAAAAAAk/nfkiaPDC_SI/s1600-h/Monolith+2.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 313px; height: 404px;" src="http://4.bp.blogspot.com/_PwI1ZcfLfXw/Rcd1ZLxCqrI/AAAAAAAAAAk/nfkiaPDC_SI/s400/Monolith+2.JPG" alt="" id="BLOGGER_PHOTO_ID_5028116584498113202" border="0" /></a><br />The project has reached an impressive milestone, and we have been showing this beast off around campus, with mostly befuddled, but positive reviews.<br /><br />As a team, Matt and I have decided that the current structure has a couple of undesirable qualities, some of which we hope to remedy. The most frustrating problem we have been running into is that the computer is incredibly large, complex, and confusing, even to someone well-versed in computer architecture. In order to fix this, we are considering a change in goals for the project.<br /><br />We hope that by making the machine simpler to use and operate, it will become more accessible, understandable, and more enjoyable for people to watch and interact with. Our plan is to do something that will allow a person to set the computer's operation using a non-binary interface. The input for the machine may then be a column of 16 switches to represent each operand (number to be added or subtracted) and a single switch for the operator (add or subtract). Similarly, the output would be one of 16 numbered flags representing the final number.<br /><br />This is a plan in preliminary stages, and may undergo drastic changes, but what we are relatively certain of is that completing the computer as originally planned will not happen. We felt the rewards of completing the project were not likely to be woth the work required.Jeff DeCewhttp://www.blogger.com/profile/13922626087235528238noreply@blogger.com0tag:blogger.com,1999:blog-3713780515428201291.post-38635498845710873032007-01-26T17:40:00.000-05:002008-02-02T12:23:20.587-05:00The 4-Bit Accumulator<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/photos/accumulator.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://serioussandbox.com/media/knexcomputer/photos/accumulator_small.jpg" border="0" alt="" /></a><br /><br />This is the 4-Bit Accumulator we made at the end of last semester. An accumulator is different than an adder because it uses the result of the last operation as an input for the next operation. This one can add, subtract, and load.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com4tag:blogger.com,1999:blog-3713780515428201291.post-55787267850971953192007-01-05T16:55:00.000-05:002013-09-27T03:06:15.805-05:00Ball Theory<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/images/onebit.gif" title="Click to view this animation."><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/onebit.png" border="0" alt="" /></a><br /><b>Part 1: The Bit</b><br />The position of the ball determines its value. The left column is zero, the right is one, and the middle is indeterminate. Balls pass through the middle column only when they are changing state.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/images/clearbit.gif" title="Click to view this animation."><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/clearbit.png" border="0" alt="" /></a><br /><br><br />We can get a ball to change its state by removing walls and adding ramps. This animation shows a bit being reset to zero.<br><br><br><hr><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/images/not.gif" title="Click to view this animation."><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/not.png" border="0" alt="" /></a><br /><b>Part 2: The Not Gate</b><br />The NOT gate is an inverter; it outputs the opposite of the input. To do this with balls, we need two ramps. The ball's velocity allows it to make the jump over the middle.<br><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/images/notbad.gif" title="Click to view this animation."><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/notbad.png"/></a><br />We need to design this carefully because balls enter at a variety of speeds and angles. Having small openings enforces a certain trajectory. Otherwise a ball could bounce to the wrong side, causing an error.<br><br><br><br><hr><br /><br /><img style="float:left; margin:0 10px 10px 0;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/symbols_and.gif"/><br /><b>Part 3: The AND Gate</b><br />Now things start to get tricky. A normal AND gate has two inputs, and a single output that is active only when both inputs are active. Since we are using balls, we need to have the same number of inputs as outputs: if two balls go in, two balls better come out.<br /><br><br /><img style="float:right; margin:0 0 10px 10px;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/symbols_and_stated.gif"/><br />The simplest solution we thought of is to have a switch where one ball sets the path of the other ball. We call this a 'stated' AND gate, since the switch can flip between its two different states.<br /><br><br><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/images/and_state.gif" title="Click to view this animation."><img style="display:block; margin:0px auto 0px; text-align:center;cursor:pointer; cursor:hand;" src="http://serioussandbox.com/media/knexcomputer/images/and_state.png"/></a><br />The animation above shows the gate in action. It has two inputs (A,B) and two outputs (A, A&B). The A ball must goes first, flipping the switch, which affects the 1's path for B. That way the B ball becomes A&B, while the A ball remains A.<br><br><br /><hr><br /><img style="float:right; margin:0 0 10px 10px;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/symbols_xor_stated.gif"/><br /><b>Part 4: The XOR Gate:</b><br />An XOR gate is active when either of its inputs are active, but not both. It can be thought of as a NOT gate which turns on if the A input is on. <br /><br /><br><hr><br /><br><br><br><img style="float:left; margin:0 10px 10px 0;width: 150px;" src="http://serioussandbox.com/media/knexcomputer/images/symbols_and_waiting.gif"/><br /><b>Part 5: The Waiting AND Gate:</b><br />If we did everything with state gates, we would need extra balls to create copies of values. To avoid extra complication, we use a different type switch. This forces the A ball to wait until the B ball arrives.<br><br><br /><br />The animation below is the 'waiting' AND gate. The one's path of the A ball is blocked by a counter-balanced switch. If the A ball is a 1, it has to wait until the B ball drops before becoming A&B. The B ball keeps its value.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/images/and_wait.gif" title="Click to view this animation."><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://serioussandbox.com/media/knexcomputer/images/and_wait.png"/></a><br />The waiting AND introduces a new problem. If the gate is designed poorly, the ball can get stuck. This is known as a crash, and the system will not be able to recover.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com2tag:blogger.com,1999:blog-3713780515428201291.post-86885278275061542012007-01-04T03:09:00.001-05:002007-01-06T02:35:45.791-05:002-Bit Decoder<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td colspan="2"><embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-2994695845558813020&hl=en"></embed></td></tr><tr></tr><tr><td>This is a 2-bit decoder. It is used to access a desired memory location. A regular decoder takes a binary number as an input, and "activates" the corresponding bit of output. In our case, we first reset the decoder such that all output bits are active, and then as we enter the binary input, the incorrect outputs are deactivated.<br /><br />The first ball that goes through is the reset ball. The other two balls are the binary input. The red squares are the output bits, and the one which remains on the right is the active one.<br /><br />This was Jeff's baby. So maybe he will describe it more.</td></tr></tbody></table>Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com2tag:blogger.com,1999:blog-3713780515428201291.post-61902856143938286332007-01-03T03:35:00.000-05:002007-01-03T03:41:32.138-05:00Nothing NewI broke my leg, and I'm at home. My K'NEX are at school. Very sad haha.<br /><br />Work resumes in February. Or sooner if Jeff comes to visit...Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com2tag:blogger.com,1999:blog-3713780515428201291.post-92197632686539859502006-12-15T00:28:00.000-05:002007-01-05T15:51:12.783-05:00Status UpdateFinals are over, so we can devote more time to this project. We intend to finish as much as we can by this Tuesday, because that's when Olin has it's Fall Expo. We also intend to make a simulation of the computer to better explain exactly how the computation is carried out.<br /><br />In the meantime, I will explain how this whole thing works:<br /><br />Computers work in binary, meaning that everything is either a 1 or a 0, 'on' or 'off'. The first challenge of building a mechanical computer is deciding how to represent a 1 and a 0. You may have seen the <a href="http://goldfish.ikaruga.co.uk/logic.html">Lego logic gates</a> that represent 1's and 0's with pushing and pulling rods. This works fine until you have many gates linked together, at which point the friction is too much. While writing this post I just found that <a href="http://www.youtube.com/watch?v=3vXlQZvS-nM">someone else</a> is also making K'NEX logic gates using this rod technique. (Although K'NEX purists might complain that he used rubber bands to implement the OR gate) Still pretty impressive though.<br /><br />We decided to get around the friction problem by doing our computation with balls. The main motivation behind this was that balls are really cool to watch and listen to as they propagate through the machine. Also, we can make it as big as we want without worrying about friction since the balls transmits the 1's and 0's instead of rods. This makes the machine much slower, but it doesn't really matter since its only job is to look cool.<br /><br />Now the question comes down to how to represent a 1's and 0's with balls. At first we thought a ball is a 1, and no ball is a zero. To realize why this is a bad idea, imagine a NOT gate: if you don't get a ball (zero), you need to magically output a ball (one). We didn't want to have to prime each gate with a magazine of extra balls, so this idea was out.<br /><br />Instead we decided that it is the position of the ball that matters. If the ball is on one side of the machine, it's a one, and on the other it's a zero. Logic gates can divert the path of their input balls to create the proper output. The only drawback is that gates have the same number of inputs as outputs. For example the AND gate has inputs (A,B) and outputs (A, A&B). The half-adder takes (A,B) and outputs (A xor B, A&B).<br /><br />The other challenge is that balls need to arrive in a certain order for the results to be correct. Most of these problems can be fixed by being clever with the design, but in certain cases timing conflicts are unavoidable. These situations have been resolved with the creation of a 'wait' gate. It takes two inputs (A,B) and outputs (A,B) at the same time. There is one of these gates in the new adder-subtracter.<br /><br />The project has been a blast to work on. Designing this stuff is really fun, especially since there isn't a lot of work out there on how to make computers with balls. I imagine this is what is was like for the first engineers designing electronic computers... except they had the added rush of knowing that their work might actually go somewhere other than a display case.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com0tag:blogger.com,1999:blog-3713780515428201291.post-9225969835679481962006-12-15T00:16:00.000-05:002006-12-15T00:27:21.443-05:0016 Bits of Memory<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2FKqdZRGGwXscezSY3wO6CQIB4XYjU1vUSBOxrNFr69n4p_XxMdpvdEa153__gccBX2eT97bVSHiKvo4smyzbAj2pFu4X1eZiNMDf7CuhNN-eDx9yDgQlmKl80-kg-3AHhXEafu9wnV5o/s1600-h/regfile_front_large.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2FKqdZRGGwXscezSY3wO6CQIB4XYjU1vUSBOxrNFr69n4p_XxMdpvdEa153__gccBX2eT97bVSHiKvo4smyzbAj2pFu4X1eZiNMDf7CuhNN-eDx9yDgQlmKl80-kg-3AHhXEafu9wnV5o/s320/regfile_front_large.jpg" alt="" id="BLOGGER_PHOTO_ID_5008618357489447986" border="0" /></a>This prototype memory unit consists of 16, 1-bit registers arranged such that we have 4 memory locations, each 4 bits long. The unit is addressable using 4 decoders, which make up the top of the structure. The decoders are set using 3-bit; 2 for the address and one to determine reading or writing.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6LavGjOQCMUrqAmw9Kj4AMlOOxlzMlwMHs13-oN2tfJhrPi3pj8Y5oCF5nDZhX4027U1jS-D15GaiJW4OIvT3o2fDt8bnGpdsN1Jil0BP1FvdGduh_fWi2XQl3mgWHKUb6Qh3qYarSWSL/s1600-h/regfile_iso_large.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6LavGjOQCMUrqAmw9Kj4AMlOOxlzMlwMHs13-oN2tfJhrPi3pj8Y5oCF5nDZhX4027U1jS-D15GaiJW4OIvT3o2fDt8bnGpdsN1Jil0BP1FvdGduh_fWi2XQl3mgWHKUb6Qh3qYarSWSL/s320/regfile_iso_large.jpg" alt="" id="BLOGGER_PHOTO_ID_5008618361784415298" border="0" /></a>After developing the unit, we actually decided to scrap this format for a number of reasons. The first is that we want something more vertical, so we can put it directly on top of the adder-subtracter. The other reason is that the decoders were difficult to set using balls.<br /><br />We have already developed the new memory and are in the process of making all 16 bits.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com2tag:blogger.com,1999:blog-3713780515428201291.post-19623993063737238772006-12-14T23:58:00.000-05:002007-01-28T13:16:12.865-05:004-Bit Adder<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjixVGRXcdQUVg6FbTpRgQ2DwfTwr7i9j6awn2ks143RHXOqHNVe-W0Z7_B7xN8_8L7VOGuFVefgUm6b_XCsEmz-dUGLFmrs2PzWZiJIBjBjt_UISckYzx6Hx4uvNEBvpmrLcixKpyaX2Ow/s1600-h/adder_front_large.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjixVGRXcdQUVg6FbTpRgQ2DwfTwr7i9j6awn2ks143RHXOqHNVe-W0Z7_B7xN8_8L7VOGuFVefgUm6b_XCsEmz-dUGLFmrs2PzWZiJIBjBjt_UISckYzx6Hx4uvNEBvpmrLcixKpyaX2Ow/s320/adder_front_large.jpg" alt="" id="BLOGGER_PHOTO_ID_5008617017459651602" border="0" /></a><br>If you look closely, you can see that this 4-bit adder is 4, 1-bit full adders connected together. The carry-out of one adder drops into the carry-in of the next, moving from right to left.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL8UQrDw9E_HUY5bokvOvpOHyBKXrgo3VD6keEb0uAOQEb0cZR2vVi9QcB5Gb1GNy_FQkAUOMhRCNAEAtzGszUfGn0k4xbggrBFkjHbX5NwItA8JIyAZo8DT1hWbrgbrw55gmTcXcRaRqN/s1600-h/adder_iso_large.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL8UQrDw9E_HUY5bokvOvpOHyBKXrgo3VD6keEb0uAOQEb0cZR2vVi9QcB5Gb1GNy_FQkAUOMhRCNAEAtzGszUfGn0k4xbggrBFkjHbX5NwItA8JIyAZo8DT1hWbrgbrw55gmTcXcRaRqN/s320/adder_iso_large.jpg" alt="" id="BLOGGER_PHOTO_ID_5008617021754618914" border="0" /></a><br />Since these pictures were taken, we modified the adder to be an adder-subtracter. We also added a zero flag.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com0tag:blogger.com,1999:blog-3713780515428201291.post-37615429289144013002006-11-30T06:49:00.001-05:002008-02-02T12:28:46.099-05:001-Bit Full AdderA full adder is comprised of 2 half adders and an OR gate. Ours is specially designed so that carry-in and carry-out are at the same height. This allows multiple full adders to be linked together.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/photos/fulladder_window.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://serioussandbox.com/media/knexcomputer/photos/fulladder_small.jpg" border="0" alt="" /></a><br /><br />The full adder is on the right. The handsome man on the left is Jeff. This photo was taken in the Academic Center at Olin.<br /><br /><table cellpadding="0" cellspacing="0" border="0"><tr><td colspan="2"><embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-7434339562991419880&hl=en" flashvars=""> </embed></td></tr><tr></tr><tr><td>This test shows what happens when the inputs are A=1, B=0 and Carry In=1.<br /><br />1+0+1 = 10 which is a carry and no sum.<br /></td></tr></table>Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com0tag:blogger.com,1999:blog-3713780515428201291.post-57886227521752898252006-11-29T15:40:00.000-05:002008-02-02T12:29:28.919-05:001-Bit Half AdderA half adder takes two, 1-bit inputs and outputs their sum as one, 2-bit value. It is made up of an AND gate and an XOR gate.<br /><img style="display:block; margin: 10px auto 0px;" src="http://serioussandbox.com/media/knexcomputer/images/symbols_halfadders.gif"/><br />Since it has the same number of inputs as outputs, it is easy to create a version using balls. We use a stated XOR to compute the digit in the one's place, and a waiting AND to compute the amount that carries over into the two's place. The A ball goes in and becomes the CARRY, while the B ball becomes the SUM.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://serioussandbox.com/media/knexcomputer/photos/halfadder.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://serioussandbox.com/media/knexcomputer/photos/halfadder_small.jpg"/></a><br />This photo of our K'NEX half adder is from the XOR gate side.<br /><table cellpadding="0" cellspacing="0" border="0"><tr><td colspan="2"><embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=5744376919802872555&hl=en" flashvars=""> </embed></td></tr><tr></tr><tr><td>The position of the ball represents binary state. Left is 1; right is 0.<br /><br />Inputs:<br />A is in the back; B is in the front.<br /><br />Outputs:<br />Sum is in the front; Carry is in the back<br /> </td></tr></table>Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com1tag:blogger.com,1999:blog-3713780515428201291.post-55690754230428469292006-11-29T15:30:00.000-05:002006-11-29T15:54:51.733-05:00The OR and AND gatesThe OR Gate<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/4939/453342348074731/1600/483647/IMG_1433.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/4939/453342348074731/320/860223/IMG_1433.jpg" alt="" border="0" /></a><br />This gate takes two balls A and B as inputs. It outputs A and (A || B).<br /><br />The AND gate is a mirror image of the OR gate.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com0tag:blogger.com,1999:blog-3713780515428201291.post-14700963213440714122006-11-29T15:03:00.000-05:002006-11-29T16:02:23.684-05:00Construction has begunWe are building a computer out of KNEX. So far we have made a 1 bit full adder, memory, and decoders. You can view our progress through the following posts on this blog. You can also watch videos of the various parts in action on Google Video. Just search for KNEX computer.Matt Donahoehttp://www.blogger.com/profile/13716613936277984858noreply@blogger.com0