The Arduino has great support for input devices, and I stumbled upon the Keypad library recently which triggered the idea of making a lockbox. There are lots of Arduino based lockboxes out there already, so this one is derivative. But it was a really nice gift for a couple of my coworkers who are math teachers... the solution to a word problem can be the code to open the lockbox into which students can submit their names or from which students can take a prize.

I again made really good usage of our school's laser cutter for this project, designing a custom box which nicely holds all the components together. There are two DXF files which you can download to make the box out of 1/4" wood (except for the latch, which is made from 1/8" wood and press fit into the top of the box).
The code for this project can be downloaded here. You can also look at the code by clicking on this link. The keypad library makes it really easy to add any type of keypad and read a value passed to it. My code uses an array to store a sequence of buttons that are pressed. The size of the array is the same as the length of the code, so that the array always has the last "n" values pressed stored, where "n" is the length of the code. When the special character "#" is pressed, the program compares each value of the array to each character in the code. If they are all equal, the servo toggles its position, either opening or locking the box.