This is a functional button from portal! Mine is set to just light up a bit, but it would be simple to have some wires trailing out attached to an Arduino to wreak all kinds of havoc (opening doors, etc.). Fairly easy to make, and no dual extruder needed.
This is functional, so it presses and springs up like a real button.
I can't add stl files for printing until monday, so hold tight (sorry)
EDIT: They are now here. Happy building! (download files from above)
Not much experience necessary, no soldering but some awkward hot gluing needed.
Step 1: 3D Print Pieces
Print the two colored pieces!
The button_bottom file has four pegs beside it, these are important. Don't lose them. Print this in gray (or something similar)
The button_top is very simple, though very flat so if infill is too low there may be holes because of not enough support for the roof. It is very important to print this in red.
Unfortunately they are rather large, I printed them on the Replicator at my school, so your printer may not be big enough. If this is the case, I will test some smaller iterations and release those files. You could also, of course, edit the files I have provided. Separating the pegs from the main piece may be a good plan.
Step 2: Glue Pegs to Button Top
I used two part epoxy to do this.
Since they need to be incredibly precise, I used the following method to attach the pegs (sorry for no photos, this part needs them)
Slide the pegs into the smaller slots in the bottom piece, making sure they are oriented correctly (they should slide easily in and out. If not, check if they are rotated incorrectly, and then try sanding them a bit). They should just barely stick out of their slots. Dab a tiny bit of epoxy on the top of each one, making sure not to glue them to the base. Place the red button top on them, lining up the grooves with the clamps on the base. Wait a minute or so, and then flip the whole thing over quickly. Lift the base off, and wiggle it a bit to get the button top to gently fall to the table. All of the pegs should be evenly spaced at exact intervals (if not try again). Wait for this to dry before handling.
After all this, try sliding the top in and out of the base a few times. It should be a bit sticky, but this will go away as the epoxy dries completely in the next few hours.
If everything works smoothly, success!
Step 3: Attach Springs!
I used the springs found in pens to do this.
Place them in the four larger slots in the bottom piece in a blob of hot glue.
The springs need to stick out of the slots just a bit less than the printed pegs are high. Do this by ear and use your good judgement to clip them down with wire clippers to the correct height.
Try sliding the button top in and out of the slots again, It should act much like a button and have resistance, and spring back up when you let go.
NOTE: If you want, you can put glue on the spring tips, push the button top in, and call it a day. If you want to add the circuit, read on.
Step 4: Place LED
I used a very small red LED. It has to be red, as other colors (excepting white) will not show through the top.
Bend the leads as shown in the photo, with the positive (long) one flat in the depression seen. Clip this down to fit if needed.
The negative (Short) one should go to the edge and up over the lip for a few millimeters. Make sure it makes it to the upper layer, as it will need to contact the pressed button.
Step 5: Insert Battery
I used a 3 volt watch battery.
Place it, + side down, on top of the flat lead of the LED. Add a dab of hot glue on the side to keep it in place.
Step 6: Add Wiring
Okay. For this step, use your intelligence. Your wiring is not going to be the same as mine, but I trust you to fix it if it has a problem.
First, draw some pen on the part of the negative LED lead that wraps up over the edge. Now press the button top firmly into proper place so it contacts this (it should).
This should leave a little bit of ink on the red top, and based on this glue a little arc of wire that passes through the pen mark.
Step 7: More Wiring
Add a little tail extending down from the arc. Make sure this is in contact before hot gluing it in place. It should, when the button is lowered into place, touch the negative end of the button.
recap: Arc of wire should contact negative LED lead when button is pushed, and tail of arc should always contact negative end of battery.
Step 8: Final Tests
When you pace button top in place and press down, it should light up a bit.
Attached photos are button lighting up, complete bottom circuit, and complete top circuit.
Step 9: Glue Springs
Self explanatory. Add dabs of hot glue to tops of springs and place button on them, making sure they don't bond to anything they're not supposed to. The button should now be very sturdy, unable to twist, and smooth(ish) to press.
Step 10: SUCCESS!
There is now one more person in the world with a 1500 Megawatt Aperture Science Heavy Duty Super-Colliding Super Button!