from Mostly 3D Printed Binary Encoder
What a really neat project.
via megardi on instructables
An encoder converts information from one format or code to another. The device presented in this Instructable will convert the decimal numbers 0 through 9 into their binary equivalents. However, the concepts presented here can be used to create encoders for any reasonable number of items and codes (say 20 or less). Aside from a few easily obtained microswitches and screws, all of the parts for this mostly mechanical machine can be 3D printed.
Original article: Mostly 3D Printed Binary Encoder